[HN Gopher] Moss is a pixel canvas where every brush is a tiny p...
       ___________________________________________________________________
        
       Moss is a pixel canvas where every brush is a tiny program
        
       Author : smusamashah
       Score  : 136 points
       Date   : 2026-03-04 10:21 UTC (12 hours ago)
        
 (HTM) web link (www.moss.town)
 (TXT) w3m dump (www.moss.town)
        
       | heyitsgarrett wrote:
       | 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.
        
         | Lambdanaut wrote:
         | 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/
        
         | azeirah wrote:
         | 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
        
           | vunderba wrote:
           | 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.
        
         | squokko wrote:
         | Is this open source? Is there a GitHub repo?
        
       | mpalmer wrote:
       | Absolutely lovely design, thanks for the share and the
       | inspiration
        
       | RodgerTheGreat wrote:
       | Moss looks much more general and powerful, but Decker has a
       | similar mechanism for custom brush behavior; here's an
       | interactive tutorial with a variety of examples, for comparison:
       | http://beyondloom.com/decker/brushes.html
        
       | od0 wrote:
       | This is the most fun I've had drawing with pixels since I was a
       | kid
        
       | Klonoar wrote:
       | This is amazing.
       | 
       | Could you add support for holding `Shift` to keep your line
       | straight while painting, ala MSPaint?
        
         | heyitsgarrett wrote:
         | Added that! Great idea. Hold shift before or during a line draw
         | and it will preview the line, then apply on release.
        
       | olivia-banks wrote:
       | This is a seriously fun tool. Bravo!
        
       | adammarples wrote:
       | In what way is a brush a program? How do I program it? I've spent
       | 5 minutes and clicked on every single thing I can find but I give
       | up looking.
        
         | jammaloo wrote:
         | Click "Editor", then click "Add a brush".
        
         | heyitsgarrett wrote:
         | If you hover next to the brush in the Edit mode as well, theres
         | a tiny pencil icon there that opens that brush's code. Sorry it
         | was hard to discover!
        
         | boothby wrote:
         | It's way cooler on desktop than mobile.
        
       | graypegg wrote:
       | That's such a neat idea! It's like a paintable version of
       | https://www.shadertoy.com
       | 
       | Is there a way to share brushes in the app/a brush sharing
       | gallery? For sharing, I can see the "weekly" section from the
       | homepage, which looks to be a weekly art prompt and everyone's go
       | at it, which is really fun! But for the more artistically
       | challenged (myself), it'd probably want to share a brush on it's
       | own haha
        
       | juliushuijnk wrote:
       | Reminds me of my evolving small image file format prototype, back
       | from when I had no AI help..
       | 
       | https://medium.com/@JuliusHuijnk/experiment-in-evolving-the-...
        
       | lukevp wrote:
       | Cool concept!
       | 
       | I noticed with the Aquarelle brush on iOS, if you swipe fast, you
       | can clearly see the polling rate of the touch events on the
       | canvas. The line looks smooth so I guess you already have an
       | interpolation algorithm going, but this brush darkens as the
       | dwell time is longer so I'm not sure if it's doubling the points
       | that are reported or what but it looks very bandy/patchy.
        
       | sen wrote:
       | This is so much fun, and some an awesome idea. Playing around
       | with it gives me that same feeling as playing with MSPaint as a
       | kid, exploring different brushes and seeing how they interact.
        
       ___________________________________________________________________
       (page generated 2026-03-04 23:00 UTC)