# 3D Render Pro

> Author an animated 3D scene from a brief and render it in one run on a hosted engine, returning the MP4, the editable scene and one still image per shot.

Source: https://nodaro.ai/docs/nodes/video/pro-3d-render

The **3D Render Pro** node authors an animated 3D scene from a brief and renders it, in one run, on a hosted build engine. One run returns the finished MP4, the exact scene it was rendered from, and one still image per shot. It is a different node from [Generate 3D Scene](https://nodaro.ai/docs/nodes/video/generate-3d-scene): that node is a cheap, editable clay previz whose MP4 comes from a separate [Render Video](https://nodaro.ai/docs/nodes/video/render-video) run.

- Found in: Video › Titles, Graphics & Captions
- Output: video
- API type: `pro-3d-render`

3D Render Pro runs only on Nodaro Cloud, and only while the Cloud's 3D engine offers it. Self-hosted editions do not offer this node.

## When to use it
- You want a finished 3D shot from a brief in one step, not a previz to render later.
- You want to export an existing scene again, without paying to author it again.
- You want one still per shot, to use as image references for later generations.
- You want a wide `21:9` frame, which Generate 3D Scene does not offer.

## Where it is available

- **Node picker.** On Nodaro Cloud, the node is under **Video › Titles, Graphics & Captions › 3D Render Pro** while the 3D engine offers it. When the engine is not available, the node is not listed at all, rather than shown and disabled.
- **API and SDK.** `GET /v1/3d-scene/capabilities` reports `pro.available`. Where the node is unavailable, `GET /v1/nodes` leaves it out, and a request is refused with `503 SCENE_CAPABILITY_UNAVAILABLE`. It never falls back to the Basic engine.
- **MCP.** The `pro_3d_render` tool is listed only where the node can run, so its presence in the tool list is the check.

A workflow that already contains the node keeps its stored scene and video if the engine is later switched off. Only new runs are refused.

## Quick start
### Add the node

Press Tab on the canvas and choose **Video › Titles, Graphics & Captions › 3D Render Pro**.

### Choose the scene source

Under **Scene source**, choose **New scene from a brief** and describe the shot under **Scene**, with references if you have them. Or choose **Existing scene**, connect a scene to the **Scene** input, and leave **Edit instruction (optional)** empty to only render it.

### Check the budget and the frame

Keep the **Correction budget** at 2, or lower it. Under **Settings**, check **FPS**, **Duration (s)** and **Aspect Ratio**.

### Run it

Click **Run**. Nodaro quotes the run, then starts it, and the node shows the ceiling as **Up to N credits**. When the run finishes, the node has the MP4, the scene and the stills.

Workflow: One run of 3D Render Pro supplies a shot still for the keyframe and a layout video for the final generation.

- Upload Image → 3D Render Pro (references)
- 3D Render Pro → Generate Image (references)
- 3D Render Pro → Generate Video (video refs)
- Generate Image → Generate Video (start frame)

## The scene source

Every run has exactly one source, and the source decides both what happens and what you pay.

| **Scene source** | What happens | What you pay for |
| --- | --- | --- |
| **New scene from a brief** | Authors a scene from your brief and references, then renders it. | Authoring, the hosted build and the render |
| **Existing scene**, no edit instruction | Renders that exact scene revision. | The render only |
| **Existing scene**, with an edit instruction | Revises the scene first, then renders it. | Authoring, the hosted build and the render |

An empty **Edit instruction (optional)** is what makes a run render-only. Through the API, leave the `editPrompt` field out for a plain export: an empty string is a different request.

A fourth source, a completed export from a paired desktop Blender, is available through the API where the install supports it.

## Inputs
| Input | Accepts | What it does |
| --- | --- | --- |
| **Scene** | The **Composition** output of Generate 3D Scene, Edit 3D Scene or another 3D Render Pro | The existing scene to render or revise. Used with **Existing scene**. |
| **References** | Image and video nodes | Up to 8 references, including at most 1 video. Images guide appearance and layout, and a video guides motion and layout. Used with **New scene from a brief**. |

## Outputs
| Output | What it carries | Connect it to |
| --- | --- | --- |
| **Composition** | The scene revision this run produced | [Render Video](https://nodaro.ai/docs/nodes/video/render-video), or the **Scene** input of another 3D node, to export again without paying to author again |
| **Stills** | One still image per shot, in shot order: the frame each shot opens on | Any node that takes images. The whole set travels down the connection, not only the first still. |
| **Video** | The rendered MP4 | Any node that takes a video |

Connect video nodes to **Video**, not to **Composition**: the composition is a scene, not a video.

**The stills are a contact sheet, not a second render.** They come out of the same run at no extra cost. A single-shot scene has exactly one still, at frame 0. Use them to feed a shot's opening frame to an image or video model, or to review the blocking shot by shot without scrubbing the MP4.

**Stills work in any image input.** The stills are stored privately. When you connect the **Stills** output to an image or reference input, Nodaro gives the model a short-lived read of the exact still it needs. The read is for that run only and is based on your own access. The link expires minutes later and is never stored.

## Settings
| Setting | What it does |
| --- | --- |
| **Scene source** | **New scene from a brief** (the default) or **Existing scene**. |
| **Scene** | The brief for a new scene: the objects, their motion, the camera and the timing. |
| **Edit instruction (optional)** | For **Existing scene**. Leave it empty to render the scene as it is. Write a change to revise it first, which costs authoring. |
| **References** | One role for each connected reference: **appearance**, **layout** or **motion**. New scenes only. |
| **Correction budget** | 0, 1 or 2 repair passes after the first attempt. The default is 2. Each pass is paid work, which is why the budget is visible. |
| **Quality** | Shown only when the install offers more than one quality profile. Today the profile is standard. Under **Settings**. |
| **Re-time this scene (overrides its own duration, fps and aspect)** | For **Existing scene**. Off by default, so the scene keeps its own timing. Under **Settings**. |
| **FPS** | `24` (the default), `30` or `60`. Under **Settings**. |
| **Duration (s)** | From 1 to 60 seconds. The default is 10. Under **Settings**. |
| **Aspect Ratio** | `16:9` (the default), `9:16`, `1:1`, `4:5` or `21:9`, as the install offers them. Under **Settings**. |
| **Pre & post text** | Text added before and after the brief at run time. See [Prompt pre and post text](https://nodaro.ai/docs/concepts/prompt-pre-post-text). |

There is no model or reasoning setting: the planner is fixed and run by Nodaro. The style is clay.

**Timing of an existing scene.** A scene already has its own duration, frame rate and aspect ratio, and a run keeps them. Tick **Re-time this scene** to change them on purpose. A change that does not fit the scene is refused rather than applied silently.

## Use the result as a video reference

The MP4 is a layout reference, like the render of [Generate 3D Scene](https://nodaro.ai/docs/nodes/video/generate-3d-scene#use-the-render-as-a-video-reference). It carries the positions, the occlusion, the framing, the camera move and the timing, and also a grey clay look that a video model copies unless told not to.

- **Nodaro adds the scoping line.** Wire the **Video** output into the **Video Refs** input of a [Generate Video](https://nodaro.ai/docs/nodes/video/generate-video) node. Nodaro then adds a line that tells the model to copy only the layout and to ignore the clay look. For a scene with several shots, the line also names the cut points.
- **One character per figure.** Photoreal treatment follows each referenced subject. Give every figure that must look real its own character reference, and keep two reference slots free for a location or a style image.
- **You are told about uncovered figures.** When a workflow run finds more people in the scene than character references, it still runs, because you may want clay figures. It records a `scene3d_unreferenced_figures` warning on the job, with the number of uncovered figures and whether one reference per figure fits the model's reference limit.
- **Never the start frame.** Wire the render into a reference input. A start frame sets the look, and no scoping line reaches it.

## Credits
3D Render Pro is one billable operation. A new scene pays for the authoring, the hosted build and the render. An existing scene without an edit instruction pays for the render only. Each repair pass inside the correction budget is paid work.

**Quote, then run.** The price is set by each deployment, so there is no fixed list price. Every run is quoted first, and the quote shows a **ceiling**, not a charge. On the canvas, the node shows it as **Up to N credits**. Allowances that a run does not use are released when it settles. An install with no configured price refuses the run before reserving anything.

The quote can include two allowances besides the repair passes:

| Allowance | What it buys |
| --- | --- |
| Admission retries (up to 3, planner only) | Another planner call when the engine refuses a recipe before building it. No build and no render. |
| Mechanical passes (up to 2, no planner) | A build that applies a fix the engine itself worked out, with no planner call. It does not use up your repair passes. |

**Frame size and length.** The render stage is priced per output frame, so a longer scene or a higher frame rate costs more. The price per frame follows the same frame-size ladder as [Render Video](https://nodaro.ai/docs/nodes/video/render-video#what-a-3d-scene-render-costs). Frames up to 1920 pixels on the longest side use the base rate. Larger frames cost 1.5 times the base up to 5.12 megapixels, and 2.5 times above that.

Rendering a stored scene again, through Render Video or with **Existing scene** and no instruction, is billed as an ordinary render. Work completed before a failure, such as an earlier repair pass, is charged as usual.

## What happens when a run does not pass

A visual review checks the built scene, and repair passes answer its objections for as long as the correction budget lasts. A run ends in one of these ways:

| Ending | Is there a video? | What it means |
| --- | --- | --- |
| **Delivered** | Yes | Every check passed, and the review approved the scene. |
| **Delivered, review objected** | Yes | Every required check passed, but the review still objected once the budget was spent. The objections come with the result. |
| **Delivered, not reviewed** | Yes | Every required check passed, but the review gave no usable verdict, so nobody judged the scene. |
| **Failed, draft kept** | No | A required check failed on the last build. The scene that was built is kept as a draft. |
| **Failed, nothing built** | No | The engine refused every recipe. The last recipe may be kept as evidence. |

**When a scene is delivered without approval**, the run completes, the MP4 is real and the credits are charged. Use it as it is, or treat the review's correction as an edit brief: run **Existing scene** with that correction as the **Edit instruction**, which pays for another authoring pass. Direct edits, such as moving, recoloring or hiding objects, are free. A scene that nobody reviewed has no correction to work from, and running the same job again authors a new scene, so judge the MP4 yourself.

**When a run fails but keeps its draft**, there is no MP4, but the draft is an ordinary scene revision:

- **Render it as it is.** Run it as an **Existing scene** with no instruction. That run pays only for the render, and its own checks do not re-judge the draft.
- **Fix it yourself.** Direct edits apply to the draft like any other scene and cost no authoring.
- **Author again from it.** Run it as an **Existing scene** with an edit instruction.

Keeping the draft costs nothing. On the canvas, the node shows the draft and the failure together, also after a page reload, so a scene being present never means the run passed. An edit you made while the run was in progress still wins, and the arriving draft is kept in the revision history.

### Planning errors

| Error | Try again? | Meaning |
| --- | --- | --- |
| `SCENE_PROVIDER_UNAVAILABLE` | Yes, after a few minutes | The planner's model provider was unavailable or overloaded. The brief was not the problem. |
| `SCENE_PLANNING_TIMEOUT` | Yes | Planning took too long. Try again, or shorten the brief and the references. |
| `SCENE_PLANNER_OUTPUT_INVALID` | Not unchanged | The planner answered, but its recipe could not be built. Simplify the brief or use fewer references. |

## Tips
- **Previz first, then Pro.** Block the shot cheaply with [Generate 3D Scene](https://nodaro.ai/docs/nodes/video/generate-3d-scene) and [Edit 3D Scene](https://nodaro.ai/docs/nodes/video/edit-3d-scene), then render the final version here.
- **Export again without authoring.** To export the same scene again, use **Existing scene** with no instruction, or connect **Composition** to [Render Video](https://nodaro.ai/docs/nodes/video/render-video).
- **Lower the budget for drafts.** A **Correction budget** of 0 or 1 limits the paid repair work.
- **Use the stills.** Each shot's still is a ready-made image reference for [Generate Image](https://nodaro.ai/docs/nodes/image/generate-image) or [Generate Video](https://nodaro.ai/docs/nodes/video/generate-video).

## From the API
The API uses two calls for one paid job. `POST /v1/pro-3d-render/quote` takes the request and returns a `quoteId` and `maxCredits`, the ceiling. Quoting reserves and spends nothing. `POST /v1/pro-3d-render` then takes the same body plus the `quoteId`, with an `Idempotency-Key` header of 8 to 255 characters, and returns a `jobId`. A body changed between the two calls is refused, and so is an expired quote. Reuse the same `Idempotency-Key` when you retry a submission that timed out.

```typescript
const caps = await client.scene3d.capabilities();
if (!caps.pro?.available) return; // this install cannot run it

// Author a new scene and render it: quotes and runs in one call.
const shot = await client.scene3d.renderProAndWait({
source: {
kind: "prompt",
prompt: "A red suitcase rolls behind a central pillar and reappears. Dolly right over thirty seconds.",
references: [{ id: "look", kind: "image", role: "appearance", url: appearanceImageUrl }],
},
durationSeconds: 30,
fps: 24,
aspectRatio: "21:9",
maxRepairPasses: 2,
});

// Later: render the same revision again, with no authoring charge.
await client.scene3d.renderProAndWait({
source: { kind: "scene", revisionId: shot.sceneRevisionId, sourceJobId: shotJobId },
});
```

- **The completed job** carries `videoUrl`, `scenePlan`, `sceneRevisionId`, `shotStills` (one `{ shotIndex, frame, assetId, url }` per shot), `validation` and `metadata` with the frame size, frame rate, frames and duration.
- **An unapproved delivery** adds `metadata.review`. Check that field and its `verdict`, `refused` or `unavailable`, rather than `validation.status`, which is `passed` in both cases.
- **A failed job with a draft** still has `scenePlan`, `sceneRevisionId` and a `validation` whose `status` is `failed`.
- **Frame rate.** Through the API, `fps` can be any value from 15 to 60.

AI assistants use the `pro_3d_render` MCP tool, which quotes and submits with the same parameters. See [3D scenes through MCP](https://nodaro.ai/docs/mcp/3d-scenes) and the [3D scenes API](https://nodaro.ai/docs/developers/api/3d-scenes) for every field, warning code and error.

## Frequently asked questions

### What is the difference between 3D Render Pro and Generate 3D Scene?

Generate 3D Scene is a cheap, editable clay previz, and its MP4 comes from a separate Render Video run. 3D Render Pro authors a more detailed scene on a hosted build engine and returns the MP4, the scene and one still per shot in a single run.

### Why can't I find 3D Render Pro in the node picker?

The node appears only on Nodaro Cloud, and only while the Cloud's 3D engine offers it. Self-hosted editions do not offer it. When it is not offered, the node is not listed at all.

### How many credits does 3D Render Pro cost?

There is no fixed price. Each run is quoted first, and the node shows the ceiling as Up to N credits. The price depends on the source, the correction budget, the number of frames and the frame size. Rendering an existing scene without an edit instruction pays for the render only.

### What does it mean when a scene is delivered without the review's approval?

The run completed and the MP4 is real, but the visual review either objected after the correction budget ran out, or could not give a verdict. Use the video, or turn the review's correction into an edit instruction for a new pass.

### What are the stills for?

The Stills output has one image per shot, the frame each shot opens on, at no extra cost. Use a shot's still as the image reference when you generate that shot with an image or video model.
