>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Python

Hoe Microsoft neurale netwerken leerde om 3D-modellen in seconden te assembleren

Denk eens na over hoe lang het meestal duurt om een kwaliteits-3D-asset te maken. Zelfs als je niet met de hand modelleert maar eerste-generatie neurale netwerken gebruikt, voelt het proces vaak als een loterij: texturen gaan 'drijven', geometrie verandert in een puinhoop, of de GPU raakt uitgeput. Microsoft heeft TRELLIS.2 gelanceerd, en dit is waarschijnlijk één van de meest verstandige pogingen om het genereren van 3D-objecten vanuit één afbeelding echt snel en van hoge kwaliteit te maken.

Wat het is en waarom we het nodig hebben

TRELLIS.2 is een groot generatief model met 4 miljard parameters. Simpel gezegd neemt het een gewone 2D-afbeelding en zet het om in een volwaardig 3D-object. Maar in tegenstelling tot veel academische projecten die een 'puntenwolk' of een gebroken mesh uitvoeren, krijg je hier een renderklare asset met PBR-materialen (kleur, metaal, ruwheid).

Interessant is dat de ontwikkelaars de conventionele Signed Distance Fields (SDF) hebben verlaten ten gunste van een structuur die ze O-Voxel noemen. Dit stelde het model in staat om complexe topologieën te 'begrijpen': kleding, boombladeren of objecten met interne holtes waar eerdere algoritmen op vastliepen.

Teaser

Wat TRELLIS.2 onderscheidt van de rest

Ik zie vaak projecten die 'fotorealisme beloven', maar in werkelijkheid vereisen ze een H100 en een half uur voor één stoel. De situatie hier is anders.

Snelheid en resolutie

Het model draait op een Sparse 3D VAE met 16x ruimtelijke compressie. Dit maakt het mogelijk om objecten te genereren met 512³ resolutie in slechts 3 seconden. Als je iets serieuzers nodig hebt, zoals 1024³, moet je ongeveer 17 seconden wachten. Ter vergelijking: veel alternatieven besteden hier minuten aan, en het resultaat ziet er vaak slechter uit.

Werken met materialen

Dit is niet zomaar een gekleurd figuurtje. Het model genereert volledige oppervlakte-attributen:

  • Base Color
  • Roughness
  • Metallic
  • Opacity

Het laatste punt is vooral prettig. Nu kun je glasobjecten of semi-transparante stoffen genereren, en ze zien er fatsoenlijk uit bij rendering.

Topologie-veelzijdigheid

Dankzij O-Voxel probeert het model niet alle gaten in een object te 'plamuren'. Het verwerkt moeiteloos open oppervlakken (zoals een dun vel papier of een jurkzoom) zonder geometrie te corrumperen waar oppervlakken elkaar niet raken.

De technische kant van de zaak

Onder de motorkap draait TRELLIS.2 op een DiT (Diffusion Transformer). Om dit allemaal te laten werken, schreef het Microsoft-team verschillende helper-bibliotheken die meegeleverd worden:

  1. FlexGEMM — sparse convolution implementatie op Triton.
  2. CuMesh — CUDA-hulpprogramma's voor snelle mesh-verwerking, UV-uitpakking en decimaties.
  3. O-Voxel — de kern zelf voor het werken met hun nieuwe datarepresentatie.

Interessant is dat het conversieproces van mesh naar voxels en terug slechts milliseconden duurt op de GPU. Dit is cruciaal als je zo'n oplossing wilt integreren in een game dev-pipeline.

Hoe je dit zelf kunt draaien

Ik zal meteen zeggen: het project is veeleisend. Je hebt Linux nodig en een NVIDIA GPU met minstens 24 GB VRAM (RTX 3090/4090 of server A100/H100). Op Windows kun je het waarschijnlijk alleen draaien via WSL2, maar de ontwikkelaars hebben strikt op Linux getest.

De installatie ziet er standaard uit voor projecten als dit, maar vereist het compileren van CUDA-extensies:

git clone -b main https://github.com/microsoft/TRELLIS.2.git --recursive
cd TRELLIS.2
# Скрипт создаст окружение и поставит все зависимости, включая специфичные либы
. ./setup.sh --new-env --basic --flash-attn --nvdiffrast --nvdiffrec --cumesh --o-voxel --flexgemm

Als alles soepel verliep, kun je generatie draaien met slechts een paar regels code:

from trellis2.pipelines import Trellis2ImageTo3DPipeline
from PIL import Image

# Загружаем модель (веса подтянутся с Hugging Face)
pipeline = Trellis2ImageTo3DPipeline.from_pretrained("microsoft/TRELLIS.2-4B")
pipeline.cuda()

# Берем картинку и запускаем магию
image = Image.open("your_image.png")
mesh = pipeline.run(image)[0]

# Экспортируем в GLB с текстурами
# (в коде репозитория есть подробный пример в example.py)

Is het de moeite waard om te proberen

Het project lijkt een solide tool voor iedereen die snel scènes wil vullen met unieke objecten. Ja, de systeemvereisten zijn hoog, maar 4 miljard parameters en echt PBR zijn het waard.

Wat ik vooral leuk vind is dat Microsoft niet alleen weights en inference heeft vrijgegeven, maar ook de volledige trainingscode. Dit betekent dat we binnenkort fijn afgestemde modellen zullen zien voor specifieke stijlen of objectcategorieën. Als je werkt met 3D-generatie of gewoon graag experimenteert met nieuwe SOTA-modellen, verdient TRELLIS.2 zeker een avond van je tijd om te bestuderen. Zorg er wel voor dat je CUDA 12.4 geïnstalleerd hebt, anders verandert het installatieproces in een spannende zoektocht naar compilatiefouten.

Gerelateerde projecten