16 7 hours ago

3D focused Qwen3.5 4B fine tune by ccore. Generates self contained Three.js HTML scenes from natural language prompts: voxel architecture, gardens, mechanical objects, animated structures. General coding and tool use. Optimized for on device agents.

tools thinking 4b
ollama run maternion/qwen3.5-3d-coder:4b-q4_K_M

Details

7 hours ago

cdd21f30c2db · 2.7GB

qwen35
·
4.21B
·
Q4_K_M
{{ .Prompt }}
{ "repeat_penalty": 1, "temperature": 0.7, "top_k": 20, "top_p": 0.95 }

Readme

Qwen3.5-4B-3D-Coder

Qwen3.5-4B-3D-Coder is an independent fine-tune by ccore based on Qwen/Qwen3.5-4B. It is not an official Qwen release. An early preview exploring small language models for general-purpose coding and high-quality 3D scene generation with Three.js.

These are Ollama-packaged GGUF quantizations of ccore/Qwen3.5-4B-3D-Coder (Apache-2.0).

Ollama

ollama run maternion/qwen3.5-3d-coder:4b
ollama run maternion/qwen3.5-3d-coder:4b-q8_0

API

Chat with the Three.js system prompt (scene generation):

curl -s http://localhost:11434/api/chat -d '{
  "model": "qwen3.5-3d-coder:4b",
  "messages": [
    {"role": "system", "content": "Use only the Three.js core ES module from https://cdnjs.cloudflare.com/ajax/libs/three.js/0.160.0/three.module.min.js. Do not import addons or legacy examples/js paths; implement any camera controls directly inside the HTML."},
    {"role": "user", "content": "Please create one self-contained HTML file with Three.js from cdnjs showing a canal lock and weir complex with a central island."}
  ],
  "stream": false
}'

Plain chat (general coding):

curl -s http://localhost:11434/api/chat -d '{
  "model": "qwen3.5-3d-coder:4b",
  "messages": [{"role": "user", "content": "Write a Python function to deduplicate a list while preserving order."}],
  "stream": false
}'

Completion:

curl -s http://localhost:11434/api/generate -d '{
  "model": "qwen3.5-3d-coder:4b",
  "prompt": "def deduplicate(lst):",
  "stream": false
}'

OpenAI compatible (/v1)

Use any OpenAI client with base_url set to http://localhost:11434/v1/ and api_key="ollama" (required by the client, ignored by Ollama).

/v1/chat/completions with the Three.js system prompt:

curl -s http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.5-3d-coder:4b",
    "messages": [
      {"role": "system", "content": "Use only the Three.js core ES module from https://cdnjs.cloudflare.com/ajax/libs/three.js/0.160.0/three.module.min.js. Do not import addons or legacy examples/js paths; implement any camera controls directly inside the HTML."},
      {"role": "user", "content": "Please create one self-contained HTML file with Three.js from cdnjs showing a canal lock and weir complex with a central island."}
    ],
    "stream": false
  }'

/v1/chat/completions plain chat:

curl -s http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.5-3d-coder:4b",
    "messages": [{"role": "user", "content": "Write a Python function to deduplicate a list while preserving order."}]
  }'

/v1/completions:

curl -s http://localhost:11434/v1/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.5-3d-coder:4b",
    "prompt": "def deduplicate(lst):"
  }'

Python (OpenAI SDK):

from openai import OpenAI

client = OpenAI(base_url="http://localhost:11434/v1/", api_key="ollama")
response = client.chat.completions.create(
    model="qwen3.5-3d-coder:4b",
    messages=[{"role": "user", "content": "Write a Python function to deduplicate a list while preserving order."}],
)
print(response.choices[0].message.content)

Files

Tag Quantization Size Notes
4b Q4_K_M 2.7 GB default tag
4b-q4_K_M Q4_K_M 2.7 GB alias, same blob
4b-q8_0 Q8_0 4.5 GB near-lossless

