Edit 3D Scene
Basic remains the default. Optional Advanced engines are advertised by
GET /v1/3d-scene/capabilities; an unavailable explicit engine is rejected
before starting a Basic edit or reserving its credits.
For a connected retained v2 scene, an unset engine selects its available Advanced
engine. An explicit Basic selection is refused. The config panel and headless
workflow use the same choice and preserve the connected revision, locks and edit
instruction. An invalid connected revision fails instead of selecting an older
saved result. Manual retained-scene operations use
POST /v1/3d-scene/revisions/:revisionId/edits; the Basic operations below apply
to v1 scenes.
Create a new revision of an existing editable 3D scene. Connect a Generate 3D Scene or another Edit 3D Scene composition to its Scene input. Connect its output to Render Video to export MP4.
Use an instruction such as “Move the pillar back one meter and keep the suitcase path unchanged,” or supply deterministic operations through the API. Preserve selected objects with lockedObjectIds. Optional image/video references provide additional layout, motion or appearance guidance.
Editing contract
POST /v1/3d-scene/edit takes scenePlan and expectedRevisionId, plus either prompt or operations. A revision mismatch is rejected. A successful edit produces a new revisionId with the old revision as parentRevisionId; the input plan remains unchanged.
Supported operations:
| Operation | Fields |
|---|---|
set-object |
objectId, changes (object fields other than ID) |
add-object |
object |
remove-object |
objectId |
set-camera |
changes |
set-lighting |
changes |
set-background |
color |
New references merge with existing ones by reference ID; supplying the same ID replaces that reference. The combined list must remain within the generation limits. Whole video clips are supported in v1; trim a segment first.
Canvas pose controls edit the visible frame: an animated channel gets an updated or inserted keyframe, while a static channel changes its base value. API operations update exactly the fields supplied; to change a keyed pose, include its keyframe changes.
The complete edited scene is validated, including object IDs, hierarchy and animation frames. Edits cannot silently leave orphaned parents or references. Deterministic operations do not call an LLM. Instruction-based edits use the selected authoring model.
const edited = await client.nodes.runAndWait("edit-3d-scene", {
scenePlan: scene.scenePlan,
expectedRevisionId: scene.scenePlan.revisionId,
operations: [{ op: "set-camera", changes: { focalLengthMm: 50 } }],
});
Poll the returned job ID for output_data.scenePlan and changeSummary. Retain the previous revision for undo or comparison. The canvas preserves newer direct edits when an older in-flight generation finishes.
A failed job on an advanced engine can still carry output_data — the draft
it built, or the recipe it was refused for. The shapes and what to do with each
are on Generate 3D Scene; this node’s failures
report them identically, including how a refused draft reaches the canvas from a
single-node Run, a workflow Run and a reload.
A completed instruction edit reports the same authoring fields a generate
does, because it runs the same authoring lane: repairPasses, admissionRetries,
mechanicalPasses, restoredAssertions, SCENE_AUTHORING_ASSUMPTION warnings —
and metadata.review when the edited scene passed every mandatory check but did
not get the visual review’s approval, either because the review objected
(verdict: "refused") or because it produced no usable verdict and nobody judged
the scene (verdict: "unavailable", whose reason is "provider" when the review
never reached its provider and "unusable" when the provider answered unusably). validation.status is passed on both, so
test for metadata.review and branch on verdict rather than reading the status.
The full shape is on
Generate 3D Scene and
3D Render Pro.
Deterministic operations call no model and carry none of this.
An MP4 is not an editable scene. To work from video alone, provide it as a reference to Generate 3D Scene and inspect the reconstructed result.
LLM edits are model-priced on Cloud; use the model-cost API for current pricing. Deterministic operations have no LLM charge. Rendering is a separate operation.
Credits
Deterministic operations and local property edits cost 0 credits. Instruction edits use the same LLM authoring tiers as Generate 3D Scene: 10 / 30 / 40 credits for economy / standard / premium, plus optional video analysis. Rendering an edited revision is charged separately, by frame size: 50 credits up to 1920 px on the longest side, 75 above that up to 5.12 megapixels, 125 for a larger frame — see what a 3D scene render costs. Instance prices come from the model-cost API.
Both nodes support prompt pre/post text. The canvas applies those affixes when it submits the instruction.