AI 3D Generation Part-Controllable Game-Ready Meshes SIGGRAPH 2026

CubePar — CubePart Demo,
Schema Generator &
3D Mesh Guide

The independent resource for CubePart, the open-vocabulary part-controllable 3D generator. Try the live demo, generate part schemas, and learn how to create game-ready multi-part meshes with AI-driven semantic part decomposition.

CubePart teaser: given a text prompt and a parts schema, CubePart generates structurally complete multi-part 3D meshes that can be animated and driven by behavior scripts

CubePart Live Demo

Try the official CubePart demo from Hugging Face Spaces. Generate multi-part 3D meshes by providing a text prompt and a user-defined parts schema.

Official CubePart demo hosted on Hugging Face Spaces — View on Hugging Face

CubePar Part Schema Generator

Describe any object and instantly generate a CubePart-compatible part schema. The schema defines how your 3D asset will be decomposed into named, game-ready components.

🧰 Schema Generator
🔧 Prompt Builder

What Is CubePart?

An open-vocabulary, part-controllable 3D generative framework from Roblox, presented at SIGGRAPH 2026.

CubePart is the first generative framework for open-vocabulary, part-controllable 3D mesh generation. Unlike traditional AI 3D models that produce monolithic meshes, CubePart generates a set of individually named, structurally complete meshes that assemble into a coherent object.

Given a text prompt (e.g. "a dwarven steam-powered drilling machine") and a parts schema (e.g. [hull, drill, tracks, smokestack, cockpit]), CubePart generates one mesh per schema element. Each mesh is a distinct, functional, accurately-labeled component that can be directly integrated into game engines and driven by animation, physics, and gameplay scripts.

The parts schema acts as an API contract between the generated asset and gameplay code. This eliminates the manual post-processing typically required to cut, label, and rig AI-generated 3D models.

CubePart two-stage architecture diagram showing Stage 1 single-mesh generation and Stage 2 multi-part decoding

CubePart Key Capabilities

462K
Assets in the part-labeled dataset
2.02M
Parts — 11× larger than PartVerse-XL
Open-Vocab.
User-defined part schemas at inference time
Game-Ready
Direct integration into game engines with behavior scripts

CubePart Authors & Affiliations

Published at SIGGRAPH 2026 by researchers from Roblox, Carnegie Mellon University, and Stanford University.

Yiheng Zhu Roblox Kangle Deng Roblox Jean-Philippe Fauconnier Roblox Inaki Navarro Roblox Daiqing Li Roblox Ava Pun Roblox + CMU Yinan Zhang Roblox Peiye Zhuang Roblox Xiaoxia Sun Roblox Maneesh Agrawala Roblox + Stanford Kiran Bhat Project Lead Tinghui Zhou Project Lead

The first four authors contributed equally to this research.

How CubePart Works

CubePart uses a two-stage generative architecture that separates global shape synthesis from part-level decoding, powered by a scalable data pipeline that constructs the largest open-vocabulary part-labeled 3D dataset.

CubePart two-stage pipeline: Stage 1 generates single full-shape latent from text and schema, Stage 2 decomposes into part latents using multi-mesh DiT with cross-part attention
Ⅰ Stage 1 — Schema-Aware Single-Mesh Generation
A Multi-Modal Diffusion Transformer (MM-DiT) generates a holistic shape latent conditioned on both the text prompt and the parts schema encoded by Qwen-VL. The model is fine-tuned on schema-augmented prompts so that all requested parts appear in the generated shape.
Ⅱ Stage 2 — Multi-Part Decoding
Takes the Stage 1 latent and decomposes it into distinct part latents. Reuses Stage 1 weights and adds zero-initialized Cross-Part Attention Residual Blocks, enabling structural interaction across parts while preserving the single-mesh prior.

Schema-Aware Single-Mesh Generation (Stage 1)

VecSet-Based Diffusion

Stage 1 adapts a vecset-based diffusion transformer for text-to-3D generation. The pretrained model is fine-tuned on schema-augmented prompts of the form:

<global caption>. This object contains the following parts: <list of part labels>.

Qwen-VL Encoding

