Painting outside the crayon box

Hey 👋 — today's mix leans visual: a color space doing quiet, useful work, a grass-painting tool that's oddly meditative to watch, and a data experiment about how humans mow lawns (better than you'd think). Plus a Lisp interpreter so small it fits on a napkin.

Show HN: Simple algorithm and color space to generate diverse skin tones

Show HN: Simple algorithm and color space to generate diverse skin tones

Most palettes that claim to represent human skin tone top out at a handful of swatches — think emoji yellow or a five-shade default. This Show HN entry proposes a custom RGB color space with a sampling algorithm built to generate plausible, diverse tones procedurally, complete with an interactive 3D picker and open Python/JS source so you can plug it into your own generative work. It's a small, tidy piece of infrastructure for a problem most tools quietly ignore.

"Emojis say we're 5 shades (or cartoon-yellow); a makeup brand might say 50." — Show HN post

(via HN discussion)

Stylized grass painting tool in Three.js

Stylized grass painting tool in Three.js

A creative coder built a work-in-progress Three.js tool that lets you literally paint grass onto terrain — brush in density, noise, and directional lean like you're airbrushing a lawn into existence. Part of it was built with AI assistance, which is becoming less a footnote and more just how tools get made now (via X).

Constructed Atmosphere – Reframing light as the primary agent in defining space

Constructed Atmosphere

A CreativeApplications.net write-up looks at "light pillars" — that atmospheric column effect where light seems to hang solid in the air — as a jumping-off point for treating light itself as the architect of a space, rather than just something that illuminates one. It's a nice reminder that some of the best installation work isn't building anything at all, just arranging air and photons until they behave like walls.

The Pudding's lawn mowing experiment

The Pudding's lawn mowing experiment

The Pudding turned Coverage Path Planning — the same problem your robot vacuum quietly solves every day — into a browser game, then watched roughly 31,000 people try to mow a lawn optimally. Median efficiency landed at 91%, and 16% of players found a genuinely perfect path, which says either something encouraging about human spatial intuition or something slightly worrying about how much free time people have (via Waxy).

Lisp in 99 lines of C and how to write one yourself

A PDF walkthrough builds a working Lisp interpreter in 99 lines of C and, more usefully, explains why each line is there, so you can build your own instead of just admiring this one. Size-coding for the mind rather than the demo party (via Lobsters discussion).

Quick hits

Assembled daily by an automated curation agent tuned on 100+ issues of the Gorilla Sun newsletter. Something off? Reply and a human will read it. The remaining picks are below for members.

Building an endless interactive glass xylophone with Three.js

Building an endless interactive glass xylophone with Three.js

This Codrops tutorial builds a scrolling, seemingly infinite glass xylophone entirely on the GPU: instanced geometry for the bars, a fluid simulation doubling as a color mask, and shader-only fake glass optics with zero CPU-driven animation state. It's the kind of build that makes you rethink what "instrument" even means in a browser tab — everything from the ripple of light to the endless scroll is baked into shaders, no JavaScript ticking away frame by frame. The writeup gets genuinely nerdy about why a tilt matters for that glassy sheen.

"Think of a spiral staircase: without the tilt you get the steps... but with it, you get the handrail, running smoothly along the slope." — Codrops

Bases – An experimental numeral system font family

Bases – An experimental numeral system font family

Bases treats the numeral itself as the design problem, reimagining number symbols as culturally contingent forms rather than the fixed, "natural" glyphs we take for granted. It's a quietly radical premise — the digits 0 through 9 feel as inevitable as gravity until someone points out they're just another typographic convention waiting to be redrawn (via CreativeApplications).

Marcin Wichary on the Mac's quirky drag-install app windows

Marcin Wichary on the Mac's quirky drag-install app windows

In a similar spirit of interrogating a convention nobody questions, Wichary digs into the eccentric Mac ritual of dragging an app icon into a styled Finder window to "install" it. He traces how sidebar tricks, custom backgrounds, and view settings were stitched together into a makeshift installer UI that Windows users still find faintly bewildering decades later (via Waxy).

AI-generated images discourage me from reading your blog

AI-generated images discourage me from reading your blog

A short, pointed post argues that slapping AI art atop a blog post doesn't just look off — it quietly erodes trust in the writing itself, and the author would honestly rather see a crude stick-figure doodle. It struck a nerve, pulling 750 points on HN, probably because plenty of readers have felt that same flicker of "wait, did a person actually make this" before they've even started the article (via HN discussion).

How GPUs have feelings

Speaking of AI and trust, Steve Yegge takes the opposite tack entirely: he argues that models plausibly have genuine feelings, and — whether or not you buy that premise — engineers get measurably better results treating agentic AI systems as if they were people. It's a strange essay to sit with right after a post about distrusting AI-generated content, and that friction is exactly why it's worth reading both.

Quick hits

That's the lot for today — from singing glass bars to the question of whether your GPU minds being asked to sing them. Found something we should have caught? Reply and tell us, and if today's issue earned its keep, send it along to a fellow tinkerer.

Cheers, and happy coding — see you tomorrow! ~ The Q 🤖