cozyclay 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +112 -0
- package/README.md +17 -2
- package/THIRD_PARTY_NOTICES.md +8 -0
- package/bin/agent/agent-routes.mjs +219 -38
- package/bin/agent/agent-runner.mjs +98 -4
- package/bin/agent/codex-client.mjs +2 -1
- package/bin/agent/fal-contract.mjs +0 -17
- package/bin/agent/h3-preservation.mjs +6 -8
- package/bin/agent/provider-keys.mjs +1 -1
- package/bin/agent/providers.mjs +124 -3
- package/bin/agent/script-tool.mjs +74 -0
- package/bin/agent/session-store.mjs +5 -5
- package/bin/agent/studio-prompt.mjs +2 -1
- package/bin/agent/studio-rebase.mjs +314 -0
- package/bin/agent/studio-tools.mjs +21 -14
- package/bin/agent/supervisor.mjs +311 -0
- package/bin/agent/video-adapters.mjs +0 -7
- package/bin/codex-auth.mjs +6 -5
- package/bin/cozyclay.mjs +12 -3
- package/bin/live/cli.mjs +2 -3
- package/bin/live/client.mjs +1 -1
- package/bin/live/studio.mjs +5 -2
- package/bin/mcp-runtime.mjs +12 -2
- package/bin/telemetry-state.mjs +3 -3
- package/dist/app/index.html +6 -6
- package/dist/assets/analytics-B41FmPYI.js +1 -0
- package/dist/assets/app-Do-Og5Pu.css +1 -0
- package/dist/assets/app-DwP-tl2x.js +4920 -0
- package/dist/assets/{demo-ByeYp-dY.js → demo-Dt0qZfS7.js} +1 -1
- package/dist/assets/{first-shot-handoff-DgT28ZiV.js → first-shot-handoff-BlT33CGf.js} +1 -1
- package/dist/assets/{landing-BaXkpFip.js → landing-BSesrCpL.js} +1 -1
- package/dist/assets/scene-asset-sync-BCWDJB1d.js +19 -0
- package/dist/assets/{shot-prompt-CbqWcWYi.css → scene-asset-sync-DjJ_cJ2R.css} +1 -1
- package/dist/assets/{ticket-BcmsnHn5.js → ticket-jqMhqL88.js} +1 -1
- package/dist/assets/workflow-Br-K7Srs.js +179 -0
- package/dist/cozyclay-package.json +1 -1
- package/dist/index.html +328 -222
- package/dist/sitemap.xml +5 -5
- package/dist/workflow/index.html +4 -4
- package/mcp/LIVE-PROTOCOL.md +23 -2
- package/mcp/README.md +37 -2
- package/mcp/ardy-prompts.mjs +1 -1
- package/mcp/image-file.mjs +132 -0
- package/mcp/live-hub.mjs +2 -2
- package/mcp/package.json +1 -0
- package/mcp/runtime/package-lock.json +7 -0
- package/mcp/runtime/package.json +1 -0
- package/mcp/server.mjs +0 -6
- package/mcp/tool-handlers.mjs +289 -87
- package/package.json +11 -2
- package/src/App.jsx +801 -259
- package/src/agent-image-client.js +94 -0
- package/src/analytics.js +47 -3
- package/src/app-stage.jsx +129 -2745
- package/src/ardy/auto-physics.js +6 -16
- package/src/ardy/collision-blockers.js +3 -7
- package/src/ardy/fix-collisions.js +5 -35
- package/src/ardy/ik-drag.js +86 -5
- package/src/ardy/ik-key-json.js +3 -1
- package/src/ardy/ik.js +15 -13
- package/src/ardy/motion-calibration.js +1 -1
- package/src/ardy/npz.js +0 -8
- package/src/ardy/physics-panel.jsx +3 -2
- package/src/ardy/physics-review.js +3 -2
- package/src/ardy/physics-support.js +1 -1
- package/src/ardy/physics-surface.js +1 -1
- package/src/ardy/platform-fit-panel.jsx +2 -1
- package/src/ardy/playback.js +1 -5
- package/src/ardy/range-pin.js +2 -2
- package/src/ardy/root-drop.js +0 -1
- package/src/ardy/timeline.css +196 -3
- package/src/ardy/timeline.jsx +117 -29
- package/src/ardy/to-cskel27.js +0 -2
- package/src/ardy/waypoints.js +1 -4
- package/src/ardy-bridge-contract.js +281 -0
- package/src/asset-pane.jsx +19 -9
- package/src/auto-color.js +1 -1
- package/src/burn-in.js +1 -1
- package/src/camera-block.js +1 -1
- package/src/camera-follow.js +75 -32
- package/src/camera-move.js +0 -6
- package/src/camera-tutorial.jsx +43 -24
- package/src/character-kind.js +79 -0
- package/src/command-bus.js +76 -17
- package/src/commands/cast.js +31 -7
- package/src/commands/elements/object.js +1 -1
- package/src/commands/elements/shot.js +1 -1
- package/src/commands/elements.js +1 -1
- package/src/commands/export.js +3 -3
- package/src/commands/motion.js +2 -2
- package/src/commands/objects.js +105 -10
- package/src/commands/project.js +16 -3
- package/src/commands/sculpt-images.js +53 -0
- package/src/commands/shot.js +88 -10
- package/src/commands/view.js +10 -4
- package/src/coplanar-depth.js +216 -0
- package/src/cuts.js +7 -6
- package/src/domains/cast.js +60 -43
- package/src/domains/motion/motion-intent-codec.js +50 -0
- package/src/domains/motion/motion-range-pin-rules.js +23 -0
- package/src/domains/motion/motion-video-capture.js +664 -0
- package/src/domains/motion.js +253 -742
- package/src/domains/objects.js +106 -5
- package/src/domains/scenes.js +89 -32
- package/src/domains/shots.js +33 -7
- package/src/error-boundary.jsx +1 -1
- package/src/execution-telemetry.js +5 -5
- package/src/facing-marks.js +14 -1
- package/src/first-success-guide.jsx +35 -4
- package/src/gizmo-claim.js +3 -1
- package/src/grid-floor.jsx +1 -4
- package/src/hierarchy-model.js +48 -35
- package/src/hierarchy-panel.css +1 -0
- package/src/hierarchy-panel.jsx +54 -102
- package/src/history.js +0 -2
- package/src/i2v-motion-client.js +1 -4
- package/src/ime.js +6 -0
- package/src/keyframe-pack.js +15 -6
- package/src/line-edit.js +4 -4
- package/src/live-control.js +6 -6
- package/src/matte-editor.js +2 -8
- package/src/matte.js +0 -19
- package/src/mesh-graph-clone.js +16 -2
- package/src/mesh-sniff.js +0 -1
- package/src/monotone-cubic.js +40 -0
- package/src/motion/generation.js +1 -1
- package/src/motion-store.js +4 -4
- package/src/motion-trail.js +5 -11
- package/src/multimodel-ingest.js +1 -3
- package/src/object-catalog.jsx +7 -5
- package/src/object-gizmo.jsx +45 -31
- package/src/object-path.js +310 -67
- package/src/object-travel.js +224 -0
- package/src/otio.js +8 -3
- package/src/panels/CharacterTransformPanel.jsx +24 -6
- package/src/panels/ObjectTransformPanel.jsx +4 -3
- package/src/panels/PoseImagePanel.jsx +205 -0
- package/src/panels/PromptBlocksPanel.jsx +3 -1
- package/src/panels/ProxyFigurePanel.jsx +56 -0
- package/src/panels/ReferenceImageField.jsx +1 -1
- package/src/panels/RigControlPanel.jsx +24 -3
- package/src/panels/RigPanel.jsx +2 -1
- package/src/panels/SculptPanel.jsx +405 -0
- package/src/panels/SubjectBox.jsx +1 -1
- package/src/panels/SubjectsPanel.jsx +0 -2
- package/src/panels/VideoCapturePanel.jsx +2 -1
- package/src/panels/pose-image.css +42 -0
- package/src/panels/pose.css +3 -0
- package/src/panels/sculpt.css +162 -0
- package/src/plan-diagram.js +184 -0
- package/src/planview.jsx +127 -80
- package/src/playground.js +3 -5
- package/src/pose-fade.js +77 -0
- package/src/pose-gizmo.css +23 -0
- package/src/pose-gizmo.js +96 -0
- package/src/posestudio.jsx +134 -83
- package/src/project-browser.css +53 -0
- package/src/project-browser.jsx +52 -3
- package/src/project.js +55 -24
- package/src/props.jsx +177 -36
- package/src/proxy-figure.jsx +69 -0
- package/src/range-pin-panel.jsx +0 -1
- package/src/receipt-findings.js +20 -0
- package/src/render-passes.js +0 -1
- package/src/resource-status.jsx +1 -1
- package/src/root-path.js +48 -0
- package/src/route-owner.js +52 -0
- package/src/scene-asset-cache.js +1 -2
- package/src/scene-assets.js +12 -4
- package/src/scene-fbx.js +1 -1
- package/src/scene-mesh-cache.js +0 -1
- package/src/scene-objects.js +319 -19
- package/src/scenes.js +62 -17
- package/src/sculpt-blueprint.js +65 -0
- package/src/sculpt-compare.js +384 -0
- package/src/sculpt-geometry.js +141 -0
- package/src/sculpt-mode.js +168 -0
- package/src/sculpt-recipe.js +385 -0
- package/src/sculpt-run.js +351 -0
- package/src/sculpt-stage.jsx +221 -0
- package/src/settings-menu.jsx +1 -1
- package/src/shell/BoardSlot.jsx +341 -0
- package/src/shell/BottomDock.jsx +58 -14
- package/src/shell/DetailsSlot.jsx +26 -6
- package/src/shell/MenuBar.jsx +78 -6
- package/src/shell/OutlinerSlot.jsx +3 -1
- package/src/shell/TopBar.jsx +17 -3
- package/src/shell/ViewportToolbar.jsx +18 -3
- package/src/shell/dock.css +239 -0
- package/src/shell/glass-regions.css +3 -2
- package/src/shell/log-store.js +4 -4
- package/src/shell/mode.css +20 -0
- package/src/shell/studio-shell-context.js +4 -1
- package/src/shot-authoring.js +69 -6
- package/src/stable-items.js +1 -1
- package/src/stage-attach-frames.js +169 -0
- package/src/stage-canvas-rigs.jsx +402 -0
- package/src/stage-capture.jsx +216 -0
- package/src/stage-characters.jsx +302 -0
- package/src/stage-editor-gizmos.jsx +1229 -0
- package/src/stage-labels-ko.js +204 -0
- package/src/stage-startup-defaults.js +182 -0
- package/src/starter-scenes.js +1 -1
- package/src/storyboard.js +24 -5
- package/src/studio-actions.js +42 -9
- package/src/studio-agent-commands.js +186 -23
- package/src/studio-agent-context.js +11 -9
- package/src/studio-agent-motion.js +2 -1
- package/src/studio-agent-protocol.js +56 -23
- package/src/studio-app-binding.js +52 -23
- package/src/studio-contact-sheet.js +3 -3
- package/src/studio-elements.js +11 -2
- package/src/studio-geometry-facts.js +114 -0
- package/src/styles.css +111 -10
- package/src/theme.js +1 -1
- package/src/timeline-fps.js +13 -0
- package/src/ui-scrub.js +4 -4
- package/src/ui.jsx +6 -4
- package/src/use-asset-shelf.js +60 -0
- package/src/use-camera-tutorial.js +50 -0
- package/src/use-embed-bridge.js +12 -0
- package/src/use-first-success-prompt.js +7 -0
- package/src/use-i2v-capture-modal.js +15 -0
- package/src/use-sculpt-mode.js +95 -0
- package/src/workflow/AgentPanel.jsx +110 -20
- package/src/workflow/WorkflowBuilder.jsx +1 -1
- package/src/workflow/agent-client.js +113 -45
- package/src/workflow/agent-panel.css +35 -0
- package/src/workflow/attachment-image.js +1 -1
- package/src/workflow/canvas-commands.js +3 -3
- package/src/workflow/cozy-scene-node.js +3 -3
- package/src/workflow/local-workflow.js +2 -2
- package/src/workflow/motion-input.js +3 -3
- package/src/workflow/node-schema.js +1 -1
- package/src/workflow/scene-asset-sync.js +2 -9
- package/src/workflow/shot-prompt-node.js +1 -1
- package/src/workflow/video-contract.js +1 -1
- package/src/workflow/workflow-resources.js +0 -8
- package/src/workflow-send.js +87 -0
- package/tools/ardy/__pycache__/cclay_gvhmr_worker.cpython-313.pyc +0 -0
- package/tools/check-eslint.mjs +57 -0
- package/tools/check-knip.mjs +60 -0
- package/tools/check-loc.mjs +54 -0
- package/tools/demo-worker/api-client.mjs +7 -13
- package/tools/demo-worker/generate.mjs +2 -4
- package/tools/eslint-baseline.json +23 -0
- package/tools/kimodo/effector-constraints.mjs +4 -4
- package/tools/kimodo/generate.mjs +1 -1
- package/tools/knip-baseline.json +331 -0
- package/tools/loc-baseline.json +126 -0
- package/tools/process-supervisor.mjs +1 -1
- package/tools/projflow/replay.mjs +4 -4
- package/tools/projflow/runner.mjs +3 -3
- package/tools/qa/studio-control-count.mjs +2 -0
- package/tools/run-tests.mjs +96 -7
- package/dist/assets/analytics-MVZOEW8O.js +0 -1
- package/dist/assets/app-C1sdVbg4.css +0 -1
- package/dist/assets/app-CA55tcI3.js +0 -4876
- package/dist/assets/shot-prompt-Yrt99wZx.js +0 -17
- package/dist/assets/workflow-dNPGY9xz.js +0 -179
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,117 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 2.1.0 - 2026-10-12
|
|
6
|
+
|
|
7
|
+
Storyboard and Animation modes. A project is now either a storyboard (a row of
|
|
8
|
+
still panels) or an animation (moving shots); both are on in a normal launch.
|
|
9
|
+
|
|
10
|
+
Modes
|
|
11
|
+
|
|
12
|
+
- The start screen has a Storyboard / Animation control, the project keeps its
|
|
13
|
+
mode through save and reopen, and the top bar shows it as a badge. A
|
|
14
|
+
storyboard project hides the Generate group and Motion mode (`4`); motion
|
|
15
|
+
commands are refused with a reason instead of failing quietly. (#649, #650)
|
|
16
|
+
- The bottom dock has a **Board** tab in storyboard projects: one card per
|
|
17
|
+
panel with a greybox thumbnail, caption, hold, duplicate, delete and
|
|
18
|
+
drag-to-reorder. Each panel can keep its own cast placement. (#640, #641)
|
|
19
|
+
- **Stylize** turns a panel into a finished picture through the image route
|
|
20
|
+
and keeps it in the project beside the greybox; **Send to Workflow** puts
|
|
21
|
+
the stylized image or the greybox on a Workflow canvas with a connected
|
|
22
|
+
Video node. (#643, #645)
|
|
23
|
+
|
|
24
|
+
Capsule figures
|
|
25
|
+
|
|
26
|
+
- A rigless **Capsule figure** joins the Assets tile list for blocking: stand,
|
|
27
|
+
sit or lie, set in Details. It follows root paths in the viewport and in
|
|
28
|
+
exports. Rig-only tools (Pose, IK, motion, take import, physics) refuse it
|
|
29
|
+
and say why. (#634, #635)
|
|
30
|
+
|
|
31
|
+
Storyboard exports
|
|
32
|
+
|
|
33
|
+
- The Export menu of a storyboard lists **Contact sheet (PNG)**, **Panel pack
|
|
34
|
+
(zip)**, **All panels (zip)**, **Animatic (mp4)**, **Cut list (OTIO)** and
|
|
35
|
+
**Depth + normal (PNG)**. File ▸ **Export as Animation project…** turns the
|
|
36
|
+
panels into an Animation project. Keyframe pack and shot video stay
|
|
37
|
+
Animation-only.
|
|
38
|
+
|
|
39
|
+
Agent and MCP
|
|
40
|
+
|
|
41
|
+
- In a storyboard project the Studio Agent adds one panel per request, frames
|
|
42
|
+
it and never generates motion; the Studio context and `describe_scene` now
|
|
43
|
+
report the project mode and each character's kind. (#637, #642)
|
|
44
|
+
- MCP motion tools answer `NOT_IN_MODE` in a storyboard and
|
|
45
|
+
`TARGET_NOT_READY` on a capsule figure; `add_character` takes a model and
|
|
46
|
+
posture. (#652)
|
|
47
|
+
|
|
48
|
+
Analytics and docs
|
|
49
|
+
|
|
50
|
+
- Three counts-only events: `storyboard:panel_created` (`source`),
|
|
51
|
+
`storyboard:panel_stylized` (`outcome`) and `cast:proxy_added`
|
|
52
|
+
(`surface`); `scene:created` carries `previs_mode`, and the export
|
|
53
|
+
`export_kind` vocabulary gains `contact_sheet`, `panel_pack`, `animatic`
|
|
54
|
+
and `animation_project`. Captions, names and prompts are never properties.
|
|
55
|
+
Disclosed in `docs/privacy.md` and `docs/analytics-queries.md`. (#653)
|
|
56
|
+
- README has a **Modes** section; the Agent rules, the Studio IA and the
|
|
57
|
+
capsule-figure notes are updated. (#653)
|
|
58
|
+
|
|
59
|
+
## 2.0.2
|
|
60
|
+
|
|
61
|
+
The first-run audit release: `npx cozyclay` is exercised end to end as a new
|
|
62
|
+
user, and the things that broke on that path are fixed. 2.0.1 (the camera
|
|
63
|
+
tutorial refresh and light-mode default, #586) was tagged but never reached
|
|
64
|
+
npm; this release carries it.
|
|
65
|
+
|
|
66
|
+
Agent and package
|
|
67
|
+
|
|
68
|
+
- The Studio Agent panel in the npm package answered every turn with
|
|
69
|
+
"502 — agent unavailable": the sidecar's Studio tools imported `three`
|
|
70
|
+
(a devDependency the package does not ship) through `src/scenes.js`. The
|
|
71
|
+
timeline clock moved to its own module and a test now walks every import
|
|
72
|
+
reachable from `bin/` and fails on any chain to `three`. (#591)
|
|
73
|
+
- A CLIProxy key in the environment no longer leaves the panel on the ChatGPT
|
|
74
|
+
sign-in wall; readiness counts every key-authenticated provider. (#591)
|
|
75
|
+
- `CCLAY_KIMODO_HOST=… npx cozyclay` died at start with
|
|
76
|
+
`Cannot find package 'three'`: the motion bridge now runs from the staged
|
|
77
|
+
MCP runtime (which carries `three`, `tools/` and `dist/models`), and the
|
|
78
|
+
package isolation test keeps it that way. (#591)
|
|
79
|
+
- A live-hub port already taken by another CozyClay is reported on the
|
|
80
|
+
launcher's terminal and named in the pane's error instead of
|
|
81
|
+
"Studio execution is not installed"; agent handler failures are logged
|
|
82
|
+
before the 502; a session id with no record no longer shows
|
|
83
|
+
"Previous conversation could not be restored". (#591)
|
|
84
|
+
|
|
85
|
+
Studio
|
|
86
|
+
|
|
87
|
+
- Create on the start screen opens the selected sample scene under the typed
|
|
88
|
+
name instead of an empty stage named after it; starting over with unsaved
|
|
89
|
+
work asks first. (#591)
|
|
90
|
+
- Reloading a project created from the start screen brought the previous
|
|
91
|
+
session's walking take back onto the character, with "Unsaved changes":
|
|
92
|
+
the hosted-demo seed re-fired on every mount while the bridge probe was
|
|
93
|
+
down. It now skips a saved project (a `?scene=` launch still seeds), and a
|
|
94
|
+
reload opens on the clean checkpoint. (#591)
|
|
95
|
+
- With a take installed, the gizmo and the Transform panel's Position and
|
|
96
|
+
Rotation move the character again; the take keeps animating relative to
|
|
97
|
+
the new placement. (#591)
|
|
98
|
+
- The shot card's hover actions sit above the card, so clicking a short
|
|
99
|
+
shot's name selects it instead of hitting Delete. Draw rail is disabled
|
|
100
|
+
with a reason when no shot is selected. (#591)
|
|
101
|
+
|
|
102
|
+
Tests
|
|
103
|
+
|
|
104
|
+
- The start-screen and project-menu browser suites run against the v2
|
|
105
|
+
shell again, gain the sample-card Create regression, and join the CI
|
|
106
|
+
browser matrix as observation suites; new regressions cover the package
|
|
107
|
+
import graph, CLIProxy readiness, the stage transform and the reload
|
|
108
|
+
session. (#591)
|
|
109
|
+
|
|
110
|
+
## 2.0.1
|
|
111
|
+
|
|
112
|
+
- The camera tutorial follows the v2 shell and new installs default to the
|
|
113
|
+
light theme. (#586)
|
|
114
|
+
|
|
3
115
|
## 2.0.0
|
|
4
116
|
|
|
5
117
|
CozyClay 2.0 is the v2 editor: a floating-glass shell with light and dark
|
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ https://github.com/user-attachments/assets/1d0113e5-6922-443d-affc-1bdabc666247
|
|
|
52
52
|
|
|
53
53
|
| | |
|
|
54
54
|
| --- | --- |
|
|
55
|
-
| **Stage a scene** | Create primitives and set pieces, then move, rotate and scale them with the transform strip's gizmo. Grid snapping is a preference, not a law — hold `Ctrl` mid-drag to invert it. A bird's-eye Top-View drives 2D root waypoints for character paths. **View ▾** on the viewport bar holds the reference grid and Auto Color — Blender's random viewport color, so twenty grey blockout boxes stay tellable apart without touching the colors you authored (captures include the display colors while it is on). |
|
|
55
|
+
| **Stage a scene** | Create primitives and set pieces, then move, rotate and scale them with the transform strip's gizmo. Cast people from **Assets › Characters**: a rigged character you can pose and animate, or a **Capsule figure** — a rigless stand-in with one posture (stand, sit or lie) chosen in Details, for blocking where nobody needs to move their limbs. Capsule figures follow root paths and per-panel placements like any character but refuse pose, IK and motion tools, with the reason in the tooltip. Grid snapping is a preference, not a law — hold `Ctrl` mid-drag to invert it. A bird's-eye Top-View drives 2D root waypoints for character paths. **View ▾** on the viewport bar holds the reference grid and Auto Color — Blender's random viewport color, so twenty grey blockout boxes stay tellable apart without touching the colors you authored (captures include the display colors while it is on). |
|
|
56
56
|
| **Fly the camera** | Right-drag flies (WASD walks, Q/E cranes), middle-drag pans, Alt+drag orbits the selection, click selects, `F` frames — the muscle memory you already have from a 3D editor. Fly, pan and orbit lock the pointer for the hold, so the view can turn past the window edge. Selecting the camera switches to Camera mode. **Look through** in the Shot monitor puts you behind the shot camera with the same bindings; click the on-screen **Shot camera** indicator or press `Esc` to return to the free camera. |
|
|
57
57
|
| **Cut and move the camera** | Add shots on the timeline, draw a dolly rail on the Top-View, set speed, height and crane, and preview the move through the shot camera. Each shot carries a **Target model** (Seedance 2.5, Kling 2, Veo 3, self-hosted MiniMax-H3) and is flagged when the cut runs past that model's limits. |
|
|
58
58
|
| **Export for AI video** | One **Export ▾** menu: a keyframe pack (first/last frame, clip, camera JSON, prompt, README) as a zip, an mp4 of the shot, depth + normal conditioning passes, a storyboard contact sheet, and an OTIO cut list. Seedance 2.5 reads the pack's greybox clip as its white-model reference video, and MiniMax H3, Wan 3.0, LTX Desktop and fal render-to-real accept the same clip. The **Shot Prompt** turns the framing into a structured prompt for the model you picked. |
|
|
@@ -61,6 +61,21 @@ https://github.com/user-attachments/assets/1d0113e5-6922-443d-affc-1bdabc666247
|
|
|
61
61
|
| **Capture motion from video or a photo** | Drop a clip or a still: the GPU box runs [GVHMR](https://github.com/zju3dv/GVHMR) and the result is retargeted onto the character with stabilisation, contact correction and a quality gate. |
|
|
62
62
|
| **Direct it with an AI** | Open the **Agent panel** (`Cmd/Ctrl+B`), sign in with your ChatGPT account, and ask for a shot in plain language; the conversation survives reloads and you can paste a reference screenshot into it. Or connect Claude — or any MCP client — or drive the Studio from a terminal with `cclay live`. All three place the cast, frame "a low wide profile", generate multi-phase motion, and the viewport moves in front of you. See [AI control](#ai-control). |
|
|
63
63
|
|
|
64
|
+
## Modes
|
|
65
|
+
|
|
66
|
+
A project is either a **Storyboard** or an **Animation**. Pick it on the start screen (the badge in the top bar shows which one you are in); a project keeps its mode when saved and reopened.
|
|
67
|
+
|
|
68
|
+
| | Storyboard | Animation |
|
|
69
|
+
| --- | --- | --- |
|
|
70
|
+
| **Choose it when** | You want a row of still panels: framing, who stands where, a caption and a hold per panel | You want moving shots: motion on a timeline, camera moves, takes |
|
|
71
|
+
| **Timeline** | The **Board** dock tab: one card per panel with a greybox thumbnail, caption, hold, duplicate, delete and drag-to-reorder | Shots on the timeline, with motion and Prompt Blocks |
|
|
72
|
+
| **Cast** | Rigged characters or capsule figures; each panel can keep its own placement ("Use stage placement" clears it) | Rigged characters with Pose and Motion mode; capsule figures for blocking |
|
|
73
|
+
| **Motion tools** | Hidden: no Generate group, no Motion mode (`4`); the agent has no `generate_motion` and the MCP motion tools answer `NOT_IN_MODE` | Available |
|
|
74
|
+
| **Agent** | **Agent · Storyboard** builds one panel per request and never generates motion | The full Studio tool set |
|
|
75
|
+
| **Exports** | **Stylize** a panel through the image route, **Send to Workflow** (the stylized image or the greybox) from its card, plus the Export ▾ menu: **Contact sheet (PNG)**, **Panel pack (zip)**, **All panels (zip)**, **Animatic (mp4)**, **Cut list (OTIO)** and **Depth + normal (PNG)**; File ▸ **Export as Animation project…** turns the panels into an Animation. There is no keyframe pack or shot video in a storyboard | Export ▾: keyframe pack, mp4, depth + normal passes, contact sheet, OTIO cut list |
|
|
76
|
+
|
|
77
|
+
Start in Storyboard when you are deciding what the shots are, then open the idea as an Animation when it needs motion.
|
|
78
|
+
|
|
64
79
|
## Quick start
|
|
65
80
|
|
|
66
81
|
You need Node.js 22.19 or newer, npm or bun, and a Chromium-based browser.
|
|
@@ -182,7 +197,7 @@ Every control's home is recorded in [`docs/studio-ui-ia.md`](docs/studio-ui-ia.m
|
|
|
182
197
|
| --- | --- |
|
|
183
198
|
| [`docs/kimodo-setup.md`](docs/kimodo-setup.md) | Installing Kimodo: the route table, CUDA over SSH, local MLX/Metal/CPU generation and what each route supports |
|
|
184
199
|
| [`docs/agent-cli.md`](docs/agent-cli.md) | Driving the Studio from a terminal with `cclay live` |
|
|
185
|
-
| [`docs/agent-prompt-to-scene.md`](docs/agent-prompt-to-scene.md) | The ask / infer / omit rule the Agent follows when turning a video prompt into blocking |
|
|
200
|
+
| [`docs/agent-prompt-to-scene.md`](docs/agent-prompt-to-scene.md) | The ask / infer / omit rule the Agent follows when turning a video prompt into blocking, and the one-panel-per-request rule in storyboards |
|
|
186
201
|
| [`mcp/README.md`](mcp/README.md) | MCP tools, transports, and the live-control protocol |
|
|
187
202
|
| [`docs/studio-ui-ia.md`](docs/studio-ui-ia.md) | Where every Studio control lives and why |
|
|
188
203
|
| [`docs/privacy.md`](docs/privacy.md) | The full analytics disclosure: events, identifiers, opt-out, internal QA marking |
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -165,6 +165,14 @@ Their transitive runtime dependencies, which the agent sidecar also loads, are:
|
|
|
165
165
|
- `ignore` — License: MIT — https://github.com/kaelzhang/node-ignore
|
|
166
166
|
- `yaml` — License: ISC — https://github.com/eemeli/yaml
|
|
167
167
|
|
|
168
|
+
## jpeg-js
|
|
169
|
+
|
|
170
|
+
The MCP runtime decodes JPEG reference images for `compare_sculpt` with `jpeg-js`, on the local machine.
|
|
171
|
+
|
|
172
|
+
- Copyright (c) 2014, Eugene Ware and Adobe
|
|
173
|
+
- License: BSD-3-Clause
|
|
174
|
+
- Source: https://github.com/jpeg-js/jpeg-js
|
|
175
|
+
|
|
168
176
|
## CozyClay license scope
|
|
169
177
|
|
|
170
178
|
The CozyClay combined work in this repository is distributed under AGPL-3.0-or-later, subject to the transition details in `LICENSING.md`. That license does not replace or relicense Three.js, ARDY, ARDY model checkpoints, the bundled fonts, the character rigs, or any other third-party component.
|