Skip to content

Releases

CozyClay v3.2.2

Choose a tag to compare

@HaD0Yun HaD0Yun released this 07 Nov 09:30
6635fd5

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.shotVideo takes passKind: "depth" and depthCurve: "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 DIR renders a run of frames in
    one session. (#1074)
  • live run, cmd and tool take --args-file <path> or --args -
    (stdin), so large payloads such as GLB data URLs fit. (#1092)
  • asset.import decodes meshopt and Draco compressed GLB. (#1092)
  • inspect pages entities with --limit and --cursor; live captures from
    a hidden Studio tab are refused. (#1070, #1071)
  • shot.set camera keys document framing.yaw and pitch as 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

Choose a tag to compare

@HaD0Yun HaD0Yun released this 28 Oct 00:24
0ed8ffb

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.json and 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 --off turns the update line and the Studio's Update chip
    off for good; cclay update --on turns 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.compare takes views: [{ 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_opened event. (#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_commands counts as a
    read. The privacy page lists the tool_name property. (#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 (a CI variable alone does not disable them), and the browser's
    Do-Not-Track setting is no longer read. Turn them off with cclay telemetry off, COZYCLAY_TELEMETRY=0 or DO_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-video renders the
    episode "First video in 5 minutes" from a script, in Korean or English,
    with .srt captions, 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

Choose a tag to compare

@HaD0Yun HaD0Yun released this 26 Oct 07:47
1f582b2

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. length is the string or rod length; stiffness
    defaults to gravity over length and damping to 0.5, so spring: { length: 0.5 }
    already swings naturally. Put the prop's base at the hand with at/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 when mcp/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

Choose a tag to compare

@HaD0Yun HaD0Yun released this 25 Oct 06:20
9b9744a

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
    restart cclay.

MCP

  • The npm package now ships mcp/project-camera.mjs, so the Studio's live
    tools and cozyclay mcp start on an npm install instead of failing with
    "Cannot find module" (broken since 3.1.2). The package check now fails a
    release whose bin/ or mcp/ code imports a file the package leaves out.

CozyClay v3.1.5

Choose a tag to compare

@HaD0Yun HaD0Yun released this 25 Oct 05:09
29cbaef

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 busy instead 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.headLead sets the frames (0 to
    12), and false turns 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) and THUMB_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 restart cclay. Other installs get the command to copy, and npx gets
    "run npx cozyclay again". 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 --check prints the current and latest version without
    installing, and exits 0 (up to date), 10 (update available) or 11
    (unknown). cclay update now 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
  • 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_version 2.
  • Events that nothing sent any more are removed: the old motion-generation
    events and sample:played.
  • The privacy page lists every event and property. cclay telemetry off
    still turns it all off.

CozyClay v3.1.4

Choose a tag to compare

@HaD0Yun HaD0Yun released this 24 Oct 11:50
895f714

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
    when gh is installed and signed in: answer y and it is done, with no
    browser. An account that already starred the repo is not asked. Without
    gh the question opens the repo page as before, and --no-star,
    COZYCLAY_NO_STAR and CI still turn it off.

CozyClay v3.1.3

Choose a tag to compare

@HaD0Yun HaD0Yun released this 24 Oct 11:19
2039bf7

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

Choose a tag to compare

@HaD0Yun HaD0Yun released this 23 Oct 06:06
771d03e

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.frame receipts report a retained camera key as present, not removed.
  • Motion verification measures objects where the take animates them.
  • cclay live status and --workspace <project> follow the project that is
    open, not the label at connect time.
  • Without an editor, MCP save_project / open_project keep the camera.
  • npm run verify:live works from mcp/.

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

Choose a tag to compare

@HaD0Yun HaD0Yun released this 22 Oct 20:10
35f547a

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 | intersect cuts its parent for
    windows, doors, arches, hollow bowls and cups, notches, half-domes and
    slices.
  • Surface detail (seeded displacement) and colour gradient on 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

Choose a tag to compare

@HaD0Yun HaD0Yun released this 22 Oct 15:43
93eb458

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>.mass sags the arm, and a load past
    one hand asks for two (LOAD, observations.load).
  • New skills throwObject and catchObject. 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.

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 test and npm run lint run on a Windows checkout, and the MCP server
    removes its live endpoint file when it exits on Windows.
  • npm run dev exits within about 1.5 s on Ctrl+C instead of hanging.
  • mcp: proxy-addr 2.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, the tutorial:*
    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.md is 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.