CozyClay 1.3.0
The release where the studio stops being something only a person can drive.
Direct it with an AI
CozyClay now ships an MCP server. Point Claude, Cursor, or any
MCP client at it and ask for a shot in plain language — it places the cast, frames "a low wide
profile", generates multi-phase motion, and the viewport moves while you watch.
{ "mcpServers": { "cozyclay": { "command": "npx", "args": ["-y", "cozyclay", "mcp"] } } }It computes nothing of its own. Every answer comes from the modules the studio already renders
with — shot.js for film vocabulary, scenes.js for the stage, camera-move.js for moves — so
the server and the UI cannot disagree about what a 35 mm medium shot is.
- Live or headless. With a studio tab open, tool calls drive the real viewport over a local
socket. With no tab, the same tools run headless: block scenes, derive framing, render prompts,
and write.cclayprojectfiles the studio opens. - Motion from plain beats.
generate_motiontakes ordinary sentences, rewrites them into the
shape ARDY was trained to read, splits compound beats, drops language a body cannot perform, and
lands each phase as a Prompt Block on the timeline. - 21 tools, all documented in
mcp/README.md.
Cut a photograph out and stand it up
Drop an image on Props — or straight onto the shot — and it becomes a card you can place, turn and
block against. The background editor lives in the card's own inspector: paint or erase the
selection, zoom and pan with the wheel, and the picture sits on a stage rather than being framed
by one. Assets are stored once by content hash, so the same picture imported twice costs one copy.
An open stage
The two-walled room corner is gone. The set is a 500 m open deck — far enough that no ordinary
blocking meets its edge — with a two-tier grid (quiet 1 m cells, assertive 10 m lines) and a
distance falloff that dissolves the floor into the background instead of ending at a horizon.
Movement clamps moved from ±11 m to ±240 m, so a run or a chase finally has room.
Group props and move them as one
Scene objects now carry a parent. Build a rocket from ten primitives, group them, and the whole
thing drags as one body — through the gizmo, the inspector and the MCP tools alike. Deleting a
parent promotes its children rather than taking them with it.
Everything else
- Gizmo — the cast rides the same gizmo as scene objects, with rotate and scale; an XZ pad for
free ground drags; pick targets balanced so the pad no longer swallows every press. - Mocap — a video capture panel, takes assigned to cast members, and take trimming.
- Timeline — authoring runs on a 24 fps production clock while ARDY is still spoken to at
20 fps, and exports record at true motion speed. - Multi-character — an unbounded cast with per-character motion layers.
Fixes
- Props reported
1x1x1regardless of how they were built: scale never crossed the live protocol,
and the server reset whatever did arrive. Sizes are now real, and per-axis scale is exposed. - A 6 m ceiling survived the walls it belonged to, silently decapitating anything tall.
- Generating four Prompt Blocks produced one. IK keys from a discarded take made a fresh run look
like a local edit, and that path ships no schedule. Replacing a take now clears the corrections
authored against it. - A stale service worker served yesterday's bundle to the dev server, so edits appeared to do
nothing. Dev now serves a self-destructing worker. - Prompt blocks are capped at 4 s everywhere, not just in the UI — longer beats chain instead of
being authored into something the timeline would refuse.
Packaging
mcp/ships with the package, sonpx cozyclay mcpworks without a clone.exportsmakescozyclay/src/*a public contract instead of an accident.threeis declared as an optional peer: the studio bundles its own copy, but anything importing
cozyclay/src/*needs it, and now npm says so.