3DCode
收藏资源简介:
3DCode数据集是3DCodeBench学术基准的开源复现版本,专注于通过代码进行程序化3D建模的评估与训练。该数据集包含两个核心部分:3DCodeBench评估集包含212个类别,每个类别一个规范种子实例,每个实例包含参考工厂代码和两个文本提示,用于基准测试复现;3DCodeData训练集则是一个更广泛的集合,包含212个工厂类别×60个种子=12,720个实例,每个实例提供两个标题变体、四个WebP渲染图、实例代码以及烘焙的白色模式GLB网格文件。数据生成流程基于从Infinigen提取的独立Blender脚本,通过每种子随机化参数生成,标题由LLM生成,渲染图通过Blender 5.0运行工厂代码并捕获四个标准相机角度获得。该数据集适用于文本到3D、图像到3D、代码生成、程序化3D建模等任务,可用于模型训练、监督微调、指令调优以及基于规范网格的几何评分(如Chamfer/Uni3D)。
The 3DCode Dataset is an open-source reproduction version of the 3DCodeBench academic benchmark, focusing on the evaluation and training of procedural 3D modeling via code. This dataset consists of two core components: the 3DCodeBench Evaluation Set and the 3DCodeData Training Set. The 3DCodeBench Evaluation Set contains 212 categories, with one standardized seed instance per category. Each instance includes a reference factory code and two text prompts, designed for benchmark reproduction. The 3DCodeData Training Set is a more extensive collection, comprising 212 factory categories × 60 seeds = 12,720 instances in total. Each instance provides two title variants, four WebP renderings, instance-specific code, and a baked white-mode GLB mesh file. The data generation pipeline is based on standalone Blender scripts extracted from Infinigen, with instances generated by randomizing parameters per seed. Titles are generated by LLMs, while renderings are obtained by running factory codes via Blender 5.0 and capturing four standard camera angles. This dataset is applicable to tasks such as text-to-3D, image-to-3D, code generation, and procedural 3D modeling, and can be used for model training, supervised fine-tuning, instruction tuning, and geometry scoring based on standardized meshes (e.g., Chamfer/Uni3D).
数据集概述:3DCode
3DCode 是一个用于程序化 3D 建模的学术基准数据集,旨在通过代码生成 3D 对象。模型需要编写 Blender 5.0 Python 脚本,执行后构建特定的 3D 物体。
- 许可证:MIT(字幕、渲染、GLB 文件和基准拆分);工厂脚本保留 Infinigen 的 BSD-3-Clause 许可证。
- 语言:英语(en)
- 任务类别:文本到 3D、图像到 3D
- 标签:程序化 3D、Blender、代码生成、基准测试
- 数据集规模:10,000 < N < 100,000 个样本
- 配置:
3DCodeData(训练集,Parquet 格式)
数据集构成
数据集包含两个主要文件夹:
| 文件夹 | 内容 | 用途 |
|---|---|---|
3DCodeBench/ |
评估集:212 个类别,每个类别一个规范种子。包含参考工厂脚本 + 两个文本提示。 | 复现基准测试结果;运行基准任务。 |
3DCodeData/ |
大规模训练集:212 个工厂 × 60 个种子 = 12,720 个实例。每个实例包含:2 个标题变体、4 个 WebP 渲染图、实例代码、一个纯白模式 GLB 文件。 | 训练/SFT/指令微调数据;广泛分析;基于规范 GLB 的 Chamfer/Uni3D 评分。 |
数据结构
3DCodeBench/ 布局
3DCodeBench/ └── <Category>_seed0/ ├── <Category>_seed0.py ← 参考 Blender 5.0 工厂脚本(真值) ├── prompt_description.txt ← 简短的段落标题 └── prompt_instruction.txt ← 详细的结构化说明
3DCodeData/ 布局
3DCodeData/ ├── data/ │ └── train.parquet ← 主数据表,包含预览图、代码、标题 └── <FactoryName><NNN>/ ← 例如 BeetleFactory_000 ├── <FactoryName><NNN>.py ← Blender 5.0 实例脚本 ├── <FactoryName>_<NNN>.glb ← 纯白模式网格(无纹理) ├── captions/ │ ├── caption_object.txt ← 视觉描述 │ └── caption_create_3D_object.txt ← 重建该实例的指令 └── renders/ ├── Image_005.webp ├── Image_015.webp ├── Image_025.webp └── Image_035.webp
数据来源与构建
- 工厂脚本:每个
<Factory>_<NNN>.py是从 Infinigen 提取的独立 Blender 脚本,每个种子随机化参数。 - 标题生成:两个标题变体来自 LLM(Gemini 3.5 Flash),输入包括多视角图像和代码。
- 渲染:在 Blender 5.0 中执行工厂脚本,从四个规范相机角度捕获 WebP 图像。
- 网格:纯白模式 GLB 文件,作为 Chamfer/Uni3D 评分的真值网格。
数据加载示例
使用 datasets 库加载训练集:
python from datasets import load_dataset ds = load_dataset("YipengGao/3DCode", "3DCodeData", split="train") print(ds.column_names)
[factory, preview, caption_object, caption_create_3D_object, code]
按工厂家族过滤:
python beetles = ds.filter(lambda x: x[factory].startswith(BeetleFactory))
下载指定实例的 GLB 网格:
python from huggingface_hub import hf_hub_download fac = ds[0][factory] mesh_path = hf_hub_download(repo_id=YipengGao/3DCode, repo_type=dataset, filename=f3DCodeData/{fac}/{fac}.glb)
引用
bibtex @misc{gao2026threedcodebench, title = {3DCodeBench: Benchmarking Agentic Procedural 3D Modeling Via Code}, author = {Gao, Yipeng and Shu, Lei and Ye, Genzhi and Xiong, Xi and Makadia, Ameesh and Guo, Meiqi and Itti, Laurent and Chen, Jindong}, year = {2026}, howpublished = {url{https://www.3dcodebench.com}} }




