Build a rough 3D set from boxes, spheres, planes, cylinders, tori, and lights. Move things by hand or ask the agent to do it, then render the scene as a reference image for a shot.
Quick access: Click the + button in the workspace tab bar and choose New 3D model, or open a
.glbor.gltfasset and switch its tab to edit mode.
What a 3D model is
A 3D model in NodeTool is a glTF asset. The editor reads and writes .glb and .gltf files only. A new model is a .glb, and Save always writes binary glTF back over the same asset. The asset id does not change, so anything that points at it keeps working.
| File | Opens in the editor | Notes |
|---|---|---|
.glb, .gltf |
Yes | Editable and saveable |
.obj, .fbx, .stl, .ply, .usdz |
No | The tab opens, but the viewer reports that the format is not supported. Supported formats are .glb and .gltf |
When a model is not editable, or the tab is in view mode, you get the viewer instead. The viewer orbits, zooms, and toggles the grid, axes, and wireframe. See Asset Management.
Creating or opening a model
There are four ways in.
- New model. Click + in the workspace tab bar and choose New 3D model. NodeTool creates an asset in the current project that holds a single box named “Box”, and opens it in edit mode.
- From an asset. Open a
.glbor.gltfin the asset viewer and click Edit in 3D Editor. This button appears for assets in your library. - From the examples. On the Examples page, open the 3D models tab. It lists low-poly game models in six packs: Adventure, Dungeon, Platformer, Seaside, Sci-fi, and Sci-fi outpost. Open model copies the model into the current project and opens the copy in edit mode, so the original stays untouched.
- From the agent. Ask the agent to create a model, as described under Asking the agent.
Layout
The editor has a toolbar across the top and three panels under it.
- Scene on the left is the outliner.
- The viewport is in the middle.
- Properties is on the right.
- Assistant is an optional chat panel on the far right. You can resize it.
The viewport starts with the camera at a three-quarter view, shows a ground grid, and lights the scene with a studio environment. That lighting is for editing only. It is not saved into the model and does not count as a light in the scene.
Toolbar
| Control | What it does |
|---|---|
| Translate, rotate, scale toggle | Sets the gizmo mode. Shortcuts: G, R, S |
| Add | Adds a shape or light. See Adding and deleting objects |
| Delete | Removes the selected object and its children. Shortcut: Delete or Backspace |
| Frame scene | Fits the camera to everything in the scene |
| Toggle grid | Shows or hides the grid |
| Assistant | Shows or hides the chat panel. NodeTool remembers whether you left it open |
| Save | Writes the scene back to the asset. Shortcut: Ctrl+S or Cmd+S |
| Close | Returns the tab to view mode |
The shortcuts work only while this editor is the visible tab.
The outliner
The Scene panel lists every object in the scene as a tree, with children indented under their parent. Each row shows an icon for the object type (mesh, light, camera, or group), its name, and an eye button that hides or shows the object. An empty scene shows “Scene is empty”.
Click a row to select the object. Click empty space in the viewport to clear the selection.
Adding and deleting objects
Add opens a menu with seven entries:
| Entry | Starts as |
|---|---|
| Box | 1 x 1 x 1 |
| Sphere | Radius 0.5 |
| Plane | 2 x 2, laid flat |
| Cylinder | Radius 0.5, height 1 |
| Torus | Radius 0.5, tube 0.2 |
| Directional Light | White, intensity 1, placed at 2, 3, 2 and aimed at the origin |
| Point Light | White, intensity 1, placed at 0, 2, 0 |
New shapes get a light grey material with low metalness and high roughness. Each new object gets a unique name, so you can address it later by name.
There is no entry for cameras or spot lights. A camera or spot light that comes in with an imported model shows up in the outliner.
Transforms and the gizmo
Select an object and a gizmo appears on it. Drag the gizmo handles to move, rotate, or scale the object. Switch modes with the toolbar toggle or the G, R, and S keys.
For exact values, use the Object tab in the Properties panel. Position, Rotation, and Scale each have X, Y, and Z fields. Rotation is in degrees. The numbers update while you drag the gizmo.
Children move with their parent, because transforms are relative to the parent in the tree.
Properties
The Properties panel has up to three tabs. Which ones appear depends on what you selected.
Object
Every object has the Object tab:
- Name, Visible, Frustum Cull, and Render Ord
- Cast Shadow and Recv Shadow for meshes
- A Transform section with Position, Rotation, and Scale
- A Light section for lights, described next
Lights
A light has Color and Intensity. A point light also has Distance and Decay.
A directional light shines down its own forward axis. Use the rotate gizmo to aim it. Lights are written into the file with the glTF KHR_lights_punctual extension, so other glTF tools read them.
Geometry
Shapes you added from the Add menu get a Geometry tab. It edits the size and segment counts of that shape and rebuilds the mesh live. A box has width, height, depth, and segments. A sphere has radius, segments, and angle ranges. The plane, cylinder, and torus have their own sets.
Meshes that arrive inside an imported model have no editable geometry parameters, so they have no Geometry tab.
Material
Meshes get a Material tab. It has:
- Colors: Color, Emissive, and a few specialty colors
- Sliders: Metalness, Roughness, Emissive intensity, Opacity, and the physical-material set (Clearcoat, Sheen, Transmission, Iridescence, IOR, and others)
- Toggles: Transparent, Wireframe, Flat Shading, Depth Test, Depth Write, and others
- Side, with Front, Back, and Double
For a blockout, Color, Roughness, and Metalness are usually enough.
Asking the agent
Click the sparkle button in the toolbar to open the Assistant panel. It is labeled “3D Assistant” and suggests prompts such as “add a red box and a sphere above it”, “make the floor blue”, and “list everything in the scene”.
While the editor is the visible tab, the agent works on the live scene, and you see each change as it happens. It can:
- List the scene and read the selection
- Add shapes and lights, and select, rename, show, hide, or delete objects
- Set position, rotation (degrees), and scale
- Set a mesh’s material color
- Frame the scene and capture a screenshot of the viewport, which it can look at to check its own work
Objects are addressed by id or by name, and names are matched without regard to case. Duplicate names make that ambiguous, so give objects distinct names.
The agent changes the open scene. Changes are not on the asset until you press Save.
Outside the editor, the agent can also work on a model by asset id with no editor open. It can list models, create a model (optionally building the whole scene in the same call), read the scene with its bounds, apply up to 60 edit operations in one call, and validate the glTF. These edits save straight to the asset, and an open editor reloads it. See the nodetool-3d-scene skill for the operation list.
A few things need an open editor with a working WebGL context: framing the scene and capturing the viewport.
Rendering a shot reference
The editor viewport is a quick preview. For a rendered image, the agent has a render_model3d tool that renders a saved model through headless Blender and store the result as a PNG image asset.
The editor has no Render button. You ask the agent for the render in chat, for example “render the set from a low angle at 1920 by 1080”. The render takes these settings:
| Setting | Default | Notes |
|---|---|---|
| Camera | Scene camera if the model has one, otherwise an orbit camera | Orbit cameras take azimuth (45 degrees), elevation (25 degrees), field of view (35 degrees), and a zoom multiplier |
| Size | 1024 x 1024 | Plus a resolution percentage |
| Lighting | studio |
Presets are studio, soft, and flat. Used only when the scene has no lights of its own |
| Light intensity | 1 | Multiplies the preset lights |
| Background | #808080 |
Or transparent |
| Engine | eevee |
cycles is slower and higher quality |
| Samples | 16 | Denoise is on by default and applies to Cycles |
Requirements and behavior:
- Blender 5.2 or newer must be installed on the machine that runs the NodeTool server. NodeTool looks at
BLENDER_PATHfirst, thenblenderonPATH, then the usual install locations. SetBLENDER_PATHto the executable if it is not found. - Rendering is off on cloud deployments. It is available on the desktop app, a local server, and a self-hosted install. A server without Blender answers with an error that names the missing install.
- The render reads the saved asset. Press Save before you ask for a render, or the image will not show your latest edits.
- A render can run in the background. The agent gets a generation id and collects the finished image later.
- The result is an image asset in your library, so you can use it anywhere an image goes.
If you prefer a graph, the Blender nodes (nodetool.blender.RenderImage, RenderAnimation, RenderPasses, PrepareForEngine, and ExportModel) use the same Blender install.
Exporting
Save is the export. It serializes the scene to a .glb and updates the asset, then shows “Saved” with the asset name. Animations that came with an imported model are kept. Open the asset in the Asset Explorer to download or reuse the file like any other asset. See Asset Management.
Using a model elsewhere
- Workflows. Drag the asset from the Asset Explorer onto the canvas to add a
nodetool.constant.Model3Dnode. - Timelines. The timeline add menu has a 3D model entry that lists the glTF assets in your library and places the one you pick as a clip on a video or overlay track. You can also drag the asset onto a track. See Video Editor.
- Image references. A rendered PNG is an ordinary image asset, so you can drop it into a sketch or use it as a reference in an image workflow.
The editor has no direct link to the storyboard surface. Use a rendered image asset to bring a set into one.
Limits
- Only
.glband.gltffiles open in the editor. - You cannot add cameras or spot lights from the Add menu, and you cannot add new materials or textures. You can change existing material values.
- The viewport camera is not saved. It is for looking around, not for authoring a shot.
- The editor has no render button. Rendering goes through the agent and needs Blender 5.2 or newer on the server, and it is unavailable on cloud deployments.
- The agent can work on the live scene only while the editor is the visible tab.
- A render uses the saved asset. Unsaved edits do not appear in it.
- One
edit_model3dcall applies at most 60 operations.