跳至主要內容

工具與應用

Qwen3.5-4B-3D-Coder 與 ThreeJS-3D-Scenes:以 4B 輕量模型生成互動式 Three.js 3D 場景

開源 4B 輕量級程式碼模型 Qwen3.5-4B-3D-Coder 搭配包含 4,146 筆完整推理軌跡的 ThreeJS-3D-Scenes 資料集,能根據文字指令或參考圖片直接生成可在瀏覽器執行的互動式 Three.js 3D 場景網頁。

Qwen3.5-4B-3D-Coder 與 ThreeJS-3D-Scenes:以 4B 輕量模型生成互動式 Three.js 3D 場景

在 3D 內容生成領域,除了直接輸出網格(Mesh)或神經輻射場(NeRF)的視覺模型外,透過程式碼程序化建構(Procedural Generation)3D 場景成為另一條具實用價值的技術路線。由獨立開發者 CCORE 釋出的 ccore/Qwen3.5-4B-3D-Coder 模型與 ccore/ThreeJS-3D-Scenes 資料集,展示了僅 4B 參數規模的小型語言模型(SLM),在經過針對性微調後,如何直接根據自然語言指令或參考圖片,輸出單一且可直接在瀏覽器執行的 Three.js 互動式 3D 場景 HTML 檔案。

核心項目總覽:模型與訓練資料集規格對照

這項開源計畫包含微調後的模型權重(含 Safetensors 與 GGUF 量化版本)、多模態視覺投影器(Vision Projector)、技術報告,以及完整公開的訓練資料集。以下整理兩個核心儲存庫的關鍵規格:

項目維度模型儲存庫 (ccore/Qwen3.5-4B-3D-Coder)資料集儲存庫 (ccore/ThreeJS-3D-Scenes)
核心定位通用程式編寫與 Three.js 互動式 3D 場景生成微調模型自然語言指令轉 Three.js 3D 場景之程式碼與推理軌跡資料集
基礎模型 / 資料來源微調自 Qwen/Qwen3.5-4B(非官方獨立微調)由 MiniMax M3.1 Flash 生成並整理
規模與容量約 4B 參數(FP16 四個分片、Q8_0 為 4.48 GB、Q4_K_M 為 2.71 GB)共 4,146 筆場景範例(3,933 筆訓練集 / 213 筆驗證集,Parquet 格式約 1.5 GB)
多模態能力支援文字轉 3D,並可搭配 BF16 視覺投影器(約 644 MiB)實現圖片引導 3D 生成內建 previews 子配置,提供與場景 ID 對應的渲染參考預覽圖
開源授權Apache-2.0 LicenseMIT License

Qwen3.5-4B-3D-Coder 模型特色:從單純寫碼到視覺引導 3D 建構

ccore/Qwen3.5-4B-3D-Coder 的核心目標是驗證小型語言模型在通用程式設計與高品質 3D 場景生成上的可行性。不同於傳統 3D 資產生成模型輸出難以直接修改的二進位模型檔,此模型輸出的是包含 HTML 與 JavaScript 的單一檔案,直接呼叫 Three.js 核心 ES 模組進行程序化建模(explainx.ai 技術評析)。這種方式讓產出的 3D 場景具備可編輯、可做版本差異比對(Diffable),以及免安裝直接在瀏覽器預覽的特性。

1. 持續迭代的 Checkpoint 與單次生成成功率提升

開發者於 2026 年 10 月下旬陸續釋出多個訓練檢查點(Checkpoints),並在 技術報告 PDF 與模型卡中展示了「羅馬古蹟場景(Rome Scene)」在 10 月 25 日、26 日至 27 日三個版本的演進對比。在 10 月 27 日更新的 Checkpoint 中,模型單次生成(One-shot)的成功率與整體幾何層次感顯著提升,能建構出包含競技場、羅馬廣場與萬神殿的立體方塊結構、樹木、微型人物與地標標籤。官方展示的早期範例涵蓋多元題材:

  • 建築與景觀:櫻花寺廟庭園(Sakura Temple Garden)、日落村莊(Sunset Village)、琳派庭園(Kōrin Garden)、運河水閘與堰體設施(Canal Lock and Weir Complex)。
  • 體素(Voxel)與奇幻場景:海蝕柱上的龍騎士巢穴(Dragonrider Aerie)、體素火箭發射場(Voxel Launch Site)、大象復育棲息地(Elephant Rehabilitation Habitat)。
  • 精密物件與室內工作區:裝訂工作台(The Bookbinding Bench)、LGA 3647 CPU 插槽、Pelican 07 號單車、弧面秘書桌(Bow-Front Secretary Desk)、動態旋轉雷達塔台(Animated Air Traffic Control Tower)。

2. 支援圖片引導(Image-Guided)的 Three.js 場景生成

在 2026 年 10 月 30 日的更新中,模型檔案庫新增了對多模態視覺輸入的支援。由於微調源自 Qwen/Qwen3.5-4B,使用者只要額外下載約 644 MiB 的 mmproj-Qwen3.5-4B-BF16.gguf 視覺投影器,即可在 Q4_K_M 或 Q8_0 量化版本中附上參考圖片,要求模型依據圖片的構圖與風格撰寫 Three.js 程式碼(例如輸入浮空島上的橘色體素樹參考圖,搭配簡短指令 create this scene using voxels 3d 產出對應的 3D 互動網頁)。

3. 權重格式與硬體記憶體需求

