ShapeCraft: LLM Agents for Structured, Textured and Interactive 3D Modeling

Shuyuan Zhang, Chenhan Jiang, Zuoou Li, Jiankang Deng
10/20/2025
cs.CV

No official code found. Best implementation: SanBingYouYong/shapecraft (27 stars, MIT, last commit 2025-12-11).

Abstract

3D generation from natural language offers significant potential to reduce expert manual modeling efforts and enhance accessibility to 3D assets. However, existing methods often yield unstructured meshes and exhibit poor interactivity, making them impractical for artistic workflows. To address these limitations, we represent 3D assets as shape programs and introduce ShapeCraft, a novel multi-agent framework for text-to-3D generation. At its core, we propose a Graph-based Procedural Shape (GPS) representation that decomposes complex natural language into a structured graph of sub-tasks, thereby facilitating accurate LLM comprehension and interpretation of spatial relationships and semantic shape details. Specifically, LLM agents hierarchically parse user input to initialize GPS, then iteratively refine procedural modeling and painting to produce structured, textured, and interactive 3D assets. Qualitative and quantitative experiments demonstrate ShapeCraft's superior performance in generating geometrically accurate and semantically rich 3D assets compared to existing LLM-based agents. We further show the versatility of ShapeCraft through examples of animated and user-customized editing, highlighting its potential for broader interactive applications.

View on arXivView PDF

Code Implementations(1)

MIT

Official repo for NeurIPS 2025 poster - ShapeCraft: LLM Agents for Structured, Textured and Interactive 3D Modeling.

272Python, DockerfileOct 21, 202510 months agoMIT
3d-modellingllm-agents

Similar Papers

Cite this paper

@article{zhang2025shapecraft,
  title  = {ShapeCraft: LLM Agents for Structured, Textured and Interactive 3D Modeling},
  author = {Shuyuan Zhang and Chenhan Jiang and Zuoou Li and Jiankang Deng},
  year   = {2025},
  eprint = {2510.17603},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2510.17603v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2510.17603.svg)](https://codeofpaper.com/paper/2510.17603)

Discussion