Part 4 · the destination · follows Robustness

Building a
LiDAR Simulator

Everything so far needed one thing: a simulator that produces point clouds whose statistics match reality — to generate the rare, broken, perfectly-labeled data robustness depends on. Here's how you actually build it, and how you prove it works. (如何构建并验证激光雷达仿真器)

00 / THE JOB

What a LiDAR simulator must output

A camera simulator renders pixels. A LiDAR simulator must reproduce three physical channels per point — and getting all three right is the whole game.

① Depth / geometry (深度)

Where each return lands in 3D. The easy part — pure ray–geometry intersection. If this were all that mattered, a game engine would suffice.

② Intensity / reflectance (反射强度)

How strong each return is — depends on material, incidence angle, range. Lane paint and signs blaze; dark asphalt and wet road barely return. Models that skip this leave a signal detectors actually use on the table.

③ Raydrop (光线丢失)

Which rays come back as nothing. When a return is too weak — grazing angle, black/wet/specular surface, far range — the ray simply drops. The single hardest channel to fake, and the one that most betrays a synthetic cloud as fake.

01 / THE SIMULATOR BUILDER

Assemble a sim cloud, close the gap

Left = a real reference scan. Right = your simulated version. Switch on each modeling stage and watch the synthetic cloud — and the domain-gap meter — converge toward reality. (逐层逼近真实)

REAL · 真实参考
SIM · raycast only
Raycast geometryray–surface intersection → perfect grid
深度
Raydrop modellearned: drop weak / grazing returns
丢失
Intensity modelper-point reflectance by material/angle
强度
Sensor noiserange jitter + spurious points
噪声
Domain gap to real68%

Drag either panel to rotate both. Notice the order of impact: raw geometry looks too clean and too perfect; raydrop is what makes it look real. In LiDARsim, adding a learned raydrop network lifted downstream detection AP ~2% over no raydrop — and landed within ~0.7% of using oracle ground-truth raydrop.

02 / THE HARD CHANNEL

Why raydrop is the crux

Pure physics says "ray hits surface → return." Reality says "...maybe." That gap between deterministic geometry and probabilistic return is where sim-to-real lives or dies.

Physics gets you 90% — and it's not enough

A raycaster gives a clean, complete point on every surface. But real LiDAR drops rays for reasons too complex to hand-model: a grazing incidence angle, a black car, a wet road, a retroreflector blooming, the beam clipping an edge. The pattern of missing points is a fingerprint of the real sensor.

So you learn it (用神经网络学习丢失)

The trick that defined modern LiDAR sim: treat raydrop as a binary classification per ray, and train a small neural network on real scans to predict drop probability from geometry, range, incidence angle and intensity. The physics proposes; the network disposes. This single move is what separates "looks like a game" from "fools a detector."

The deeper lesson 💡

You can't pure-physics your way to realism, and you can't pure-learn your way to control. The winning recipe is physics for structure, learning for the residual — raycast the geometry you can compute, then let a data-driven model add the sensor quirks you can't. That hybrid is the throughline of every method below.

03 / FOUR GENERATIONS

How LiDAR simulation evolved

From hand-built worlds to neural reconstruction. Each generation traded a weakness of the last. Tap to expand.

~2017

Engine-based (CARLA / AirSim)

游戏引擎仿真
Hand-craft a 3D virtual world and raycast a LiDAR through it. Total control over scenarios and free perfect labels, but assets are costly to build and the clouds look synthetic — a large sim-to-real gap because nothing models real sensor noise or material physics.
+ full scenario control− big domain gap− manual assets
2020

Surfel reconstruction (LiDARsim, PCGen)

面元重建 + 神经丢失
Don't model the world by hand — reconstruct it from real scans. Aggregate real LiDAR into surfel (disk) meshes, raycast against them, then apply a learned raydrop network for realism. The breakthrough that made sim clouds good enough to train detectors. Limited to mostly static scenes and sensitive to reconstruction quality.
+ real-world realism+ learned raydrop− static, geometry-sensitive
2023

Neural fields (NeRF-based)

神经辐射场
Represent the scene as a continuous neural field and render new LiDAR views, including depth, intensity and raydrop, with compositional handling of dynamic objects. High fidelity and smooth novel views — but NeRF rendering is slow, which limits large-scale data generation.
+ high fidelity+ novel views− slow to render
2024–25

Gaussian Splatting (LiDAR-GS, SplatAD, LiDAR-RT)

高斯泼溅(当前SOTA)
The current state of the art. Represent the scene as millions of 3D Gaussians and splat the laser beams differentiably, re-simulating depth, intensity and raydrop in real time — an order of magnitude faster than NeRF at equal or better quality, with dynamic-scene support. This is what makes large-scale, sensor-accurate data generation practical.
+ real-time+ depth/intensity/raydrop+ dynamic scenes
04 / HOW YOU PROVE IT WORKS

Don't trust pretty pictures — measure the gap

A sim cloud can look great and still teach the wrong thing. Realism is judged by downstream agreement, not by eye. (用下游任务验证,而非肉眼)

The downstream-agreement test

Take a detector trained on real data. Run it on your simulated clouds. If it produces the same detections — same boxes, same confidences, same false positives — your sim is real enough. The metric isn't "does it look like LiDAR," it's "does a model behave the same on it."

TestQuestion it answersGood result
Train-sim → test-realDoes sim data transfer to reality?small accuracy drop
Detection agreementSame boxes on sim vs real?high overlap
Statistical matchSame point density / intensity / drop dist?distributions align
Augment real + simDoes adding sim help real performance?accuracy goes up

← swipe · these are the real acceptance tests →

A subtle finding: modeling even rare phenomena matters. Adding LiDAR secondary echoes — only ~5% of points — measurably shrinks the domain gap, because it changes false positives in a way that ripples all the way to planning.

05 / THE COMPLETE SYSTEM

Where this lands you

Pulling all four parts together — this is the engine the whole series was describing.

REAL LOGS

Capture reality 采集

Drive, record real LiDAR. The source of truth and the calibration target.

RECONSTRUCT + LEARN

Build the simulator 重建+学习

Reconstruct scenes (Gaussian splats), learn the sensor's raydrop & intensity from real scans. Physics for structure, networks for the residual.

GENERATE

Synthesize the tail 生成长尾

Edit scenes, drop sensors, add fog, place the once-a-year edge case — unlimited, perfectly-labeled, sensor-accurate clouds.

TRAIN ROBUST

Train for failure 容错训练

Mix real + synthetic; apply sensor dropout & corruption augmentation (Part 3.5). Clean labels, corrupted inputs.

VERIFY → loop

Close the gap 验证闭环

Measure downstream agreement & sim-to-real transfer. Where it still fails tells you what to capture or model next.

The throughline of all four parts 🌐

Part 1 was the sensor; Part 2 the stack that consumes its points; Part 3 the data quality that governs every model; Part 3.5 robustness to failure. Part 4 is the engine underneath all of it: whoever can simulate point clouds whose statistics match reality controls the quality ceiling of every model trained on them.

That's not adjacent to world models — it is the world-model thesis, applied to a sensor. A simulator that predicts realistic future point clouds is a learned model of physical reality. This is the lever, and it's exactly where the simulation / world-models work you're aiming at sits.