World model: cosa puoi davvero costruire oggi
Il 28 settembre 2026 AMD ha annunciato l'acquisizione di World Labs per circa 8,2 miliardi di dollari in azioni — la sua seconda operazione più grande di sempre, dietro solo a Xilinx — e Fei-Fei Li entrerà come executive vice president e chief scientist, riportando a Lisa Su. Il giorno dopo il DevDay di OpenAI si è preso la prima pagina. Tra i due, "world model" è diventata l'espressione della settimana.
Ecco il problema con quell'espressione. Due prodotti che la condividono sono architetturalmente opposti. Uno tiene il mondo dentro il modello e ti manda in streaming i frame mentre ti muovi; è interattivo, non può essere esportato e una sessione è limitata a pochi secondi. L'altro genera una scena 3D che scarichi, possiedi e rendi da solo gratuitamente; è persistente, pronta per il motore di gioco e completamente inerte. Sceglierne uno per l'altro non è un errore di preferenza, è una ri-architettura.
Questa pagina è la separazione pratica: cosa produce davvero ciascuna famiglia, i dettagli verificati di API ed export, l'unico benchmark che risolve un'assunzione diffusa, i pesi aperti che puoi eseguire sulla tua GPU e le cinque cose che nessuna delle due famiglie farà al posto tuo.
- Distinguere le due famiglie di world model, e scegliere in base a cosa ti serve far persistere
- Conoscere i limiti reali: il muro dei 60 secondi, il disclaimer sulla fisica, il piano di export che vincola i diritti commerciali
- Leggere correttamente la World API — operazioni asincrone, header WLT-Api-Key e quali formati splat escono
- Usare le evidenze di WorldScore invece delle sensazioni quando scegli tra un modello video e un modello 3D
- Eseguire da solo un world model aperto, e capire perché la inverse dynamics è la parte che vale 8,2 miliardi di dollari
Due cose condividono il nome
| Generatori di frame | Generatori 3D | |
|---|---|---|
| Esempi | Genie 3 / Project Genie, world model per la guida | Marble (World Labs) |
| Cosa produce | Uno stream video, frame per frame, condizionato dalle tue azioni | Una scena: splat gaussiani, panorami, opzionalmente una mesh |
| Dove vive il mondo | Dentro il contesto scorrevole del modello | In un file che scarichi |
| Interattivo? | Sì — è tutto il punto | No. Ci navighi dentro, ma non reagisce |
| Esportabile? | No, non c'è geometria da esportare | Sì — SPZ, PLY, GLB, mesh di collisione |
| Forma del costo | Per secondo di interazione, per spettatore, per sempre | Una volta sola alla generazione. Poi il rendering è tuo |
| Fallisce per | Deriva, dimenticanza, fine della sessione | Essere statico e non simulare nulla |
Se ti serve un mondo che risponde — un giocatore che preme un tasto, una policy robotica che compie un'azione e vede cosa succede — ti serve un generatore di frame. Se ti serve un mondo che persiste — un asset nel tuo gioco, un set nella tua pipeline di rendering, una scena che cinque utenti caricano il mese prossimo e vedono identica — ti serve un generatore 3D. Quasi ogni domanda confusa del tipo "perché non può semplicemente…" su questo tema è qualcuno che ha in mano uno dei due e chiede l'altro.
I generatori di frame, e il muro dei 60 secondi
Project Genie di Google è passato da research preview a prodotto semi-pubblico il 29 gennaio 2026. La forma dell'accesso è stretta e vale la pena conoscerla prima di pianificarci sopra: abbonati Google AI Ultra, solo Stati Uniti, 18+, ed esplicitamente non disponibile su Google AI Ultra for Business. Google lo definisce un "prototipo sperimentale di ricerca".
Il limite che insegna di più è quello dichiarato da Google stessa: le generazioni sono limitate a 60 secondi. Non è una decisione di fatturazione, è un problema di stato. In un generatore di frame il mondo non è memorizzato da nessuna parte — è implicito nel contesto del modello. Ogni frame è predetto dal prompt, dai frame accumulati e dalle tue azioni. La coerenza è quindi limitata dalla stessa cosa che limita una chat lunga: quanta storia il modello riesce a tenere e a mantenere coerente. Allontanati da un muro e torna indietro: se il muro è ancora lì è una questione di memoria, non di rendering.
I caveat dichiarati da Google sono il resto della scheda tecnica onesta: i mondi generati "potrebbero non sembrare completamente fedeli alla realtà o non aderire sempre da vicino ai prompt, alle immagini o alla fisica del mondo reale", e i personaggi "a volte possono essere meno controllabili, o avere una latenza di controllo più alta".
Leggi con attenzione quella riga sulla fisica se stavi pensando di usare un generatore di frame come simulatore. È un motore di plausibilità, non un solver. Niente garantisce che la quantità di moto sia conservata tra il frame 300 e il frame 301.
Il budget per frame di cui nessuno parla
La generazione interattiva ai 24 fps comunemente riportati ti dà circa 41,7 ms per frame, end to end, incluso il tempo perché il tuo input raggiunga il server. Quel singolo numero spiega gran parte delle decisioni di prodotto di questa famiglia: perché le sessioni sono corte, perché l'accesso è vincolato a un piano a pagamento, perché non c'è ancora un'API pubblica e perché la curva di costo è per secondo-spettatore invece che per asset. Non stai comprando un file. Stai affittando una GPU che deve battere una scadenza di 42 millisecondi per tutto il tempo in cui qualcuno sta guardando.
I generatori 3D, e cosa ricevi davvero
Marble di World Labs trasforma testo, un'immagine, un panorama, viste multiple o una clip video in una scena 3D navigabile. Il fatto ingegneristico importante è la rappresentazione: l'output sono splat gaussiani 3D, non una mesh.
Gli splat sono milioni di piccole macchie orientate e semi-trasparenti, con colore e shading dipendente dal punto di vista. Si ricostruiscono fotograficamente in modo splendido e si rendono velocemente su GPU comuni. Non hanno però superfici, spigoli né facce — ed è per questo che la prossima sezione conta più di quanto sembri.
Cosa dicono i documenti di export di Marble che ottieni:
| Export | Disponibilità |
|---|---|
| Splat gaussiani — SPZ e PLY | Piano Standard |
| Panorami a 360° | Piano Standard |
| Mesh di collisione | Piano Standard |
| Mesh texturizzata (GLB) + diritti commerciali | Solo piano Pro |
| Qualunque cosa | Non nel piano Free — solo generazione |
In quella tabella si nascondono due trappole. Primo, le mesh di collisione sono un export separato — ti servono perché non puoi fare raycast, collisioni o fisica direttamente contro gli splat. Gli splat sono ciò che il giocatore vede; la mesh di collisione è ciò contro cui il motore fa i test. Distribuisci solo gli splat e il tuo bellissimo mondo non ha un pavimento. Secondo, i diritti commerciali sono legati al piano Pro, non all'atto di esportare. Controlla il piano prima di mettere un mondo generato dentro un prodotto.
I documenti di Marble notano anche che gli export a risoluzione più bassa sono "ottimizzati per essere il più percettivamente simili possibile ai file ad alta risoluzione" — un indizio che dovresti testare il piano piccolo prima di pagare per distribuire quello grande.
SPZ: il 10× che non è di World Labs
Un dettaglio che diversi articoli sbagliano: SPZ è un formato di Niantic, reso open source da Niantic Spatial, non un'invenzione di World Labs — Marble semplicemente ci esporta. Vale comunque la pena usarlo. SPZ memorizza ciascun coefficiente di armoniche sferiche come intero con segno a 8 bit, con quantizzazione ulteriore opzionale, arrivando a circa 10× più piccolo del PLY equivalente senza perdita di qualità percepibile. I test di Niantic indicano intorno ai 5 bit come punto ottimale per la maggior parte delle scene, con MSE sostanzialmente nullo a 8 bit e circa 18× di compressione a 3. SPZ 4, rilasciato nel 2026, divide la compressione in sei stream ZSTD paralleli — uno per classe di attributo — per una compressione circa 3–5× più veloce e un caricamento end-to-end 1,5–2× più veloce, a parità del vantaggio di ~10× sulla dimensione.
Se stai distribuendo splat sul web, quella è la differenza tra una scena che carica e una che non carica.
L'API, davvero
La World API espone la generazione di Marble al tuo codice. La forma verificata, dall'indice della documentazione di World Labs e dal suo client Python ufficiale:
- Input: testo, immagini, panorami, input multi-vista, video.
- Output: splat in SPZ, PLY, SOGS, KSPLAT e SPLAT.
- Auth: una API key passata nell'header
WLT-Api-Key; il client Python leggeWORLDLABS_API_KEYdall'ambiente. - Modello di esecuzione: asincrono. Invii una generazione, ricevi indietro un'operazione e fai polling finché non è completata. Ci sono anche un endpoint per il saldo crediti, upload/recupero dei media e create/retrieve/list/export/delete dei mondi.
- Client:
worldlabsai/worldlabs-api-python, Python 3.12+. Una GPU CUDA serve solo per il rendering locale, non per l'uso dell'API. - Prezzo: basato sul consumo.
Generare un mondo da testo e fare polling
# github.com/worldlabsai/worldlabs-api-python (Python 3.12+) # export WORLDLABS_API_KEY=... from worldlabs_api.client import WorldLabsClient from worldlabs_api.models import WorldTextPrompt, WorldsGenerateRequest client = WorldLabsClient(api_key="your-key-here") request = WorldsGenerateRequest( display_name="Mystical Forest", world_prompt=WorldTextPrompt(text_prompt="A mystical forest"), ) op = client.generate_world(request) # returns an operation, not a world done = client.poll_operation(op.operation_id) # poll until done is true world = done.response
Progetta la tua integrazione attorno a quel confine asincrono fin dal primo giorno. La generazione di un mondo è un job, non una richiesta — la stessa lezione dell'inferenza batch o della generazione video. Se il tuo handler aspetta un mondo in linea, dovrai riscriverlo.
Renderizzarlo senza un motore di gioco
World Labs mantiene anche Spark, un renderer di splatting gaussiano 3D con licenza
MIT per THREE.js / WebGL2, così un mondo generato può essere distribuito come pagina
web. Carica .PLY, .SPZ, .SPLAT, .KSPLAT e .SOG, fonde gli splat con mesh
ordinarie nella pipeline di THREE.js, e punta al ~98% dei dispositivi con WebGL2.
Spark 2.0 (15 aprile 2026) è la release che rende praticabili le scene grandi dentro
un browser: uno splat tree con livelli di dettaglio che renderizza un numero fisso di
splat per frame indipendentemente dalla dimensione della scena, un formato di streaming
.RAD che supporta le richieste HTTP Range — così un proxy grossolano appare quasi
subito e si raffina progressivamente — e il paging virtuale degli splat contro un pool
fisso di memoria GPU, così anche scene più grandi della memoria GPU vengono renderizzate,
inclusi telefoni e Quest 3.
Mettere un mondo generato sul web
npm install @sparkjsdev/spark three # docs and live examples: https://sparkjs.dev # repo: https://github.com/sparkjsdev/spark # # Export from Marble as .spz (≈10x smaller than .ply), serve it as a # static file, and load it into a THREE.js scene with Spark. # For scenes over a few hundred MB, convert to .RAD so the viewer can # range-request a coarse proxy first.
Nota cosa è appena successo alla tua curva di costo. Dopo la generazione, stai servendo un file statico da una CDN e renderizzando sulla GPU dell'utente. Servire il mondo è gratis. È l'inverso del modello dei generatori di frame, dove ogni secondo-spettatore è inferenza.
L'evidenza: WorldScore
"Usa semplicemente un modello video" è la scorciatoia più comune su questo tema, e ora
c'è un benchmark che le risponde. WorldScore (Stanford, arXiv:2504.00983) è un
benchmark unificato per la generazione di mondi che copre modelli 3D, 4D, text-to-video e
image-to-video — circa 3.000 esempi, con metriche per controllabilità, coerenza,
qualità percettiva e movimento, e misure esplicite di coerenza 3D e controllo della
camera.
Il risultato che dovrebbe cambiare una decisione: su WorldScore-Static i generatori 3D di scene dedicati guidano — WonderWorld a 72,69 e LucidDreamer a 70,40 — chiaramente sopra i modelli video. Se il tuo requisito è un mondo geometricamente coerente attraverso cui muovere una camera, un modello video è lo strumento sbagliato anche quando i suoi singoli frame sembrano migliori.
Due caveat. La leaderboard è viva e si muove man mano che i team inviano risultati. E WorldScore-Static misura esattamente quello che dice il nome — un mondo statico; una forte coerenza statica non ti dice nulla sulla dinamica.
Pesi aperti: Cosmos 3, e cosa ha davvero comprato AMD
Non ti serve l'API di un vendor per avere un world model. NVIDIA ha pubblicato Cosmos 3 — un omnimodel aperto per la physical AI — con i pesi su Hugging Face:
| Modello | Dimensione | Gira su |
|---|---|---|
nvidia/Cosmos3-Edge | 4B | Dispositivi edge, robot, agenti di visione |
nvidia/Cosmos3-Nano | 16B = 8B reasoner + 8B generatore | Classe workstation, es. RTX PRO 6000 |
nvidia/Cosmos3-Super | 64B = 32B reasoner + 32B generatore | Hopper / Blackwell, dati sintetici su larga scala |
Architetturalmente è un Mixture-of-Transformers che gestisce testo, immagini, video, audio e azioni in un solo modello, accoppiando una sottosequenza autoregressiva per il ragionamento con una sottosequenza a diffusione per la generazione. È integrato in Hugging Face Diffusers, quindi il punto d'ingresso è normale Python.
Eseguire un world model aperto in locale
pip install --upgrade diffusers transformers accelerate # Cosmos3-Nano is 16B (8B reasoner + 8B generator); check the model # card on Hugging Face for the licence and the exact torch version # before you build on it. import torch from diffusers import Cosmos3OmniPipeline pipe = Cosmos3OmniPipeline.from_pretrained( "nvidia/Cosmos3-Nano", torch_dtype=torch.bfloat16 )
Ora la parte che spiega il cartellino del prezzo. La tabella dei task di Cosmos 3 non è un elenco di trucchi video:
| Input | Output | Cos'è |
|---|---|---|
| Testo / immagine / video | Video | Generazione video |
| Testo / video | Testo | Ragionamento visione-linguaggio |
| Azione + immagine + testo | Video | Forward dynamics — "se faccio questo, cosa succede?" |
| Testo + video | Azione | Inverse dynamics — "quali azioni hanno prodotto questo?" |
| Immagine + testo | Video e azione | Generazione di policy |
La inverse dynamics è quella silenziosa. Trasforma il filmato in azioni etichettate — il che significa che un video qualunque diventa dati di addestramento per robot, e un mondo generato diventa un posto dove addestrare e valutare una policy senza hardware. Il comunicato di AMD descrive World Labs come un'azienda che costruisce modelli che "generano, ricostruiscono e simulano ambienti 3D interattivi" più tecnologia per "apprendimento e simulazione robotica", e inquadra l'operazione attorno a ragionamento, robotica, simulazione e physical AI che informeranno la sua futura roadmap di silicio.
Letti come una storia di calcolo invece che come una storia di grafica, 8,2 miliardi di dollari per un volano di ambienti di addestramento sono una scommessa di tipo diverso rispetto a 8,2 miliardi per uno strumento text-to-3D.
Cinque lavori che un world model non farà al posto tuo
- Niente delle tue tecniche di chain-of-thought, tag XML o tool use si trasferisce. Condizionare un world model assomiglia più a dirigere una camera che a istruire un assistente: quello che conta è l'immagine di input, il punto di vista, l'illuminazione descritta e la sequenza di azioni. L'unica abitudine che si trasferisce è la disciplina sulle fonti — un'immagine di condizionamento pulita e ben inquadrata batte un paragrafo elaborato.
- Google dichiara chiaramente che i mondi generati potrebbero non aderire alla fisica del mondo reale. La forward dynamics in stile Cosmos predice un'osservazione successiva plausibile, che non è la stessa cosa che risolverla. Usa un world model per generare scenari e un vero motore fisico per giudicarli. Se una risposta sbagliata costa denaro o sicurezza, un solver deve stare nel ciclo.
- Gli splat gaussiani non hanno superfici. Raycast, character controller, navmesh e fisica hanno tutti bisogno di geometria, ed è per questo che Marble esporta le mesh di collisione separatamente e vincola il GLB texturizzato di alta qualità al piano Pro. Prevedi due asset per mondo — quello che vedi e quello che colpisci — e metti in budget l'export della mesh nel piano che paghi davvero.
- Non c'è nessun file. Il mondo esiste per la durata della sessione e poi non c'è più, e rieseguire lo stesso prompt produce un mondo diverso. Questo esclude tutta la classe di flussi di lavoro costruiti sullo stato persistente: revisionare un livello, distribuirci una correzione, far caricare a due utenti la stessa scena, o verificare in un test che la scena non sia cambiata. Se ti serve una qualunque di queste cose, ti serve geometria esportabile.
- La matrice degli export è la licenza. Free genera ma non può esportare affatto; splat, panorami e collisori stanno su Standard; mesh texturizzata e diritti commerciali stanno su Pro. Per i pesi aperti il passo equivalente è leggere la licenza sulla model card di Hugging Face prima di distribuire, non dopo. È il fallimento più economico da evitare in questa lista e il più costoso da scoprire tardi.
Scegliere, in un solo passaggio
- Asset di gioco o di prodotto, più utenti, deve sembrare uguale domani → generatore 3D. Esporta SPZ per il web o GLB per un motore, e ricordati il collisore.
- Esplorazione interattiva, un solo utente, la novità è il punto → generatore di frame, e progetta dentro una sessione di 60 secondi.
- Addestrare o valutare una policy → pesi aperti con forward e inverse dynamics, sulla tua GPU, con un simulatore vero per tutto ciò che riguarda la sicurezza.
- Una camera che si muove dentro una scena coerente → non un modello video. Lo dice WorldScore.
Quiz
Check yourself
0/5Fonti e approfondimenti
- AMD acquisisce World Labs per far avanzare il futuro del calcolo AI — comunicato AMD: ~8,2 mld $ interamente in azioni, 28 settembre 2026, chiusura attesa a fine 2026, Fei-Fei Li come EVP e chief scientist
- AMD acquisirà World Labs di Fei-Fei Li per 8,2 miliardi — contesto dell'operazione, e il confronto con Xilinx
- Project Genie — il post di Google: il limite dei 60 secondi, l'accesso solo Ultra/USA/18+, e i caveat su fisica e controllabilità
- Esportare da Marble — la matrice degli export: SPZ e PLY, panorami a 360°, mesh di collisione, GLB su Pro, niente su Free
- Indice della documentazione di World Labs — sezioni della World API: input di generazione, asset media, operazioni sui mondi, polling dei job a lunga durata, saldo crediti
- worldlabsai/worldlabs-api-python — client Python ufficiale: header
WLT-Api-Key,WORLDLABS_API_KEY,generate_world/poll_operation, Python 3.12+ - World Labs presenta la World API per Marble — copertura dell'annuncio: input, prezzo a consumo, compatibilità con Isaac Sim
- Spark e sparkjs.dev — renderer di splat MIT per THREE.js/WebGL2; lo splat tree LoD di Spark 2.0, lo streaming
.RADe il paging virtuale degli splat - SPZ 4 è arrivato: più leggero, più veloce e più a prova di futuro — Niantic Spatial sul formato: ~10x più piccolo del PLY, sei stream ZSTD paralleli, compressione 3–5x più veloce
- WorldScore: un benchmark di valutazione unificato per la generazione di mondi e l'implementazione di riferimento — ~3.000 esempi, metriche di coerenza e controllo della camera, leaderboard viva
- Benvenuto NVIDIA Cosmos 3: il primo omni-model aperto per la physical AI — varianti e dimensioni, il design Mixture-of-Transformers, la tabella dei task,
Cosmos3OmniPipeline - NVIDIA lancia Cosmos 3 e le model card di Cosmos3-Nano, Cosmos3-Super e Cosmos3-Edge — controlla la licenza sulla card prima di distribuire
Avanti
- Media generativi: immagini, audio, video — la modalità vicina, e da dove vengono le convenzioni di prezzo
- MiniMax H3: il modello video aperto — cosa ti dà un generatore video open-weight, per il confronto che questa pagina continua a fare
- Come scegliere un modello — il framework durevole, per quando arriverà la prossima modalità