CubePart: een 3D-generator met open vocabulaire en regelbare onderdelen
Werken aan functionele, spelklare assets

Moderne generatieve 3D-modellen kunnen prachtige, complexe 3D-objecten genereren op basis van tekstprompts, maar voor een gameontwikkelaar is een monolithisch 3D-model niet bruikbaar. Een auto moet bijvoorbeeld bestuurbare zijn. De wielen moeten afzonderlijk draaien, de deuren moeten openen en de koplampen moeten aangaan.
Momenteel moeten 3D-artiesten gegenereerde modellen handmatig opsplitsen en de onderdelen een naam geven – een proces dat slecht schaalbaar is. Onze doorbraak is CubePart: het eerste generatieve AI-framework dat het genereren van 3D-meshes met een open vocabulaire en afzonderlijk aanstuurbare onderdelen mogelijk maakt. CubePart levert een samengestelde set van afzonderlijke, functionele en nauwkeurig gelabelde meshes op die direct aansluiten bij de programmeerbehoeften van de ontwikkelaar.
CubePart breidt het concept van vaste schema's uit dat we met 4D Generation hebben geïntroduceerd, zodat een maker zelf kan bepalen in welke onderdelen een object moet worden opgedeeld. De set meshes die door CubePart wordt gegenereerd, kan direct in de game-engine worden geïmporteerd en kan worden aangestuurd door animatie-, fysica- en gameplay-scripts zonder handmatige opschoning. We hebben ons onderzoek naar CubePart gepubliceerd op arXiv en onze open source Cube-repository bijgewerkt om generatie met afzonderlijk aanstuurbare onderdelen te ondersteunen. Later dit jaar zullen we onze bevindingen presenteren op SIGGRAPH.
Schema: het API-contract voor interactieve 3D-assets
Op Roblox wordt interactief gedrag geïmplementeerd in scripts die werken op onderdelen – specifieke, benoemde onderliggende elementen van een asset. Zelfs vergelijkbare assets kunnen volledig verschillende onderdelen vereisen, afhankelijk van de game of situatie. Een vaste taxonomie zou creativiteit en functionaliteit beperken, dus biedt CubePart twee invoeropties:
- Een algemene tekstprompt die beschrijft hoe het object eruitziet: bijv. "een raceauto met een kwallen-thema".
- Een specifieke, open lijst met vereiste onderdelen, een zogenaamd schema: bijv. "voorwiel links", "voorwiel rechts", "achterwiel links", "achterwiel rechts", "kanon", "koplampen", "uitlaatpijp", "carrosserie".
Het schema is het API-contract tussen de asset en de gameplay-code, en met CubePart kan een maker assets genereren die aan het contract voldoen. Dankzij deze controle met open vocabulaire kan CubePart de diversiteit van Roblox-assets en -ervaringen vastleggen.
Generatie in twee fasen
CubePart is een diffusiearchitectuur in twee fasen, gebouwd op een VecSet-representatie van latente vormen.
In de onderstaande illustraties heeft de gebruiker twee prompts ingevoerd.
- De algemene tekstprompt: "Een sleepwagen met cartooneske kenmerken."
- Het schema: "cabine", "chassis", "wielen", "daklamp", "trekconstructie".
Fase 1 is verantwoordelijk voor het definiëren van de basisvorm van het object (een sleepwagen met cartooneske kenmerken). Deze fase genereert één latent voor het hele object met behulp van een MMDiT-architectuur met de Qwen-VL-tekstencoder, getraind op ongeveer 4,7 miljoen mesh-tekstparen. Dit is de data-intensieve fase: het toewijzen van open-vocabulaire taal aan 3D-geometrie is het moeilijke deel van generatieve 3D, en het vereist een groot, divers corpus om goed te presteren. We stemmen fase 1 bovendien af om schemabewust te zijn.



Onze dataset en VLM-pijplijn
Om CubePart te trainen, hebben we een dataset gemaakt met meer dan 460.000 assets – meer dan 11 keer zo groot als eerdere openbare datasets1 – en 2,02 miljoen onderdelen. In plaats van handmatig te labelen, hebben we een geautomatiseerde pijplijn gebouwd met behulp van vision-language models (VLM's).
De pijplijn rendert duizenden 3D-modellen vanuit meerdere hoeken met behulp van een gepaarde aanpak: één afbeelding met textuur (voor semantische context) en één afbeelding met gekleurde onderdelen (voor nauwkeurige grensdetectie). Beide zijn voorzien van identieke genummerde markeringen, waardoor de VLM een tekstgebaseerde handle krijgt om te redeneren in de 3D-ruimte en elk onderdeel te clusteren en te benoemen.
In tegenstelling tot eerder gepubliceerde datasets, waarin elk wiel van een voertuig simpelweg als 'wiel' wordt gelabeld, leert onze dataset de AI ruimtelijke differentiatie (bijvoorbeeld het onderscheiden van een 'voorwiel links' van een 'achterwiel rechts'). Deze matchingprecisie is precies wat game-engines zoeken.
Wat CubePart mogelijk maakt en wat de volgende stap is
Met CubePart kunnen makers assets genereren die aansluiten bij hun gameplay-code en direct compatibel zijn met bestaande animatie-, fysica- en scripting-workflows. CubePart kan ook bestaande artist-meshes ontleden naar een nieuw schema, wat handig is voor het upgraden van legacy-assets, niet alleen voor het genereren van nieuwe.
Er is nog veel te doen. CubePart kan rigide-body-ontleding aan, maar we werken ook aan skinned vertex weights voor organische karaktervervorming. Cross-part attention vermindert overlapping drastisch, maar elimineert deze niet. Ruimtelijk redeneren – "voor-links" versus "achter-rechts" – kan nog flink verbeterd worden.
Wij zien schemagestuurde generatie als de stap die generatieve 3D bruikbaar maakt op een platform waar elke asset deelneemt aan een simulatie. Binnenkort zal deze technologie beschikbaar zijn voor Roblox-makers, rechtstreeks binnen Roblox Studio.



