Devlog

What exists so far

Wednesday's post introduced the app in the abstract. Here's the concrete version: a tour of what Camaïeu can already do, and the scaffolding it's still hiding behind.

Two families, one renderer

A composition starts from a shape family, a hand-tuned motion archetype with its own geometry and its own way of moving. Two exist so far: an organic cell family that breathes and drifts, and a mechanical gear family, a small train of meshing gears, complete with an escapement tick against the field. Both are drawn per-pixel in Metal, in grayscale, through exactly the same pipeline; adding the second family required zero changes to the renderer, which is when I knew the architecture was right.

Everything is deterministic: a seed always rebuilds the same composition, on any device, forever. Shuffle just picks a new seed inside the family's hand-tuned bounds, so every result looks intentional, and nothing ugly is reachable. That determinism sounds like a technicality, but it's what makes everything in the "keeping and sharing" section below possible at all.

Color is a costume

The part I described last time (geometry never knows what color it is) looks like this in practice: ten curated hues, each wearable in three moods. Calm maps the grayscale to a soft duotone. Contrast sets a fully saturated dominant and its complement against a near-dark field. Mono is a single hue, stretched into a gradient. Because color is just a lookup table applied at the very end, tapping through swatches recolors the living composition instantly. The motion never stutters, the shapes just change clothes mid-movement. It's the most satisfying thing in the app right now.

Sessions

By default a composition free-runs. In breathing mode, the breath cycle becomes the animation clock: the inhale drives the first half of the shape's gesture, the exhale the second, and the holds rest at the endpoints. Change the timing mid-session (there are sliders, plus the usual presets like box breathing and 4-7-8) and nothing restarts; the composition re-anchors where it is and carries on. And there's a focus timer: pick 5, 10, or 20 minutes, the screen stays awake, nothing interrupts you.

Keeping and sharing

A heart button saves the full look (family, seed, hue, mood, framing) to a shelf of little gradient chips. Long-pressing one produces a look code: a short string like CAM1-GEAR-70441-200-CALM-90 that you can send to anyone. No account, no backend, no cloud: the code is the composition, and pasting it in rebuilds the exact same living thing. Determinism, again.

You can also carry a look out of the app: export it as a Live Photo or a short seamlessly-looping video, anchored to the on-screen loop phase: what you see is what you carry. There's a genuinely annoying iOS story buried in that feature, but it deserves its own Friday.

What it looks like today

Here's the honest part: all of the above currently runs behind debug chrome. Sliders with raw parameter names, toggle rows, a family picker that looks like a settings screen from 2013. Functional, not pretty: it was built for tuning shapes, not for humans.

Camaïeu running behind its debug interface: a live composition above rows of parameter sliders

So that's the work now, and the part you'll watch happen here: the real interface, the icon, the App Store listing, the paywall. The engine is done; what's left is everything a stranger would actually touch.

Monday, the first real open question. The free tier will never cripple the app, but which shape family should it get?

Camaïeu is built for RevenueCat's Shipaton 2026. #Shipaton #BuildInPublic

Send Feedback

Found something useful, missing, or unclear? Your feedback is welcome.