BrickGPT
BrickGPT 是一款革命性的 AI 工具,能够直接将文字描述转化为物理结构稳定且可实际搭建的乐高积木模型。作为该领域的首个解决方案,它有效解决了传统生成式 AI 往往只关注外观而忽略重力与连接逻辑,导致生成的模型在现实中无法拼搭或容易倒塌的核心痛点。
这项技术由卡内基梅隆大学团队研发,并荣获 ICCV 2025 最佳论文奖(Marr Prize)。其独特亮点在于引入了基于物理的稳定性分析机制(支持 Gurobi 求解器),确保每一块积木的堆叠都符合力学原理,同时还能自动生成丰富的纹理与色彩。用户只需输入如“一座带花园的城堡”等提示词,即可获得详细的搭建方案。
BrickGPT 非常适合多类人群使用:创意设计师可利用它快速原型化构思;教育者与研究人员能借此探索具身智能与物理常识的结合;即使是普通乐高爱好者,也能通过它将天马行空的想象变为手中可触摸的现实作品。目前项目已开源,提供了从模型推理到可视化渲染的完整流程,欢迎各界开发者与创作者体验这一连接数字创意与物理世界的桥梁。
使用场景
一位独立玩具设计师正试图将脑海中“一座带有拱门和塔楼的复古城堡”创意快速转化为可实际拼搭的乐高式积木模型,用于众筹展示。
没有 BrickGPT 时
- 物理结构不可行:手动设计或普通 3D 生成工具产出的模型往往违反物理规律,积木之间缺乏有效咬合,实物拼搭时极易倒塌。
- 迭代成本高昂:设计师需反复在 CAD 软件中调整砖块位置以测试稳定性,单个复杂结构的验证耗时数小时甚至数天。
- 专业门槛过高:确保大型结构稳定需要深厚的静力学知识,普通创意人员难以掌握复杂的受力分析技巧。
- 从概念到实物断层:文本创意无法直接映射为具体的砖块型号与坐标列表,中间依赖大量人工转换,创意流失严重。
使用 BrickGPT 后
- 原生物理稳定:BrickGPT 基于 ICCV 最佳论文算法,直接生成符合重力与连接约束的模型,确保输出的每一块砖都能稳固咬合。
- 秒级方案生成:只需输入“复古城堡”等自然语言提示,几分钟内即可获得完整的、可执行的积木搭建指令,大幅缩短研发周期。
- 自动化受力分析:内置(或可选配 Gurobi)物理引擎自动校验结构强度,无需用户具备工程学背景即可得到专业级的稳固方案。
- 端到端创意落地:直接将文本描述转化为带纹理、颜色的具体砖块清单(LDraw 格式),无缝衔接 3D 预览与实物采购。
BrickGPT 的核心价值在于打破了文本创意与物理实体之间的壁垒,让任何人都能一键生成既美观又符合物理定律的可拼搭积木模型。
运行环境要求
- 未说明
未说明 (基于 Llama-3.2-1B 模型,通常建议具备 CUDA 支持的 NVIDIA GPU)
未说明