The text prompt and schema are encoded using Qwen-VL, a vision-language model that provides rich semantic understanding of the desired object and its component parts.

Stage 1 Multi-Modal DiT architecture showing prompt and schema encoding through Qwen-VL

Multi-Part Decoding with Cross-Part Attention (Stage 2)

Cross-part attention residual block: zero-initialized transformer block operating across latents of all parts

Weight Inheritance

Stage 2 initializes with the MM-DiT weights from Stage 1, preserving the strong single-mesh prior while extending it for multi-part generation.

Cross-Part Attention Residual Blocks

Zero-initialized transformer blocks are injected at four layers. Each block performs cross-part global attention across all part latents and the full shape latent, enabling efficient inter-part structural communication.

Part-Aware Conditioning

Each part receives a part-aware prompt indicating both the target part name and the full schema, ensuring that each generated mesh corresponds to the correct semantic component.

Dataset & Data Engine

Training open-vocabulary part-controllable 3D generators requires datasets that are both large and richly part-labeled. CubePart introduces a scalable data engine combining artist-provided segmentations with VLM-based 3D-aware Set-of-Mark prompting.

Data pipeline comparison: same Objaverse tank asset with artist 7 parts vs PartVerse 17 over-segmented parts vs CubePart 4 meaningful clusters

Vision-Language Model Labeling

The data engine combines artist-provided segmentations with VLMs and 3D-aware Set-of-Mark prompting to produce concise, semantically meaningful part names at scale. This produces concise names (e.g. hull, tracks) rather than the verbose VLM captions found in prior work.

Scale Advantage

With 462K assets and 2.02M parts, the CubePart dataset is more than 11× larger than PartVerse-XL while using concise, schema-friendly part names rather than long descriptive captions.

Dataset Comparison

Dataset Assets Parts Open-Vocabulary Part Text Type
ShapeNetPart16K93KTaxonomy
PartNet26K573KTaxonomy
PartVerse12K91KCaptions
PartVerse-XL40K320KCaptions
CubePart (Ours)462K2.02MNames

CubePart Summary Video

A comprehensive overview of CubePart's architecture, capabilities, and results presented at SIGGRAPH 2026.

Source: cubepart.github.io

Varying the Part Schema Granularity

The same object can be decomposed at different granularities just by changing the schema — from 2 parts up to 8 parts. CubePart resolves ambiguous boundaries by introducing relevant part names.

Two input meshes (motorcycle and dune buggy) each decomposed by CubePart into 2, 4, and 8 parts showing progressive granularity
Coarse (2 parts)
With only 2 parts in the schema, the model merges fenders into wheels. Good for simple assets or when only broad structural separation is needed.
Fine-Grained (4-8 parts)
With 4 to 8 parts, explicit part names resolve ambiguity and produce fine-grained components. Ideal for complex game assets requiring detailed animation and physics control.

CubePart vs Prior Methods

Unlike prior methods that either fix the part vocabulary or infer parts implicitly from 2D segmentation, CubePart guarantees alignment between generated meshes and a user-defined open-vocabulary schema.

Qualitative comparison on PartObjaverse-Tiny: five rows (house, character, horned figure, flowerpot, kettle) comparing Ground-Truth, CubePart, PatchAlign3D+HoloPart, SAM3+OmniPart, PartCrafter, and PartPacker
MethodPart Controllable?Part-VocabularySchema AdherenceBoundary Quality
PartCrafterNoImplicit✗ LowNoisy
PartPackerNoImplicit✗ LowModerate
HoloPartYesFixed▲ MediumGood
OmniPartNoImplicit✗ LowModerate
CubePartYesOpen-Vocabulary✓ HighBest

Quantitative Evaluation on PartObjaverse-Tiny

Method Part CD ↓ Part F-score ↑ Holistic CD ↓ Holistic F-score ↑
PartCrafter0.4930.2900.2720.552
PartPacker0.3740.4750.1640.792
PatchAlign3D + HoloPart0.3090.5490.0500.970
SAM3 + OmniPart0.3090.6300.0530.970
CubePart (Ours)0.2510.7430.0480.974

