Previs for AI-native filmmaking. Stage a scene, choreograph the camera and cast against marks — the way real sets work — and export a motion-reference package a video generator can't misread.
Originally created by Sam Wasserman / Wasserman Productions. Windows port and community Windows releases maintained by Gumbii Digital.
The maintained Windows distribution is an unsigned, unofficial community build with its own app ID, data directory, shortcuts, and uninstall identity. It cannot overwrite a future official Windows edition.
Download the Windows 11 x64 installer · Release notes, SHA-256, SBOMs, provenance, licenses, and FFmpeg source
| Native Windows workflow | 150% display scaling |
|---|---|
![]() |
![]() |
The port adds Electron 43 and per-user NSIS packaging, portable Windows/macOS project paths, Windows-safe filenames, process-tree-aware FFmpeg cancellation, packaged FFmpeg/FFprobe and MCP bridge assets, and versioned Motion Previs handoff discovery. Releases are built natively on Windows and ship checksums, SPDX/CycloneDX SBOMs, provenance, modification notices, third-party notices, and FFmpeg corresponding source. The exact .2 installer passed its complete native Windows 11 gate without system FFmpeg.
The generic cross-platform work was accepted into the original project through wassermanproductions/blockout#2. The Gumbii-specific installer identity and release branding remain downstream.
Video generators produce dramatically better results when you hand them an unambiguous motion reference: a rough 3D render showing exactly the camera move and character blocking you want. Blockout is the fastest path from "I can see the shot" to "the generator can't get it wrong." It exports video + depth pass + stills + a tailored prompt that Seedance 2.0, Veo 3.1, Kling, LTX 2.3, and Wan 2.2 can follow precisely.
It is deliberately not a 3D art tool. Grey-box mannequins and vehicles at real-world scale, real lens math, and choreography tools are the whole product. The fidelity target is unambiguous, not beautiful.
- 🎬 Real camera optics — Super 16 / 35 / Full Frame / 65mm sensors, real focal lengths, keyframable zoom, rack focus, aspect masks.
- 🚶 Marks-based choreography — one mental model for camera and actors; editable paths, per-mark easing, gaits, and speed sanity warnings.
- 🎥 Coverage model — a scene owns the blocking; shots own cameras. Shoot the same action from five angles without re-blocking.
- 👥 One-click crowds — dance numbers, brawls, foot and car chases: pick a size and style, click the floor, and the whole choreographed cast stages exactly there. Restyle the entire group later in one click.
- ✨ An Animate tab — 64 character motions (fights, dances, sit/drink/jump, playing cards, squirt-gun) and 25 action paths (plane landings, helicopter orbits, car chases, collapsing debris) always one click away.
- 🎛️ 27 classic camera moves — orbits, cranes, drone follows, vertigo dolly-zoom — built around your subject and riding along if it moves.
- 📦 Deterministic exports — the same project renders byte-identical frames on every run. Playback performance never touches the output.
- 🤖 Agent-drivable — a bundled MCP server lets Claude Code, Codex, or any MCP client stage and shoot the scene for you.
- STAGE — drop in one of 50+ environment kits (downtown, residential street, supermarket, movie theater, train car, backyard with pool, sky for aerials…), place people / animals / vehicles / furniture / props from the library, and label your subjects ("THIEF", red).
- SHOOT — select an actor, press
M, click the floor to drop numbered marks; the actor walks them on your timeline. Frame the camera (or click MS to auto-frame a medium shot at your lens), drop camera marks, pick a rig — dolly, steadicam, handheld, crane, drone, car-mount. Scrub, retime, play. - DELIVER — pick your generator, click Export shot package:
Shot-1A/export-…/
├── 1A_reference.mp4 # the motion reference (deterministic render)
├── 1A_depth.mp4 # depth pass for ComfyUI control workflows
├── 1A_normal.mp4 # optional normal pass
├── stills/ # frame at every camera mark + first/last + top-down blocking diagram
├── prompt.txt # generated from your actual blocking, tailored per generator
├── comfyui-workflow.json # pre-wired depth-conditioning workflow (Wan/LTX profiles)
├── metadata.json # machine-readable marks/lenses/timings
└── README.txt
Plus per-scene tools: animatic export (all shots stitched), contact sheet, and Blender handoff (.glb with the animated camera + a one-click import script).
Pick a target generator and Blockout writes the prompt from your actual blocking — lens, sensor, rig, and every subject's move — then bundles the reference video, depth pass, stills, and a pre-wired ComfyUI workflow.
Fifty-plus grey-box environment kits and a full library of people, animals, vehicles, furniture, and props — all at real-world scale, all procedurally generated in code. Label subjects with colored callouts, snap things to the ground, and save any staging as a reusable global preset (a dinner scene, a driving setup) to start from in any project.
Coverage the way a real set works: the scene owns the blocking, each shot owns a camera. Drop camera and actor marks on a shared timeline, choose a rig (dolly / steadicam / handheld / crane / drone / car-mount), and get speed sanity warnings when a walk implies 6 m/s. Auto-framing presets (two-shot, OTS, reverse, top, low, dutch) place the camera relative to your labelled subjects. Ghost an existing video — including depth maps — over the viewport as a timeline-synced reference underlay to match blocking by eye.
Data-driven generator profiles define durations, resolutions, reference modes, and prompt templates per model; adding a new generator is a config edit. Exports are deterministic — the timeline is stepped at exact fps and rendered offline, so the same project exports byte-identical frames on every run. Projects are a folder of pretty-printed, stable-key-order JSON: diff it, branch it, review it.
Stage a whole choreographed crowd in one action — pick Dance number / Fight / Foot chase / Car chase, set the head-count (2–60) and style, then click the floor exactly where you want them: performers and their choreography appear there, facing the camera. A staged sequence is a starting point: shift-click the group (their choreography moves with them when you drag) and the ✨ Animate tab swaps everyone's dance style or path in one click. Non-character performers get motion-path presets too: plane takeoff / landing / flyby, helicopter orbit, bird swoop, falling debris, thrown objects. For the camera, apply one of 27 classic moves — orbits, cranes, drone follows, whip pans, the vertigo dolly-zoom — each built around your subject and riding along if it moves.
Blockout ships an MCP server so an AI agent can drive the running app — stage entities, choreograph marks, reframe, scrub, and grab a viewport screenshot — the same moves you'd make by hand. See mcp/README.md for the full agent-integration guide.
Download an existing macOS DMG from GitHub Releases, or build from source. The Windows 11 x64 NSIS target uses an audited, pinned BtbN GPL FFmpeg/FFprobe pair and is ready for native Windows prerelease validation:
git clone <this repo>
cd blockout
npm install
npm run dev # development, hot reload
# or
npm run build && npm start # production buildRequirements for source builds: Node 22+. Development builds resolve a
checksum-pinned FFmpeg executable and also support the BLOCKOUT_FFMPEG
override. Windows packaging downloads, verifies, and audits the exact BtbN GPL
pair before building. The rejected nonfree static package is not a dependency.
macOS packaging builds the same pinned FFmpeg commit from verified sources and
an audited patch, natively per architecture.
Current release artifacts are unsigned. On macOS, right-click → Open bypasses Gatekeeper. When a Windows prerelease is legally cleared and published, use More info → Run anyway only after verifying its SHA-256 checksum. Code signing/notarization is required for a trusted stable distribution.
Point Claude Code, Codex, Hermes, or any MCP client at the bundled MCP server and it can stage the scene, choreograph marks, reframe the camera, scrub the timeline, and pull a viewport screenshot. Register it with Claude Code in one line:
claude mcp add blockout -- node /ABSOLUTE/PATH/TO/blockout/mcp/blockout-mcp.mjsPackaged bridge locations are
/Applications/Blockout.app/Contents/Resources/mcp/blockout-mcp.mjs on macOS
and %LOCALAPPDATA%\Programs\Blockout\resources\mcp\blockout-mcp.mjs for the
default per-user Windows install.
Discovery and auth are automatic — the app writes a versioned localhost-only
control descriptor to ~/.config/blockout/control.json on macOS/Linux or
%APPDATA%\blockout\control.json on Windows. The zero-dependency bridge reads
both versioned and legacy descriptors. There are 26 tools (from get_state
and add_entity through spawn_sequence, apply_camera_move, and screenshot).
👉 Full setup, the complete tool table, and a worked session: mcp/README.md.
| Command | What it does |
|---|---|
npm run dev |
Run with hot reload |
npm run typecheck / npm run lint |
Strict TS + ESLint |
npm test |
Engine unit tests (Vitest) |
npm run smoke |
Build + full end-to-end smoke: boots the app, stages a scene, exports a real package, verifies it with ffprobe, checks byte-determinism |
npm run package:mac |
Build and audit a native macOS FFmpeg pair, then the current-architecture DMG |
npm run package:win |
Build a Windows 11 x64 per-user NSIS installer (release/; run on Windows) |
npm run package:win:gumbii |
Build the isolated Unofficial Gumbii Community Windows installer on the downstream release branch |
npm run verify:assets / npm run sbom |
Verify pinned runtime assets / generate SPDX and CycloneDX SBOMs |
See docs/DESIGN.md (product + architecture), docs/ROADMAP.md (build plan + QA program), and AGENTS.md (how AI agents should build / run / modify this app). The deterministic core lives in src/engine/ — pure TypeScript, no DOM, fully unit-tested; state(t) is a pure function shared by playback, video export, stills, and glTF baking.
Apache License 2.0 — see LICENSE. Free to use, modify, fork, and build on, commercially or otherwise.
Attribution required: per the NOTICE file (Apache 2.0 §4(d)), any use, fork, or redistribution must retain the NOTICE file and credit Sam Wasserman (wassermanproductions.com) in its documentation and about/credits surface.
All 3D assets are procedurally generated in code — no external asset licenses are involved. The Windows FFmpeg/FFprobe pair remains a separate GPL-3.0-or-later component; see THIRD_PARTY_NOTICES.md and its exact source/build provenance.
The Windows/macOS ports are prerelease engineering outputs. Stable or commercial distribution additionally requires upstream/trademark permission, platform signing/notarization, final FFmpeg/H.264 review, and the normal full third-party compliance review.
Created by Sam Wasserman — wassermanproductions.com · wasserman.ai.







