Introduction

A USC-led team (with Yale, Rochester, UCSD, Columbia, NTU, UC Santa Cruz, Google DeepMind and Philo Labs) has published 3DCodeVerse, an open toolkit that gets coding agents to build 3D assets as raw, runnable code instead of meshes. The output is Blender Python, Three.js, URDF, CadQuery, GLSL or OpenGL. The paper went up on Oct 15 and hit Hugging Face Daily Papers on Oct 16. The GitHub repo ships the Apache 2.0 harness, eval stack and fine-tuning recipes, and a first slice of the dataset is live (gated, non-commercial) on Hugging Face.

Why game builders should care: a prop written as a Blender script or a Three.js page stays editable. You can change a parameter, re-seed it, or diff it in git, and you're not stuck re-prompting a frozen mesh.

What shipped

  • Name and vendor: 3DCodeVerse, from Yipeng Gao, Laurent Itti and co-authors (USC iLab is the lead lab; the dataset lives under ilabai)
  • Modality: text or image to 3D code. There are four tracks: static_object, articulated_object, scene and graphics
  • Open vs API: the harness code is Apache 2.0. The datasets are CC BY-NC-SA 4.0, gated behind an access form, and for non-commercial research only. No fine-tuned model weights have been released yet; the repo ships the training recipes
  • Where to run today: locally on Linux x86_64 with Python 3.13 and Node 20.6+ (Blender 5.2 LTS optional). The coding agent is a vendor CLI you already use, such as Antigravity (agy) for Gemini, claude-code or codex, so you pay your own model bill
  • Languages: Blender bpy, CadQuery, Three.js, URDF, scene-level Three.js, GLSL and OpenGL

How the harness works

A planner model sets the target. A DAG of sub-agents then writes the 3D program, and every round gets three kinds of feedback:

  1. Execution: build and runtime logs
  2. Measurement: dimensions, contacts, collisions, joint sweeps and placement, with numeric fix hints for each part
  3. Vision: a rubric-guided VLM judge looking at labelled multi-view renders

The measurements can veto what the judge thinks it sees. Failures turn into small repair tasks, the best-scoring round becomes the deliverable, and every round is logged as training data. The team says the harness beat each model's own native agent on 100 text-to-3D object prompts. Human preference went from 21% to 79% for Claude Opus 5.5 inside Claude Code, and from 13% to 87% for Gemini 3.8 Flash inside Gemini CLI.

Try it

git clone https://github.com/gaoypeng/3dcodeverse
cd 3dcodeverse
bash harness/setup.sh
3dcode make "a mossy stone shrine with a wooden gate" --track static_object --language blender
3dcode make "a treasure chest with a hinged lid" --track articulated_object --language urdf_blender
3dcode make "a small japanese garden at dusk with a koi pond" --track scene --language scene_threejs
3dcode gallery serve

The articulated track is the one to watch for game props. It produces a URDF with real joints, so a chest lid or a door swings on a defined hinge instead of being baked into the mesh.

What it costs

The repo's own cost audit is unusually honest:

TrackRunsCost per runPassedCost per passing asset

static_object

37

$1.47

23

$2.37

articulated_object

13

$1.33

8

$2.17

scene

5

$2.78

0

none yet

graphics (shaders)

6

$0.10

5

$0.12

Across 61 runs the total was $86.30, with a median of $0.95 per run. The team itself flags $27.35 of that as waste. Shaders are about 18 times cheaper per passing result than objects. Full scenes had not produced a single passing artifact in that dataset.

The dataset

The paper describes 3DCodeVerse-2M, about 2M executable 3D programs. What's downloadable today is much smaller. The card lists Infinigen-derived Blender objects (4,390 hand-curated, or 25,428 if you take every seed; BSD-3), 6,343 Bioinspired3D Blender samples (MIT), and 490 single-file Three.js scenes written by coding agents (CC BY 4.0), each kept only if it ran with zero JavaScript errors. The Blender samples each ship with code, a GLB mesh, four renders and captions. Shadertoy (around 120K), DeepCAD (around 174K) and Articraft (around 10K) are still marked as being captioned.

Fine-tuning helps open models a lot. Qwen3.5-9B went from 1.9% to 90.3% executable Blender code after SFT. Qwen3.8-27B with SFT plus DPO hit 92.5% on Three.js.

Caveats

  • Non-commercial data. The harness is Apache 2.0, but the corpus is CC BY-NC-SA, so keep it out of commercial training runs
  • You bring the agent. Every serious run calls a paid frontier model through its CLI. Budget roughly $1–3 for each object that passes
  • Scenes aren't there yet. By the team's own numbers, whole-scene generation is the weak track, so treat this as a prop and shader tool for now
  • No CI, Linux only. The README says tests run locally before each push

Original Source

https://huggingface.co/papers/2610.22341

https://github.com/gaoypeng/3dcodeverse

https://huggingface.co/datasets/ilabai/3dcodeverse

https://3dcodeverse.com

Conclusion

3DCodeVerse is less a model than a loop: agent writes 3D code, harness runs and measures it, judge scores the renders, agent fixes it. For game teams, the useful part today is cheap, editable shader and prop generation with real joints, and you can read every line it outputs. Clone the harness, point it at the agent CLI you already pay for, and start with the graphics and articulated tracks.

—Titus