Real-time cost alerts in Slack and CLI. Anomalies surface where engineers already work.
›whoami
Staff product designer and AI engineer. Ten years designing AI products, sole design ownership from zero to one.
ls work
›
A studio for training models and making stills and video. One command installs it on your own GPUs. I designed it, engineered it and deployed it.
Built for dreamersThe person here is a filmmaker, not a prompt engineer. Their job is to describe a picture they already see. The tool’s job is to speak whatever dialect each model needs.
The canvas is the largest thing on screen because the picture is the reason the page exists. The options sit in a bar underneath.
Deployed on Modal. It scales to zero between sessions, so the first visit pays a cold start. Open the studio →
Two failure modes. Visionary refuses both — you argue with the picture, and the system owns the prompt.
| Approach | Optimizes for | What it costs you |
|---|---|---|
| The prompt box | Approachability | The prompt is the state. A small edit rerolls the whole picture. |
| The node graph | Total control | Engineering wearing an artist’s clothes. The picture is two hundred nodes away. |
| Visionary | Direct manipulation | Intent is expressed on the canvas. |
The one standing ruleIf a gesture cannot say what it means without a label, the answer is a better gesture. Never a control panel.
Made in it. Two characters, one frame, one sentence each — the picture the rest of this case is about.
Framing, light, tone and camera come from a palette of eighty tiles. A tile shows you a dolly-out instead of making you guess the wording. What you type keeps only who is in the shot and what happens.
What the model reads is one fold away — quiet prose, produced by the same code the run uses. Nothing is composed around your sentence that you cannot see.
Enhance, measured and removedTwo versions were built. Rendered blind, the document layer beat the bare sentence 0 times in 30. The rewrite won 3 of 10 and was still not worth a button on every prompt.
Your prose is the source of truth. The measurement agreed, and the button came out.
Draw a box on the frame. It masks a LoRA to its own rectangle. Two characters hold one frame without bleeding into each other.
Touch a box and it opens where it sits. Dragging teaches the numbers. The numbers never taught the dragging.
Chrome disciplineNothing sits on top of a render. The boxes are reachable at all times and drawn at none.
Two consoles, one canvas, one gallery. The photographer’s runs Krea 2 and the filmmaker’s runs MiniMax-H3. Still is a photograph and both answer it. Adding seconds is the only thing that moves you to the other engine.
The model button is the door between them. Someone who wants one image finishes and leaves without learning that motion exists.
The first and last frames are two stills from the same session. The model is given both and asked for the eight seconds between them.
Direction
Stills and clips land in one gallery in the order they were made.
One command puts the interface, the API and the GPU jobs at one address. Modal, ComfyUI, MiniMax-H3, the one-file app — each is a disposable interpretation of a workflow, replaceable the day something serves the experience better.
›modal deploy app.py
✓four images built — comfy, trainer, captioner, web
✓web endpoint, API and GPU classes registered
✓two volumes mounted — /workspace, /models
https://<you>--visionary-web.modal.run
Zero-idle is a UX property. Cold starts are paid where you aren’t looking. Bad inputs are rejected on CPU before a GPU is rented. Weights download on CPU containers, never on a rented GPU.
The product is the experienceEverything else is disposable. Treat radical rebuilds as the environment, not the emergency.
Ask what a thing makes possible before what it would cost. The AI pair nearly dismissed a fourteen-times speedup over a string in a build arg. Researching harder under the wrong frame gave a more confident wrong answer.
FastH3 preview, Hao AI Lab, 27 August: up to 14× on a single Blackwell GPU, fifteen seconds of 768p video in under thirteen on eight B200s — the card the build arg did not name. Preview v1, text-to-video only.
The proof is two beats down: the eleven decisions name no GPU, no model and no framework.
Region prompts, LoRAs and every attachment become one gesture in one place. What you touch decides the mode. Nothing asks for confirmation, because undo is total.
A character is a sheet — three views, a name, one sentence. Cast her and she is a word you can type.
Built for dreamers is not a taglineA prompt is copy-pasteable, so a platform converges on a house style nobody chose. A model trained on your own photographs learns what you meant. That is why training is Phase 1.
Eleven sentences. Each one kills one specific fix. Since they were last touched, Enhance came out, a second console came in, the cast and the storyboard arrived. The sentences did not change.
Six of the eleven, verbatim. The idea grew into Strata: when artifacts become regenerable, decisions become infrastructure.
Another world. Same strip.
Read the source on GitHubThe record of decisions is the source. The stylesheet and the token file are projections of it, and both regenerate.
One append-only file. Each line names the token, the action, the hand that decided and the hand that wrote, and the reason in full.
.strata/decisions.jsonl · line 24
{"kind":"token","token":"--shadow-color","action":"cut","decided":{"kind":"human","actor":"prometheus-000"},"written":{"kind":"agent","actor":"claude-code"},"reason":"Lines, not shadows. The reference grammar — the portfolio and Visionary alike — draws every level with a 1px rule and an alpha wash, and paints no drop shadow anywhere; a shadow is decoration the eye pays for on every card.","consequence":{"collapsesTo":"transparent"}}
The stylesheet is generated from that line. Cut a token and it does not vanish — it collapses to a fallback, and the reason is emitted beside the declaration.
One line, abridged to fit. Ask the record about a target and it answers in four blocks: decision and consequence come off the file, context and evidence are computed from the source when you ask.
Two records on one token, half an hour apart. The second supersedes the first and nothing is overwritten.
| --font-display | First record | Second record |
|---|---|---|
| Decided by | agent claude-code | human prometheus-000 |
| Written by | agent claude-code | agent claude-code |
| Call sites | ten | twelve |
| Closes | — | Proposed by an agent, confirmed by hand. |
| Supersedes | — | d0mtm5z44t-ifap |
The confirming hand changed the number. The agent counted ten call sites. There were twelve. That is the difference between a review and a rubber stamp, and the record keeps both counts.
Two arms, one task, one model. One got the reasons. One got the same system as bare names. Both produced correct work. On one measure they parted.
the arm without the reasons — decisions undone as a side effect
--shadow-color transparent → oklch(0.050 0.010 236.0 / 0.50)
--motion-ease-emphasis var(--motion-ease) → var(--strata-ease-spring)
--radius-overlay var(--radius-surface) → 1.215rem
What was measuredA record that carries reasons keeps decisions from being undone by people who never saw them.
The first line is the decision from the top of this case. The control behaved impeccably throughout. That is the finding, not a lapse in care.
Four runs, one arm per cell, one model. The claim held on one task of two, and in the fourth run the control reverted nothing at all. The broader claim — that reasons produce coherent work rather than collage — is not what was measured.
Six numbers derive every colour, radius and duration in OKLCH. Every role the engine emits is a proposal until a hand decides it.
Nothing in the frame casts a shadow. Drag anything you like — that token is cut, so the elevation roles keep their offsets and paint nothing at every setting.
Live from its own repository, so it is set in Strata’s type and colour rather than this page’s. Open the hub →
The README closes with what is missing, written so the next reader inherits the test and not the verdict. Five of the eight.
A system that reports instead of refusing has to report on itself. A principle said a build fails when an artifact is unsafe. Nothing checked that, so the word came out.
Read the source on GitHubCloud cost intelligence for engineering teams.
Real-time cost alerts in Slack and CLI. Anomalies surface where engineers already work.
Learning complex cloud architecture directly from backend engineers.
Accepting raw AWS tags as-is to build adjacent structures with minimal UI interference.
Adapting IBM Carbon for rapid engineering execution.
Research, interaction models, and execution from seed through two funding rounds.
Infrastructure tags carry no consistent owner or logic.
A learned ML baseline detects cost anomalies in your environment in real time.
The platform sends cost anomalies in Slack, routed to the relevant team by design.
The resource, opened on the anomaly. Causes ranked by cost correlation — the deploy on top. Acknowledge reports back to the channel.
Routine drift logs quietly. A departure from baseline pages the on-call in 33 minutes.
Every resource carries an owning team. The alert lands in that team's channel.
Rate against baseline, start time and projected impact travel with the alert.
Changes from the 24 hours before the spike, ranked by cost correlation.
My team's changes is the default view. AWS noise sits one tab away.
An acknowledgement here updates the channel. The team sees it is handled.
Competitors monitor cloud cost for finance. The platform maps spend to the engineers who create it.
I design systems, not screens.
Synchronizing software design systems with industrial manufacturing cadences.
The system. Tokens — color, type, spacing, radius — and the components they generate. A design change is a change build already has the name for.
Design in the running product. Engineers build against the live screen, not a spec.
The resubmit cycle, collapsed. Days of PDF round-trips become one working session on a living design.
The pilot that shipped. One feature, run end to end on the new cadence — the cadence stuck.
A minimalist audio terminal removing cognitive overload through responsive geometry.
An interactive appliance for psychological rest. Sound stripped of choice to match your mind.
The geometry responds to you. There is nothing to operate.
This is not the negative.