Bespoke design tools cover image

Bespoke design tools

I started to make a very simple computer game, and then I wanted to process the assets rapidly. I wanted to give it an aesthetic of collage, so I wanted to grab a lot of images from the internet and quickly cut them out.

I could have done the cutouts using some open source image editing program like Krita, but instead I thought it would be interesting to create a bespoke application for this specific workflow. So I quickly vibe coded a tool where I can drop an image and, using a SAM-like model, segment anything in the image. Just with a couple of clicks, I can have my collage cutout ready in my game asset folder.

Why bother, when general purpose tools exist

  • I can tailor the tool to the specific need I have at that moment, and only to that need.
  • I do not own Photoshop. More boring, but very real, and the other tools I could use do not have the things I want, like the segmentation.
  • I can be much more experimental, and make things that traditional tools cannot do. This is the one I enjoy the most.

That third reason is why the little cutout tool did not stay little. Once the segmentation was working I added a library to keep the cutouts, and from there it kept growing into a small suite of modules.

  • Shaders, with dither, where I can pick my own ink and paper colours, knock the highlights or the shadows out to transparency, and add a boiling wobble so the image moves a bit like old animation.
  • Fracture, which shatters an image into regions and paints each region with a different style. The regions can be a grid, hexagons, voronoi cells, organic shapes, noise, or a Mondrian.
  • Icons, for drawing small icons, with smoothing, simplification, the same wobble, and an SVG export that stays under a kilobyte.

None of that is a menu item you find in Photoshop. A Mondrian fracturer is not a filter anybody would ship, because almost nobody needs it. But I wanted to see what it looked like, and that is a good enough reason when building the tool is cheap.