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.