Research Platform

Vector Traffic Generation & Sensor-Level Closed-Loop Simulation

Two halves of a controllable driving simulator: a structure-aware temporal vector world model that generates traffic as latents, and a sensor-level pipeline that reconstructs, populates and re-renders photorealistic surround video.

Timeline
2025.05–Present
Context
Bosch (XC-CN)
Role
World Models Algorithm Engineer
Stage
Ongoing

Overview

What is this project about?

Problem

A simulator has to be controllable and photorealistic at the same time. Vector simulators let you author behaviour but render nothing a perception model believes; video generators look real but cannot be steered scenario by scenario.

What I built

Two levels that meet in the middle. A structure-aware temporal autoencoder (STAR-AE) compresses variable numbers of agents and lanes into a fixed latent, and a conditional latent diffusion model (STRIDENet) rolls that latent forward into history-consistent future traffic. Beneath it, a sensor-level loop fuses Gaussian-Splatting reconstruction of the real background with the generated traffic through a mask-guided DiT video editor built on MagicDrive-V2.

Result

Behaviour is authored as vectors and rendered as photoreal 7-camera surround video in the same loop, so a scenario can be changed at the level a person thinks about it — and the editor only regenerates the masked foreground instead of the whole frame.

My role. I designed and trained the vector level — the STAR-AE latent structure and the STRIDENet conditioning — and integrated it with the sensor-level pipeline. Reconstruction and the video editor are built on shared platform components.

This is one track inside the Generative Autonomous-Driving Simulation Platform: that project supplies the surround world model and the distilled sampler, this one supplies the traffic behaviour and the closed-loop re-rendering.

research world-model generative e2e
Structure-aware temporal VAE Conditional latent diffusion Gaussian-Splatting reconstruction Mask-guided DiT editor MagicDrive-V2 base
2 levelsVector control · sensor control
Fixed zVariable agents/lanes → one latent
4 masksKeep · context · edge · generate
Closed loopReconstruct → populate → re-render

Logic map

Two control levels — vectors decide what happens, sensors decide what cameras see

Left column generates traffic as latents; right column reconstructs the real background. They meet in a mask-guided editor, which is the only place the two levels have to agree.

Stages Real capture & reconstruction Vector compression Traffic generation Composition Simulator output
Links Data flow (inference)
View as tablesame content, no interaction needed
Two control levels — vectors decide what happens, sensors decide what cameras see — every node with its input, logic and output.
StageInputLogicOutputWhy / role
Driving Scene Input Recorded drives with map and sensor data Split the same scene into a vector level and a sensor level One scene into two parallel representations Splitting once at the source is what allows behaviour and appearance to be controlled independently and recombined later.
STAR-AE Encode A variable number of agents and lane elements over time Assign elements to slots, then factorise attention over space and time Per-slot latents Diffusion needs a fixed-size, continuous space. Traffic is neither — this is the component that makes the rest of the vector level possible. Trade-off. Slots impose a ceiling on scene density; too few drops agents, too many wastes capacity on empty slots. My role. Designed and trained the latent structure.
Gaussian Splatting Reconstruct Real frames plus auto-labels Optimise Gaussians, then render at an arbitrary pose Background renders Reconstruction supplies the one thing generation is worst at: a background that is verifiably the real world, from a camera pose that was never actually driven.
Structured Latent Latent Encoder posteriors Reparameterise to a continuous latent Continuous latent A smooth latent is what makes interpolation and sampling meaningful — without it, diffusion over discrete traffic has nothing to move through.
Photoreal Background Background Gaussian-Splatting renders Render the static world at the simulated pose Conditioning frames Perception models are unusually sensitive to background realism; a synthetic background is the fastest way to make a simulator useless for closed-loop evaluation.
STRIDENet Generate A noised latent plus the observed history Denoise, conditioning on history through adaptive layer norm A clean future latent Conditioning on history rather than on a single frame is what keeps generated traffic continuous with what already happened, instead of teleporting. My role. Designed the conditioning scheme and trained the generator.
Future Traffic Output Decoded latent Decode back to agents and lanes The what-happens layer Traffic stays editable as vectors right up to the moment it is rendered, which is the only level at which a scenario can actually be authored.
Mask-guided DiT Editor Compose Generated traffic and the reconstructed background Freeze the background, synthesise the foreground, resolve the seam Edited latents Regenerating a whole frame throws away a background that was already correct; masking spends the model's capacity only where something actually changed. Trade-off. Masked editing depends on the mask being right — a bad boundary shows up as a visible seam rather than a soft error.
7V Surround Video Output The composed latent Decode to surround frames Photorealistic surround video This is the closing of the loop: the simulator's output is the same thing the perception stack consumes in the car.

Temporal vector AE in motion

The VAE encodes sparse, variable scenes into a fixed latent and reconstructs them — agents and lanes stay temporally coherent.

Architecture, both halves

STAR-AE structure-aware temporal vector VAE
STAR-AE — slotify variable agents/lanes, then factorize time / space / cross-domain attention into one fixed latent.
STRIDENet conditional latent diffusion architecture
STRIDENet — denoise in the standardized latent space, conditioned on history, with decode-domain physics regularization.

Sensor-level closed loop

WorldSim closed-loop simulation framework
Three pipelines close the loop: Gaussian-Splatting reconstruction builds the real background, traffic generation populates it, and a DiT video world renders the surround result.

Mask-guided DiT — edit, don't regenerate

Four semantic masks partition every frame so the model only computes what must change.

MaskRegionAction
M_keepKnown backgroundFrozen — skip all compute
M_ctxReference backgroundCached — provide K/V only
M_edgeFg/bg boundaryActive — repair the seam
M_genForegroundActive — generate by condition
Mask-guided DiT architecture on MagicDrive-V2
Background is locked every step; foreground tokens align to BBox trajectories and read background appearance for seamless style fusion.

Before vs after the mask-guided editor

Direct baseline. Applying the original paper as-is — scene completion breaks down.
Mask-guided DiT. Foreground generated under different lighting, background untouched.

Closed-loop results

Precise control under a rainy-weather condition.
Pure-noise generation — full surround scene from scratch.
My role. Designed the structure-aware temporal vector world model (STAR-AE + STRIDENet) and built the sensor-level closed loop on a MagicDrive-V2-based mask-guided DiT editor. Wording is high-level to protect enterprise confidentiality.
Confidentiality note. Bosch (XC-CN) ongoing research. Architecture and method are presented at a portfolio level; internal data, calibration, metrics, and product details are intentionally omitted or sanitized.