Skip to content
EpicDraft Docs

3D Blocking

A scene page has a Blocking row with Open 3D blocking. It opens a 3D stage for that scene, where you place stand-ins, models and cameras, key their moves on a timeline, and look through a camera to see the shot. It is for planning a scene — where people stand, where the camera goes, what moves when — not for finished rendering. Blocking is saved in the project file, with the scene.

The stage

  • Add puts things at the playhead or beside what is already there: characters (the scene's speaking characters are offered), floor, wall and block set pieces, props (box, cylinder, sphere), 3D models, sounds and captions.
  • Drag the gizmo to move, rotate or scale. Switch between Free view, Overhead and a camera in the view menu; looking through a camera shows its frame at the scene's aspect. Overhead is the live top-down plan of the set, north up, with the cameras' view cones drawn: drag to pan, scroll to zoom, F to fit the whole set again, and move or turn anything in it as you would in the free view (only the handles that make sense from above are shown). It is the same view a storyboard's Overhead frame is drawn from.
  • Key records where the selected thing is at the current time. Play the timeline to see the move. Length sets the scene's duration.
  • Stage with AI blocks the scene from its script. It sees the scene's text and the models in your Library, and you can give it a direction. Once the scene has something in it, Refine with AI sits beside it (see AI that checks and edits the scene).
  • A problems button appears when the scene has something to flag, such as a person standing inside furniture, someone off the edge of the floor, a camera that shows nobody, a camera inside a set piece or prop, an animation or sound that runs past the end, or captions that overlap. Open it for the list; nothing is changed for you.
  • The Sky and Look buttons set the lighting and a colour grade (below).
  • For the storyboard: the Export menu has a For the storyboard group (see Frames for the storyboard).
  • Keyboard: W, E and R switch the gizmo to move, rotate and scale; K keys the selected thing at the playhead; F frames the selection; Space plays and pauses; Delete removes the selection; Esc deselects, and closes the editor when nothing is selected; ⌘Z / Ctrl+Z undoes and ⇧⌘Z / Ctrl+Shift+Z redoes. Keys are ignored while you are typing in a field.

Cutting between cameras

With two or more cameras in the scene you can cut between them. The first camera shoots from the start; each cut says when another camera takes over.

  • Move the playhead to where the cut should happen and press Cut on the timeline. It cuts to the next camera in the list after the one shooting then, and selects the new cut.
  • Cuts show as a row of bars on the timeline, one per stretch a camera holds. Click a bar to edit its cut: choose Cut to camera, change Cuts at (s), or Remove cut.
  • In the view menu, Follow cuts (it appears once the scene has a cut) looks through whichever camera is shooting as the timeline plays, so you see the edit as it will cut. The first cut you add switches the view to it.

Cuts are saved with the scene, and the Blender kit gets a marker at every cut, bound to its camera. The AI can set cuts too — see AI that checks and edits the scene.

Frames for the storyboard

These put a picture from the 3D scene into a storyboard panel. The frame is drawn as an image and shows a small 3D badge on its panel.

  • From the 3D editor, the Export menu's For the storyboard group has two buttons. Add camera frame draws the chosen camera at the playhead (choose the camera under For a video model ▸ Camera; with one camera it is that camera). Add overhead frame draws a top-down view of the whole set and needs no camera. Either files a new panel in the scene's storyboard and shows a toast with Open to jump to it.
  • From the panel, the Frame from 3D button draws a frame from a camera (or Overhead) and time you choose. It marks the panel Out of date when the blocking has changed, and Update redraws it with the same camera and time. A storyboard's page also shows Update out-of-date frames to redraw them all.
  • Contact sheet: on the same popover, pick a number of frames (2 to 12) and Add frames across the scene adds that many panels right after this one: the same camera at evenly spaced moments from the start of the scene to its end, each captioned with its time.
  • Frames you replace stay in the project; in the Library's Media section, Remove unused 3D frames clears the ones no panel uses any more.

Location 3D sets

A set you build once can serve every scene at that place. On a location's page in the Library, Build a 3D set opens the same 3D editor on the location, where you place the floor, walls, set pieces and props. In a scene set there, Use the set from… on the scene page copies that set into the scene's blocking, under the scene's own characters, cameras and props; Update the set from… brings in later changes to the set, and asks before it replaces pieces you edited in the scene. The copy is ordinary blocking in the scene, so exports, the video guide and Stage with AI all see it.

Models, animation and textures

Models, animations, textures, skies and colour looks are media in the Library, the same way video and audio are: the files stay on your device (or sync through Folder Sync or peers) and EpicDraft never hosts them. Add them from the add-media dialog or by dropping a file on a page.

KindFilesUsed for
Model.glb (plain, Meshopt or Draco compressed)Stand-ins and props in the stage
Animationa .glb with clips and no meshMoves for a character or model
Textureany imageA surface on a shape or model
Sky.hdr, .exrLighting and background
Look.cubeA colour grade over the camera's view

Anything larger than 50 MB is not synced on capped devices; keep it on one device or use a link. Characters get a built-in mannequin with a set of moves (stand, walk, run, sit, point, talk, wave), and you can retarget a Library animation onto it. Select a character, pick Add animation…, and use Starts, Speed, From, To and Blend to shape it, or drag the ends of its bar on the timeline to trim it.

In the Media section of the Library, once the project has a texture, the list gets All / Images / Textures chips; textures also carry a small grid badge.

Generating models and textures

Set these up in Settings → AI → Director, then use Generate a model… in the Add menu.

  • Meshy (a hosted service): paste your own Meshy API key. Describe the model or pick a picture from your Library, and choose whether to add colour and textures. It uses credits on your Meshy account, and stopping a run does not refund them.
  • Your own ComfyUI server: enter its address and a workflow saved from ComfyUI with Save (API Format), with {{prompt}} and/or {{image}} where the request should go. Nothing is paid to anyone. A server on another machine at an http:// address is not encrypted, so the settings show a warning there; use it only on a network you trust.

Either way the finished model is saved in your project like any file you add; EpicDraft never stores it on its servers. Generate a texture… (in a selected thing's Surface section) uses the app's image generation, on-device or hosted, and also makes a normal map.

Experimental: with a Meshy key, switch on Rig a model, motion from text in Settings → Labs. That adds Rig a model… (a skeleton for a textured humanoid facing forward, 5 credits) and Motion from text… (a clip from a sentence, 3 or 10 credits) to the Add menu. They may fail or change, and the credits are not refunded if you stop.

Sound, captions and look

  • Sounds at the playhead: nine built-in effects, or any audio file in the Library. Pick Sound comes from to attach one to an object; it then pans and fades with where that object is, as the active camera hears it.
  • Captions at the playhead, laid out from the scene's dialogue (an estimate of timing to drag into place), or imported from a .srt or .vtt file. They show over the camera view and export as .srt or .vtt.
  • Look gives the camera's view a colour grade: a built-in look, or a .cube from your colourist. Save as .cube writes a built-in look out, at its current strength.

Bringing work in from Blender

Blender does the heavy lifting; export from it and add the file.

  1. In Blender choose File ▸ Export ▸ glTF 2.0.
  2. Set the format to glTF Binary (.glb). Leave Animation on if the file has moves, and Apply Modifiers on.
  3. In EpicDraft, add the .glb to the Library (add-media dialog, or drop it).

Other formats are converted to .glb when added, so you can also export OBJ, FBX, Collada (.dae), USD / USDZ, STL or PLY from Blender, or BVH motion capture. Baked simulations from Blender and other tools in .mdd or .pc2 become an animated point cloud. VRM avatars and C3D marker captures are read too.

In the desktop app you can also add a .blend file directly. If Blender is installed (in its usual place), EpicDraft runs it in the background to export the scene as a .glb, with modifiers applied and animation included, and adds that. It can take a few seconds. Scripts embedded in the file are never run. On the web, on a phone, in the Mac App Store build, or without Blender installed, export glTF as above instead.

The same goes for an Alembic sim cache (.abc, which is what cloth, fluid and crowd sims are baked to): in the desktop app with Blender installed, adding one has Blender bake each frame and gives you a model that plays the motion. It works for a mesh whose points stay the same through the cache (cloth, soft bodies, deforming characters, or things that simply move), up to 240 frames. A cache with no motion in it comes in as an ordinary model. One whose number of points changes (a fluid, a tearing cloth) is declined with the reason. Elsewhere, bake to .mdd or .pc2 in Blender, or export glTF with shape-key animation.

USD (.usd, .usda, .usdc, .usdz) works the same way when it holds a baked simulation: with the desktop app and Blender, one that might be animated is given to Blender first, so its motion comes through. Everything else, and any USD Blender can't read, is read as a still model as before.

Taking a scene out

Export has:

  • Scene (.glb) — objects, their moves, cameras and clips, for Blender, Godot or Unreal.
  • Set up for Blender (.zip) — the scene plus a short Python script. Open the script in Blender's Scripting workspace and run it: Blender imports the scene and sets its timeline to match, with the same frame rate and length, the cameras' lenses, a marker at every camera cut bound to its camera (so Blender's active camera follows the cuts), and a marker for every sound and caption. Frame 0 is the start of the scene. The captions come too, in full, as a .srt.
  • Key frames (PNG) and Camera clip (video) — what a camera sees, for a video model. A key-frames zip carries a guide.json with each camera's lens, plus the scene's sounds and captions with their timing. With more than one camera, the Camera choice in the same menu picks which one these use (and which one Add camera frame draws); the default is the main camera. Size sets the width (854, 1280 or 1920 pixels), and the height follows the scene's aspect.
  • Captions as .srt or .vtt.
  • Open in Blender (desktop app, with Blender installed) — see below.

Open in Blender, and bringing changes back

Export → Open in Blender starts Blender's own window on the scene, set up the same way as the kit above (frame rate and length, camera lenses, a marker at every cut, sounds and captions), with no zip and no script to run. It needs the desktop app and Blender installed in its usual place; it is not available on the web, on a phone, in the Mac App Store build, or without Blender. EpicDraft only gives Blender data and a fixed setup script of its own; nothing from the scene is run as code. A notice shows the folder it used.

When you are done in Blender, File ▸ Export ▸ glTF 2.0, with Include ▸ Custom Properties ticked, then Export → Bring changes back from Blender… (experimental) and pick that .glb. EpicDraft reads where each object ended up (its position, rotation and keyed moves), shows you which objects would change, and applies it as one edit that Undo takes back. Objects are matched by the id EpicDraft wrote into the file when Blender kept it, otherwise by name. Only positions and rotations come back: sizes, looks, lenses, sounds, captions, and new or deleted objects stay as they were. A file that matches less than half the scene is refused as probably the wrong one.

AI that checks and edits the scene

  • Refine with AI (in the Stage with AI popover, once the scene has something in it) looks at the scene through its cameras, finds what is off, and fixes it a step at a time while keeping what you built; your note in the box applies to it. While it runs the editor is locked and a strip shows the current step. Cancel keeps what was done. Undo takes the whole run back — one entry for the run, separate from any other run. Undo writes the whole scene back, so changes you made by hand during the run go with it. The editor's own ⌘Z / Ctrl+Z steps through the edits one at a time. It uses the model you have set up in Settings → AI, and it sees pictures if that model can; otherwise it works from written descriptions of what each camera sees.
  • The Chat Agent can edit the scene's blocking too: place and move people and props, arrange them, set cameras, shots and cuts, add sounds, change the scene's length, look and sky, and remove things. Whether it asks first follows your Changes to your project setting, and removing things asks as it always did. It can place your own Library models by name, at their real size (a name it doesn't find becomes a grey box, and it says so). It cannot yet edit captions, textures or clip trims; do those by hand or with Stage with AI.
  • Other AI apps can do the same through MCP.