Skip to content

KevinKE93/articraft

 
 

Repository files navigation

Articraft

License Python versions CI

An Agentic System for Scalable Articulated 3D Asset Generation.

Paper | Project Page

Articraft transforms the creation of articulated 3D assets into a programmatic, code-generation workflow powered by LLMs. Engineered for large-scale dataset generation, it bypasses heavyweight manual tools to rapidly produce objects with semantic parts, robust geometry, and physical joints.

Articraft viewer showing an articulated desk lamp with joint controls and dataset metadata

Security Note: Articraft compiles and inspects generated records by executing their model.py files as Python code. Only run generated records and model scripts from trusted sources.


Quickstart

1. Prerequisites

  • Python 3.12 recommended (or 3.11). Note: 3.13+ is not currently supported.
  • uv for incredibly fast Python package management.
  • just as the command runner.
  • npm (optional, but needed for local viewer frontend).

2. Setup

From the repo root, run:

just setup

3. Add API Keys

Open .env and set one or more provider keys (e.g. OPENAI_API_KEY, GEMINI_API_KEYS, ANTHROPIC_API_KEYS).

No API Keys? No problem! If you don't have API keys set up, you can use external AI agents like Claude Code, Codex, or Cursor. Just point them to this repository and prompt them:

"Create a realistic articulated [object name] and add it to the Articraft dataset. Follow EXTERNAL_AGENT_DATA.md."

4. Create an Asset

Generate your first model directly from a prompt using articraft generate:

uv run articraft generate "Create a realistic articulated desk lamp with a weighted base, two hinged arms, and an adjustable lamp head."

If you specify no overrides, it defaults to --model gpt-5.5-2026-04-23 --thinking-level high. You can change models and caps:

uv run articraft generate --model gemini-3-flash-preview --max-cost-usd 1.5 "Create a compact desk fan with adjustable tilt."

5. Open the Viewer

Browse the objects you just generated. The local viewer API and React frontend can be started with:

just viewer

6. Edit an Existing Asset

Fork an existing record when you want to modify it:

uv run articraft fork data/records/<record_id> "make the handle longer"

Forking creates a new child record and leaves the parent unchanged. See Editing Existing Records for model options, dataset behavior, and history viewing.


Contribute Data

A huge part of Articraft's mission is crowdsourcing a diverse, massive dataset of articulated 3D models. We welcome generation via our CLI, batch processing, or through external AI agents (like Claude Code or Codex).

For full details on our data pipelines, generation guides, and opening pull requests, please read the complete Data Contribution Workflow in CONTRIBUTING.md.

Data Usage & Licensing
By contributing data to the Articraft project, you acknowledge and agree that your submissions will be used to build, evaluate, and improve machine learning models, and will be distributed publicly as part of our datasets. You explicitly agree that all contributed data is released under the Creative Commons Attribution 4.0 International (CC-BY 4.0) license.


Documentation & Advanced Usage

Citation

@article{zhou2026articraft,
  title     = {Articraft: An Agentic System for Scalable Articulated 3D Asset Generation},
  author    = {Zhou, Matt and Li, Ruining and Lyu, Xiaoyang and Song, Zhaomou and Huang, Zhening and Zheng, Chuanxia and Rupprecht, Christian and Vedaldi, Andrea and Wu, Shangzhe},
  journal   = {arXiv preprint arXiv:2605.15187},
  year      = {2026}
}

This repository is licensed under the Apache-2.0 License.

About

An Agentic System for Scalable Articulated 3D Asset Generation

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.5%
  • Other 0.5%