Stanford's Wetzstein Turns Internet Video Into Robot Control Policies
Stanford Online
Generative video world models overcome the scarcity of labeled robotics data by predicting visual outcomes before inverse dynamics extract physical motor commands.
World models represent the next frontier in physical AI, shifting away from classical graphics pipelines toward action-conditioned generative video engines that simulate visual environments on the fly. (0:10)
The massive data disparity in robotics—roughly 2,000 hours of action-labeled data versus 2 billion hours of unlabelled internet video—can be bridged by splitting policy learning into generative future-video prediction followed by inverse dynamics. (38:20)
Autoregressive drift and hallucination can be mitigated without prohibitive quadratic compute scaling by decoupling persistent 3D spatial representations (e.g., depth point clouds or mini-maps) from transient pixel appearance in the context window. (25:49)
Stanford researchers introduced BAGGER (Backwards Aggregation) to correct distribution shift and exposure bias in video rollouts by reversing degraded sequences to generate self-supervised recovery demonstrations. (33:26)
Detailed notes
## Background
This lecture was published on YouTube by Stanford Online on October 22, 2026, as part of the Stanford EE292R 'AI and Data for Science' course. Delivered by Gordon Wetzstein, the session covers advances in video world models, addressing temporal consistency, long-context reasoning, autoregressive drift mitigation, multi-agent dynamics, and human-centric control.
## TL;DR
Gordon Wetzstein outlines the evolution of generative world models from interactive video synthesis toward embodied physical AI and robotics. The lecture contrasts learned neural models with traditional physics engines, demonstrating how diffusion transformers, flow matching, and external 3D geometric memories overcome context window limitations and hallucination drift. Wetzstein also introduces techniques like BAGGER to rectify autoregressive rollout degradation and details how decoupling video prediction from inverse dynamics can overcome the massive data bottleneck in robot learning.
## Atmosphere & style
The lecture carries an engaging, forward-looking academic tone, blending rigorous technical explanations of diffusion dynamics with candid insights into industry limitations. Wetzstein presents complex mathematical concepts in an accessible, conversational style, peppering the theoretical discourse with relatable cultural touchstones like 'The Matrix' and vintage 'Doom' gameplay. The presentation feels grounded and intellectually stimulating, shifting effortlessly between high-level vision and practical engineering hurdles while acknowledging the compute challenges of real-time spatial AI.
## Bulletin
- [00:10](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=10s) World models represent the next frontier in physical AI, shifting away from classical graphics pipelines toward action-conditioned generative video engines that simulate visual environments on the fly.
- [38:20](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2300s) The massive data disparity in robotics—roughly 2,000 hours of action-labeled data versus 2 billion hours of unlabelled internet video—can be bridged by splitting policy learning into generative future-video prediction followed by inverse dynamics.
- [25:49](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1549s) Autoregressive drift and hallucination can be mitigated without prohibitive quadratic compute scaling by decoupling persistent 3D spatial representations (e.g., depth point clouds or mini-maps) from transient pixel appearance in the context window.
- [33:26](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2006s) Stanford researchers introduced BAGGER (Backwards Aggregation) to correct distribution shift and exposure bias in video rollouts by reversing degraded sequences to generate self-supervised recovery demonstrations.
## Key takeaways
- [00:10](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=10s) Physical AI and generative world models are succeeding LLMs and software agents by bringing generative and reasoning capabilities directly into physical environments.
- [03:17](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=197s) Unlike traditional simulators that maintain explicit 3D physics states, learned world models bypass the sim-to-real gap by directly generating photorealistic dynamics and appearances.
- [06:47](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=407s) Modern video world models predominantly rely on continuous flow matching and diffusion transformers (DiTs) rather than discrete next-token autoregressive predictors.
- [14:29](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=869s) World Action Models (WAMs) extend standard video synthesis by predicting both future visual states and the embodied actions required to achieve them.
- [16:53](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1013s) Open-loop autoregressive generation naturally suffers from compounding exposure bias and drift, whereas closed-loop settings ground context buffers using real-time sensory feeds.
- [19:23](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1163s) Quadratic self-attention scaling severely limits raw video context windows, meaning multi-million token buffers provide barely a few seconds of raw high-resolution footage.
- [25:49](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1549s) Decoupling persistent 3D world geometry from transient pixel dynamics via back-projected point clouds allows world models to maintain loop closure and spatial consistency.
- [27:39](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1659s) Conditioning diffusion models on raycasted disparity maps from 2D mini-maps enables multi-player environments, such as interactive Doom setups, to remain globally consistent across independent GPU streams.
- [30:47](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1847s) Independent parameterization of camera trajectory and global scene time allows controllable video generation, including bullet-time sweeps where scene motion is frozen during camera movement.
- [33:26](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2006s) BAGGER provides an automated remedy for exposure bias by reversing corrupted video rollouts under backward-motion text conditioning to supply recovery trajectories without human teleoperation.
- [38:20](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2300s) Robotics foundation models face a severe data bottleneck, containing six orders of magnitude less labeled data than general web video.
- [41:04](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2464s) Formulating robot policies as causal video prediction paired with inverse dynamics allows agents to leverage web-scale video pre-training for physical commonsense reasoning.
- [42:45](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2565s) Temporal context memory enables video-based policies to solve multi-stage manipulation workflows, including apparel unfolding, crate sorting, and tracking hidden items during the shell game.
- [48:50](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2930s) Current generative world models cannot independently guarantee physical safety or viability, necessitating hierarchical planning with vision-language models and closed-loop external verification.
## Detailed walkthrough
### [00:10](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=10s) Introduction: Physical AI and Generative World Models
Gordon Wetzstein opens the lecture by framing the broader trajectory of artificial intelligence, noting that large language models and agentic AI have already reshaped everyday life. In his view, the next major frontier is physical AI, which requires translating generative and reasoning capabilities into physical environments. At the core of this transition are world models. To illustrate what modern world models look like, Wetzstein presents Google DeepMind’s Genie 3. While at first glance it resembles an interactive video game, it is fundamentally a real-time, action-conditioned generative video model. Instead of relying on a pre-rendered 3D mesh or a classical graphics pipeline, Genie 3 synthesizes every frame on the fly based on past visual history and user inputs, such as keyboard arrow presses.
Wetzstein stresses that because world models depart radically from standard graphics architectures, understanding their foundations is essential for researchers across diverse disciplines. As he explains: “The next frontier is physical AI where we bring a lot of these capabilities into the physical world and world models are expected to play a major role in that.”
- **Genie 3 (Google DeepMind):** Generates interactive frames on the fly conditioned on action inputs (e.g., arrow keys) rather than rendering an underlying 3D world geometry.
- **Focus of the talk:** Demystifying the mechanics, advantages, and limitations of video-based generative world models.
---
[01:17](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=77s) Industry Landscape and Use Cases: Data Augmentation and Startups
Over the past one to two years, both autonomous vehicle leaders and frontier AI startups have invested aggressively in world models. Autonomous driving companies like Waymo and Tesla rely on these architectures primarily for data augmentation. Rather than encountering every safety-critical situation organically on the road, these systems generate synthetic, rare edge cases—such as an elephant suddenly appearing on a suburban street—to train driving policies to be significantly more robust. In Tesla's case, models are trained on continuous visual feeds harvested from customer vehicles worldwide, while Waymo integrates multi-camera viewpoints alongside multimodal inputs such as LiDAR point clouds.
Beyond autonomous driving, capital investment in spatial and physical AI has surged dramatically. Wetzstein highlights high-profile industry moves, including Fei-Fei Li’s startup World Labs, which was acquired by AMD for eight billion dollars, Yann LeCun’s startup venture raising one billion dollars, and NVIDIA pouring extensive resources into its Cosmos world model platform. Summarizing the primary rationale driving industrial adoption, Wetzstein observes: “The main examples that they use to motivate their use of world models is for data augmentation.”
- **Tesla:** Exploits customer fleet video to synthesize unobserved, long-tail events to improve driving policy safety.
- **Waymo:** Conditions world models on multi-angle cameras and LiDAR point clouds to simulate complex driving scenes.
- **Industry capitalization:** High-profile commercial ventures such as World Labs (acquired by AMD for $8B), Yann LeCun's startup (securing $1B in funding), and NVIDIA Cosmos.
---
[03:17](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=197s) Learned World Models vs. Traditional Simulators
Drawing on his two decades of experience in computer graphics and computer vision, Wetzstein frames world models as the natural evolution from hand-crafted simulators to data-driven engines. Traditional pipelines split simulation into two distinct stages: a state dynamics physics engine that tracks explicit physical variables—such as mass, surface friction, or object velocities—and a graphics engine that rasterizes or ray-traces those states into rendered pixels. While traditional simulators provide interpretability, straightforward scene editing, compact representations, and reliable real-time performance, they suffer from a persistent sim-to-real gap. Standard physics engines can easily handle rigid bodies, but simulating photorealistic complex appearances and intricate dynamics like Navier-Stokes fluid flows in real time remains practically impossible.
```mermaid
flowchart TD
accTitle: Traditional Simulators vs Learned World Models
accDescr: Diagram comparing the explicit two-stage pipeline of traditional simulators with the end-to-end data-driven pipeline of learned world models.
subgraph Traditional["Traditional Simulator Pipeline"]
A["Explicit State Tracking\n(Mass, Friction, Positions)"]
B["Physics Engine\n(State Dynamics)"]
C["Graphics Engine\n(Pixel Projection)"]
A --> B --> C
end
subgraph Learned["Learned World Model Pipeline"]
D["Video / Sensor History +\nControl Actions"]
E["Generative Neural Network\n(Diffusion / Flow Matching)"]
F["Photorealistic Output\n(Pixels & Implicit Dynamics)"]
D --> E --> F
end
```
By contrast, learned world models do away with explicit internal 3D state representations altogether. This makes them difficult to inspect, edit, or manipulate in predictable ways, and achieving real-time frame rates requires substantial compute. However, their core promise lies in closing the sim-to-real gap by directly generating both photorealistic visual fidelity and plausible real-world dynamics. These models serve three primary purposes: physical AI agent training (allowing self-driving cars or robots to interact safely with virtual environments), specialized human training (such as preparing astronauts for International Space Station maintenance when real-world training is cost-prohibitive), and synthetic data generation to balance pre-training distributions. Reflecting on the trade-offs, Wetzstein states: “The world model has actually many disadvantages compared to traditional simulators. It doesn't have an explicit 3D state.”
| Feature / Trait | Traditional Simulators | Learned World Models |
|:--- |:--- |:--- |
| **State Representation** | Explicit 3D state (mass, friction, coordinates) | Implicit latent representation (no explicit 3D state) |
| **Editability & Interpretability** | Fully interpretable and manually editable | Black-box latent space; difficult to edit directly |
| **Computational Complexity** | Easily runs at real-time frame rates | Real-time is possible, but computationally heavy |
| **Visual & Dynamic Realism** | Limited by sim-to-real gap; simplified physics | High photorealism; complex plausible dynamics |
| **Primary Use Cases** | Video games, standard robotics benchmarking | Data augmentation, policy pre-training, astronaut training |
---
[06:47](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=407s) Fundamentals of Generative Modeling: Diffusion and Flow Matching
Wetzstein shifts focus to the core technical machinery behind modern world models, emphasizing that they are predominantly built on diffusion models or flow matching rather than autoregressive next-token predictors. The mathematical objective is learning to sample from a high-dimensional image distribution. Instead of merely interpolating between training images, the model must demonstrate compositional generalization—such as the classic early DALL-E prompt of an astronaut riding a horse on the moon, synthesizing discrete concepts that never co-occurred in the training set.
Because evaluating and sampling this high-dimensional image distribution directly is computationally intractable, diffusion models introduce an auxiliary distribution that is straightforward to sample from: standard Gaussian noise. The neural network is trained to learn the reverse trajectory or continuous flow connecting random Gaussian noise back to the data distribution. At inference, the system samples a random noise vector and follows this learned trajectory to produce a photorealistic image.
Wetzstein contrasts training scale between academia and industry. Academic efforts often rely on datasets like ImageNet, which contains just over one million low-resolution images with category labels or captions. In contrast, modern web-scale models are trained on datasets on the scale of LAION-5B, containing billions of images. Wetzstein notes: “It is a diffusion model. And what is a diffusion model? A diffusion model, the goal is to generate new images from a given distribution of images.”
- **Mechanism:** Learning a flow trajectory from an easily sampled Gaussian noise distribution back to the complex data manifold.
- **Compositionality:** Ability to blend separate conceptual elements (e.g., horse, astronaut, moon) plausibly into novel scenes.
- **Data scale contrast:** ImageNet (~1.4M images, low resolution, academic baseline) versus LAION-5B (billions of images used for models like Stable Diffusion).
[09:55](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=595s) Training Diffusion Models: Noise, Flow Trajectories, and Latents
To train modern generative models, researchers rely on massive datasets consisting of “billions of very nice filtered images that are carefully curated.” Because data curation provides the foundation for these models, Gordon Wetzstein points out that with billions of examples, the network has “probably seen pretty much anything that people can come up with.” While the ultimate goal is to learn a mapping that transforms pure noise into realistic data, training operates in reverse: starting with clean data ($x_0$, such as an image of a butterfly), synthetic noise is added via a forward diffusion process. Today, this forward trajectory is commonly formulated as a straightforward linear interpolation between the clean data and random noise, allowing the generation of noisy targets at any arbitrary noise schedule level $\tau$.
```mermaid
flowchart LR
accTitle: Diffusion and Latent Training Flow
accDescr: Pipeline showing forward noising into latents and reverse velocity prediction.
subgraph DataPrep ["Data & Encoding"]
X0["Clean Image x0"] --> VAE["VAE Encoder"]
VAE --> Z0["Latent z0"]
end
subgraph ForwardPath ["Forward Process"]
Z0 --> Interp["Add Linear Noise (tau)"]
Interp --> Ztau["Noisy Latent z_tau"]
end
subgraph ReversePath ["Reverse Estimation"]
Ztau --> DiT["Diffusion Transformer"]
DiT --> Vel["Velocity Field (L2 Loss)"]
end
```
The model is trained to reverse this corruption. Rather than attempting to guess the clean image or the pure noise directly in one massive leap, the network estimates the velocity vector along the trajectory:
> “The loss is trivial. It's an L2 loss. We're going to train this velocity field that takes us from any noisy sample to somewhere that is less noisy.”
By applying this velocity field iteratively, the system takes small steps along the probability path, progressively peeling away noise. At high resolutions, executing this process in raw pixel space is computationally prohibitive. Real-world systems circumvent this by encoding full-resolution pixel arrays into compact low-dimensional representations using a variational autoencoder (VAE). The entire forward corruption, velocity prediction, and reverse denoising sequence are carried out entirely inside this latent space before decoding back to pixels.
- **Data scale:** Models rely on billions of web-scale, strictly filtered, and curated images.
- **Forward process:** Commonly parameterized as a simple linear interpolation between $x_0$ and Gaussian noise across time/noise level $\tau$.
- **Training objective:** Standard $L_2$ regression loss against the true flow velocity along the trajectory.
- **Latent representation:** High-resolution pixel images are compressed into lower-dimensional latents via a VAE to maintain tractable training costs.
---
[12:22](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=742s) Diffusion Transformers and Autoregressive Conditioning
Modern generative systems implement this denoising network using a Diffusion Transformer (DiT) architecture, mirroring the scalable backbones found in large language models. Rather than operating purely as an unconditional random sampler, the transformer is guided by explicit conditioning inputs. For text-to-image synthesis, a text prompt (such as *"an astronaut riding a horse on the moon"*) is processed by a dedicated text encoder to create vector embeddings, which are injected into the transformer's processing layers via cross-attention mechanisms.
```mermaid
flowchart TD
accTitle: Transformer Conditioning Pipeline
accDescr: Conditioning inputs feeding into the diffusion transformer backbone.
subgraph Conditioning ["Conditioning Signals"]
T["Text Prompt"] --> TE["Text Encoder"]
CF["Context Frames"] --> KV["KV Cache"]
Ctrl["Controls (Poses, Actions, Maps)"] --> CrossAttn["Cross-Attention / Modulation"]
end
subgraph Generation ["Denoising Core"]
TE --> DiT["Diffusion Transformer"]
KV --> DiT
CrossAttn --> DiT
Noisy["Noisy Frame z_tau"] --> DiT
DiT --> NextFrame["Denoised Next Frame"]
end
```
When extending this architecture to video generation, generation becomes causal and autoregressive. Because the model predicts sequential frames over time, it cannot evaluate frames in isolation; it must explicitly account for its own historical outputs to maintain visual continuity. Wetzstein draws a direct parallel to language generation:
> “So this is the same idea as an LLMs where I predict the next token based on the previous tokens that I had.”
In this paradigm, preceding context frames are preserved and surfaced to the transformer via an attention key-value cache (KV cache). This setup allows the network to condition each subsequent denoising step on the context of recently generated frames.
- **Transformer backbone:** Diffusion Transformers (DiTs) replace classical U-Nets, borrowing the scalable attention blocks used in LLMs.
- **Text conditioning:** Semantic prompts pass through frozen or dedicated text encoders and merge with visual latents via cross-attention layers.
- **Autoregressive memory:** Recent past frames function as visual context tokens, passed into generation steps using KV caching.
---
[14:29](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=869s) Video World Models and World Action Models (WAMs)
Scaling these models up yields video world models: neural systems pre-trained on massive internet repositories spanning hundreds, thousands, or millions of collective years of video footage. During self-supervised pre-training, portions of video sequences are masked or withheld, forcing the diffusion network to predict the missing frames conditioned on the preceding segment.
```mermaid
flowchart LR
accTitle: Video World Model vs World Action Model
accDescr: Comparison between standard Video World Model and World Action Model input/output paths.
subgraph VWM ["Video World Model"]
V_In["Past Frames + Action/Conditioning"] --> V_Model["Diffusion World Model"]
V_Model --> V_Out["Predicted Next Frame(s)"]
end
subgraph WAM ["World Action Model (WAM)"]
W_In["Past Observations + Goal"] --> W_Model["Action-Enabled Model"]
W_Model --> W_Frames["Predicted Future Frames"]
W_Model --> W_Actions["Predicted Agent Actions"]
end
```
At inference time, a video world model can ingest a wide variety of conditioning inputs: static identity images, spatial environment maps, motion capture trajectories, navigation commands (such as arrow keystrokes seen in Genie), or continuous human biomechanical feeds including EEG brain waves, heart rates, eye-tracking gaze vectors, and hand poses in virtual reality headsets. In high-immersion VR settings where environments are generated dynamically rather than rendered via traditional game engines, tracking real hand geometry and head poses becomes essential for interacting with the generated physical space.
Moving beyond passive video generation, the frontier has expanded into World Action Models (frequently abbreviated as WAMs). In a WAM, the model generates both the visual consequences of an environment and the actions an embodied agent must take:
> “Now people use the term world action model or wham. That's a big term right now. And a wham will then also predict not only the future frames but the future actions that an agent would be taking.”
By imagining future visual states, an autonomous robot or agent can back out the sequence of physical manipulations needed to achieve a target outcome.
- **Pre-training corpus:** Web-scale video archives representing extensive real-world visual diversity across dynamic scenes.
- **Multimodal control signals:** Supports inputs such as static identity photos, navigation arrows, motion capture, map layouts, EEG signals, eye tracking, and VR controller/hand poses.
- **World Action Model (WAM) functionality:** Unifies forward visual rollouts with action-space policy generation for robotics and agentic control.
---
[16:53](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1013s) Operational Regimes: Open-Loop vs. Closed-Loop Drift
Arriving at the precise definition of the topic, Wetzstein states:
> “A video world model is a real-time action-conditioned causal or autoregressive video generator.”
Deploying these systems reveals fundamental engineering hurdles, particularly long-context degradation, complex control design, and autoregressive drift (the computer vision counterpart to exposure bias in LLMs). How these challenges manifest depends on whether the system is deployed in an open-loop or closed-loop setting.
In an open-loop framework (such as Runway Gen-3 or purely software-rendered games), each newly generated frame is appended directly into the temporal context window. Any small visual artifact, spatial contradiction, or physical implausibility produced in frame $t$ gets treated as ground truth for frame $t+1$, causing the simulation to rapidly hallucinate or warp off course.
Conversely, in closed-loop systems operating on hardware (such as robots or autonomous cars), the system can replace predicted intermediate states with real camera observations. Because the physical camera grounds the context window in physical reality at each step, exposure bias is substantially mitigated. Between these two lies a hybrid approach: an open-loop simulator anchored to persistent structures like topographical maps or floorplans, which prevent the model from drifting into hallucinated configurations as the context horizon lengthens.
[19:23](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1163s) The Limits of Context Windows: Oasis and Minecraft
Gordon Wetzstein points to one of the earliest interactive video world models, Oasis, built by Julian (then a Stanford undergraduate who began his PhD shortly after) and marketed by Decart. The model was trained entirely on gameplay data from Minecraft because the engine allows researchers to record vast amounts of annotated actions—moving, jumping, sprinting, inverting camera pitch, using items, and placing blocks. While it functions as an autoregressively generated world where a player's inputs steer frame synthesis, its architecture falls apart under simple camera movements. If a player looks straight ahead, glances up at the sky, and then tilts the view back down, the terrain changes entirely. Because the underlying model maintains no 3D state, it can only draw plausible-looking terrain from the general distribution of Minecraft blocks rather than reproducing the specific scene the user stood in seconds earlier.
The root cause is a severely restricted context window. If the model only conditions on the last four frames, sweeping the camera upward pushes the original landscape outside the memory boundary; by the time the player looks back down, the buffer holds only blue sky. Simply training models with longer temporal context windows quickly hits computational walls. Video models rely heavily on transformer backbones with self-attention mechanisms, where query, key, and value dot-products scale quadratically ($O(N^2)$) in compute during training and linearly during inference with respect to sequence length.
While a text document might take a modest 1,000 tokens, video models generate hundreds of thousands of tokens within a matter of seconds. Even at a humble $512 \times 512$ resolution running at 32 frames per second for a 10-second clip, projecting through a Variational Autoencoder (VAE) into a latent space still leaves an enormous token footprint. Wetzstein quips that while frontier models brag about context lengths of one to two million tokens in a chat interface, that token budget buys barely a single extra second of raw video context:
> “Now that might not be a huge problem for text. Say a single document is a thousand tokens or something like that. For video models, this scales pretty quickly... frontier models will have a context length of a million tokens or maybe I think the latest models have even two million tokens, right? So, you see that in your little ChatGPT window. Okay, that's great. But that gives you maybe one second longer context like we need context lengths that are well minutes, hours, years, whatever.”
An audience question raises how vision-language models (VLMs) and diffusion backbones interact in emerging omni architectures. Wetzstein acknowledges that modern omni systems usually couple a high-level VLM with a diffusion generation module, but defers the details to post-lecture discussion to maintain focus on the diffusion model itself.
```mermaid
flowchart LR
accTitle: Autoregressive Frame Drift in Short-Context Video Models
accDescr: Diagram showing how a limited token buffer loses earlier scene frames when looking at the sky, leading to incoherent scene generation upon looking down.
subgraph Buffer["Rolling Frame Buffer (Small Context)"]
F1["Frame t-3: Ground"]
F2["Frame t-2: Horizon"]
F3["Frame t-1: Sky"]
F4["Frame t: Pure Sky"]
end
Input["Action: Look Down"] --> DiT["Diffusion Transformer"]
Buffer --> DiT
DiT --> Hallucinated["Generated Frame: Novel Landscape<br/>(Lost Original 3D Layout)"]
```
---
[23:02](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1382s) Human Memory Inspiration and FramePack
To circumvent quadratic computational costs, Wetzstein draws inspiration from human biology, noting that he frequently consults colleagues like Brian who specialize in human brain function and visual perception. Human cognition did not evolve to store an uncompressed, brute-force recording of every sensory frame. Instead, it operates as a mixture-of-experts memory architecture divided along modalities and temporal granularities:
- **Functional specializations**: Visual memory in the visual cortex versus spatial memory mapped across distinct brain regions.
- **Timescales**: Working memory operating across seconds, balanced against short- and long-term memory spanning minutes, hours, days, or decades.
- **Categorical divisions**: Explicit vs. implicit, and semantic vs. episodic memory stores.
Rather than trying to replicate biology neuron-by-neuron, researchers can translate these tiered principles into neural architectures. One realization of this philosophy was FramePack, developed by Wetzstein's student Lvmin Zhang. The core insight asks: why store older history frames at identical spatial resolutions and temporal frequencies? Because human memories from the distant past lose fine-grained fidelity, FramePack downsamples distant context frames both spatially and temporally.
Older history is subsampled and packed together into a unified, high-resolution compound frame arranged specifically so that GPU CUDA kernels can process it with minimal memory overhead. Looking back to the state of generative video in 2025, Wetzstein notes that short-clip generators suffered from severe identity drift, constantly mutating the faces of rendered characters across single-shot videos. Packing downsampled past frames directly into the diffusion transformer's context gave the model the long-range anchor it needed, stabilizing character and facial consistency over extended sequences without blowing up the compute budget.
---
[25:49](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1549s) Spatial Memory and Depth Point Clouds
Extending explicit spatial reasoning beyond 2D frame packing led to work presented at NeurIPS with Wetzstein's postdoc. Instead of forcing a network to solve the nearly impossible challenge of remembering every dynamic 4D space-time variance—like every fluttering leaf or passing pedestrian—the architecture decouples static 3D world geometry from transient pixel changes. When walking past Stanford's Hoover Tower, one expects the architectural structure to remain intact when returning to it, even if surrounding foliage has shifted.
The model acts as an autoregressive next-frame predictor that generates RGB images alongside complementary depth maps extracted using auxiliary models. These depth predictions are continuously back-projected and fused into a persistent 3D point cloud:
- **Online mapping**: The system begins with zero prior knowledge of an interior space. As an agent navigates, every generated frame progressively registers into an expanding global 3D point cloud map.
- **Anchor conditioning**: To generate the next step, the engine renders a synthetic point cloud perspective from the agent's current virtual camera pose.
- **Loop closure**: When re-entering a previously visited area, the rendered point cloud serves as a spatial prior, anchoring the diffusion transformer and forcing structural consistency while allowing transient details to sample naturally.
- **Exploration**: When walking into unmapped rooms, no prior points exist, allowing the generative backbone to synthesize entirely new spaces open-loop before stitching them into the map.
```mermaid
flowchart TD
accTitle: Online Spatial Point Cloud Mapping Pipeline
accDescr: Pipeline showing how generated RGB and depth frames are fused into a global point cloud, which renders visual depth conditioning back into the diffusion backbone.
subgraph Generation["Frame Generation Loop"]
Noise["Latent Noise"] --> DiT["Diffusion Transformer"]
DiT --> RGB["RGB Frame"]
DiT --> Depth["Depth Prediction"]
end
subgraph MapBuilding["Persistent Spatial Memory"]
Depth --> Fusion["Point Cloud Fusion"]
PC[("Global 3D Point Cloud")] <--> Fusion
end
subgraph Conditioning["Pose-Conditioned Feedback"]
PC --> Render["Virtual Camera Rendering"]
Render --> Prior["Rendered Depth / Disparity Map"]
Prior --> DiT
end
```
---
[27:39](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1659s) Multiplayer Diffusion Engines conditioned on Mini-Maps
Building on the concept of video diffusion models as real-time game engines, Wetzstein transitions to extending single-player setups into multi-agent, multiplayer environments. To test these systems, the lab turned to the classic 1990s first-person shooter *Doom*. Dismissing any thematic glorification of shooters, Wetzstein points out that the open-source *Doom* engine provides a convenient, computationally lightweight platform for collecting massive amounts of ground-truth interactive data:
> “I'm not embracing violence or first-person shooters in this talk, but it is very easy to generate a lot of data using the Doom game engine that is freely available online. So the only reason why we use this is because it was the easiest way to generate a lot of data.”
To anchor a multiplayer environment where multiple entities can interact inside a coherent architectural space, the framework leverages standard 2D top-down mini-maps. These floorplans can either be authored by hand or generated algorithmically:
- **Map extrusion**: The 2D walls from the overhead map layout are extruded vertically into a basic 3D volume.
- **Player-centric rendering**: The player's current coordinate and orientation on the map are used to raycast a disparity or depth map from their local point of view.
- **Conditioned denoising**: This extruded disparity map is fed directly into the next-frame diffusion predictor alongside historical context frames and local keyboard/movement actions.
By anchoring the diffusion backbone to an underlying spatial ground plan, the model can synthesize interactive visual gameplay that obeys physical room layouts without hallucinating away walls, establishing the structural base needed for multiple players to navigate the same world simultaneously.
[29:05](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1745s) Shared Map Representation for Multi-Player Consistency
```mermaid
flowchart TD
accTitle: Multi-Player Shared Map Architecture
accDescr: Flow showing how player actions and a shared map state interact through neural networks to render consistent next frames.
subgraph GlobalState["Shared Environment"]
M["Global Map State<br/>(3D Geometry & Player Transforms)"]
U["State Update Network"]
end
subgraph PlayerPipeline["Individual Player Stream"]
A["Player Action<br/>(Navigation & Shooting)"]
G["Video Generation Model"]
F["Generated Next Frame"]
end
A --> G
M --> G
G --> F
A --> U
M --> U
U --> M
```
In the interactive gaming setup, player inputs such as navigation and shooting feed into the generative model to synthesize the subsequent video frame. Maintaining global consistency over extended play sessions relies on storing spatial information in a centralized map. The global 3D structure of the environment is held on this map, while short-term appearance and localized texture are retained via the model's context window. Because only the global geometry is strictly anchored, returning to a previously visited area guarantees consistent structural layout, even if subtle surface textures undergo minor variations. Gordon Wetzstein humorously notes the perceptual tolerance of users: “Only the global 3D structure, not the appearance, not the texture will be actually consistent. But you know what? I bet you that you wouldn't even notice if the tile on the wall is slightly less brown than the last time you saw it.”
To support multi-player gameplay, the shared map stores the position, viewing orientation, and gameplay status (dead or alive) of every participant. This unified state is continually refreshed by a dedicated neural network. Because all interactions condition on this central representation, individual clients run separate generation streams without divergent drift. Wetzstein recounts running a live test where laboratory members played the game continuously for 30 minutes on dedicated GPU servers without encountering drift. The system was subsequently deployed online using Modal infrastructure for roughly a week, drawing thousands of public users to test the multi-player generative environment.
- Individual player streams only require the shared map to stay synchronized; rendering computations can execute independently across separate GPUs.
- The map update network processes all participant movements and combat actions to keep the shared game state globally synchronized.
- Public deployment hosted on Modal AI demonstrated multi-user scalability across thousands of concurrent web sessions.
---
[30:47](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1847s) Controllability: Camera Poses, Hand Interactions, and Bullet Time
Beyond maintaining consistency, direct steering of generative video models remains a critical challenge. Wetzstein outlines several mechanisms developed in his lab to exert explicit control over model outputs. The first is camera control (published as CameraCtrl I and II), which enables image-to-video generation where a single reference frame is animated along a user-specified 6-DoF camera trajectory. Moving from pure viewing trajectories to interactive virtual reality—termed “generated reality”—requires conditioning not only on head tracking, but also on hand poses. By conditioning on tracked hands or VR controllers, users can directly manipulate virtual props, play games, or pet an animal that dynamically reacts to their touch.
The lab also tackled temporal decoupling with space-time control, presented at CVPR under the motif of “bullet time.” In conventional video capture, the progression of time and the motion of the camera are intrinsically linked. By training models with independent conditioning knobs for the global scene time and the camera trajectory, the system can freeze scene motion entirely while sweeping the camera through three-dimensional space. Wetzstein compares this effect directly to cinematic special effects: “I don't know how many of you remember the movie The Matrix, but there was this famous scene that is called the bullet time where the camera sort of moves around Neo as he's shooting and dodging all these bullets, right? So we can do this actually with real videos.” These structural control paradigms have since migrated into commercial spatial-video products, including systems like World Labs.
- **CameraCtrl I & II:** Enables precise camera trajectory specification starting from a single input image.
- **Hand Conditioning:** Integrates tracked hand coordinates into video generation pipelines to support direct hand-object interaction in VR.
- **Space-Time Decoupling:** Allows independent manipulation of camera velocity and internal scene time, reproducing freeze-frame camera sweeps.
---
[33:26](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2006s) Mitigating Auto-regressive Drift with BAGGER
```mermaid
flowchart LR
accTitle: BAGGER Training Workflow
accDescr: Pipeline showing forward rollout degradation and reversed playback demonstration for model self-correction.
subgraph BAGGER["Reverse Demonstration"]
D --> R["Reverse Video Sequence"]
T["Text Prompt:<br/>'Played in reverse'"] --> TR["Training Target"]
R --> TR
TR --> FT["Fine-Tune Model<br/>(Self-Correction)"]
end
```
When video models are deployed autoregressively over extended horizons, errors inevitably compound. Because the model is trained exclusively on pristine real-world video frames, feeding its own imperfect generations back into the conditioning window causes distribution shift—a failure mode analogous to exposure bias in large language models. Over time, rollouts exhibit distorted motion dynamics, severe color saturation, and geometric breakdown. In robotics, this accumulation of trajectory error is traditionally addressed via Dataset Aggregation (DAgger), where human teleoperators intervene during drift events to provide expert demonstrations that steer the agent back into the correct state.
Translating DAgger to video generation is fundamentally bottlenecked by the impossibility of manually retouching corrupted frames at scale. To circumvent this, Wetzstein's lab introduced BAGGER (Backwards Aggregation). The method executes an autoregressive rollout until noticeable artifacts appear, and then reverses the sequence chronologically. By conditioning the reversed video on a text prompt indicating backward playback (preventing semantic absurdities like fish swimming in reverse), the model receives a synthetic expert demonstration showing how to transition from a degraded frame back to a pristine state. Wetzstein contrasts this with competing remedies: “You see color saturating quite a bit on the very left self-forcing the the colors always look good because this uses a distribution matching loss... but then the motion is affected and the motion is very static... whereas BAGGER actually allows us to get good appearance and motion.”
Wetzstein pauses to acknowledge the compute infrastructure powering these training runs: “This is the interruption where I'm going to do some advertisement. Marlowe is an amazing resource here on campus. Uh it we need it to do research like this. Uh we can't do it without there's far too few too few GPUs that we have right now.”
- **Exposure Bias:** Generated video frames deviate from the training distribution of real footage, causing rapid error accumulation.
- **BAGGER Mechanism:** Inverts corrupted video rollouts with explicit textual reversal prompts to supply automated error-recovery training pairs.
- **Comparison to Alternatives:** Unlike history guidance (which exhibits severe color drift) or self-forcing with distribution-matching losses (which freezes scene dynamics), BAGGER preserves both visual realism and fluid motion.
- **Marlowe Cluster:** Stanford's shared compute cluster, maintained by Craig and team, provides the multi-GPU infrastructure necessary to conduct iterative generative post-training.
---
[37:00](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2220s) Video Action Models and the World Agents Frontier
Wetzstein shifts the discussion from pure video synthesis to embodied decision-making, moving into "world agents" research being commercialized through his affiliated startup, RoMa AI. Driving physical robotic platforms requires a policy that continuously closes the perception-action loop—interpreting environmental observations to compute motor actions that advance a given task. Historically, policy learning has relied on physics simulators to generate abundant training interactions at zero hardware cost. However, simulators suffer from a pronounced sim-to-real gap, as synthetic environments fail to reflect the visual and dynamic diversity of the real world.
Generative world models offer a conceptual alternative to classical physics engines, promising to simulate rich environments conditioned directly on candidate actions. Wetzstein reflects on the current state of this approach: “What if you had a perfect world model that acts as a simulator? Well, you're going to get lots of data. You don't have a sim-to-real gap in principle at least. But there is no perfect world model quite yet that isn't able to simulate everything you want with the condition on every action.” The ongoing challenge lies in equipping these models to handle general action spaces while generating structurally grounded feedback for embodied agents.
[38:20](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2300s) The Robotics Data Bottleneck and Imitation Learning
Pure generative world models are not quite ready to be handed directly to a robot policy without breaking under distribution shift. While a hybrid paradigm combining traditional physics simulators with modern generative models is a promising direction, current robotics research predominantly relies on supervised imitation learning. Standard frameworks, such as Diffusion Policy, train a diffusion model to ingest the robot's past observations and past actions to predict future actions directly, rather than generating future video frames. The critical bottleneck of this standard approach, however, is the scarcity of action-labeled data. AI scaling in other domains has been driven by transformer architectures, abundant compute, and massive internet data, but robotics has historically lacked equivalent dataset scale.
Gordon Wetzstein illustrates this disparity by citing a query he posed to Google Gemini: while the internet contains only around 2,000 hours of action-labeled video tokens suitable for standard imitation learning, there are roughly two billion hours of unlabelled random video online. Imitation learning is confined to training on the tiny subset of labeled actions, whereas the broader internet contains an enormous volume of egocentric human video, such as people cooking in kitchens. To illustrate the magnitude of this gap, Wetzstein notes that if the red dot representing action-labeled data were scaled against the blue circle of total internet video, the blue circle would measure 60 meters in diameter. Silicon Valley's scaling motto since 2020 has been that scale unlocks emergent capabilities—such as chain-of-thought reasoning and in-context learning—which do not appear when training on limited, small-scale datasets.
- Diffusion policies map historical robot observations and actions into predicted control actions rather than future video frames.
- Gemini query comparison: ~2,000 hours of action-labeled robotic video versus ~2,000,000,000 hours of unlabelled general video on the internet.
- Drawing the two data pools to scale: a tiny red dot against a circle with a 60-meter diameter.
- Scaling laws observed since the 2020 language modeling papers demonstrate that large datasets and models are essential for emergent properties like chain-of-thought reasoning.
[41:04](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2464s) Video World Models and Inverse Dynamics
Robotics must navigate a choice: spend enormous resources collecting action-labeled data to expand the tiny labeled dataset, or repurpose the vast repository of unlabelled internet video. Wetzstein outlines an approach that reframes the problem as video generation followed by inverse dynamics. Instead of mapping observations straight to actions, a generative causal video model predicts future observations conditioned on the task. Once future video frames are generated, inferring the underlying actions—such as end-effector trajectories or hand poses—becomes a standard, highly data-efficient inverse dynamics problem.
Mental visualization serves as the conceptual intuition: a person preparing to grasp an object visualizes their arm moving forward and fingers closing, from which physical motor commands are trivial to extract. Training this framework splits the robot learning pipeline into two distinct parts: a web-scale video model that learns visual and physical priors from unlabelled internet video, and an inverse dynamics model that translates anticipated visual changes into low-level joint actions. The inverse dynamics model requires very little labeled data, allowing the data-heavy burden to rest entirely on scalable generative video modeling.
```mermaid
flowchart LR
accTitle: Video Generation Policy with Inverse Dynamics
accDescr: Pipeline showing observation inputs generating future frames via a web-scale video model, which then feed into an inverse dynamics model to produce actions.
subgraph Scalable ["Web-Scale Data"]
direction TB
Obs["Past Observations"] --> VM["Causal Video Model<br/>(Predicts Future Visuals)"]
VM --> FutObs["Future Observations"]
end
subgraph Efficient ["Data-Efficient"]
direction TB
FutObs --> IDM["Inverse Dynamics Model"]
IDM --> Act["Robot Actions<br/>(End-Effector / Joint Control)"]
end
```
- High-level formulation: `Policy: Observations → Future Observations`, followed by `Inverse Dynamics: Future Observations → Actions`.
- Human intuition: “If I visualize myself doing a task in the future like my goal is to grasp this object I can just visualize mentally what what's going to happen.”
- Inverse dynamics requires minimal training data compared to the massive scale required to train causal generative video models.
- Described in detail in the team's blog post, *Causal Video Models are Data-Efficient Robot Policies*, preceding widespread adoption by models like NVIDIA Cosmos.
[42:45](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2565s) Industrial Deployment and Context-Driven Manipulation Tasks
Moving from theoretical foundations to deployment, Wetzstein presents demonstrations of video-driven robotic policies performing industrial and logistics tasks. These tasks target dirty, dull, or repetitive factory operations that human workers prefer to avoid. In an automotive decanting task defined by an industrial partner, dual robot arms autonomously receive a heavy container, pry it open, dump out heavy ball bearings into a tote, and separate the discarded plastic packaging and wax paper lining into designated recycling bins. Similar workflows are deployed in agriculture to unbox, clean, and break down transit crates.
A benchmark demonstration of temporal context is the shell game (the "cup game"). A human hides an object beneath one of several cups and rapidly shuffles them across a table. Because the video policy maintains a sufficiently long temporal context without relying on explicit 3D bounding-box tracking or specialized perception pipelines, it accurately infers which cup conceals the object. As seen in the system's generated video visualization, the robot visualizes its own arm successfully overturning the target cup and then executes that exact physical action. A comparable challenge appears in e-commerce returns processing for apparel, where inspecting, verifying, and refolding returned garments requires the agent to remember which seams and labels have already been checked.
- Decanting task: Heavy automotive box handling, dumping ball bearings, and sorting packaging (wax paper, plastics) into recycling bins.
- Agricultural crate management: Unloading produce containers, cleaning crates, and breaking them down for reuse.
- Cup game: The robot tracks the hidden object through fast shuffles purely through long context in the video policy, without external tracking modules.
- Generated plan: “The robot imagines itself doing the task successfully and then it executes the action successfully.”
- E-commerce apparel returns: Inspecting garments efficiently requires retaining memory of past inspection states to avoid duplicate actions.
[44:23](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2663s) Open Research Frontiers in World Models and Wrap-Up
Wetzstein surveys the open frontiers facing video world models and robotic policies, noting that while the field has matured rapidly, substantial technical hurdles remain:
| Frontier Area | Key Challenge | Practical Approach / Focus |
|---|---|---|
| **Context Length** | Video generation needs long context to preserve 3D geometry and extrapolate physical dynamics. | “No matter how long your context is you want it to be longer for many reasons.” Essential for in-context learning. |
| **VLM & Reasoning** | Determining where high-level reasoning should live within the stack. | Combining VLMs with diffusion; exploring whether reasoning can happen within diffusion latents directly rather than solely inside the VLM. |
| **Generation Efficiency** | Standard multi-step diffusion (30–50 steps) is too slow for real-time robotic feedback loops. | Few-step distillation (reducing generation to 1–2 steps), token pruning, and focusing on task-relevant context tokens. |
| **Representation Learning** | Existing Variational Autoencoders (VAEs) compress spatial details poorly for physical simulation. | Developing generative-specific representation learning architectures rather than adapting discriminative feature extractors. |
| **Agentic Loops & Verifiers** | Operating closed-loop planning with tool use. | Integrating systems like GPT to drive external tools (e.g., Blender for 3D reconstruction) and act as iterative verifiers. |
| **World-Action Models** | Determining observation necessity at execution. | Exploring whether intermediate video observations can be dropped at inference time to streamline action generation. |
Concluding his EE292R lecture, Wetzstein introduces his research group, the Physical and Spatial AI Lab at Stanford, which unites computational optics, imaging, XR, and spatial AI. He thanks his students, postdoctoral researchers, and hardware sponsors before fielding his first question from the audience: “The question is how do we think about time in a world model?”
- Context scaling: Critical for maintaining spatial consistency, physical permanence, and in-context learning across long multi-stage trajectories.
- Efficiency research in the group: Brian and George focus on token-efficient generation to prioritize only the context tokens critical to the current task.
- Latent representations: VAEs remain a weak link in modern visual generative stacks.
- Acknowledgments: Gordon Wetzstein highlights the contributions of lab members and Marlo for GPU compute resources.
[47:43](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2863s) Disentangling Global Time and the Training Data Bottleneck
Gordon Wetzstein explains that the standard, naive implementation of time in video architectures relies simply on frame indexing. Under this convention, if a frame sits five steps in the past, its positional token embedding reflects an index of minus five, dictating spatial and temporal proximity purely relative to sequence position. While this mechanism allows a network to process local progression, it fails whenever an application demands explicit, independent manipulation of global scene time, camera trajectory, and frame indices. Wetzstein references their "Bullet Time" project, which deliberately decoupled scene dynamics from camera perspective so that frozen or retimed events could be orbited arbitrarily.
Engineering such controls requires defining targeted parameters and architecting channels to feed them into the model, but Wetzstein highlights that model formulation is rarely the hardest bottleneck. Instead, the ultimate hurdle is sourcing adequate empirical data where every targeted degree of freedom is observed varying independently across vast distributions. As Gordon Wetzstein points out: “Because it needs to have a lot of examples where all of these variables you want to control are observed independently being changed and that usually it boils down it's a data problem.”
- Naive video tokenization binds time to relative positional indices (e.g., $t - 5$).
- Independent control requires decoupling three distinct axes: global scene time, camera pose, and sequential frame playback.
- The fundamental bottleneck is not injection architecture, but collecting datasets exhibiting uncorrelated variations across camera and time coordinates.
---
[48:50](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2930s) Closed-Loop Verification and Simulation Rollouts
Addressing an audience question on how an autonomous model detects that its predictions or intended actions are erroneous, Wetzstein walks through closed-loop control dynamics. Rather than generating far-flung futures, an agent predicts short, manageable horizons—imagining forward a fraction of a second or a small burst of frames—and issues the corresponding action. Once enacted, an external verifier, such as a vision-language model (VLM) or perception system, assesses whether physical observations conform to the intended target state. Alternatively, an agent can roll out multiple candidate trajectories purely in simulation before committing to the safest path.
Wetzstein stresses that raw generative models possess no intrinsic awareness of physical correctness or consequence; they will blindly produce outputs unless governed by rigorous inspection mechanisms. As Gordon Wetzstein observes: “I don't think there's a principle way of telling whether an physically executed action from the model will actually be successful, safe uh and even viable.” While high-level VLMs can serve as executive verifiers, robust real-world deployment demands far more sophisticated and redundant validation pipelines.
```mermaid
flowchart TD
accTitle: Closed-Loop Execution and Verification Flow
accDescr: An architecture diagram showing how short-horizon simulation rollouts are verified and executed.
subgraph Plan ["Planning & Generation"]
A["Current State & Goal"] --> B["Video World Model"]
B --> C["Roll Out Candidate Futures"]
end
subgraph Eval ["Verification"]
C --> D["Simulation Evaluation / VLM"]
D -->|"Select Best Trajectory"| E["Execute Short Action Chunk"]
end
subgraph Act ["Real-World Feedback"]
E --> F["Perception & Sensor Feedback"]
F -->|"Verify Against Goal"| A
end
```
- Short-horizon imagination bounds planning to roughly one second or a few frames per rollout cycle.
- Verification strategies split between speculative multi-path simulation filtering and post-action sensory comparison.
- Evaluator modules can range from simple visual classifiers to multimodal VLMs checking safety constraints.
---
[49:57](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2997s) Pre-Training Costs, Inference Latency, and Open Models
Wetzstein transitions to discussing the immense difficulty of pre-training foundational video backbones. Training large-scale architectures from scratch demands colossal compute clusters, massive dataset aggregation, precise annotation pipelines, and extensive infrastructure tuning. While teams can perform post-training or mid-training runs to steer a checkpoint toward specialized behaviors, those adjustments only massage preexisting latent features rather than altering core model mechanics. For production environments demanding immediate feedback, such as real-time gaming engines, massive 14-billion-parameter diffusion transformers (DiTs) remain fundamentally impractical. Even after extreme distillation, such models require heavy, expensive GPUs and introduce latency that undermines the interactive user experience.
Wetzstein remarks on the commercial realities of latency, noting that consumer-facing entertainment cannot adopt pay-per-token economic models: “If you just want to play a game, I mean, you're not going to pay by the token, right? Like you just want to play the game and it's going to be have to be responsive.” Looking at the open-source landscape, he charts the rapid technical evolution from early tools like AnimateDiff to powerful modern systems like NVIDIA Cosmos and Wan2.1. However, he warns that frontier research labs are growing noticeably more protective, leading to fewer completely open weights. Wetzstein concludes that current foundation checkpoints still fall short of commercial deployment readiness: “I don't think I would train my robot that I want to sell to a customer on any of these existing models, right? It's not quite there yet, but it's getting closer.”
- Foundation pre-training demands massive cluster scale; post-training and mid-training merely steer existing representations.
- Heavy 14B parameter DiTs face steep inference cost and latency barriers, making real-time distillation challenging for consumer hardware.
- Open models have progressed dramatically (AnimateDiff $\to$ Cosmos $\to$ Wan2.1), but corporate secrecy is tightening public releases.
---
[51:45](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=3105s) Conditioning World Models on Growing Point Clouds
Responding to an inquiry about conditioning anchored open-loop generators on globally consistent geometry, Wetzstein details how their system incorporates environmental memory. In exploratory settings, the point cloud continuously expands as an agent traverses unfamiliar terrain. Their baseline implementation naively strips out moving objects and fuses the remaining static depth measurements into a persistent global point cloud. Over extended operations lasting hours or days, however, storing and querying this growing 3D representation becomes an unaddressed memory burden.
To pass this geometric history into the video generative model without overwhelming the context window, the system renders the 3D point cloud directly from the virtual camera’s current point of view. This perspective projection generates a 2D image of sparse splattered points that occupies only a few extra input channels alongside the video tokens. Because the projected raster is highly sparse, it compresses efficiently while providing unambiguous spatial scaffolding. Wetzstein notes that the broader research community has explored various alternatives over the past year—including 3D Gaussian splatting, polygonal meshes, and 2D floor plans with height extrusions—to strike better trade-offs between memory footprint and reconstruction fidelity.
- Moving objects are filtered before static measurements merge into the cumulative 3D map.
- Sparse 2D perspective point splatting transforms complex 3D structures into low-overhead image channels for context injection.
- Alternative memory-efficient map backbones include 3D Gaussians, explicit triangle meshes, and extruded 2D spatial layouts.
---
[53:00](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=3180s) Grounding Hallucinations: Hierarchical Planning for Robotics
Wetzstein tackles the issue of hallucination, arguing that the trait cannot be eliminated because freeform synthesis is the foundational objective of generative models. Rather than attempting to suppress generation, practitioners must keep outputs anchored within physically realistic bounds that conform to sensory data. For robotics applications—whether involving quadcopters, mobile manipulators with wrist cameras, or humanoid rigs equipped with head-mounted sensors—the solution lies in generating tightly bounded, short-horizon predictions. An agent plans forward just enough to execute its immediate motor primitive, re-anchoring on fresh physical sensor streams at every iteration.
Wetzstein outlines a natural division of labor between high-level reasoning engines and low-level physical world models. VLMs excel at abstract semantic task decomposition, breaking a multi-phase instruction into discrete conceptual steps across minutes or hours. In contrast, video world models function strictly as fine-grained motion planners that synthesize the next continuous trajectory required to grasp an object or navigate an obstacle. Wetzstein concludes by emphasizing that physical grounding should incorporate more than visual frames: incorporating tactile arrays, audio feeds, and proprioceptive sensors will be crucial for keeping future robotic world models anchored in reality.
- Generative models inherently hallucinate; robotics pipelines manage this through continuous physical re-anchoring.
- VLMs govern macro task planning over minutes or hours, delegating immediate spatial trajectories to video models.
- Future robotic grounding will incorporate non-visual sensory modalities, including tactile and auditory feedback streams.
## Notable quotes
> [00:10](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=10s) The next frontier is physical AI where we bring a lot of these capabilities into the physical world and world models are expected to play a major role in that. — Gordon Wetzstein
> [03:17](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=197s) The world model has actually many disadvantages compared to traditional simulators. It doesn't have an explicit 3D state. — Gordon Wetzstein
> [16:53](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=1013s) A video world model is a real-time action-conditioned causal or autoregressive video generator. — Gordon Wetzstein
> [44:23](https://www.youtube.com/watch?v=IfkeGU4bEJI&t=2663s) No matter how long your context is you want it to be longer for many reasons. — Gordon Wetzstein
## Mentioned
Gordon Wetzstein, Google DeepMind, Genie 3, Waymo, Tesla, Fei-Fei Li, World Labs, AMD, Yann LeCun, NVIDIA, Cosmos, ImageNet, LAION-5B, DALL-E, Stable Diffusion, Runway Gen-3, Oasis, Decart, Minecraft, Lvmin Zhang, FramePack, Doom, Modal AI, CameraCtrl, CameraCtrl II, The Matrix, BAGGER, DAgger, Marlowe Cluster, RoMa AI, Diffusion Policy, Google Gemini, Blender, GPT, Physical and Spatial AI Lab at Stanford, AnimateDiff, Wan2.1
## Video description
For more information about Stanford’s graduate programs, visit: https://online.stanford.edu/graduate-education
This lecture is from Stanford EE292R AI and Data for Science, and it covers recent advances in video world models, specifically focusing on enhancing temporal consistency and reasoning across long contexts, as well as mitigating auto-regressive drift, and explores the integration of multi-agent dynamics and the development of effective human-centric conditioning and control strategies.
Follow the course schedule: https://aida4sci.stanford.edu/schedule.html#fall-2026
Speaker:
Gordon Wetzstein, Associate Professor, Electrical Engineering and, by courtesy, Computer Science, at Stanford University
Gordon Wetzstein argues that learned generative world models represent the next frontier for physical AI by bridging the sim-to-real gap, though deploying them reliably requires solving compounding autoregressive drift and context window limitations.
Learned World Models Versus Traditional Physics Simulators (3:17)
Traditional simulation splits physics engines from graphics pipelines, relying on explicit 3D states such as mass, friction, and object positions. While interpretable, editable, and lightweight, traditional simulators struggle with complex dynamics like fluid flows and suffer from a pronounced sim-to-real gap. In contrast, learned world models—such as Google DeepMind's Genie 3—use diffusion or flow matching to synthesize photorealistic frames on the fly directly from past history and control inputs without maintaining an explicit 3D mesh.
Context Bottlenecks and Methods for Mitigating Drift (19:23)
Because video diffusion transformers process sequences with quadratic attention costs during training, token limits restrict temporal memory. Early interactive setups like Oasis lose physical permanence over camera turns, as observed in Minecraft rollouts where looking up at the sky erases the ground from the model's limited context. Furthermore, open-loop autoregression introduces exposure bias, where slight generation errors compound into severe visual and spatial distortions over extended rollouts.
Architectural Memory Structures and Spatial Anchoring (23:02)
To counter memory decay without unsustainable compute costs, researchers look to tiered memory architectures. Techniques like FramePack compress older history spatially and temporally into unified compound frames, stabilizing character identities. For 3D spatial consistency, systems back-project predicted depth maps into global 3D point clouds or condition on top-down 2D floor plans. In multiplayer tests using the Doom engine, conditioning distributed player streams on a shared central map maintained spatial coherence across 30-minute sessions.
Overcoming the Robotics Imitation Learning Data Bottleneck (38:20)
Standard robotic imitation learning faces severe data scarcity: while the internet contains roughly two billion hours of video, Wetzstein notes only about 2,000 hours are action-labeled. To exploit internet-scale video, his lab formulates policy control as causal video prediction followed by inverse dynamics. A web-scale video model first visualizes the successful physical trajectory—demonstrated in decanting tasks and tracking hidden objects in the shell game—after which an inverse dynamics model extracts the low-level motor commands with minimal labeled training data.
Hierarchical Verification and Real-Time Inference Challenges (48:50)
Because generative models inherently lack internal truth grounding, autonomous deployment depends on closed-loop execution over short planning horizons. High-level vision-language models can supervise semantic task decomposition and trajectory safety, while the world model plans immediate motor primitives re-anchored on sensory feeds. However, pre-training foundation models remains compute-intensive, and large 14-billion-parameter diffusion models face steep latency and hardware cost hurdles that currently prevent responsive consumer deployment and production robotics adoption.
While video world models provide a promising alternative to classical physics simulation, commercial deployment requires resolving high inference latency, expanding effective context windows, and grounding purely visual predictions with tactile, auditory, and proprioceptive sensor feedback.
[0:10] Gordon Wetzstein: The next frontier is physical AI where we bring a lot of these capabilities into the physical world and world models are expected to play a major role in that.
[3:17] Gordon Wetzstein: The world model has actually many disadvantages compared to traditional simulators. It doesn't have an explicit 3D state.
[16:53] Gordon Wetzstein: A video world model is a real-time action-conditioned causal or autoregressive video generator.
[44:23] Gordon Wetzstein: No matter how long your context is you want it to be longer for many reasons.
Original transcript
[0:10] Um, it's great to see you all here. I
[0:12] think LLMs and Agentic AI has had a
[0:15] profound impact on all of our lives and
[0:18] will have continue to do so. The next
[0:20] frontier is physical AI where we bring a
[0:23] lot of these capabilities into the
[0:24] physical world and world models are
[0:26] expected to play a major role in that.
[0:28] So that's what I'd like to talk about
[0:31] today.
[0:32] Here's an example of a world model. This
[0:35] is Google DeepMind's model called
[0:37] Genie3. Uh you might think that this is
[0:40] a video game, but it's actually a video
[0:42] generator. It's a generative AI model
[0:45] that generates all of these frames in
[0:48] real time on the fly and it's
[0:50] conditioned on actions. In this case,
[0:52] the actions are these arrow keys that
[0:54] you can see on the lower left. So, it's
[0:56] kind of like a game engine, but it's
[0:58] unlike any game engine that you know
[1:00] because there's no 3D representation of
[1:02] a scene. It's just a generated video
[1:04] that is conditioned on a past. I'm going
[1:06] to spend quite a bit of time in this
[1:08] talk on just reviewing the fundamentals
[1:10] of these models to help people with
[1:12] diverse backgrounds just understand
[1:14] what's going on in the space.
[1:17] Genie is one of many models over the
[1:20] last year or two. uh a variety of
[1:23] different companies have taken on um
[1:26] this world model idea. Um automotive
[1:29] companies like Whimo and Tesla have
[1:31] publicly talked about it in blog
[1:32] articles so you can read up or public
[1:34] talks. The main examples that they use
[1:37] to motivate the their use of world
[1:39] models is for data augmentation. For
[1:42] example, Tesla has been talking about
[1:44] using this video world model to generate
[1:47] events that they didn't observe. So for
[1:50] data augmentation they want to create
[1:53] rare events. Uh this is what you see in
[1:56] way's blog post as well. So the rare
[1:58] event here is seeing an elephant on the
[2:00] street. It's not something that they've
[2:02] observed in that environment that but
[2:03] they can generate that event and that
[2:06] makes the training of their policies
[2:07] more robust. Okay. So data augmentation
[2:10] is a big thing and a world model can be
[2:12] just videos but it can also be including
[2:14] other modalities like you can see in
[2:16] Whimo. There's point clouds. there's
[2:18] multiple different camera observations
[2:19] into different directions and so on and
[2:22] so forth. So these models are trained on
[2:25] well at least in in the case of Tesla on
[2:27] a large amount of video data that is
[2:29] captured by the your Tesla. You know all
[2:32] the Teslas that are driving around
[2:34] record data all the time that's fed back
[2:36] into uh the the headquarters and being
[2:39] fed into this video model. There's many
[2:42] other examples. Uh, World Labs, um, Pepe
[2:45] Le startup, in case you missed it, was
[2:47] just acquired for eight billion dollars
[2:49] two days ago by AMD. Emmy Labs is young
[2:52] lun startup. They raised a billion
[2:54] dollars as well. Nvidia is putting a lot
[2:56] of money into Cosmos, that's their world
[2:59] model uh, for the age of physical AI.
[3:03] And there's like literally dozens of
[3:05] startups right now raising a lot of
[3:07] capital um, you know, in this space. So
[3:10] it's a hot topic and I hope to shed a
[3:13] little bit of light on what's behind
[3:14] some of that at least on the technology
[3:17] side. So a world model you can think
[3:20] about as a natural progression from a
[3:22] traditional simulator to something that
[3:24] is learned from data. And I've been
[3:26] working in the field of graphics,
[3:28] computer graphics, computer vision for
[3:29] about 20 years. And what we've been
[3:31] doing in most of this time is we have a
[3:34] state dynamics engine. So that's a
[3:36] physics engine, but we keep track of the
[3:37] state. And the state could be the mass
[3:39] of an object, the friction of the floor,
[3:42] you know, the velocity of an object
[3:43] flying through the air. So these are all
[3:45] states. And then you run a state
[3:47] dynamics engine like a physics engine
[3:49] that advances the state over time. And
[3:51] then you have a graphics engine that
[3:52] sort of projects the whole world into
[3:54] pixels that you can render. So that
[3:56] describes your video game, uh, visual
[3:59] effects industry, and many other things.
[4:01] So now we learn all this from data. And
[4:04] it's good to think about, you know, what
[4:08] these are good at because they might be
[4:10] complimentary to some extent.
[4:12] Traditional simulators have an explicit
[4:15] representation of the 3D world. They
[4:17] have a 3D model of the environment and
[4:19] also of the state. So all the things
[4:21] that I just mentioned, mass, friction,
[4:23] and so on and so forth. But also, if you
[4:24] have massive multiplayer game with
[4:26] millions of players online, you know,
[4:28] where are each of these players and so
[4:30] on? These are all states that need to be
[4:31] stored somewhere. Um, traditional
[4:34] simulators are interpretable, editable,
[4:37] they're compact to some extent. Usually,
[4:39] they offer real-time frame rates. But
[4:42] there is a simto toreal gap. And the sim
[4:44] toreal gap means that whatever output
[4:46] you produce with a traditional simulator
[4:49] is at least at real-time frame rates is
[4:51] typically not photorealistic. It doesn't
[4:53] mimic exactly the complexity of the real
[4:56] world. And that is true for both the
[4:58] appearance and also for the dynamics. So
[5:00] just because you have a rigid body
[5:03] physics engine doesn't mean you can
[5:05] simulate complex fluid flows through
[5:07] Navier Stokes equations in real time.
[5:10] Okay.
[5:11] The world model has actually many
[5:13] disadvantages compared to traditional
[5:15] simulators. It doesn't have an explicit
[5:17] 3D state. Typically it doesn't have a
[5:20] state representation by default. Uh so
[5:22] we don't we can't really access that. We
[5:24] can't edit it. Not be interpretable and
[5:27] editable. uh real time is possible and
[5:30] there are quite a few approaches that do
[5:31] that in real time but it is not trivial
[5:34] to achieve because you have a very large
[5:35] model that has to run at these frame
[5:38] rates but it the promise is that you get
[5:41] photorealistic quality and also
[5:43] dynamics. So two different things the
[5:45] appearance the pixels look
[5:47] photorealistic in very complicated
[5:48] environments and you get this realistic
[5:53] behavior of objects and people. So
[5:56] applications of simulators either
[5:58] learned or traditional include training
[6:00] and evaluation for physical AI. So you
[6:02] can put a robot in there and it can be
[6:04] trained be a self-driving car also,
[6:06] right? It can interact with this world
[6:08] in any way it wants and it observes
[6:10] realistic or at least plausible
[6:12] responses visually. So you can train
[6:14] your robot in a simulated environment.
[6:17] Uh you can also play it as a human. So
[6:19] that could be a game engine or it can be
[6:21] a training environment for real people.
[6:23] Say you train astronauts to you know do
[6:26] maintenance on the international space
[6:28] station. It's very difficult or costly
[6:29] or even impossible to train people on
[6:31] the real thing. So training people in
[6:33] simulation oftentimes is a good idea.
[6:35] And then as I was saying before you can
[6:37] use it as a data generator to train
[6:39] models uh based on generated data. You
[6:42] can balance your uh pre-training data
[6:45] distribution and other things. All
[6:47] right. So now I want to take a step back
[6:49] and just walk you through some of the
[6:51] fundamental ideas behind diffusion
[6:54] models or flow matching models. I'm
[6:55] going to use these terms
[6:56] interchangeably. I'm just going to say
[6:58] diffusion model, but it can be any
[7:00] variant of a diffusion model. So
[7:02] diffusion model is the type of
[7:03] generative model that is fueling most of
[7:05] these things. It's not an LLM. It's not
[7:07] an auto reggressive next token
[7:09] predictor. It is a diffusion model. And
[7:12] what is a diffusion model? a diffusion
[7:14] model. The goal is to generate
[7:17] new images. I'm going to use the example
[7:18] of an image and then I'll get back to
[7:20] the video case in a second. So the idea
[7:22] is to generate new images from a given
[7:25] distribution of images. Okay, so maybe I
[7:28] have n samples of real images. Can I
[7:32] learn a model that cannot only sample
[7:34] and interpolate between them but create
[7:36] entirely new images that have a
[7:39] compositional nature that can mix and
[7:41] match different components in a
[7:42] photorealistic way. So the early
[7:44] examples that people showed with Dolly
[7:46] and open early models were a astronaut
[7:49] riding a horse on the moon. So the model
[7:52] has seen horse many horses many
[7:54] astronauts and many photos of the moon
[7:56] but it's never seen these three concepts
[7:58] together. So that was sort of like the
[7:59] early excitement that we saw just a few
[8:01] years ago. Now the thing is from various
[8:04] reasons it's really difficult to sample
[8:07] this distribution. It's I don't want to
[8:09] say impossible but it's very very
[8:11] costly. So we can't sample this
[8:12] distribution directly. We can't just say
[8:13] oh give me some new image and whoops
[8:16] it's there. Okay. So this is a whole
[8:19] lecture on why this is difficult and
[8:21] Stefano Armon actually did a great job
[8:23] in our previous seminar series and going
[8:25] through all the details. So I I can
[8:26] refer you to that but it's just
[8:28] challenger. So what we're going to do
[8:29] instead is we're going to take a
[8:30] different distribution that is very easy
[8:32] to sample from. And that distribution is
[8:35] random Gaussian noise. We can easily
[8:37] generate a sample of noise. Uh and it's
[8:40] not going to be very useful but we can
[8:42] sample it efficiently. And then what
[8:44] we're going to learn is we're going to
[8:45] learn the flow from the noise
[8:48] distribution to the data distribution.
[8:50] Okay. So that's the part that we're
[8:51] going to learn. And the idea then at
[8:54] inference time is that we sample noise.
[8:57] We follow this learn trajectory that
[8:58] takes us from the noise sample to a data
[9:01] sample and that allows us to then
[9:03] generate a new sample. So we indirectly
[9:05] sample this distribution.
[9:08] Now what is the scale of the data that
[9:11] people use for training these models?
[9:13] Well in an academic setting we use still
[9:15] imageet. That's like just over a million
[9:18] images with text captions or categories.
[9:21] And that is very small scale, very low
[9:24] resolution. It's great for academic
[9:25] projects, but that's not what fuels
[9:27] state-of-the-art image generators. A few
[9:30] years ago, like we saw people using Lion
[9:32] 5B or at least a subset of this. This is
[9:34] billions of images. Okay, I don't want
[9:36] to say it's all the five billion images.
[9:38] They probably use a subset. And these
[9:40] are open source models like stable
[9:41] diffusions that came out a few years
[9:43] ago. So, it's unclear what exact data
[9:47] your latest and greatest image
[9:49] generator, Nano Banana for Google or
[9:51] OpenAI's image gen or whatever uses, but
[9:55] I I'm sure that it's billions of very
[9:57] nice filtered images that are carefully
[10:00] curated. Okay? And so, the data is a big
[10:04] part of the recipe for success here. And
[10:06] these are billions of images. So, then
[10:08] the question is, what have you not seen
[10:10] in these billions of images? who's
[10:12] probably seen pretty much anything that
[10:13] people can come up with, right?
[10:16] All right. So, now how do you train this
[10:17] model? Um, we said we want to learn the
[10:20] mapping from noise to data, but we're
[10:23] given the data, the clean data, and it's
[10:25] easy to add noise to clean data. We just
[10:27] take an image like the one with the
[10:28] butterfly over there. We're going to
[10:30] call this X knot or X0. And then we can
[10:33] just add noise. And we call this the
[10:35] forward diffusion process. It's just
[10:37] adding noise to an image. uh in fact
[10:39] there are many different formulations
[10:41] for this forward diffusion process but
[10:43] the one that is very commonly used
[10:45] nowadays is just a linear interpolation
[10:47] between the noise and the data okay so
[10:49] that lets me generate a noisy image with
[10:52] an arbitrary noise level that is here
[10:53] denoted as top
[10:56] so what we're then going to learn is the
[10:58] reverse the reverse diffusion so
[11:01] starting from a noisy sample we want to
[11:04] estimate what's called the velocity and
[11:07] this is the rate of change along the
[11:09] trajectory from noised data. Um, and
[11:12] this is a large neural network that
[11:14] we're going to train. The loss is
[11:15] trivial. It's an L2 loss. We're going to
[11:17] train this velocity field that takes us
[11:19] from any noisy sample to somewhere that
[11:22] is less noisy. Okay, so I hope this
[11:24] makes a little bit of sense. So you
[11:26] start with a noise and you iteratively
[11:28] den noiseise the image. You always get
[11:30] something that's slightly less noisy.
[11:32] You're basically training a den noiser
[11:33] to some extent a den the noising network
[11:35] but it doesn't
[11:37] necessarily predict the noise or the
[11:39] clean image directly. It usually
[11:42] predicts the velocity that points
[11:43] towards you know that that that shows
[11:46] you the rate of change along the path.
[11:47] So these are some nuances and you can
[11:49] forget about it but it's pointing in the
[11:51] right direction. Um oftent times we
[11:54] can't work with pixels directly at least
[11:57] not for high resolution. So, we're going
[11:58] to work in a latent space. And what that
[12:01] means is that we have a variational
[12:02] autoenccoder, a VAE, that takes a full
[12:06] resolution pixel image, and turns it
[12:08] into a much lower resolution latent. And
[12:10] then all this diffusion process that I
[12:12] just described usually happens in this
[12:13] latent space and not on the pixels
[12:15] directly. So, I'm going to skip that
[12:17] detail, but that's what's usually
[12:19] happening in practice.
[12:22] Okay. And now I already showed you that
[12:24] we're going to have this neural network
[12:27] and it [clears throat] takes as input a
[12:28] noisy frame. It gives you as the output
[12:31] a slightly less noisy frame and we're
[12:33] going to apply this over and over again
[12:35] until we get a clean image conditioned
[12:37] on the diffusion step. So the noise
[12:39] level if you want and most modern large
[12:42] scale image generators use a neural
[12:45] network architecture that we know as
[12:47] transformer. So this is the almost the
[12:49] same as what we use for large language
[12:50] models. a pretty standard scalable
[12:52] network architecture. It's going to do
[12:54] this denoising. But the interesting
[12:56] thing is that we want this to be a
[12:58] conditional process. So we want to not
[13:01] just unconditionally sample from the
[13:03] distribution, but we want to specify
[13:05] something about the image that we want
[13:06] to generate. We just don't want to
[13:08] generate random images. So what we're
[13:10] going to do is we and then we want to do
[13:12] video. Okay. So the conditioning signal
[13:15] is fairly straightforward to understand.
[13:17] We want to describe the image in text.
[13:20] For example, I want the astronaut riding
[13:22] a horse on the moon. That is my text
[13:24] description of the image. So that's the
[13:26] conditioning signal. And I feed this
[13:29] conditioning signal into the network by
[13:31] first sending it through a text encoder
[13:33] there. There's a different neural
[13:35] network that just gives me some
[13:36] embeddings for the text. And that's
[13:38] actually then fed through cross
[13:40] attention or some other mechanism into
[13:42] the diffusion transformer
[13:45] video generation especially when it's
[13:47] auto reggressive. So next frame
[13:49] predictor, I also have to condition this
[13:52] model on the past couple of frames that
[13:53] I've already generated so that it's
[13:55] consistent with what it's already
[13:56] generated. I can't just generate each
[13:58] frame independently. I need to generate
[14:00] it knowing what I've already generated
[14:02] in the past. So this is the same idea as
[14:04] an LLMs where I predict the next token
[14:07] based on the previous tokens that I had.
[14:09] Okay. And so this idea of context frames
[14:12] or context is very important. In this
[14:14] case, it's images, the last couple of
[14:16] images that happened in the past. And
[14:18] these are typically conditioned through
[14:19] the KV cache. So the KV cache idea is
[14:22] something very important for auto
[14:24] reggressive or causal video generation
[14:26] model as well. Now when I talk about
[14:29] video world [clears throat] models, this
[14:31] is just a world model that is
[14:34] pre-trained on video data, webcale video
[14:36] data. So same idea as the images. I'm
[14:39] going to take, you know, hundreds and
[14:41] thousands and millions of years of
[14:43] videos of random stuff from the internet
[14:45] and I'm going to train my next frame
[14:48] predictor uh using it this diffusion
[14:50] model. There are many different stages
[14:52] in training such a model, mid-training,
[14:55] post- training and so on and so forth.
[14:56] I'm not going to go through all these
[14:57] different stages, but at pre-training,
[14:59] it's trained on videos. You leave out a
[15:01] couple of frames and taking the previous
[15:03] frames, you learn to predict those
[15:05] frames using the diffusion process I
[15:06] just described. And then at inference
[15:09] time, as I was mentioning,
[15:11] the model is conditioned on a number of
[15:13] different things. It could be control
[15:16] signals such as the identity of a person
[15:18] that you want to see in this model based
[15:20] on a photo, a map of the environment
[15:23] that you want to navigate in, the motion
[15:26] of a person that's maybe already
[15:28] pre-recorded for motion capture or
[15:30] that's also generated. The context
[15:33] frames are the last couple of frames
[15:35] that I already generated. And then the
[15:37] actions. So the actions could be
[15:39] navigation actions like these arrow keys
[15:41] that we saw in Genie earlier. But it
[15:43] could really be anything. Could be a
[15:45] text prompt. It could be a tracked
[15:47] signal from a human person. So you could
[15:50] track your brain waves with EEG, your
[15:53] heartbeat, your gaze position with an
[15:56] eye tracker or really anything and use
[15:58] that to condition the model. Or your
[15:59] tracked hands. Think about VR. you put
[16:02] on a VR headset and the whole world is
[16:04] generated, not rendered from a
[16:07] game engine. So then you want to be able
[16:09] to touch things in that world. So you
[16:11] need to track your real hand and
[16:12] condition the video generator on your
[16:14] tracked hands or on your head pose.
[16:16] Right?
[16:18] All right. And then you generate the
[16:19] next frame or the next couple of frames.
[16:23] That's a world model. Now people use the
[16:25] term world action model or wham. That's
[16:28] a big term right now. And a wham will
[16:32] then also predict not only the future
[16:35] frames but the future actions that an
[16:38] agent would be taking. So the robot
[16:41] could imagine what the future looks like
[16:43] and then derive the actions from that.
[16:44] And I'll show you some examples of that
[16:46] later. This is not the focus of my talk.
[16:48] So I I'm just going to touch upon this
[16:50] at the end a little bit and show you
[16:51] some applications.
[16:53] So that brings me to my definition. I'm
[16:54] halfway through the talk and we're just
[16:56] defining what we're actually talking
[16:57] about. A video world model is a real
[17:00] time action conditioned causal or auto
[17:03] reggressive video generator.
[17:06] And there are many problems and I'll
[17:07] show you some cool research that we've
[17:09] published in the last little while on
[17:11] long context. You want the context
[17:13] window to be longer and I'll show you
[17:15] what happens when it it's not uh
[17:18] effective and intuitive control
[17:20] mechanisms. Uh drift that's also known
[17:23] as exposure bias. I'll explain to you
[17:25] what all of these things are in a
[17:27] second. there are many open problems. So
[17:28] this is a great uh area to work at. Uh
[17:32] just a few clarifying terms, a couple of
[17:34] different settings in which these world
[17:35] models are being used. The one that I
[17:38] have described and that I've shown with
[17:40] Gen3 is what I call an openloop setting.
[17:43] So you have a couple of generated frames
[17:46] and you generate the next frame and then
[17:47] the next frame moves into the context.
[17:50] So whatever's in the context frames is
[17:52] actually previously generated. So you're
[17:54] going to have to deal with error
[17:55] aggregation because every small error
[17:57] that you make will compound over time.
[17:59] Okay, this is actually very similar to
[18:02] LLMs. In the world of LLMs, this is
[18:04] known as exposure bias. So this is just
[18:06] a problem in this open loop setting. If
[18:09] you run such a model on a robot or on
[18:12] some self-driving car, you're going to
[18:13] have real cameras there. So you don't
[18:16] need to use the generated images
[18:19] necessarily of the future of what the
[18:21] robot will likely do in the future. you
[18:23] can actually replace it with the
[18:24] egocentric view of the robot captured by
[18:27] the camera. So you don't have to deal
[18:28] with drift and that kind of stuff. So
[18:31] this is a closed loop setup. You have a
[18:33] robot, it looks at its own observations
[18:35] physically. It generates the future of
[18:37] what it has to do in order to satisfy a
[18:39] task and then it performs these actions,
[18:42] but then it captures new data and it's
[18:43] going to use that in context. And so
[18:46] that's much easier because you're
[18:47] grounded. The real frames help you stay
[18:50] grounded. But that's sort of like a
[18:52] hybrid solution also where you have an
[18:54] open loop setup like in a computer game
[18:57] uh and it can just drift away. But if
[18:59] you have a map for example or some kind
[19:01] of other anchoring signal that is
[19:03] persistent over time that can also help
[19:05] you stay grounded. So as we move forward
[19:08] through the talk I'll show you a couple
[19:09] of example projects and they're going to
[19:11] be in one or another of these
[19:12] categories. So just keep that in mind.
[19:15] So the first problem I want to talk
[19:16] about is long context and I'll first
[19:19] show you what happens when you don't
[19:21] have a long context. So here's one of
[19:23] the very first uh models video world
[19:26] models that was done. It was called
[19:28] Oasis was done by an undergrad here at
[19:30] Stanford a couple years ago. It's
[19:32] marketed by Deart but Julian started his
[19:34] PhD
[19:36] wrote this thing and it plays Minecraft.
[19:38] It's all trained on Minecraft data and
[19:40] the reason is that you can get a lot of
[19:41] data from this game engine. And you can
[19:44] see the actions on the bottom. The
[19:45] actions are move, jump, run, invert, use
[19:48] items, and so on and so forth. So many
[19:50] of you have maybe played this game, but
[19:52] there's many different actions that you
[19:54] can take. And the video world model
[19:55] allows you to take these actions in this
[19:57] auto reggressively generated world. Now,
[20:00] what happens when the user looks forward
[20:04] and then looks up to the sky
[20:07] and then looks back down? Well, the
[20:09] world has completely changed. There's no
[20:11] consistency, right? because we don't
[20:13] have a 3D representation of the state.
[20:16] Um, it looks plausible, looks like a
[20:18] Minecraft world, but it's not what the
[20:20] user has seen before. And the problem is
[20:23] pretty straightforward. The video model
[20:24] cannot do that because the context
[20:26] window is too short. Say it remembers
[20:29] the last four frames or something like
[20:31] looks up and then looks back down. Now
[20:34] the sky is in the context, but whatever
[20:35] happened before is just outside of the
[20:37] context. So the model simply cannot
[20:39] remember. It doesn't know what was
[20:40] there. it will sample a new you know
[20:43] sample from the distribution of
[20:44] Minecraft images which will look
[20:45] plausible but it has nothing to do what
[20:47] with what it's seen before okay so why
[20:51] don't we just train on longer context
[20:53] windows because that's very expensive as
[20:56] I mentioned before these video models
[20:58] are based on transformer architectures
[21:01] and if you're operating in this token
[21:03] limited budget the number of tokens is
[21:06] going to be the limiting factor so in
[21:07] the self attention mechanism of the
[21:09] transformer we have the softmax that
[21:12] that includes the queries, keys and
[21:14] values and the long story short now as
[21:18] you increase the number of tokens or the
[21:20] context that goes in uh the
[21:23] computational complexity grows
[21:24] quadratically during training time and
[21:27] even during inference time it's going to
[21:28] grow linearly. So the more tokens you
[21:30] put in it's going to get quadratically
[21:33] more computationally expensive to do
[21:35] that. So there's an upper bound on what
[21:36] you can actually do.
[21:39] Now that might not be a huge problem for
[21:41] text. Say a single document is a
[21:43] thousand tokens or something like that.
[21:46] For video models, this scales pretty
[21:48] quickly. So even for a pretty low
[21:50] resolution video model that operates at
[21:51] 512 x 512 resolution with 32 frames per
[21:55] second or 10-second video clip, even
[21:57] with compression in the VAE and using a
[21:59] latent space, you're going to be up to
[22:01] hundreds of thousands of tokens within
[22:03] just a few seconds. Okay, so that's very
[22:05] challenging. Now, state-of-the-art
[22:07] frontier models will have a context
[22:10] length of a million tokens or maybe I
[22:12] think the latest models have even two
[22:13] million tokens, right? So, you see that
[22:15] in your little chatbt window. Okay,
[22:17] that's great. But that gives you maybe
[22:18] one second longer context like we need
[22:21] context lengths that are well minutes,
[22:24] hours, years, whatever. So, okay,
[22:27] question
[22:37] Great question. Slightly outside the
[22:39] scope of my talk. I will be happy to
[22:41] hang around answer questions for as long
[22:43] as you want after the talk and it's a
[22:44] very important question. Uh typically
[22:47] you're going to have a VLM and a
[22:49] diffusion model in these omni models.
[22:51] The question is how do they communicate
[22:53] with one another? There's a great
[22:54] question. I'm just going to focus on
[22:55] just the diffusion model part for the
[22:57] rest of this talk. Okay.
[22:59] Okay. So long context very challenging.
[23:02] So humans are great at remembering
[23:05] things. At least some of us are good at
[23:07] remembering some things. We can remember
[23:09] things from a long time ago. So you know
[23:12] humans can remember a lot of things. And
[23:14] then what I often like to do is I like
[23:16] to go and knock on Brian's door or other
[23:19] people who know a lot more about the
[23:20] human brain and perception than I and
[23:23] think about okay how do humans do this?
[23:25] How did they how did evolution come up
[23:27] with a solution for this problem? And
[23:30] interestingly,
[23:32] human memory is sort of like a mixture
[23:34] of expert systems. There are different
[23:36] systems that are really good at
[23:37] different things in memory. For example,
[23:40] the visual memory operates in the visual
[23:42] cortex and in other parts, spatial
[23:44] memory operates in different parts of
[23:46] the brain.
[23:48] There's also different time scales at
[23:50] which different parts of the memory
[23:52] system operate. There's the working
[23:54] memory that operates in the time scale
[23:55] of seconds, short and long-term memory
[23:58] that operates in the time scale of know
[24:00] minutes, hours, days or even decades.
[24:03] And then these are, you know, subdivided
[24:05] into explicit, implicit memories,
[24:07] semantic and episodic memories. There
[24:09] many different types of, you know,
[24:11] systems that are good at remembering
[24:13] something specific. And so now what we
[24:16] could do is sort of explore a couple of
[24:18] these concepts and think about how we
[24:20] can bake that into a neural network
[24:21] architecture. U maybe not to mimic
[24:24] exactly what humans do but to find an an
[24:27] analogy perhaps that might help us with
[24:29] our problems. And so this brings me to
[24:32] our first uh project that was a very
[24:34] simple idea let and he came up with this
[24:37] idea of frame pack and that is why don't
[24:39] we take why do we have to remember every
[24:41] frame in the history at full resolution
[24:44] and sample at every frame in time. Why
[24:46] don't we just you know subsample in
[24:48] space and time the the past and pack it
[24:51] all in an efficient structure that the
[24:53] CUDA kernel can actually process really
[24:55] efficiently. And that was sort of like
[24:57] the the idea behind frame pack where he
[24:59] said that things that happened farther
[25:01] in the past will likely be we can
[25:04] remember them at a lower spatial
[25:06] resolution and we can also subsample the
[25:08] frames. So we can just sort of
[25:09] downsample spatially and temporally over
[25:11] time and pack it all into one higher
[25:13] resolution image that can be efficiently
[25:15] processed by the diffusion transformer.
[25:18] And this was a long time ago in the year
[25:21] 2025. A lot of things happened very
[25:24] quickly in this field. And at that time
[25:26] even short video generators were
[25:28] completely changing the facial identity
[25:30] of people or characters that were
[25:33] generated. And using this technique of
[25:35] context packing uh Lumi was able to show
[25:37] that you know we can get really nice
[25:40] short-term consistency for these types
[25:42] of characters. So it was a really clever
[25:44] and simple idea for you know extending
[25:47] the context length.
[25:49] We looked into a couple other ideas as
[25:51] well. uh for example this idea of
[25:53] explicit memory and spatial memory was
[25:55] explored in a paper that we also
[25:57] published with my postto at Europs last
[26:00] year and the idea there was that we
[26:02] built a next frame predictor um but
[26:05] instead of just working on RGB we also
[26:08] want to have a spatial memory something
[26:10] that remembers the spatial structure
[26:13] that likely doesn't change over time so
[26:15] remembering everything and how it moves
[26:16] is hard because you need to remember
[26:18] everything in 4D space and time but if
[26:21] you just remember the 3D nature of the
[26:23] scene. So that you know if I go to the
[26:25] the Hoover Tower, I come over here and I
[26:27] go back to the Hoover Tower, at least
[26:29] the Hoover Tower still looks the same. I
[26:30] don't expect every leaf to still be the
[26:32] same. And in fact, I wouldn't even be
[26:33] able to recognize if leaves have changed
[26:35] or people that walk by. They don't have
[26:37] to be remembered, but the spatial
[26:38] structures have to be remembered. So the
[26:41] way we implemented that in this project
[26:42] was we not only generated RGB for each
[26:46] frame, but also a depth map that can be
[26:48] just extracted with other models. This
[26:50] depth map was then fused into a globally
[26:52] consistent point cloud. And so we're
[26:55] basically building up a 3D map being
[26:57] represented by a 3D point cloud over
[26:59] time. So we don't know the environment
[27:01] when we start out, but as the agent
[27:02] walks around the room, we're just going
[27:04] to keep building up this 3D map. And
[27:06] then we're going to render a point cloud
[27:07] rendering of this map from whatever
[27:09] position we're at and use that to
[27:11] condition the model. So when we revisit
[27:13] a place that we visited before, it's
[27:15] already specified at least the spatial
[27:17] structure of that. But when we go to a
[27:19] new place, it's not conditioned on that
[27:21] because it's just going to be generated.
[27:24] We also remember a couple key frames and
[27:26] there was a pretty simple idea that you
[27:28] know is now adopted by actually a lot of
[27:30] different systems like this idea of
[27:31] using a map building up the map along
[27:33] the way is this idea of this anchored
[27:35] open loop generation that I mentioned
[27:37] earlier.
[27:39] All right, let's talk about multiple
[27:41] agents operating in this world. So
[27:43] hopefully I've convinced you by now that
[27:45] diffusion models are real-time game
[27:46] engines. And what I'd like to talk about
[27:49] next is like how do you turn that into a
[27:51] multiplayer experience. So this is
[27:54] footage from the game Doom, you know,
[27:57] sort of like 1990s when I was a teenager
[28:00] and played computer games. These are the
[28:02] types of games that we played. And the
[28:06] the re I'm not embracing violence or
[28:08] first-person shooters in this talk, but
[28:11] it is very easy to generate a lot of
[28:13] data using the Doom game engine that is
[28:15] freely available online. So the only
[28:17] reason why we use this is because it was
[28:19] the easiest way to generate a lot of
[28:21] data. Okay. So we basically built a
[28:24] multiplayer game engine and we what we
[28:26] did is we used this idea of a map. Most
[28:28] computer games have a map already, a
[28:30] mini map. Usually that's 2D. uh we can
[28:32] design the maps manually or generate
[28:35] them. And then what we do is we
[28:37] condition the video model on this map.
[28:39] And the way we do that is we extrude all
[28:41] the walls up straight up. We position
[28:44] the player in on the map and we render a
[28:48] depth map of the map or disparity map
[28:51] that is used to condition our next frame
[28:53] predictor along with the context frames
[28:55] and turning noise into frames as I said
[28:58] before and also with these actions. So I
[29:00] want to be able to navigate with my
[29:02] agent. So now whatever actions I'm
[29:05] taking in this case it's basically
[29:06] navigation and shooting go into this
[29:08] model and I generate the next frame. But
[29:11] the it's going to be consistent over
[29:13] time based on the usage of this map. And
[29:15] then we need to update the that state as
[29:17] well. So we do that with a separate
[29:20] neural network here. Uh I can talk about
[29:22] the details later but we need to update
[29:23] the globally consistent state for all
[29:25] players and that is also stored on the
[29:27] map.
[29:29] Okay. So when a single player walks
[29:31] through a level kind of looks like this,
[29:33] the geometry of the scene is always
[29:35] going to be consistent. You can always
[29:36] go back to places, but the texture isn't
[29:39] necessarily going to be the same because
[29:40] that's only coming from the context
[29:42] window. Okay? Only the global 3D
[29:45] structure, not the appearance, not the
[29:47] texture will be actually consistent. But
[29:49] you know what? I bet you that you
[29:51] wouldn't even notice if the tile on the
[29:53] wall is slightly less brown than the
[29:54] last time you saw it.
[29:56] Okay, so now for multiple players, we
[29:59] basically just store the location and
[30:01] orientation of each player on the map as
[30:03] well as their state, which is dead or
[30:05] alive. And then that is all conditioned
[30:08] into for each player. So each player can
[30:10] actually play the game completely
[30:11] separately. The only thing that needs to
[30:13] be shared is the map.
[30:16] And so here we have a video of a couple
[30:18] lab members playing this game for I
[30:19] think 30 minutes straight. There's no
[30:21] drift. It works really well. It was
[30:24] hosted on a server. So this is like
[30:26] rendered actually on a couple pretty
[30:28] beefy GPUs
[30:30] and it was a lot of fun. We even hosted
[30:32] this publicly online for about a week
[30:34] through modal. So thanks Modal AI for
[30:37] letting us host this and we had
[30:39] thousands of players actually play this
[30:41] game online. So using a map is a great
[30:44] way of sharing state across multiple
[30:46] players.
[30:47] Let me talk about controllability
[30:49] because that's an important aspect of
[30:51] this.
[30:52] We've worked on a whole bunch of
[30:54] different ways of controlling these
[30:55] video models. I just want to do a quick
[30:57] fast forward of things that are
[30:58] important to consider without
[31:00] necessarily going into the technical
[31:02] details. So one thing that you might
[31:03] want to control is the camera pose. So
[31:06] this is actually a imagetovideo
[31:09] generation idea where you have the image
[31:12] only the single image goes in and then
[31:14] you generate this video but you control
[31:16] the camera pose. So you want to say
[31:17] exactly where you're looking and where
[31:19] you're going and that's called camera
[31:22] control and we sort of published this
[31:24] idea with a paper called camera control
[31:26] one and two. Uh also last year this is a
[31:29] pretty standard feature now in a lot of
[31:31] systems like this.
[31:33] Uh more recently we worked on hand
[31:35] control. So if you use this for VR where
[31:38] you generate the entire experience which
[31:41] I call generated reality uh you want to
[31:44] condition on both the tracked head pose
[31:46] the camera conditioning but also on the
[31:48] hands in order to enable hand object
[31:50] manipulation and interaction in the
[31:53] generated world. So here you can see my
[31:55] my master student basically is this is a
[31:59] generated world. He can use these props.
[32:00] He can pet the dog. the dog can react to
[32:03] his hand or he can do many different
[32:05] things, play a game with his hands. So
[32:07] that's a pretty standard feature that
[32:09] you'd want to have in a VR setting and
[32:10] typically use controllers or tracked
[32:12] hands for that, right? But you can also
[32:14] integrate that into a video model. And
[32:17] then another feature that we published
[32:18] in a paper at CVPR earlier this year, we
[32:21] call it bullet time actually space-time
[32:23] control. So here we're seeing a couple
[32:25] of examples where we saw the input
[32:27] videos first. So these are just random
[32:28] videos, but then we figured out a way
[32:30] for not only controlling the camera, but
[32:32] also stopping the time. So we can have
[32:34] independent control knobs of the the
[32:37] world time inside the scene and the
[32:39] camera. So I don't know how many of you
[32:41] remember the movie The Matrix, but there
[32:43] was this famous scene that is called the
[32:45] bullet time where the camera sort of
[32:48] moves around Neil as he's shooting and
[32:50] dodging all these bullets, right? So we
[32:52] can do this actually with real videos.
[32:54] you can be uh in that matrix movie now
[32:57] or your dog or your cat or whatever. Um
[32:59] but this requires independent control
[33:01] over the global time in the scene and
[33:03] the camera itself which is usually
[33:04] coupled.
[33:06] So I'm I'm mentioning a couple of these
[33:08] space-time control and camera control
[33:10] features here because these are all
[33:12] features that we've seen in some of the
[33:13] very popular video generation models uh
[33:15] that are commercially available such as
[33:17] WorldLaps's Adl. So there's space-time
[33:20] control, there's camera control, there's
[33:22] a couple of these things and these all
[33:23] based on ideas like that.
[33:26] All right. So last topic that I want to
[33:29] cover that we've been doing in the lab
[33:30] is drift. So as you're autogressively
[33:33] rolling out this video generator, you
[33:36] know, bad things happen because you
[33:37] always make small mistakes when you
[33:39] hallucinate something, you generate
[33:40] something. So if you just keep rolling
[33:42] out this auto reggressive video
[33:44] generation, uh strange things happen as
[33:47] you can see here. So the motion of the
[33:49] scene gets weird. Colors get saturated.
[33:52] Objects start looking really strangely.
[33:56] And the reason for that is simple.
[33:58] During training, the model is always
[34:01] trained on clean frames that are coming
[34:03] from some real video in the context. But
[34:06] during inference, the past frames are
[34:08] actually generated and they become
[34:09] progressively worse because they they
[34:11] are not actually from the same
[34:12] distribution as what you've trained on.
[34:14] So this is known as exposure bias also
[34:17] in LLMs. Um so the result is that it
[34:20] accumulates errors. And so in robotics
[34:23] there's a very simple method that has
[34:25] been around for a long time called data
[34:27] set aggregation or dagger. And that
[34:30] works as follows. Let's say you have a
[34:31] self-driving car and the car drives on
[34:33] the street and every once in a while it
[34:35] drifts over. Uh what are you going to
[34:37] do? You have a remote hello operation
[34:39] person dial in and say, "Oh, something
[34:41] bad has happened. I'm gonna correct uh
[34:44] what's happening here. I'm gonna steer
[34:47] the car back into the middle of the
[34:48] lane. So, you have these expert
[34:50] demonstrations that help you recover
[34:52] from errors. And so, we would like to do
[34:55] the same thing. This is well established
[34:56] method works like a charm. Um we would
[34:59] like to do the same in video generation.
[35:01] The question is just where do you get
[35:02] these expert demonstrations? You can't
[35:03] just have people manually correct bad
[35:05] videos. So we came up with a super
[35:07] simple idea which is we post-train the
[35:10] model on you know degrading versions of
[35:13] itself. So we just roll out the video
[35:15] model you see these degradations for
[35:17] example here by you know color
[35:19] saturation in in the in the video and we
[35:22] play them in reverse
[35:24] um with a text prompt that says this is
[35:27] played in reverse. So you wouldn't see a
[35:28] fish swimming backwards. So we don't you
[35:30] know that we fix that by the text
[35:31] prompts but basically you get the
[35:33] corrective errors by just playing the
[35:35] videos in reverse we call this bagger or
[35:37] backwards aggregation
[35:40] and when we train the model this way
[35:42] multiple rounds it actually learns to
[35:43] correct itself because it's learn
[35:45] because the degradation actually changes
[35:47] every time you train the model and every
[35:49] model is different uh and so on and so
[35:51] forth. So you avoid color saturation you
[35:54] avoid strange motion it works pretty
[35:57] well. So here's a couple other methods
[35:58] in case you're actually into this. So
[36:00] there's different previous work history
[36:02] guidance for example. You see color
[36:05] saturating quite a bit on the very left
[36:07] self-forcing the the colors always look
[36:10] good because this uses a distribution
[36:12] matching loss. So it makes sure that the
[36:13] images always look good but then the
[36:15] motion is affected and the motion is
[36:16] very static and you see actually see
[36:18] degradation in the motion. It's mostly
[36:20] static whereas bagger actually allows us
[36:22] to get good appearance and motion.
[36:25] All right. I should say that many of
[36:26] these academic projects are trained here
[36:28] on Marlo. So we're really grateful to
[36:30] have this. This is the interruption
[36:31] where I'm going to do some
[36:32] advertisement. Marlo is an amazing
[36:34] resource here on campus. Uh it we need
[36:37] it to do research like this. Uh we can't
[36:40] do it without there's far too few too
[36:44] few GPUs that we have right now. I think
[36:46] this is a shared resource across all of
[36:48] campus. And uh yeah, thank you to Marlo
[36:51] and the team for helping us uh with
[36:53] this. uh Craig and many others are in
[36:55] the room. So yeah, we can't do this work
[36:58] without Marlo.
[37:00] All right, but now I'm going to talk a
[37:01] little bit about uh these video action
[37:03] models. So how do we use this for
[37:05] robotics? And this is not work done here
[37:07] in the lab. This is actually work done
[37:08] in a startup that I'm affiliated with
[37:10] called ROA. AI and this is sort of the
[37:13] world agents part. So assuming that we
[37:15] know everything that we've just heard
[37:16] about video models, you know, how do we
[37:18] use it to drive robots?
[37:20] Okay, so what's driving a robot is a
[37:23] policy and a policy typically closes the
[37:27] perception action loop. So you perceive
[37:29] your environment as the robot and then
[37:31] you need to figure out what are the next
[37:33] actions that you need to take in order
[37:34] to complete a task. So that's the
[37:37] observation to action loop. Now there's
[37:39] multiple ways you can do this. You can
[37:41] do this with a traditional simulator as
[37:43] I mentioned earlier and a traditional
[37:45] simulator is great because it gives you
[37:47] lots of data for free. But the problem
[37:49] is really the sim toreal gap. The
[37:51] diversity of the data will never match
[37:53] the complexity of the real world. And
[37:55] that's part of the reason why a lot of
[37:56] robots that are trained in a simulated
[37:58] environment don't necessarily function
[38:00] well in the real environment. It's lack
[38:03] of diversity. So now what if you had a
[38:05] perfect world model that acts as a
[38:07] simulator? Well, you're going to get
[38:09] lots of data. You don't have a simpal
[38:11] gap in principle at least. But there is
[38:14] no perfect world model quite yet that
[38:16] isn't able to simulate everything you
[38:18] want with the condition on every action
[38:20] you can take. So it's going to be very
[38:21] easy for the robot to break this. So
[38:23] these world models aren't quite ready
[38:24] yet. And maybe there's a hybrid world
[38:26] where we can combine traditional
[38:28] simulators and generation. That's
[38:30] probably a good thing. And many other
[38:31] ideas are out there but it's not quite
[38:33] there yet.
[38:34] So most people sort of you know just
[38:37] train and why not train your policy on
[38:40] all the data that was used to train the
[38:41] video model in the first place because
[38:42] it takes a lot of time to train the
[38:43] video model and then if your only goal
[38:45] is to train a policy after with that you
[38:47] know why not just use the original data
[38:49] in the first place. So most people use
[38:51] this you know imitation or supervised
[38:53] learning strategy where we have a lot of
[38:55] videos with labeled actions and we're
[38:57] going to train our robot policies on
[38:58] this. This is sort of diffusion policy
[39:00] for example. was also a diffusion model
[39:02] that takes the last couple of
[39:03] observations and the last couple of
[39:04] actions of a robot in but the output is
[39:06] not frames it's actions okay that's sort
[39:09] of what most people in robotics do the
[39:11] problem is that availability of data so
[39:14] what's enabled the world to scale AI
[39:17] systems is scalable network
[39:18] architectures like transformer data and
[39:22] a lot of GPUs but the data hasn't really
[39:25] been there for robotics
[39:27] I just this is actually from a couple
[39:29] months ago I asked Gemini to tell me how
[39:32] many action label video tokens are there
[39:34] on the internet guess. And it gave me
[39:37] something like this uh you know maybe
[39:39] 2,000 hours or something like that. And
[39:41] I asked it to give me a sense of how
[39:43] many video tokens are there online on
[39:44] all of the internet right this total
[39:46] approximation without action labels and
[39:49] said oh well we have two billion hours
[39:51] of random videos online. So this
[39:54] supervised learning approach basically
[39:56] limits ourself to training on this
[39:58] little red dot. And our idea was well
[40:01] why don't we on the blue circle instead
[40:04] and the blue circle here is not drawn to
[40:05] scale. If I were to draw it to scale
[40:07] with a little red dot it would have a
[40:09] diameter of 60 meters. So just to give
[40:11] you a sense of the order of magnitude we
[40:13] have a lot of random videos. These could
[40:15] be egocentric videos of people wearing
[40:17] cameras filming themselves you know
[40:18] cooking in the kitchen or something like
[40:20] that right but it's not robot specific
[40:22] data.
[40:23] Okay. So, you know, it's a problem to
[40:27] work on smallcale data because I think
[40:31] the the motto of Silicon Valley open AI
[40:33] and so on since 2020 at least was that
[40:37] we need to scale. And the reason is that
[40:39] we see emergent behaviors at a scale
[40:42] that we just don't see otherwise. And
[40:44] these emergent behaviors could be chain
[40:46] of thought, reasoning, they could be in
[40:48] context learning, lots of cool stuff
[40:50] that you use every day with CHPT. They
[40:53] only appear if you train a large enough
[40:54] model on a large enough amount of data.
[40:56] And that was sort of, you know, found in
[40:58] the scaling laws for new language model
[41:00] paper from 2020. So we need to sort of
[41:02] think about robotics in the same way.
[41:04] There's two ways of thinking about it.
[41:05] either we make the blue dot larger and a
[41:07] lot of companies are out there right now
[41:09] capturing you know a lot of data for
[41:11] robots or we just train on all the data
[41:13] that we already have that isn't labeled
[41:15] on on actions. Okay. So our idea was we
[41:19] reformulate the problem as a video
[41:21] generation problem where we say hey our
[41:23] policy should match map observations
[41:26] into future observations and then we can
[41:29] derive the actions from that because
[41:30] then we can train on all the unlabelled
[41:32] videos and so mapping future
[41:34] observations into actions that's an
[41:36] inverse dynamics problem. If I visualize
[41:39] myself doing a task in the future like
[41:41] my goal is to grasp this object I can
[41:44] just visualize mentally what what's
[41:46] going to happen. my arm is going to move
[41:47] there and I'm my hand's going to grasp
[41:49] it. Okay, if I had the video of that, I
[41:51] can it's actually trivial to get the
[41:53] actions the endector pose and so on or
[41:55] the hand or the robot arm from that
[41:57] video. And we can train the video
[42:01] on internet scale data, web scale data.
[42:04] So we break it up into two sub problems.
[42:06] The video generation problem, causal
[42:08] video generation in real time action
[42:10] condition and then the inverse dynamics
[42:12] problem. And it turns out that the
[42:13] inverse dynamics problem is very data
[42:15] efficient. You don't actually need much
[42:17] data to train an inverse dynamics model,
[42:19] but you need a lot of data for this
[42:20] video generation. And so you can read up
[42:22] all the details on our blog post causal
[42:24] video models or data efficient robot
[42:26] policies that we put out earlier this
[42:28] year. I mean, we started working on
[42:29] video-based uh robotics about two years
[42:32] ago and now everybody is doing this,
[42:35] right? Like this is sort of what Cosmos
[42:37] 3 all the world models out there all
[42:39] video gener.
[42:45] What we're doing is we're building
[42:47] robots for industrial tasks and
[42:49] logistics. So, they're doing really dumb
[42:52] things like uh dumping out heavy objects
[42:55] out of a box. And you can see them in
[42:57] action here. Uh on the upper left is a
[43:00] what's called a decanting task. Big
[43:02] heavy box comes in uh in a factory. The
[43:05] robot arms will auto autonomously open
[43:07] the box. They will dump out these ball
[43:09] bearings into a tote. They will sort
[43:12] plastic parts and the wax paper that's
[43:14] inside the box into the recycling bins
[43:17] and so on and so forth. Really dumb
[43:18] task. Nobody wants to do this. Uh but
[43:20] now the robot can do this and this is a
[43:21] customer defined task from a large
[43:23] automotive manufacturer. Uh or in
[43:26] agricultural uh facilities oftent times
[43:28] agricultural products are actually being
[43:30] carried around in these boxes. Somebody
[43:32] needs to clean the boxes and break them
[43:33] down after it's done. So now the robot
[43:35] can do this. Here's a cool demo that was
[43:40] sort of the cup game. It shows that we
[43:41] have really long context actually. So,
[43:43] can you solve this cup game without any
[43:45] perception or tracking or anything like
[43:47] that? So, you know, the person hides an
[43:49] object under the cup, shovels them
[43:51] around, and only if we have a long
[43:53] enough context can you actually solve
[43:54] this task. On the lower left, you see
[43:56] the the video that's generated. The
[43:58] robot imagines itself doing the task
[44:00] successfully and then it executes the
[44:02] action successfully.
[44:04] Or returns processing. Say you order
[44:07] garments on Amazon and you don't like
[44:10] them, you return them. Somebody needs to
[44:11] inspect these garments and pack them
[44:13] back up to make sure that they're usable
[44:15] again. So a robot can do this, but it's
[44:18] going to be much more efficient in doing
[44:19] it if it remembers what it's already
[44:20] inspected before.
[44:23] All right. So again, this is not work
[44:24] that's done here, but it directly builds
[44:26] on video world models where we use the
[44:29] video model as the policy. Basically,
[44:32] there's a lot of open challenges in this
[44:34] space. Um it it it is getting pretty
[44:37] crowded. So we have been working on this
[44:38] for a few years already. So I can't say
[44:40] hey this is you know the wild west right
[44:43] now because there there's a lot of works
[44:45] out there already and these are pretty
[44:46] large models. So it's you need quite a
[44:48] few GPUs to actually do anything useful
[44:50] in this space but there are a lot of
[44:52] open problems. So long context we need
[44:55] longer context. This is a never- ending
[44:57] question. No matter how long your
[44:59] context is you want it to be longer for
[45:00] many reasons. You want to remember 3D
[45:02] structure. want to remember things that
[45:04] you've done. It's good for extrapolating
[45:07] dynamics. Um you need it for in context
[45:10] learning. You need it for many different
[45:11] things. Uh planning on reasoning. You
[45:14] know VLM integration. There was a
[45:16] question earlier. You know what what is
[45:17] there a VLM? Uh yes you want the VLM to
[45:20] be in there. The question is how do you
[45:21] combine these two in the best way? Uh
[45:24] maybe you want to do reasoning on the
[45:25] diffusion model scale not necessarily in
[45:28] the VLM. Most people are using reasoning
[45:30] in the VLM right now. efficiency. These
[45:33] models are large. You have many
[45:34] diffusion steps. So there's a lot of
[45:36] work on few step distillation. How can
[45:39] you generate the images with one step or
[45:41] two steps instead of 30 or 50? Uh token
[45:44] efficient generation topics that a lot
[45:46] of folks in my group are working on like
[45:48] Brian over there and George. Um how do
[45:51] you just, you know, use the tokens from
[45:53] the context that actually matter? You
[45:55] don't need to look at everything. Maybe
[45:57] you just figure out what's important for
[45:58] the tasks that you're trying to do and
[46:00] focus on those. Uh so that's good
[46:02] quantization and pruning model
[46:03] architectures lots of stuff good stuff
[46:05] out there. Uh representation learning
[46:07] right now the VAE that we're working
[46:09] with aren't really not great. Uh but
[46:11] it's not clear how to get a scalable uh
[46:14] you know approach for representation
[46:16] learning that is not meant for
[46:18] discriminative tasks but for generative
[46:20] tasks right so that's an open question.
[46:23] uh agentic world models. We've seen GPT6
[46:25] now using tools and closing the loop and
[46:28] many cool examples like 3D scene
[46:29] reconstruction using Blender stuff like
[46:31] that. So how do we use GPT6 and aentic
[46:34] AI as verifiers or in some kind of an
[46:37] iterative loop in this in this world and
[46:41] then world action models again it's not
[46:42] actually entirely clear what the best
[46:44] way of generating actions and
[46:46] observations are or do you always need
[46:48] observations you know can we just drop
[46:50] them at inference time perhaps lots of
[46:52] open questions make things more
[46:53] efficient and and better
[46:56] all right that brings me to the end of
[46:58] the talk uh I think I'm a little bit
[46:59] over time because we started a couple
[47:01] minutes
[47:02] Uh so I direct what's now called the
[47:04] physical and spatial AI lab here at
[47:07] Stanford. Um we work on all kinds of
[47:10] things related to optics, imaging, XR,
[47:13] LAR but mostly on the AI part driving it
[47:16] but work on fundamentals and
[47:17] applications and I just wanted to thank
[47:20] all my students and posttos who've done
[47:22] all the amazing work that I've shown you
[47:23] today. Without them I wouldn't be able
[47:25] to do anything. So thank you so much and
[47:27] thanks to Marlo because without the GPUs
[47:29] we also wouldn't be able to do anything.
[47:30] Um thanks.
[47:39] Okay. The question is how do we think
[47:41] about time in a world model? I mean
[47:43] typically the the naive way is just to
[47:46] think about frame index as time. So when
[47:48] a frame is five frames in the past it
[47:51] has a index of minus five or something
[47:53] like that. That's how the positional
[47:54] embeddings are sort of created in the
[47:56] tokens. That's how the model sees time.
[47:59] it it knows what's spatially closed and
[48:01] temporally closed based on those frame
[48:03] on the frame index. But that's
[48:05] insufficient if you actually want to
[48:06] have control over the global time or
[48:08] independent control over camera pose
[48:10] time and frame index. So that that was
[48:12] sort of a topic we explored in this
[48:15] bullet time project where we said oh the
[48:17] scene has to have a global time that we
[48:19] need to be able to control independently
[48:21] of the frame index for example. So uh
[48:24] mostly it boils down to okay let's
[48:26] define what we want to control. Let's
[48:28] find an efficient control mechanisms.
[48:30] How do we get this control signal into
[48:32] the architecture? But then the biggest
[48:34] question is usually how do we get the
[48:35] training data to actually train a model
[48:37] on that? Because it needs to have a lot
[48:38] of examples where all of these variables
[48:41] you want to control are observed
[48:43] independently being changed and that
[48:45] usually it boils down it's a data
[48:47] problem.
[48:50] Yeah. Yeah, that's a great question. So
[48:52] how does the model know it's wrong? So
[48:54] in the closed loop setup, you
[48:57] imagine the future, but you imagine it a
[49:00] little bit into the future, right?
[49:01] You're you're planning out maybe a
[49:03] second or you know a few frames, a chunk
[49:06] into the future. You perform that action
[49:08] and then you can have a verifier which
[49:10] could be a VLM or perception model or
[49:13] something else that sort of observes
[49:14] what actually happened and is this in
[49:16] line with what I actually want to
[49:17] achieve. You can also roll out the you
[49:20] can generate many plausible futures in
[49:22] simulation first and then pick the one
[49:24] that you actually want for example. So
[49:27] there's I don't think there's a
[49:28] principle way of telling whether an
[49:32] physically executed action from the
[49:33] model will actually be successful, safe
[49:37] uh and even viable. It will just do it
[49:42] right. But I think you know safety is a
[49:44] big thing and a VLM at the highest level
[49:47] you can have a VLM act as a verifier but
[49:49] there are many more complicated
[49:51] uh and better methods to doing that.
[49:57] Oh yeah yeah so the question is like how
[49:59] good are the base models and also like
[50:01] maybe let's let me add a a nuance to
[50:04] this. Pre-training is really hard. It
[50:06] takes a lot of resources. So you need
[50:09] you know it's incredibly hard. I can't I
[50:12] can't tell you how hard it is because
[50:14] you need to get the architecture right.
[50:15] You need to get a lot of data. You need
[50:17] to get the labels for the data and then
[50:19] you have to have an enormous amount of
[50:20] resources to train these models. And
[50:22] once you've trained it, you can still
[50:24] post train and do some mid training, but
[50:26] that is more like massaging it towards
[50:29] what you want. If you want a real-time
[50:31] model, for example, because you're
[50:32] working at a game engine company or
[50:35] something like that, you know, taking a
[50:37] very large 14 billion parameter
[50:40] diffusion transformer, it's going to be
[50:42] very hard, right? You like you can
[50:44] distill the hell out of it and it's
[50:45] still going to be slow and it needs a
[50:47] beefy GPU. And that brought us down to
[50:50] cost, latency, and cost. If you just
[50:52] want to play a game, I mean, you're not
[50:54] going to pay by the token, right? Like
[50:55] you just want to play the game and it's
[50:57] going to be have to be responsive. So
[50:59] retraining is really hard. And I think
[51:01] there are a few more open weight up
[51:03] models out there. They're pretty good. I
[51:04] mean, they've gotten a lot better. Like
[51:06] two years ago, a year ago, we had
[51:08] animate diff from animate div to Cosmos
[51:11] 3 and one 2.2 and other state-of-the-art
[51:15] models. I mean, we've gotten very far,
[51:17] but I think there's always going to be
[51:18] just a few models, and people seem to
[51:20] have gotten a little bit more secretive
[51:22] about their models. So, we've seen less
[51:25] pure models to be open sourced also. Um,
[51:29] they're big and they're getting
[51:32] good. I don't think they're quite there
[51:33] yet. That's what I was saying. Like I I
[51:35] don't think I would train my robot that
[51:37] I want to sell to a customer on any of
[51:38] these existing models, right? It's not
[51:41] quite there yet, but it's getting
[51:43] closer.
[51:45] Yeah. Okay. So, how's the point globally
[51:47] consistent point cloud conditioned into
[51:49] this what I called an anchored open loop
[51:52] generator? Right. So, first of all,
[51:55] you're right. The point cloud grows as
[51:57] you're exploring the world. You get more
[51:58] and more points and you want to merge
[52:00] them. We did it pretty naively. We just
[52:02] filter out the dynamic objects and then
[52:04] we merged it into the point cloud. But
[52:05] if you roll this out for an hour or a
[52:08] year, you're going to get a lot of
[52:09] points, right? And they need to be
[52:10] stored somewhere. Now, so that's
[52:12] something that we did not solve. Um, the
[52:16] way we put this into the context is
[52:18] actually we render the point cloud from
[52:19] the perspective of the user and that
[52:21] gives us an image of the point cloud
[52:23] that has a bunch of splattered points.
[52:25] That's very fast to do and it actually
[52:27] doesn't require that much memory because
[52:28] it's just an extra channel or three in
[52:31] the context window and that's even
[52:32] sparse. So it's pretty compressible if
[52:35] you want and so
[52:37] the context isn't necessarily the
[52:39] problem but I think that the growing map
[52:42] would probably be a problem. This is a
[52:43] 3D map. People have explored Gaussians
[52:46] and meshes and all kinds of other things
[52:48] to represent these maps. Or you could do
[52:49] it in 2D also that that's going to give
[52:51] you a lot of savings and then just
[52:52] extrude stuff. Yeah. So there's a lot of
[52:55] tricks and a lot of papers have been
[52:56] published on this topic for the last
[52:58] year or so.
[53:00] All right. Uh so hallucination is a is a
[53:02] big problem. I mean the thing is a
[53:03] generative model will always
[53:04] hallucinate. That's what it's trained to
[53:06] do, right? So when people say, "Oh, we
[53:08] don't want the models to hallucinate."
[53:10] That's what it's trained to do. Any
[53:11] generative model will hallucinate. It'll
[53:13] hallucinate something, but hopefully
[53:15] it's plausible enough and close enough
[53:16] to what you want that you know it does
[53:19] the right thing. So I would say in the
[53:22] context of robotics which is probably
[53:24] the area that you're most interested in.
[53:26] I mean I think staying grounded on the
[53:27] physical observations that's sort of the
[53:30] key. So you look at the observations
[53:32] from your robot whether it's a drone or
[53:34] a robot could be a wrist camera doing
[53:37] manipulation or a headorn camera or
[53:40] something else. You always generate just
[53:42] a little bit into the future uh enough
[53:45] to perform the next action and then
[53:47] you're gonna roll this out in a loop.
[53:49] Right? So you're not going to do
[53:51] planning for like minutes or hours into
[53:54] the future. I think that's best done by
[53:55] the VLM. It's like task planning and you
[53:58] know breaking up the high level tasks
[54:00] into multiple steps and multiple
[54:01] actions. But the video model is really
[54:03] good at motion planning and planning the
[54:04] next physical robot trajectory that's
[54:07] going to succeed in grasing this object.
[54:10] But what comes after it doesn't even
[54:11] know that, right? So I think staying
[54:14] grounded on physical observations is is
[54:16] a very important. And it's not just
[54:18] visual observations. It could be tactile
[54:20] sensors or audio or other signals too.
[54:22] So I didn't talk about this but that can
[54:24] be useful.