Hacker News new | ask | show | jobs
by heyitsgarrett 100 days ago
Oh thanks for sharing this! I love asesprite, procreate, pico8 and had this idea for programmable brushes bonking around my head for years now. Recently took some time between projects to put it together.

MOSS is a drawing toy where each brush is a tiny script that knows about every pixel on the canvas. You define how it paints with noise, randomness, patterns, stroke speed, pressure, and every touch executes the code.

So you can have a brush that scatters pixels like a real spray can or one that stamps shapes that mutate as you drag. Or perspective lines that actually converge. Or a fill bucket with smart gap awareness (I called it "Fill of my Dreams" and added to the brush list).

Happy to share brush code in the comments or explore ideas together. There's a (?) in the bottom right toolbar with API docs, and a prompt copy at the bottom if you wanted to work with the API through an agent.

5 comments

I wrote a program that has programmable brushes about ten years ago, it's a bit different from moss in that it has a physics simulation underneath rather than a sort of shader, but I've always thought this kind of approach has a lot of potential.

It feels _amazing_ to draw a bird in a single stroke!

Maybe this can give you some inspiration!

https://laura.fm/generative-art/wind/wind.html

This was very interesting to read! My choice of drawing program now is Rebelle, which does have a "swarm" brush (they call them bristle brushes, designed to emulate real paintbrushes) and together with its physical simulation where paint applied on the canvas has a thickness instead of opacity, the results can look absolutely stunning. Have given me the itch to also experiment with simulation-based drawing programs.
Very cool. Side note, but I've always thought that a combination of a pixel art editor like Aseprite coupled "cellular sand sim" would be really cool.
This looks like Krita brushes
I love how fun this is. It has so much personality. Definitely can see the pico8 and aseprite inspiration.

I think what could be really interesting is some procedural generation brushes... Like a brush that generates a random city-scape as you draw it. That sounds so exciting..

Maybe using wave function collapse:

> https://nathanmcoleman.com/projects/wavecollapse/

Is this open source? Is there a GitHub repo?
Hi, I love the pixelated look and feel so much and hadn't seen runtime programmable brushes before. Can you share some interesting brush codes that are not already there in the app?
This feels lovely! The fact that it reacts to the pressure on my Wacom tablet puts it above many desktop tools and streets ahead of most stuff on the web. Fantastic work.