儲存庫提供完整的 FP16 Safetensors 原始權重與 GGUF 量化檔(已透過 Transformers 5.20.2 本地驗證)。根據 Spheron Network 硬體評估資料,若以 FP16 精度執行推論,峰值 VRAM 需求約為 9.2 GB;若採用 2.71 GB 的 Q4_K_M GGUF 量化版本或社群維護的 prithivMLmods/Qwen3.5-4B-3D-Coder-GGUF 多種量化規格,一般消費級顯卡或 Apple Silicon 設備皆可在本地順暢執行。

ThreeJS-3D-Scenes 資料集解析:包含完整思考軌跡的 4,146 筆範例

支撐上述模型能力的關鍵,是同步以 MIT 授權開源的 ccore/ThreeJS-3D-Scenes 資料集。該資料集使用 MiniMax M3.1 Flash 產出並整理,專為訓練與評估「自然語言轉 3D 場景程式碼」的模型所設計。

資料集欄位結構與規模

資料集以 Parquet 格式封裝,保留原始的 3,933 筆訓練集(Train)與 213 筆驗證集(Validation),總計 4,146 筆不截斷的完整資料。開發者可直接透過 Hugging Face Dataset Viewer 線上檢視每筆紀錄。其核心資料表欄位設計如下:

欄位名稱資料型別欄位內容說明
idString穩定的場景唯一識別碼(如 scene-000013),與 previews 預覽圖配置共用對齊
titleString可讀的場景名稱(如 Dragonrider Aerie、Optical Telescope Dome Cutaway)
levelInteger標註之場景複雜度等級,範圍為 1 至 10(屬於資料集複雜度標註,非模型評測分數)
domainString場景所屬的主題領域分類
voxelBoolean布林值,標記該場景是否採用體素(Voxel)方塊風格建構
messagesList完整對話結構,包含系統提示詞(System)、使用者指令(User),以及助理回覆(Assistant);助理訊息中同時提供 reasoning_content(完整思考推理軌跡)與 content(完整 HTML/JavaScript 程式碼)

此外,資料集提供選用的 previews 子配置,內含與預設配置完全對齊的 id、title、level 與渲染後的靜態參考圖(image)。透過將完整的推理過程(Thinking Traces)與最終程式碼一併納入訓練,小型模型得以在輸出長篇 Three.js 幾何組合與材質光影程式碼前,先建立清晰的空間佈局與結構規劃。

本地部署與最佳推論實踐指南

要在本地端運行 ccore/Qwen3.5-4B-3D-Coder 並獲得穩定的 Three.js 場景輸出,建議遵循官方模型卡提供的推論設定與系統提示詞規範。

1. 建議採樣參數與環境注意事項

無論使用 Q4_K_M、Q8_0 或 FP16 權重,官方建議採用以下生成參數組合,並在部分前端工具中調整特定設定:

  • Temperature(溫度):0.6 至 0.8(FP16 預設為 0.6)
  • Top P:0.90 至 0.95(FP16 預設為 0.95)
  • Top K:20 至 40(FP16 預設為 20)
  • Repeat Penalty(重複懲罰):1.0
  • LM Studio 特別設定:若在 LM Studio 中載入此模型,務必關閉多詞元預測(Multi-Token Prediction, MTP)。LM Studio 預設會開啟此功能,若未關閉將導致模型輸出異常。
  • 已知問題說明:目前觀察到的程式碼瑕疵主要集中在偶發的「重複變數名稱(Duplicate variable names)」,而非嚴重的 3D 結構崩壞;遇到時重新生成或手動修正變數命名即可正常渲染。

2. Three.js 專用系統提示詞(System Prompt)

為了避免模型匯入過時的擴充路徑或外部模組導致網頁無法獨立運行,推論時應掛載以下官方系統提示詞,強制模型僅使用單一 CDN 核心模組並在 HTML 內自行實作相機控制:

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.

3. 快速啟動指令(llama.cpp、Ollama 與 Python 讀取資料集)

模型支援主流本地推論引擎,包括 llama.cpp、Ollama(亦可參考社群打包的 maternion/qwen3.5-3d-coder)、Docker Model Runner、LM Studio、Pi 與 OpenClaw:

# 方式一:使用 llama.cpp 直接從 Hugging Face 啟動本地伺服器與 Web UI
llama serve -hf ccore/Qwen3.5-4B-3D-Coder:Q4_K_M

# 方式二:使用 llama-server 載入模型並掛載 BF16 視覺投影器(支援圖片轉 3D 場景)
llama-server \
  -m Qwen3.5-4B-3D-Coder-Q4_K_M.gguf \
  --mmproj mmproj-Qwen3.5-4B-BF16.gguf \
  --n-gpu-layers all --flash-attn on \
  --ctx-size 65536 --parallel 1

# 方式三:使用 Ollama 直接拉取並執行量化版本
ollama run hf.co/ccore/Qwen3.5-4B-3D-Coder:Q4_K_M

若想在 Python 環境中載入 ccore/ThreeJS-3D-Scenes 資料集進行微調實驗或檢視推理軌跡與預覽圖,可使用 Hugging Face datasets 套件:

from datasets import load_dataset

# 載入預設的對話、思考軌跡與程式碼資料集
dataset = load_dataset("ccore/ThreeJS-3D-Scenes")
sample = dataset["train"][0]

messages = sample["messages"]
thinking = messages[-1]["reasoning_content"]  # 完整推理思考過程
response = messages[-1]["content"]            # 完整 Three.js HTML/JS 程式碼
level = sample["level"]                       # 場景複雜度 (1-10)

# 載入對應的渲染預覽圖片配置 (previews)
previews = load_dataset("ccore/ThreeJS-3D-Scenes", "previews")
assert previews["train"][0]["id"] == sample["id"]
image = previews["train"][0]["image"]

相關連結

謝謝你,讀到這裡。

保持好奇,明天繼續探索。

© 2026 Communeify. All rights reserved.