SCANeR and its peers are excellent — and 30-year-old, six-figure, GUI-first monoliths built for OEM validation departments. AutoSim is the open, Python-first, cloud-native scenario-validation engine the modern ADAS software team actually wants: scenarios that diff in Git, bit-reproducible replays, and pass/fail safety gates in every pull request.
pip install autosim && autosim run aeb_stationary
These aren't mockups. Each scenario below was simulated by the AutoSim engine, recorded deterministically, and replayed in your browser — the same recording you'd attach to a PR or a safety case. Switch scenarios, scrub the timeline, read the verdict.
Author a scenario in any editor. It diffs cleanly, reviews in a PR, and runs the same on a laptop and in a cloud fleet. No license server required to open your own test.
# aeb_stationary.yaml scenario: {name: aeb_stationary, dt: 0.02, duration: 15} road: {type: straight_highway, lanes: 2, length: 2000} entities: - id: ego init: {lane: lane0, s: 0, speed: 22} controller: type: aeb ttc_brake: 1.8 sensor: {type: object_list, max_range: 160} base: {type: speed_keeper, lane: lane0, set_speed: 22} - id: obstacle init: {lane: lane0, s: 85, speed: 0} evaluation: assertions: - {type: no_collision} - {type: min_distance, threshold: 0.5} - {type: max_deceleration, limit: 9.5}
# In CI — exit code gates the PR $ autosim run aeb_stationary PASS aeb_stationary_obstacle (duration) min TTC 1.67s min gap 12.6m peak decel 9.0 ✓ NoCollision ✓ MinDistance: 12.59m >= 0.5m ✓ MaxDeceleration: 9.0 <= 9.5 # 10k-variant campaign in a fleet $ autosim sweep cutin.yaml sweep.yaml \ --workers 32 --min-pass-rate 0.999
The Python API is the product. Subclass a controller, a sensor model, or a metric in plain Python and drop it straight into the same engine.
OpenSCENARIO-inspired YAML: entities, init, story/act/maneuver, triggers. Version it, review it, reuse it.
Fixed-step integration and seeded stochasticity. The same scenario yields the same trajectory everywhere.
Reference ACC, latching AEB, and Lane-Keeping Assist you can validate or replace with your own — driving on real sensor detections, not ground truth.
Object-list radar, 2D ray-cast lidar, and camera-FOV detectors with configurable noise, dropout, range, FOV, and line-of-sight occlusion.
TTC, time-headway, min-gap, jerk, lane departure, and RSS safe-distance — with declarative pass/fail assertions.
Grid and Monte-Carlo campaigns run in parallel, aggregate to one pass rate, and render a pass/fail heatmap over the parameter space — built for a fleet.
AutoSim owns the behavioral / functional rung — where the overwhelming majority of ADAS software bugs live. It complements a physics lab; it replaces the 95% of validation cycles that never needed one.
| Rung | Question it answers | AutoSim |
|---|---|---|
| Behavioral / functional | Does the planner/ACC/AEB decide correctly across the scenario space? | Core focus |
| Kinematic / dynamic vehicle | Does the trajectory respect vehicle limits? | Kinematic + dynamic bicycle |
| Idealized sensing | Given ground truth + noise/dropout/FOV/occlusion, does perception-consuming logic hold? | Object-list · lidar · camera |
| Physics-based sensing | Does raw perception hold photometrically (ray-traced lidar, EM radar)? | Integrate a dedicated tool |
| Motion-platform DIL | Human factors, motion cueing | Out of scope |
Free, full-featured local engine. Pay only when you want the cloud scale and evidence workflow — at a fraction of an incumbent add-on.