Repository navigation
Releases
CozyClay v3.2.2
A patch for the motion compiler and the agent: faster compiles, holds and automatic legs, arms, gaze and tempo, steadier agent turns, and depth exports that read right.
Export
- A depth video whose frames show no empty background (a backdrop that fills
the frame, a closed corridor) keeps a readable range instead of going all
black. (#1090) - Rigged characters render in their current pose in depth frames and
blocking-depth.mp4, not in the T-pose. (#1094) export.shotVideotakespassKind: "depth"anddepthCurve: "inverse"for
an inverse-distance depth curve that keeps close-up relief. (#1096)
Camera
- A rail camera aimed at a rising or falling object follows its height each
frame instead of one shot-average height. (#1095) - Agents can hold camera framing. (#1027)
Motion
- Compiles run about 1.5x faster:
pose()'s bone edits run in WebAssembly,
with takes the same bit for bit. (#1088) - Holds, and automatic tempo, knee poles, foot heading, free-arm swing and
gaze (set.look) where the keys leave them out. (#1080, #1081, #1082) - Two-hand carries hold a box from below at its sides; letting go and
throwing no longer jump. - Repair and retime run by default, with QA-guarded key thinning. (#1006)
- MotionBricks transition fills (opt-in), a native mode and the Smart
Primitive runner, with named poses and fills that hold up in scenes with
objects. (#1008, #1017, #1023) - A grasp out of reach says so, instead of blaming the grip. (#1066)
Agent
- Provider failures retry gateway 5xx and honour Retry-After; usage limits
read as quota; sign-in waits say why they stopped. (#1043, #1044) - Refusals name the failing field. (#1042)
- Tasks: a main turn that makes no progress ends, the watchdog waits on
running tools and names a model that did not answer, finished tasks undo
after a scene round trip, and paused tasks resume instead of refusing.
(#1002, #1004, #1010, #1051, #1056, #1058) - Every edited turn is checked, with pictures and relations given to the
model, and the panel shows the review and the context used. (#1000, #1030) - A handled prop is staged within reach. (#1066)
- Camera, blocking and review previs workflow. (#1014)
Studio
- Contact sheets show a character behind scene bodies. (#1024)
- An empty cast is allowed; cancelling the file picker no longer counts as a
refusal. (#1041) - Pose mode picks the one rigged character; the first-success guide starts
with Add a character. (#1047, #1048) - Fixed a playback update-depth loop (React #185) and crashes under page
translation. (#1045, #1046) - A slab resting on the deck no longer z-fights with it. (#1075)
CLI
cclay live save --out file.cclayproject [--force]saves the open project
from the terminal. (#1072)cclay live capture --frames A-B --out-dir DIRrenders a run of frames in
one session. (#1074)live run,cmdandtooltake--args-file <path>or--args -
(stdin), so large payloads such as GLB data URLs fit. (#1092)asset.importdecodes meshopt and Draco compressed GLB. (#1092)inspectpages entities with--limitand--cursor; live captures from
a hidden Studio tab are refused. (#1070, #1071)shot.setcamera keys documentframing.yawandpitchas radians.
(#1093)
Other
- three.js 0.187; MCP SDK 1.32.2.
- Landing page: the shot and the way in on the first screen, a sharper hero
take, and a daily GitHub star count.
CozyClay v3.2.1
A patch that makes the numbers readable: hosted builds report their version, and the export funnel and agent failures can be split by cause; plus a script-driven tutorial recorder.
Studio
- The Update chip now agrees across open Studio tabs at once: closing it,
pressing Update now or an install finishing in one tab shows in the
others without waiting for their next check. - Help › About shows the version you are running.
- In Sculpt mode, click a part of the sculpt to select it: the part gets an
outline, and its row lights up in the new Parts tree in the Sculpt
panel. A click on a mirrored copy selects the part it mirrors. A click on
empty space, or Esc, clears it. - Sculpt shelf. Save to shelf in Sculpt mode keeps a sculpt as a card
in Content › Sculpts, with a thumbnail. Drag a card into any scene of
any project to place a copy. Export a card as.cozysculpt.jsonand import
it on another machine. - After a one-click update, Restart now starts the new version on the same
port in the same terminal (macOS and Linux), and the Studio reloads when it
answers. A project with unsaved changes asks you to save, then reload.
Windows keeps the copy command by design. - A selected sculpt part gets a gizmo: W moves it, E rotates it and R scales
it (Shift scales evenly), and W/E/R go back to the turntable views once the
part is cleared. One drag is one undo, a mirrored pair moves together, and
an edit the recipe refuses snaps back with the reason. Delete with a part
selected no longer deletes the whole sculpt. - A capsule figure set to Sit now sits on the floor in an L, with its legs
reaching forward the way it faces, instead of only getting shorter. Its
bounds, and so framing, follow the new shape. (#999)
CLI
cclay update --offturns the update line and the Studio's Update chip
off for good;cclay update --onturns them back on.cclay update --check
still answers either way.
Agent
- A task that read a whole character is told when another task edits one of
that character's layers, so a placement built on an old position is
flagged on its next step. (#981, #982) - Task mode in the agent panel is on by default. Turning it off is
remembered in this browser. (#998)
Sculpt
- Multi-view compare. The blueprint sheet is cropped into front, side,
back and top views, each with its own mask; a view whose mask fails is
dropped with a notice.sculpt.comparetakesviews: [{ yaw, reference, weight }]and weighs front, side and back 0.6, 0.25 and 0.15, giving 0 to
a view whose proportions differ from the front by more than 35%. Start
compares against the cropped side and back next to the front reference.
Generate blueprint shows only with a ChatGPT sign-in. (#970, #995)
Analytics
- Hosted builds report the version they run. (#989)
- Opening the Export menu is counted, with whether the browser can encode
MP4, so the export funnel can be read. The privacy page lists the new
export:menu_openedevent. (#990) - Agent failures say whether the provider failed, the request got no network
answer, or the cause is unknown, instead of one catch-all. (#991) - MCP tool events carry the tool name, and
studio_commandscounts as a
read. The privacy page lists thetool_nameproperty. (#994) - Reference exports made by QA scripts no longer count as user export
attempts. (#993) - Usage analytics no longer switch themselves off in source checkouts, forks
or CI (aCIvariable alone does not disable them), and the browser's
Do-Not-Track setting is no longer read. Turn them off withcclay telemetry off,COZYCLAY_TELEMETRY=0orDO_NOT_TRACK=1; the analytics toggle in
Preferences and the launch notice are gone. An unreadable state file now
reads as the defaults, with analytics on, and a Studio served on a local
network address counts as local. The star question is asked once per
version when the Studio starts, instead of on exit. (#988)
Tutorials
- Tutorial recorder.
npm run tutorial:record -- first-videorenders the
episode "First video in 5 minutes" from a script, in Korean or English,
with.srtcaptions, so the video can be re-rendered when the UI changes.
(#983) - The recorder adds voice narration and burned-in captions in the chosen
language. (#984) - Episodes can point at a feature before using it: a spotlight with a label
and note, chapter cards and an install terminal scene. (#985)
CozyClay v3.2.0
Motion gets physics you can see and trust: props swing and settle after the hand stops, balance and jumps are judged by real mass and gravity and the Studio draws why, and characters no longer pass through each other when you drag or compile.
Studio
- Physics overlay. Tick Physics in the motion controls, or call
motion.physicsOverlay, to draw the centre of mass (green inside the feet,
red outside, grey in the air), the support polygon under the feet, each
jump's actual hips path next to its gravity arc, and a short trail behind
swinging props. It shows in scrub, playback and video export, and red
frames are exactly the ones QA calls BALANCE. (#950) - Dragging a hand or foot IK handle into another character now stops at that
character's body instead of passing through, even on a fast drag across a
thin forearm. Hold Alt while dragging to pass through on purpose; a
one-time notice says so. The other character never moves. (#949)
Motion3
- Prop spring.
objects.<id>.spring = { length, stiffness, damping }
makes a carried or free prop (a bag, a lantern, a club) swing a beat behind
the hand and settle.lengthis the string or rod length; stiffness
defaults to gravity over length and damping to 0.5, sospring: { length: 0.5 }
already swings naturally. Put the prop's base at the hand withat/along,
because the swing pivots at the base; QA notes a base that sits far from the
hand. The swing is computed once at compile time, stops when a dropped prop
lands, and never pushes the prop into the floor. (#945) - BALANCE now uses a mass-weighted centre of mass against the support
polygon of the grounded feet, instead of a four-point average and a box. Its
hint gives the distance and direction (for example 0.10 m ahead of the feet),
and a lean that changes direction stays one issue. A hint that moves the
root now moves every key that holds the pose, so the body does not slide
between them. (#944, #937) - FLOAT issues come with a fix: the root keyed onto the gravity arc between
takeoff and landing, returning to the original motion at both ends. When the
correction would be too large, the hint gives the apex height or the air time
that would fit instead. (#943) fix.person(on by default) moves a character's arms out of another
character's body at compile time, keeps contact you allowed in
checks.allow, and gives the same take after saving and reopening. (#948)
Agent
- Kimi K3 models (
kimi-k3*on the Moonshot hosts) work on the
OpenAI-compatible provider with their reasoning efforts and full output
limit. A turn that spends every output token before answering now says so
and suggests a lower reasoning effort, instead of failing with no output.
(#951, #947)
Package and tests
jpeg-js, which the MCP image tools import, is a root dev dependency, so a
development checkout runs the MCP tests without a separate install. The test
runner now skips the MCP suites with a clear message whenmcp/node_modules
is missing. (#946, #936)- The Studio camera QA enters look-through from the dock's Shot Camera card,
where the Studio shows it. (#952, #925)
CozyClay v3.1.6
The npm package ships the MCP module the live tools need, so the Studio's live tools and cozyclay mcp work on a fresh install.
Studio
- A 3.1.5 global install shows the Update chip in the top bar for the
first time, since this is the first release after the chip shipped.
Update now, or the command it offers to copy, installs 3.1.6; then
restartcclay.
MCP
- The npm package now ships
mcp/project-camera.mjs, so the Studio's live
tools andcozyclay mcpstart on an npm install instead of failing with
"Cannot find module" (broken since 3.1.2). The package check now fails a
release whosebin/ormcp/code imports a file the package leaves out.
CozyClay v3.1.5
The Studio tells you when a new release is out and installs it in one click, Claude models work in the agent panel again, IK edits stay on their own character, turns and walks look more natural, and anonymous analytics show where the Studio gets in the way.
Agent
- Agent turns on Claude models no longer fail with a 400 error about a
deferred placeholder tool. - When a turn is already running, the failure chip reads
busyinstead of
upstream. The message text is unchanged.
Motion
- The head turns first and leads the body into a turn, by about 5 frames at
24 fps, the way a person's does.flow.headLeadsets the frames (0 to
12), andfalseturns it off. A keyed head look still wins. - Takes that walk report
observations.gait: cadence, step length, speed,
stance and pelvis motion, with warnings outside a person's range. It is a
reading only and never changes the QA result. - Grasp QA reads each finger:
FINGER_ROM(a joint past its range),
FINGER_SELF(two fingers inside each other) andTHUMB_OFF(a held
object without the thumb on it). - A carried ball keeps the thumb on it. A finger that misses a held object
turns toward it at the knuckle, and the ring and little fingers curl
together. Stacked hand presets no longer over-curl.
Studio
- An npm studio shows a small Update chip in the top bar when a newer
release is out, once per version. A global install whose folder npm can
write gets Update now, which installs the release and then asks you
to restartcclay. Other installs get the command to copy, and npx gets
"runnpx cozyclayagain". Update now waits while an agent turn,
an export or a recording runs. A failed install names the cause
(permissions, network, Node version, npm missing) and keeps the command. - An IK edit stays with its own character. Selecting another character
mid-drag no longer poses it, and undo no longer reverts or deletes the
other character. Switching characters applies a pending IK edit and shows
a notice. - Ctrl+Z after an IK drag puts the pose back, with or without a take
loaded. - On a browser without WebGL, the unavailable notice appears one frame
after the Studio first draws instead of during it.
CLI
cclay update --checkprints the current and latest version without
installing, and exits 0 (up to date), 10 (update available) or 11
(unknown).cclay updatenow refuses a release your Node.js cannot run.- A source checkout reports itself as
clone, and a Windows global install
is no longer mistaken for npx.
Site
- A redesigned cozyclay.org: a black first screen with a greybox-to-video
reel, how-it-works clips from the tutorial, and Try it opens the Studio.
Analytics
- The anonymous usage analytics now cover where the Studio gets in the way:
- the agent loop: refused commands, a summary per agent turn, each motion
draft and its QA result, and each prompt sent, so retry loops and
hesitation show - model connect: the sign-in steps and where they stop, and model changes
- exports: retries, the stage a failed or stopped export reached, and
saved files. Storyboard PNG, render pass and OTIO exports are now
counted. - clicks, shortcuts and search: repeated or dead clicks on the main
controls, shortcuts that did nothing, searches with no result, and
switching panels or orbiting the camera back and forth - playback, boot and crashes: time to the first frame, playback runs and
late frames, the first-success guide, render crashes and lost WebGL - the update notice: when it shows, which button was pressed, and whether
the install worked - one friction summary per session
- the agent loop: refused commands, a summary per agent turn, each motion
- Every value is a closed bucket or a fixed id. No text, names, paths,
object ids, click coordinates or npm output are sent. Prompt text never
leaves the browser; only a length bucket and a similarity grade to the
last prompt do. - First-edit events count only your own edits, not the agent's, and report
definition_version2. - Events that nothing sent any more are removed: the old motion-generation
events andsample:played. - The privacy page lists every event and property.
cclay telemetry off
still turns it all off.
CozyClay v3.1.4
Starring CozyClay from the terminal takes one key when the GitHub CLI is signed in.
CLI
- The one-time star question on exit stars NomaDamas/CozyClay through
gh
whenghis installed and signed in: answeryand it is done, with no
browser. An account that already starred the repo is not asked. Without
ghthe question opens the repo page as before, and--no-star,
COZYCLAY_NO_STARand CI still turn it off.
CozyClay v3.1.3
More ways to connect a model (Claude Pro/Max, OpenAI-compatible servers, MiniMax M3.1 Flash), a Simplified Chinese UI, and easier project opening.
Agent
- Sign in with a Claude Pro/Max subscription and run Claude models in the
agent panel without an API key. Turns go through the official Claude Code
binary. - Connect an OpenAI-compatible server (LM Studio, Ollama) with its address
and an optional key. The model list comes from the server. - MiniMax M3 and M3.1 Flash, on both the global and the China endpoint.
- The agent runs on pi 1.4.0, which adds the newer Claude, GPT and Gemini
models to the picker. A turn stopped mid-tool keeps its prompt after a
reload.
Studio
- Simplified Chinese (简体中文) as an opt-in UI language in Settings.
- An Open project card on the start screen. A browser that refuses to read
the picked file falls back to a file input, a slow pick no longer times
out, and a failed open shows its message above the start screen. - IK handles answer a press on their drawn sphere, and rotation rings win
over an arrow's invisible hit volume.
CozyClay v3.1.2
The Studio agent repairs motion faster and ends with a take, exports can go to a folder you choose, and a round of fixes for the live hub, MCP, prompts and docs.
Agent
- Motion repair loop: task scheduling with verify/accept/reject steps,
character key scopes, a life critic, patch selectors and a repair watch
that keeps the best compile and never ends a turn without a take. - walkTo fits a walk a natural gait can reach instead of refusing it, and
stops short of a body at its target. - The repair cap and stuck streak count agent calls, not compiles inside one
script; hint patches are pre-checked only on repair compiles.
Export
- Optional export folder (Settings > Export): downloads go straight to a
chosen folder and fall back to the browser download if it is unavailable. - The keyframe-pack README lists only the files in the pack; the depth video
is a separate export. - The prompt's LENS word follows the editor's lens calibration (24 mm is a
wide shot, not a long shot).
Live and MCP
- The packaged Studio dials the live hub port the launcher chose
(COZYCLAY_LIVE_PORT). shot.framereceipts report a retained camera key as present, not removed.- Motion verification measures objects where the take animates them.
cclay live statusand--workspace <project>follow the project that is
open, not the label at connect time.- Without an editor, MCP
save_project/open_projectkeep the camera. npm run verify:liveworks frommcp/.
Docs
- Node 22.19+ on the homepage, 27 MCP tools, and the CLI guide's framing
walkthrough and motion limits match the current behaviour.
CozyClay v3.1.1
Sculpt gets new shapes, cutters, detail and materials, and the Studio agent shows its plan and a live sketch.
Sculpt
- New sculpt shapes: loft, convex hull, lathe, tube and extrude, plus an
instanced scatter (blade, tuft, flower, leaf, pebble, twig) that fills a
part with up to 12000 items. Bad points are refused with their path. - Boolean cutters: a part with
op: subtract | intersectcuts its parent for
windows, doors, arches, hollow bowls and cups, notches, half-domes and
slices. - Surface
detail(seeded displacement) and colourgradienton any shape. - Material presets for sculpt parts and primitives: clay, wood, straw, stone,
brick, concrete, metal, glass, ceramic, plastic, rubber, fabric, paper and
foliage, each with a matte, satin or gloss finish.
Agent
- A step checklist for long Studio turns, pinned under the prompt while the
turn runs and restored with the session. - A live ghost sketch of the sculpt in the viewport while the agent is still
writing the script. It is never picked, saved or exported. - The Studio prompt, MCP and Sculpt mode know the new shapes, materials and
fields.
CozyClay v3.1.0
Hands that hold, throw and catch with weight, Studio tasks in the chat, faster playback, and a leaner first run.
Motion
- Hands hold what they carry. Fingers close until they touch the held
surface, a ball rests in the palm and fingers, and spheres and cylinders
are round to the compiler. QA flags a finger through the object
(FINGER_PEN), a finger short of it (FINGER_GAP) and a hand that does
not hold it (SUPPORT). - A held thing has weight:
objects.<id>.masssags the arm, and a load past
one hand asks for two (LOAD,observations.load). - New skills
throwObjectandcatchObject. A thrown thing leaves with the
hand's speed and lands on the first surface its path comes down onto; a
hand meets a flying ball where it can reach and gives with it. - Grasp issues say why and carry the fix that repair applies.
Studio and agent
- Tasks: a Tasks switch in the agent composer. With it on, the main
agent answers at once while Studio tasks edit the scene in their own
scopes, on a pool of two compile workers. Running tasks show as one line
in the chat. Off by default. - A video can be attached to the agent; it travels as a contact sheet.
- A fresh install opens the project chooser with one "+ New project" card.
- The Shot Camera card draws the live shot in every mode, and a focal-length
scrub replaces the read-only lens label. - The project menu, scene dropdown and Outliner menu no longer open behind
the panels and close each other. -
- Add shot on a full take grows the take; dock tabs are clickable; Pose
enters from the editor view and releases IK focus on exit.
- Add shot on a full take grows the take; dock tabs are clickable; Pose
Performance
- Timeline playback no longer re-renders the whole app every frame.
- The motion body fits (~0.5 MB) load after first paint instead of in the
first bundle.
Fixes
npm testandnpm run lintrun on a Windows checkout, and the MCP server
removes its live endpoint file when it exits on Windows.npm run devexits within about 1.5 s on Ctrl+C instead of hanging.- mcp:
proxy-addr2.0.8 (CVE-2026-90711).
Removed
- The built-in set pieces: Chair, Car and Plane (aircraft), with their Set
pieces group, Content › Sets folder and renderers. An old project that has
one opens it as a plain cube with the same transform and size. - The City Block starter scene and its thumbnails. The chooser's "+ New
project" card is now the one blank entry; the Blank Stage card, the Samples
page and the category tabs are gone.--scene <id>and?scene=stay; an
unknown id is ignored with a console warning. - The camera tutorial: the Studio overlay, Help › Tutorial, the Settings and
Learn entries,?tutorial=camera, the first-shot handoff, thetutorial:*
analytics events, and the seven-step tutorial and project download on the
home-page playground (which now opens a blank stage).
Docs
- The README is short again: install, what it does, the three AI surfaces, docs.
INSTALL_FOR_AGENTS.mdis the install, run and connect guide for an AI agent given the
repository link. It ships in the npm package.- The README links the CozyClay Discord server and GitHub Sponsors.