naïve
← Blog
LaunchOctober 17, 2026·Updated October 18, 2026·4 min read

3D assets: generate a model for your video, build a part with code

Two new agent primitives. One turns a prompt or a few photos into a textured 3D model. The other runs a CAD or Blender script on the agent's computer and hands back STEP, STL and GLB.

Launch/3d-assets

TL;DR

  • generate_3d_model turns a prompt or 1–4 photos into a textured GLB, and from a description it can also rig the model with an idle animation.
  • build_3d runs a build123d or Blender script on the agent's own computer, checks the solid, renders previews, and publishes STEP, STL, 3MF, GLB, OBJ or .blend.
  • A generated model is priced for the options it used, from $0.26, and charged only when it finishes. A failed job is free.
  • A build has no fee of its own. It is billed as the computer seconds it uses, the same meter as every other command on that computer.

Two kinds of 3D

A 3D asset is either about how something looks or about its dimensions, and the two need different tools. A product shot, a character for a short, a prop for a scene: these need appearance, and they do not need to be a size. A bracket, an enclosure for a board, a fixture that has to fit a part you already have: these need numbers, and a picture of them is not a specification.

generate_3d_model is the first. It takes a description, or one to four photos of one object, and returns a textured GLB. From a description it can also rig the model and give it an idle animation, which is what you want when the same character has to move in a later clip. It runs as an async media job, the same shape as video, so a render that takes several minutes never holds a turn open. The agent is told the file id when the job finishes, and the file lands in the files library.

build_3d is the second. It runs a Python script in the agent's own computer. build123d is the CAD engine, and it works in millimetres. Blender is the scene engine, and it works in metres. The tool checks the result, reports the bounding box, the volume and the triangle count, and renders preview images the agent looks at before it answers. CAD exports — STEP, STL and 3MF — are published only when the solid is valid and watertight, so a broken part never reaches a printer. When the script fails, the agent gets the error and the line number and fixes the line, then calls the tool again. The first call on a fresh computer installs the toolchain; later calls reuse it.

What each one is for

Use generation when the object is there to be seen. A mascot for a channel, a prop on a desk, a product mock that only has to look like the product. A generated mesh has no units and no tolerances. Its ports and buttons are surface detail. It is the wrong input for anything that must fit, be measured, or be printed to size.

Use the build when the object has a size. An enclosure is a set of dimensions: wall thickness, standoff height, the position of each port. Those belong in the script, and the checks that come back are how you know the script did what it says. A bounding box of 91 by 62 by 26 millimetres is a fact about the file, not a guess from a render.

The two combine. An agent can generate the look of a product, then stage that mesh in a Blender scene next to a part it built, render a keyframe per shot, and hand each keyframe to video generation. Every shot shows the same object because it is the same file. A turntable is cheaper rendered straight from Blender and assembled with the tools the computer already has.

Priced by use

A generated model is priced for the exact options it used, and charged only when it completes. A failed job is free. The price is the published cost of that model and those options, with the platform's media markup, and it is known before the job starts:

  • From a photo, untextured: $0.26. Textured: $0.39. The same rates apply to two to four ordered views of one object.
  • From a photo, the detailed model: $0.65, textured or not.
  • From a description, untextured: $0.52. Textured: $0.78. Textured and rigged, with an idle animation: $0.988.

A build has no fee of its own. It runs on the agent's computer and is billed as that computer's running seconds, on the same meter as a shell command. A two-second CAD build costs well under a tenth of a cent. A preview render is a few seconds more. The result reports compute_seconds, so the agent and the ledger agree on what the call used.

Every surface

Both are agent tools, and both are available everywhere else an agent capability is. Over REST they are POST /v1/media/meshes and POST /v1/computers/{id}/build-3d. The SDK methods are client.media.meshes.create and client.computers.build3d. The CLI commands are vetta media mesh and vetta computer build-3d. The same two calls exist as MCP tools, so an external client drives them the same way an agent does.

The files land in the files library under the 3D kind. A GLB opens in a viewer in the chat: it stays a box until someone asks to see it, because the files are large, and then it can be rotated. STEP, STL and the other CAD files are downloads, with the preview render beside them. Three skills carry the conventions: when to generate and when to build, how to design a part that will print, and how to turn a model into a video.