Ask for a feeding bowl. A small model writes Python. Blender runs it, and a bowl-shaped mesh appears.

Community builder hotocooo has full-fine-tuned Spark-X2.6-4B-Base for that loop: an English description becomes a Blender bpy script. The interesting part is what happens after the code runs—and the author has shared both the objects and the misses.

Four task groups, four different results

The public checkpoint is v3, a full-parameter fine-tune of all 4.1B weights. In the author's tests, the scripts executed and built geometry in 100/100 BlendNet, 60/60 anatomy, 60/60 spatial assembly, and 20/50 3DCode cases. These are separate task suites, not a combined accuracy score.

Author-reported v3 script execution and geometry creation counts, with denominators and limitations

The author used Blender 5.2.1 LTS headless, greedy decoding and one attempt per displayed held-out example. The model card reports Apple M4 Max / 64 GB unified memory. Base/v1 generation used Transformers bf16/MPS, while later stages used llama.cpp with f16 GGUF, so we do not turn the base-to-v3 table into a controlled speed comparison. SparkLLM has not independently rerun these tests.

A bowl and a sandwich

The author asks for a single-compartment feeding bowl, then a sandwich with bread and filling. These are the generated scripts rendered in Blender, shown from two views. Both selected examples have reference fidelity 1.000. That metric checks size, proportions and part count; it is not a photorealism score.

A bowl and a sandwich — first author sample, two views

A bowl and a sandwich — second author sample, two views

Tables and shelves with specified dimensions

The spatial suite asks for dimensions, placement and part counts. The author reports 60/60 scripts building geometry; these table and shelf examples each have reference fidelity 1.000. They show basic assemblies, not finished production assets.

Tables and shelves with specified dimensions — first author sample, two views

Tables and shelves with specified dimensions — second author sample, two views

Doors from code

The two selected 3DCode successes have shape F-scores of 1.000 and 0.996. The whole suite is harder: only 20/50 scripts execute and build geometry. These successful examples do not represent the full set.

Doors from code — first author sample, two views

Doors from code — second author sample, two views

A starting point for sculpting

The anatomy suite reports 60/60 scripts building geometry. These cat and human examples are base meshes. Fine faces, muscles and finished sculpting are outside the demonstrated result.

A starting point for sculpting — first author sample, two views

A starting point for sculpting — second author sample, two views

The prompt can survive while the details disappear

The author also publishes weaker BlendNet outputs: reference fidelity 0.219 for the logo and 0.393 for the bottle. A script can run without producing what the user intended.

The prompt can survive while the details disappear — first author sample, two views

The prompt can survive while the details disappear — second author sample, two views

Harder objects expose the gap

These 3DCode examples have F-scores of 0.000 and 0.094. Empty or poor renders are part of the source evidence, not missing illustration assets. They belong beside the successes.

Harder objects expose the gap — first author sample, two views

Harder objects expose the gap — second author sample, two views

Anatomy still needs inspection

The author ranks these among the weaker anatomy examples, with reference fidelity 0.920 each. High structural scores still leave a human review step.

Anatomy still needs inspection — first author sample, two views

Anatomy still needs inspection — second author sample, two views

Spatial assemblies are not automatically perfect

The weaker grid examples have reference fidelity 0.756 and 0.862. Correctly executing code and satisfying all geometric requirements remain separate goals.

Spatial assemblies are not automatically perfect — first author sample, two views

Spatial assemblies are not automatically perfect — second author sample, two views

Why this is an interesting community build

The training pipeline checks generated scripts in Blender rather than trusting code that merely looks plausible. The author reports 11,653 of 12,059 raw BlendNet rows passing the Blender check, split into 11,353 training rows and 300 held-out rows; the displayed BlendNet evaluation uses the first 100 held-out rows. Rejection sampling generates multiple candidates and keeps winners that meet topology and fidelity conditions.

The results also show the limits of specialization. The model card calls open-world objects weak; v3 has 0% exact success on the listed extreme task metric and 0% hard-constraint success. General-text perplexity rises from 9.73 to 10.44 in the author's v3 comparison. This is a focused experiment in code-driven base meshes, not a universal 3D artist.

Try a small object of your own

Start with a simple bowl, stool or shelf using the author's prompt format and setup. This is a completion model, not a chat model; the card specifies Transformers 4.57.1 and Blender 5.x. The output is Python that Blender must execute. Use an isolated Blender environment without unsaved work.

What would you ask it to build—and which detail would you inspect first?

Credit and reproducibility: community model, original renders and reported results by hotocooo; base model by the SparkLLM team. Source snapshot: 061fec4c9def10e8b76a5973b50d364815fa6225. Original renders are preserved inside the new layouts; chart and layout by SparkLLM. Source license: Apache-2.0. This article contains one data chart and 16 paired example panels showing all 32 published evaluation renders; the separate anatomy training image is intentionally not presented as an evaluation result.