CD = Chamfer Distance (lower is better) · F-score (higher is better). CubePart demonstrates consistent improvements in structural completeness and part-level accuracy.

GLB Part Manifest Builder

Build a structured manifest for your multi-part GLB files, compatible with CubePart's part schema format. Define part names, types, and properties ready for game engine import.

CubePart Prompt Templates

Ready-to-use prompt templates covering characters, vehicles, weapons, environments, and mechanical constructs. Each includes a suggested part schema.

🤖 Sci-Fi Robot

"A humanoid robot with a sleek metallic finish"

head torso left_arm right_arm legs
🏎 Fantasy Vehicle

"A steampunk airship with brass propellers"

hull propellers rudder cabin landing_gear
🗡 Fantasy Weapon

"An enchanted crystal sword with a golden hilt"

blade hilt guard pommel crystal
🐢 Mechanical Creature

"A clockwork dragon with brass scales and ruby eyes"

head wings body tail legs
📦 Container / Prop

"A pirate treasure chest with brass fittings"

lid base lock hinges
🏠 Architecture / Environment

"A fantasy wizard tower with a crystal dome"

tower_base roof crystal_dome balcony door

CubePart + Roblox Studio: Script-Ready Naming Guide

How to name your parts so they match Roblox scripting conventions and are immediately usable with Lua scripts, animation controllers, and physics constraints.

✅ Good Naming Conventions
  • LeftArm, RightArm
  • EngineBlock, TurretBase
  • FrontWheel_L, FrontWheel_R
  • Door_Front, Door_Rear
  • CockpitGlass, HullArmor
⚠ Avoid These Patterns
  • part_1, mesh_003
  • a large metallic component
  • unnamed_geometry
  • merged_body_and_wheels
-- Roblox Lua: Access parts directly by name local vehicle = script.Parent local turret = vehicle:WaitForChild("TurretBase") local wheels = { vehicle:WaitForChild("FrontWheel_L"), vehicle:WaitForChild("FrontWheel_R"), vehicle:WaitForChild("RearWheel_L"), vehicle:WaitForChild("RearWheel_R") } -- Apply behavior scripts to named parts local function SpinTurret(angle) turret:PivotTo(turret:GetPivot() * CFrame.Angles(0, math.rad(angle), 0)) end

Game Engine Integration Workflow

How CubePart-generated multi-part meshes flow into game engines without manual post-processing.

① Define Schema
Create a parts schema (e.g. [body, wheels, turret, barrel]) that matches your gameplay code's expected part structure.
② Generate with CubePart
Run CubePart with your text prompt and schema. Receive multiple GLB files — one per schema element with correct naming.
③ Import & Animate
Import into Roblox Studio / Unity / Unreal. Parts are already separated and named — ready for require, WaitForChild, and physics joints.

CubePart vs Other AI 3D Tools

How CubePart compares to popular AI 3D generation tools in terms of part control, game engine readiness, and schema support.

ToolMulti-Part OutputNamed PartsSchema ControlGame Engine ReadyOpen Source
CubePartYesYesOpen-vocabularyYesYes
MeshyNoNoNoManualNo
TripoNoNoNoManualNo
RodinNoNoNoManualNo
SplineNoNoNoManualNo
HoloPartYesFixedFixed taxonomyPartialYes
OmniPartYesNoNoNoYes

CubePart is the only tool that combines open-vocabulary schema control with game-ready multi-part mesh output.

Use Cases for CubePart-Powered Assets

🎮 Roblox Game Development
Generate game-ready assets with named parts that directly match your Lua scripts. No manual mesh cutting or renaming needed.
🎬 Animation & Cinematics
Animate individual parts independently — spinning rotors, opening doors, articulated limbs — without complex rigging setup.
⚙ Physics Simulation
Attach physics constraints to specific named parts for realistic destruction, vehicle dynamics, and mechanical interactions.
🕹 Rapid Prototyping
Quickly iterate on asset concepts by adjusting the schema — try 2-part, 4-part, or 8-part decompositions of the same object.
📚 AI Research & Benchmarking
Use as a baseline for part-based 3D generation research. Open-source code, public dataset, and reproducible evaluation metrics.
🌐 Indie Game Development
Free, open-source alternative to commercial 3D asset generators. Works with Unity, Unreal, Godot, and any engine that supports GLB/glTF.