October 27 checkpoint update

Both Q4_K_M and Q8_0 now contain the updated October 27 checkpoint. If you downloaded an earlier version, please download the files again to get this update.

In my latest tests, one-shot success has improved substantially, along with overall scene quality. Some scenes can still require another attempt or a correction.

Generation parameters remain unchanged for both quantizations. Use the settings listed below. The earlier fix for the layer-related issue reported by some users is also included.

The comparison below shows the Rome scene across the October 25, 26, and 27 previews.

Rome scene progression across the October 25, 26, and 27 previews

image.png

Release plans — October 28, 2026

Today, October 28, 2026, I will release the full FP16 model weights, the training dataset, and a technical report.

The report will include a variety of prompts and their results across training checkpoints, showing how the model’s behavior and scene quality evolved throughout training.

The full set of quantized versions is also planned.

Generation settings

Use the following settings for both the Q4_K_M and Q8_0 versions:

Parameter Value
Temperature 0.6–0.8
Top P 0.90–0.95
Repeat penalty 1.0
Top K 20–40

System prompt for Three.js scenes

Use only the Three.js core ES module from
https://cdnjs.cloudflare.com/ajax/libs/three.js/0.160.0/three.module.min.js.
Do not import addons or legacy examples/js paths;
implement any camera controls directly inside the HTML.

Example prompts

Use the system prompt above, then try one of these user prompts.

Elephant rehabilitation habitat

Please create one self-contained HTML file with Three.js from cdnjs showing
an elephant rehabilitation habitat.

A broad sheltered yard connects water, shade, and feeding areas through
accessible paths. Use the elephant's scale and movement clearance to guide
the layout around the structures.

Render it as a deliberate 3D voxel model built from visible cubic blocks,
with clear depth, readable silhouettes, and solid spatial relationships.

Dragonrider aerie on a sea stack

Build a self-contained HTML scene with Three.js from cdnjs featuring a
dragonrider aerie on a sea stack, with perches, a hatchery, and a windlass.

The aerie occupies a flat-topped sea stack, reached by a rope windlass from
the shore. Four projecting stone perches ring the central hatchery, a
vaulted cave with sand nests and a smoke hole. A timber landing deck holds
a hoist crane and harness racks, while switchback stairs connect the
perches to a water-level boathouse.

Render it as a deliberate 3D voxel model built from visible cubic blocks,
with clear depth, readable silhouettes, and solid spatial relationships.

Canal lock and weir complex

Please create one self-contained HTML file with Three.js from cdnjs showing
a canal lock and weir complex with a central island.

Animated air traffic control tower

Make a standalone HTML scene with Three.js from cdnjs depicting an animated
air traffic control tower with rotating radar and light signals.

A tapered control tower rises from a rectangular base to a cantilevered
glass cab with angled glazing panels and an external catwalk. A primary
surveillance radar on a roof pedestal turns continuously, and a rotating
beacon sits above the cab.

Screenshots

Sakura Temple Garden

Sunset Village

image.png

Dragonrider Aerie

image.png

Voxel launch site

image.png

The Bookbinding Bench

image.png

LGA 3647 Socket

image.png

Pelican Bike No. 07

image.png

Bow-Front Secretary Desk

image.png

Kōrin Garden

image.png

Sakura bonsai

image.png

Model details

  • Parameters: 4.4B
  • Architecture: qwen35 (Qwen3.5)
  • Base model: Qwen/Qwen3.5-4B
  • Languages: English, Chinese
  • Capabilities: completion, tools
  • Sampling: temperature 0.6–0.8, top_p 0.90–0.95, top_k 20–40, repeat_penalty 1.0

Known issues

The bugs observed so far have generally involved duplicate variable names, rather than major structural problems. Some scenes can still require another attempt or a correction.

Links

License

The base model is licensed under the Apache 2.0 License. This Ollama packaging is a derivative distributed under the same license.