快速开始
BrickGPT
从文本生成物理稳定且可搭建的积木结构
ICCV 2025(最佳论文,马尔奖)
Ava Pun*,
Kangle Deng*,
Ruixuan Liu*,
Deva Ramanan,
Changliu Liu,
Jun-Yan Zhu
卡内基梅隆大学
这是 BrickGPT 的官方仓库,它是首个能够根据文本提示生成物理稳定的玩具积木模型的方法。
结果
由人类组装的生成积木结构示例:
带有纹理和颜色的积木模型示例:
安装
先决条件
- Llama-3.2-1B-Instruct: BrickGPT 基于 meta-llama/Llama-3.2-1B-Instruct 进行微调,该模型属于受控访问模型。请先 申请访问权限,然后生成一个 Hugging Face 用户访问令牌,并将其设置为环境变量:
export HF_TOKEN=<your_token>。运行代码时,模型将自动下载。 - Gurobi(可选但推荐): 运行稳定性分析需要使用 Gurobi 的许可证。学术用户可以从 Gurobi 官网 申请免费许可证;获得许可证后,请将其放置在您的 主目录 或其他 推荐位置。
- 如果您无法使用 Gurobi,可以使用
--use_gurobi False选项来运行代码,此时将采用一种更简单但准确性较低的基于连通性的方法,而非基于物理的稳定性分析。
- 如果您无法使用 Gurobi,可以使用
作为独立项目安装
本仓库使用 Python 项目管理工具 uv。要将本仓库作为独立项目安装,请先完成所有先决条件。然后:
- 克隆仓库:
git clone https://github.com/AvaLovelace1/BrickGPT.git && cd BrickGPT。 - (可选,运行
infer脚本和纹理化功能时必需) 按照以下步骤安装 ImportLDraw,这是渲染积木结构可视化效果所必需的:- 使用
git submodule update --init初始化 ImportLDraw 子模块。 - 下载此 背景 exr 文件,并将其放置在
ImportLDraw/loadldraw子目录中。 - 下载 LDraw 部件库,并将其解压到您的 主目录:
(cd ~ && wget https://library.ldraw.org/library/updates/complete.zip && unzip complete.zip)。- 如果您希望将 LDraw 部件库放在其他目录,请设置环境变量
LDRAW_LIBRARY_PATH,指向ldraw目录的路径:export LDRAW_LIBRARY_PATH=path/to/ldraw。
- 如果您希望将 LDraw 部件库放在其他目录,请设置环境变量
- 使用
- 最后,安装 uv,并运行
uv sync创建一个包含所有依赖项的 Python 虚拟环境。Python 依赖项定义在pyproject.toml中。
作为包安装
要将本仓库作为包安装到您自己的 Python 项目中,请先完成所有先决条件。然后,如果您使用 uv:
uv add "https://github.com/AvaLovelace1/BrickGPT.git"
或者如果您使用 pip:
pip install "https://github.com/AvaLovelace1/BrickGPT.git"
交互式推理
Gradio 演示
Gradio 演示在此处可用。 其源代码位于子目录 src/demo 中。
命令行界面 (CLI)
您可以通过命令行运行 BrickGPT 推理,命令如下:
uv run infer
该脚本会启动一个交互式会话,您可以输入提示并从模型中获取响应。模型权重将自动从 Hugging Face 下载。
如果您希望使用不同的模型权重进行推理,可以使用 --model_name_or_path 选项指定。有关完整选项列表,请参阅 uv run infer -h。
示例交互
以下是使用 infer 脚本的示例交互:
> uv run infer
请输入提示,或按回车退出:一张桌子,具有平坦的矩形桌面,由四条均匀分布的腿支撑。
请输入保存输出图像的文件名(默认为 output.png):output.png
请输入生成种子(默认为 42):42
正在生成...
设置参数 Username
学术许可证——仅限非商业用途——有效期至 2026 年 2 月 19 日
--------------------
生成完成,耗时 63.53 秒。
总砖块数:59
总拒绝砖块数:98
拒绝原因:{'collision': 5, 'already_rejected': 93}
总重试次数:4
结果已保存到 /home/apun/BrickGPT/output.txt、/home/apun/BrickGPT/output.ldr 和 /home/apun/BrickGPT/output.png
--------------------
请输入另一个提示,或按回车退出:
将生成三个输出文件:output.png、output.txt 和 output.ldr。
output.png 包含生成的积木结构渲染图像:
output.txt 以逐砖文本格式记录积木结构,每行格式为 hxw (x,y,z),表示高度为 h、宽度为 w 的砖块位于位置 (x,y,z):
1x2 (16,18,0)
1x2 (16,13,0)
2x2 (0,18,0)
2x2 (0,13,0)
1x2 (16,18,1)
[...]
最后,output.ldr 以 LDraw 格式存储积木结构,可使用任何兼容 LDraw 的软件打开。
运行纹理化
子目录 src/texture 包含根据砖块设计生成 UV 纹理或每块砖颜色的代码。
要运行纹理化,请进入 src/texture 目录,并按照该目录下的 README.md 文件中的说明操作。
运行网格转砖块
子目录 src/mesh2brick 包含将 3D 对象网格转换为砖块结构的代码。
要运行网格转砖块,请进入 src/mesh2brick 目录,并按照该目录下的 README.md 文件中的说明操作。
运行微调
BrickGPT 是通过对 Llama-3.2-1B-Instruct 模型在自定义砖块结构数据集 StableText2Brick 上进行微调而创建的,该数据集已被转换为指令格式。我们使用了 Hugging Face 的 TRL 结合 Accelerate 库来进行微调。
要复现微调过程,首先使用 uv sync --extra finetuning 安装额外的 Python 依赖包。然后按照以下步骤操作:
- 使用
uv run prepare_finetuning_dataset --input_path AvaLovelace/StableText2Brick --output_path [FINETUNING_DATASET_PATH]准备用于微调的砖块结构数据集。这会将数据集转换为 LLaMA 微调所需的指令格式。- 如果您希望使用自己的砖块结构数据集进行微调,请将
AvaLovelace/StableText2Brick替换为您数据集的路径。该数据集应包含 “captions” 和 “bricks” 两个字段。“bricks” 字段应包含论文中描述的文本格式的砖块结构,“captions” 字段则应包含对该砖块结构的一个或多个描述。
- 如果您希望使用自己的砖块结构数据集进行微调,请将
- 将预训练的 Llama-3.2-1B-Instruct 模型 下载到某个目录
[PRETRAINED_DIR]中。 重要提示: 请用finetuning_config_files目录中的config.json、special_tokens_map.json和tokenizer_config.json文件替换原有文件。这样做是为了将pad_token设置为不同于eos_token,从而解决一个微调过程中可能出现的问题——模型无法正确学习输出 EOS 标记。 - 使用
uv run accelerate config初始化 Accelerate 配置文件。 - 使用
uv run ./scripts/finetune.zsh [PRETRAINED_DIR] [OUTPUT_DIR] [RUN_NAME] [FINETUNING_DATASET_PATH]进行微调。微调后的模型将保存到[OUTPUT_DIR]/[RUN_NAME]目录下。
许可证
BrickGPT 模型、StableText2Brick 数据集以及 BrickGPT 代码的大部分内容均采用 MIT 许可证 许可。以下子模块可能采用不同的许可证:
- ImportLDraw:用于可视化砖块结构,我们使用了 ImportLDraw,其许可证见 LICENSE。
- FlashTex:用于纹理和着色,我们使用了 FlashTex,其许可证见 LICENSE。
引用
如果您发现本仓库对您的研究有所帮助,请引用以下文献。
@inproceedings{pun2025brickgpt,
title = {从文本生成物理稳定且可搭建的砖块结构},
author = {Pun, Ava 和 Deng, Kangle 和 Liu, Ruixuan 和 Ramanan, Deva 和 Liu, Changliu 和 Zhu, Jun-Yan},
booktitle = {ICCV},
year = {2025}
}
致谢
我们感谢 Minchen Li、Ken Goldberg、Nupur Kumari、Ruihan Gao 和 Yihao Shi 提供的讨论与帮助。
同时,我们也感谢 Jiaoyang Li、Philip Huang 和 Shobhit Aggarwal 开发的双臂机器人系统。
本研究部分得到了 Packard 基金会、思科研究资助以及亚马逊教师奖的支持。此外,还得到了卡内基梅隆大学制造未来研究所通过 Richard King Mellon 基金会提供的资助支持。KD 获得了微软研究院博士生奖学金的支持。
我们的代码库基于多个优秀的开源项目:Hugging Face 的 TRL、Accelerate 以及 ImportLDraw。
常见问题
相似工具推荐
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。