CozyClay: browser previs that hands your greybox shot to an AI video model
Open source previs software in the browser: block a scene, pose characters, author camera moves and cuts, then take the same shots to an AI video model.
At a glance
- What is it?
- CozyClay is an AGPL-3.0 previsualization studio that runs in a browser tab, built on Three.js and React Three Fiber. It is worth a look if you already storyboard shots by hand and want the same camera data to drive Seedance, Kling, Veo or a self-hosted model.
- Who is it for?
- Adopt CozyClay if you already think in shots and want one workspace where blocking, camera moves and AI video handoff share the same data, and if an AGPL-3.0 licence plus a separate Kimodo host for motion generation are acceptable. Skip it if you need a finished render, a hosted multi-user service, or if nobody on the team will run an SSH-accessible GPU box.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The gap CozyClay fills between a greybox and a prompt box
Most AI video work today starts with a sentence. You type a description, get a clip back, and then spend several attempts trying to describe a camera move you can already picture. CozyClay inverts that order. You block the scene with primitives and set pieces, pose the cast, draw a dolly rail on the Top-View, and set speed, height and crane for each shot on a timeline. Only then does the shot leave the browser.
The intended user is someone doing previsualization, the low-fidelity planning pass that precedes production. The README describes the studio as a browser-based previs studio built with Three.js and React Three Fiber, and the workflow it targets is explicit: block a scene, pose the cast, cut the camera on a timeline, then hand the same shot to an AI video model as a first frame, a reference clip, or a prompt. If you have ever built a shot list in a spreadsheet and a rough 3D blockout in a separate tool, this collapses those two steps.
The pitch rests on one specific claim about model behavior. The README quotes Seedance 2.5 documentation saying to use the white-model reference video as the sole guide for camera movement, pacing, framing, subject motion, and blocking. CozyClay's keyframe pack exports a greybox clip that is meant to be exactly that input. The same plain RGB clip is documented as acceptable to MiniMax H3, Wan 3.0, LTX Desktop and fal render-to-real.
What actually runs: Three.js, a history store, and a local bridge
The rendering layer is Three.js with React Three Fiber, which is why the whole studio fits in a tab and why the camera bindings feel like a desktop 3D editor. Right-drag flies, WASD walks, Q and E crane, middle-drag pans, Alt+drag orbits the selection, F frames the selection. Selecting the camera switches to Camera mode, and Look through in the Shot monitor puts you behind the shot camera with the same bindings.
Two subsystems carry more weight than the feature table suggests. The first is the history store: the README states that every scene mutation goes through one history store, so a drag, a scrub or an inspector edit is exactly one undo entry, and Esc cancels an in-flight drag and restores the pre-drag transform. That is a design commitment, not a checkbox. Tools that push a history entry per mouse-move event produce undo stacks nobody can use.
The second is the split between the browser and the GPU work. Motion generation is not in the tab. It goes to Kimodo, a separate service, and the README says to run npm run kimodo:setup once; the installer detects the host, picks the best-supported backend from a route table, then downloads the matching checkpoint and text-encoder stack. An SSH-accessible NVIDIA box is described as the classic target. The same box runs GVHMR for video and photo mocap, with CCLAY_EXTRACT_BACKEND=gvhmr as the default and no browser fallback. Motion capture from a clip or a still therefore has a hard hardware dependency, and the README is direct about it.
Install and a first real shot
The install is a single command. The README states that this downloads the built studio and opens it at http://127.0.0.1:5180/app/, with nothing to compile and no dependency tree to install.
npx cozyclayBun users get the same result with bunx cozyclay. If you would rather not start from an empty room, the launcher takes a scene flag, and the README notes that the first-run dialog offers the same choice under Start from a scene.
npx cozyclay --scene city-blockUseful flags listed in the README include --port 5200, --no-open, --no-motion, and --scene city-block. A global install provides the cclay command, which is the same launcher with less typing. The launcher also checks npm for a newer release once a day.
Once the studio is open, the fastest path to a real shot is the built-in tutorial. The README says the same seven-step camera tutorial runs inside the Studio on the City Block set, reachable from Settings then Camera tutorial, or directly at this URL.
http://127.0.0.1:5180/app/?tutorial=cameraEach step points at the control it needs and completes only when you actually make the move, which is a better test of the interface than a video walkthrough. After that, the README describes adding shots on the timeline, drawing a dolly rail on the Top-View, setting speed, height and crane, and previewing 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. The export menu then produces a keyframe pack as a zip containing first and last frame, clip, camera JSON, prompt and README, plus an mp4 of the shot, depth and normal conditioning passes, a storyboard contact sheet, and an OTIO cut list.
The Kimodo dependency is the real cost of admission
The studio ships seeded with a pre-generated motion clip, so you can scrub the timeline, drive cameras and draw a dolly rail immediately. Generating new motion is optional, and the README says it uses the Kimodo bridge when configured. That sentence is doing a lot of work. The moment you want a character to do something the bundled clip does not contain, you are running a second machine.
The requirements section is unambiguous: a machine running Kimodo, an SSH-accessible NVIDIA box as the classic target, and npm run kimodo:setup once to detect the host, pick a backend and download checkpoints. There is no browser fallback for the GVHMR extraction path. So the honest description is a browser front end attached to a GPU service you operate yourself.
That shapes who this suits. A solo artist on a laptop with integrated graphics can use the blocking, camera and export features, but not motion generation or video mocap. A small studio with a spare NVIDIA box can use all of it. The README does not document rollback or a downgrade path for the Kimodo checkpoints the installer downloads, and it does not describe what happens when the bridge is unreachable mid-session. Verify that before you build a pipeline around it.
The second limitation is browser scope. A Chromium-based browser is listed as a requirement, and the README does not claim support for anything else. If your team standardizes on Firefox or Safari, this is not a drop-in.
How it compares to Blender and to prompt-first video tools
The obvious alternative for previs is Blender. Blender has deeper modelling, a mature animation system, real rendering, and a much larger ecosystem. CozyClay does not compete on those axes and the README does not pretend otherwise. The difference is in the handoff. Blender gives you a scene file; getting a greybox clip, a camera JSON, a structured prompt, depth and normal passes and an OTIO cut list out of it for a specific AI video model means scripting that pipeline yourself. CozyClay treats the export as the product, with a single Export menu and a Shot Prompt that turns framing into a structured prompt for the model you picked.
The other alternative is going straight to the video model. Tools that take a text prompt and return a clip are faster to start and require no install, no Node runtime and no GPU box. What they cannot do is hold a camera move steady across a cut. If your shot needs a specific dolly speed at a specific height with a crane at the end, describing it in prose is a lottery. The greybox clip exists precisely to remove that ambiguity, and the README's Seedance quote about the white-model reference video being the sole guide for camera movement is the clearest statement of the trade.
There is also a third path worth naming: the MCP route. The README says you can connect Claude or any MCP client and ask for a shot in plain language, with the agent placing the cast, framing a low wide profile, and generating multi-phase motion while the viewport moves. Inside the Studio, View then Panels then Agent panel, or Cmd/Ctrl+B, opens a chat column that signs in with your ChatGPT account and works the same scene. That is a different interaction model from dragging a gizmo, and it is the part of the project most likely to change quickly.
Licence and upgrade cost
CozyClay is AGPL-3.0. For individual artists and for teams using it internally to plan shots, that is a permissive-enough arrangement. The copyleft obligation becomes a live question if you modify the source and expose it to users over a network, which is the situation AGPL section 13 addresses. The repository also carries LICENSING.md, a LICENSES directory and THIRD_PARTY_NOTICES.md, which suggests the maintainers have thought about the dependency side, but those files are the place to look rather than this article. Nothing here is legal advice; if you plan to embed CozyClay in a product, read LICENSING.md and talk to someone qualified.
Upgrade cost is low by design. Releases are frequent and small: v1.7.1 on 2026-09-08, v1.8.0 on 2026-09-09, v1.8.1 on 2026-09-10, with the last push to the repository on 2026-09-17. The launcher checks npm once a day for a newer release, and because npx downloads the built studio rather than a source tree, there is no dependency resolution step to break. Projects are .cclayproject files, and the README notes that a .cclayproject downloaded from the browser tutorial opens with Open a project, so the file format is portable between the hosted demo and your local install.
The cost that is not low is the Kimodo side. Checkpoints and text-encoder stacks are downloaded by the installer, and the README does not describe how to pin, cache or roll back those artifacts. On a shared GPU box, that is the upgrade path you should test first.
Editorial conclusion
Adopt CozyClay if you already think in shots and want one workspace where blocking, camera moves and AI video handoff share the same data, and if an AGPL-3.0 licence plus a separate Kimodo host for motion generation are acceptable. Skip it if you need a finished render, a hosted multi-user service, or if nobody on the team will run an SSH-accessible GPU box. Before committing, run npx cozyclay --scene city-block and check the Export menu against your target model's clip length limits, because the shot flagging is the part you will live with daily.
Frequently asked questions
Is CozyClay free to use?
It is open source under AGPL-3.0 and installs with npx cozyclay from npm. The licence carries network copyleft obligations if you modify it and expose it to users, so check LICENSING.md before embedding it in a product.
Do I need a GPU to run CozyClay?
Not for blocking, camera work and export. Motion generation and video or photo mocap need a separate machine running Kimodo, described in the README as an SSH-accessible NVIDIA box, and there is no browser fallback for the GVHMR extraction path.
Which AI video models can CozyClay export to?
Each shot carries a Target model of Seedance 2.5, Kling 2, Veo 3 or self-hosted MiniMax-H3, and the shot is flagged when the cut runs past that model's limits. The README also lists MiniMax H3, Wan 3.0, LTX Desktop and fal render-to-real as accepting the same plain RGB clip.
Community notes