Skip to content

What is esmini?

esmini is an open-source OpenSCENARIO player developed by the Swedish ADAS community. It’s a deliberately minimal player widely used as a lightweight reference for OpenSCENARIO 1.x — small enough to read, fast enough to embed, and predictable enough to use as a sanity check.

esmini parses an OpenSCENARIO 1.x .xosc, loads the referenced OpenDRIVE .xodr road network, and executes the storyboard — driving entities along trajectories or controllers and streaming the resulting state.

It’s not a full physics-based simulator like CARLA or LGSVL. The minimality is the point: esmini is the open-source “does this scenario parse and play correctly?” baseline that most OpenSCENARIO tooling targets.

Because esmini is the most common open-source OpenSCENARIO 1.x consumer, “does it run in esmini?” is the standard sanity check for any OpenSCENARIO export pipeline. Most tools that produce ASAM files validate against esmini before claiming OpenSCENARIO support — including RoadRunner (which exports scenarios “compatible with any OpenSCENARIO-compliant simulators and players, such as CARLA, esmini, and IPG CarMaker”) and many others.

esmini wants, at minimum:

  • A .xosc (OpenSCENARIO scenario).
  • A .xodr (OpenDRIVE road network) referenced from the .xosc.
  • Optionally a .osgb file for 3D viewer rendering, or a Models/ directory of vehicle assets.

Packaging these together as a self-contained zip — sometimes informally called an “esmini bundle” — makes scenarios portable across machines and CI.

drawtonomy can export a zip with a .xosc, .xodr, and a run.sh invocation, targeted at a stock esmini install. Per drawtonomy’s exporter docs:

Terminal window
unzip <name>.zip
esmini --osc <name>/<name>.xosc --window 60 60 1024 768

Things to know:

  • The exporter covers a subset of OpenSCENARIO 1.3 / OpenDRIVE 1.8 — simple scenes play back; conditional triggers, parameter sweeps, complex storyboards, and OpenDRIVE junctions aren’t emitted today.
  • Vehicle assets default to esmini’s built-in models, so no extra .osgb is required.
  • The output is meant as a starting point — useful for sketching, teaching, demos, and minimal reproducers. For large-scale or parameterised scenario sweeps, hand-edit the XML or generate it from a DSL.