PartBloom is an open-source agentic framework that uses LLMs (Gemini-4-Argon, GPT-6-Astra, Claude Opus 5.5) to construct part-level coarse proxies, then transforms them into detailed 3D assets through generative diffusion models. By combining the planning and structure-construction strengths of LLMs with the high-fidelity detail generation of diffusion models, PartBloom points to a possible future for 3D generation.
The current release is the TRELLIS version.
Given a single image, PartBloom works in two stages:
- Structure first: an LLM agent builds a part-level coarse proxy.
- A Planner looks at the image and decides the parts, splitting by function and independent motion.
- A Builder edits a shared 64³ voxel canvas directly with
polygon,brush,moveandcleartools, one part at a time. - A Reviewer compares renders of the proxy with the input and triggers up to two repair rounds.
- Details bloom: a diffusion model turns the proxy into a detailed 3D asset.
- The proxy is encoded by the TRELLIS sparse-structure VAE, partially noised, and refined with image guidance.
- Part labels are transferred to the refined structure and one shared structured latent is sampled for the whole object.
- Each part is decoded from its own slice of the latent, so parts come out consistent with each other. Textures come from TRELLIS's own Gaussian decoder and texture baking.
The agent stage is model-agnostic — switching providers is a config change. Results below use Gemini-4-Argon (medium), GPT-6-Astra (medium) and Claude Opus 5.5 (high).
| Phase | Milestone | Deliverables | Status |
|---|---|---|---|
| 🚀 M0 | Project launch | This repository and qualitative comparisons | ✅ Done |
| 🧩 M1 | TRELLIS version | LLM part planning, coarse-proxy building tools, image-guided structure refinement, shared-SLat per-part decoding, and native texture export | ✅ Done |
| 📦 M2 | Code release | Pipeline code, prompts and configs | ✅ Done |
| 🦴 M3 | Rigging | Skeletons, skinning and animation for part-level assets | 🚧 In progress |
| 🌸 M4 | TRELLIS.2 version | Port the detail-blooming stage to the TRELLIS.2 backbone | 🔜 Planned |
Status legend: ✅ Done · 🚧 Partial or in progress · 🔜 Planned
The benchmark has 14 single-image inputs: vehicles, mecha, creatures, statues, furniture, architecture and dioramas.
| Method | Description |
|---|---|
| PhysX-Omni | Official fine-tuned VLM directly predicts a voxel structure, which is decoded by TRELLIS (seed 1) |
| Direct Blender | An agent looks at the image and writes Blender Python directly: Gemini-4-Argon (Antigravity CLI), GPT-6-Astra (Codex), Claude Opus 5.5 (Claude Code) |
| PartBloom | Ours, with Gemini-4-Argon (medium), GPT-6-Astra (medium) and Claude Opus 5.5 (high) |
PartBloom generates part-level assets natively. For the two segmentation baselines, TRELLIS first generates a 3D asset from the input image; SegviGen or PartLLM then splits that asset into parts. We label these pipelines TRELLIS + SegviGen and TRELLIS + PartLLM. Colors mark parts. PartLLM uses its general granularity.
PartBloom outputs one mesh per functional, independently moving part, so its assets can be rigged directly. Click a GIF for the full video.
| Covered Wagon: drive and steer | Mech Boar: run cycle | Mecha: shield charge |
|---|---|---|
![]() |
![]() |
![]() |
| PartBloom + Claude Opus 5.5 | PartBloom + GPT-6-Astra | PartBloom + Claude Opus 5.5 |
- Clone PhysX-Omni →
vendor/PhysX-Omniand DINOv2 →vendor/dinov2. - Download TRELLIS-image-large →
weights/TRELLIS-image-largeanddinov2_vitl14_reg4_pretrain.pth→weights/dinov2/. - Create a GPU environment at
.venv/with CUDA, xatlas, nvdiffrast and the Gaussian renderer. - Install Blender 4.5 and put
blenderonPATH. - Install CPU dependencies and verify:
pip install -r partbloom/requirements-cpu.txt
python partbloom/run.py doctor- Copy
partbloom/configs/api.example.json, fill in your provider URL and API key, and pass it with--api-config.
python partbloom/run.py run \
--image path/to/image.png \
--api-config my_api.json --model claude-opus-5-5 --reasoning-effort high \
--out outputs/my_asset --gpu 0A full run writes coarse/, refined/, textured/ (per-part GLBs and assembly_textured.glb) and parts.png. Add --resume to skip completed stages. Run python partbloom/run.py --help for individual stage commands.
PartBloom builds on TRELLIS. Baselines include PhysX-Omni, Direct Blender agents, SegviGen and PartLLM.
PartBloom is released under the MIT License. Its dependencies keep their own licenses: TRELLIS is MIT, and PhysX-Omni, whose TRELLIS implementation PartBloom runs, uses the S-Lab License 1.0, which permits non-commercial use only; commercial use requires contacting its authors.