Frequently Asked Questions About CubePart

CubePart is an open-vocabulary part-controllable 3D generator developed by researchers at Roblox, with collaborators from Carnegie Mellon University and Stanford University. It was published at SIGGRAPH 2026. The project generates multi-part 3D mesh assets where each component is a distinct, named mesh ready for game engine integration.
A part schema is a user-defined list of part names that specifies how a 3D object should be decomposed. For example, for a car the schema could be [body, wheels, doors, engine, headlights]. You can use our free Schema Generator to create schemas instantly, or manually define them as comma-separated lists of part names.
Most AI 3D generators (Meshy, Tripo, Rodin) produce a single monolithic mesh that cannot be easily separated into functional parts. CubePart generates separate, named meshes for each part of the object, enabling direct use with animation, physics, and gameplay scripts without manual post-processing.
Yes. The CubePart code is open source and available on GitHub at Roblox/cube. The repository includes the multi-part DiT model, shape VAE, training pipeline, and evaluation code.
CubePart outputs GLB (glTF Binary) files — the standard format for 3D assets on the web and in game engines. Each part is a separate GLB file named according to the schema.
No. cubepar.org is an independent, unofficial resource. We provide free tools, guides, and information about CubePart technology. We are not affiliated with Roblox Corporation. The official CubePart project is at cubepart.github.io.

Cite CubePart in Your Research

If you use CubePart in your academic work, please cite the SIGGRAPH 2026 paper.

@inproceedings{zhu2026cubepart, author = {Zhu, Yiheng and Deng, Kangle and Fauconnier, Jean-Philippe and Navarro, Inaki and Li, Daiqing and Pun, Ava and Zhang, Yinan and Zhuang, Peiye and Sun, Xiaoxia and Agrawala, Maneesh and Bhat, Kiran and Zhou, Tinghui}, title = {CubePart: An Open-Vocabulary Part-Controllable 3D Generator}, booktitle = {SIGGRAPH}, year = {2026}, }

arXiv 2605.28763 Official Project Page

CubePar Keyword Map

Core, long-tail, and technical keywords for CubePart and part-controllable 3D generation.

🎯 Core Keywords
cubepar CubePart CubePart demo CubePart generator CubePart AI Roblox CubePart CubePart Hugging Face CubePart GitHub CubePart arXiv cubepar.org
🔎 Long-Tail Keywords
open-vocabulary part-controllable 3D generator part-controllable 3D mesh generation part schema generator text to 3D mesh with named parts AI 3D assets for Roblox Studio GLB part manifest builder animation-ready 3D asset generator game-ready AI 3D mesh workflow semantic part decomposition 3D mesh
🔬 Technical Keywords
VecSet MMDiT Qwen-VL cross-part attention VLM part labeling multi-part mesh generation mesh decomposition PartVerseXL Chamfer Distance GLB glTF
🌎 Competitor Keywords
HoloPart OmniPart PartCrafter PartPacker Meshy AI Tripo 3D Rodin 3D Spline 3D

How to Get Started with CubePart

1. Try the Live Demo
Visit the CubePart demo on this page or the official HF Space. Experiment with different prompts and schemas to see how part control works.
2. Generate Your Schema
Use our free Schema Generator to create part schemas for your objects. Think about which parts need independent animation or physics.
3. Clone & Run Locally
Clone Roblox/cube from GitHub. Follow the setup instructions in cubepart/README.md to run generation locally with your own prompts and schemas.

Disclaimer: cubepar.org is an independent, unofficial resource. We are not affiliated with, endorsed by, or sponsored by Roblox Corporation, Carnegie Mellon University, Stanford University, Hugging Face, or any of the CubePart paper authors. The CubePart name and technology are property of their respective owners. This site provides free educational tools and references about CubePart, an open-source research project. Official CubePart project: cubepart.github.io. Paper images used under CC BY 4.0.