Passa al contenuto principale

World model: cosa puoi davvero costruire oggi

Intermedio

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.

What you'll learn
  • 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 frameGeneratori 3D
EsempiGenie 3 / Project Genie, world model per la guidaMarble (World Labs)
Cosa produceUno stream video, frame per frame, condizionato dalle tue azioniUna scena: splat gaussiani, panorami, opzionalmente una mesh
Dove vive il mondoDentro il contesto scorrevole del modelloIn un file che scarichi
Interattivo?Sì — è tutto il puntoNo. Ci navighi dentro, ma non reagisce
Esportabile?No, non c'è geometria da esportareSì — SPZ, PLY, GLB, mesh di collisione
Forma del costoPer secondo di interazione, per spettatore, per sempreUna volta sola alla generazione. Poi il rendering è tuo
Fallisce perDeriva, dimenticanza, fine della sessioneEssere 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:

ExportDisponibilità
Splat gaussiani — SPZ e PLYPiano Standard
Panorami a 360°Piano Standard
Mesh di collisionePiano Standard
Mesh texturizzata (GLB) + diritti commercialiSolo piano Pro
Qualunque cosaNon 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 legge WORLDLABS_API_KEY dall'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:

ModelloDimensioneGira su
nvidia/Cosmos3-Edge4BDispositivi edge, robot, agenti di visione
nvidia/Cosmos3-Nano16B = 8B reasoner + 8B generatoreClasse workstation, es. RTX PRO 6000
nvidia/Cosmos3-Super64B = 32B reasoner + 32B generatoreHopper / 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:

InputOutputCos'è
Testo / immagine / videoVideoGenerazione video
Testo / videoTestoRagionamento visione-linguaggio
Azione + immagine + testoVideoForward dynamics — "se faccio questo, cosa succede?"
Testo + videoAzioneInverse dynamics — "quali azioni hanno prodotto questo?"
Immagine + testoVideo e azioneGenerazione 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​

Guided walkthrough1 of 5
  1. 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.

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.
Vocabolario dell'intelligenza spaziale
Premi Invio o Spazio per girare la carta. Usa le frecce sinistra e destra per spostarti tra le carte.Termine mostrato.
1 / 10

Quiz​

Check yourself

0/5
  1. Ti serve un ambiente 3D che cinque utenti diversi carichino il mese prossimo e vedano identico. Quale famiglia va bene?
  2. Perché il limite di generazione di 60 secondi di Project Genie è una conseguenza di progetto e non una scelta di prezzo?
  3. Esporti un mondo Marble come SPZ, lo metti nel tuo motore, e il giocatore cade attraverso il terreno. Cosa manca?
  4. WorldScore-Static è guidato dai generatori 3D di scene (WonderWorld 72,69, LucidDreamer 70,40) invece che dai modelli video. Cosa giustifica questo?
  5. Nella tabella dei task di Cosmos 3, quale capacità trasforma un video qualunque in dati di addestramento per robot?

Fonti e approfondimenti​

Avanti​