drawtonomy vs esmini
esmini ist der quelloffene Referenzsimulator für ASAM OpenSCENARIO 1.x. Es wird von Maintainern aus der schwedischen ADAS-Community offen weiterentwickelt und hat sich zur meistgenutzten schlanken OpenSCENARIO-1.x-Laufzeitumgebung entwickelt — sauber, schnell und so verlässlich, dass praktisch jedes Autorenwerkzeug für OpenSCENARIO (auch drawtonomy) esmini als Referenz nutzt, gegen die validiert wird. Das drawtonomy-Team hat größten Respekt vor der Arbeit, die die esmini-Maintainer über viele Jahre in den Aufbau und die Pflege einer hochwertigen offenen Laufzeitumgebung gesteckt haben.
Was esmini abdeckt:
- Eine native Laufzeitumgebung, die das OpenSCENARIO-1.x-Storyboard simuliert: Acts, Sequences, Maneuvers, bedingte Trigger, Parameterdeklarationen, Controller.
- Einen 3D-Viewer (OpenSceneGraph) sowie eine 2D-Vogelperspektive, dazu einen Headless-Modus für CI.
- APIs für C++, Python und JavaScript (WebAssembly), sodass sich esmini in größere Simulatoren, Validatoren oder Trainingspipelines einbetten lässt.
- Eingebaute Fahrzeugmodelle, sodass eine gewöhnliche
.xosc- +.xodr-Kombination simuliert werden kann, ohne zusätzlich.osgb-Assets mitliefern zu müssen. - Eine kleine, schnelle, vorhersagbare Binary, die sich gut in Szenario-Regressionssuiten einfügt.
Wer OpenSCENARIO-1.x-Simulationssemantik braucht — bedingte Trigger, Parameter-Sweeps, eigene Controller, vollständige Storyboard-Ausführung —, ist bei esmini richtig; daran führt kein Weg vorbei.
Lizenzierung
Abschnitt betitelt „Lizenzierung“esmini ist Open Source unter der Mozilla Public License 2.0. Dass drawtonomy überhaupt einen browserbasierten OpenSCENARIO-Simulator anbieten kann, verdankt sich direkt dieser Lizenz und der Entscheidung des esmini-Teams, seine Arbeit offen verfügbar zu machen. drawtonomy hält sich für die mitgelieferte esmini-WASM-Binary an die Hinweis- und dateibezogenen Copyleft-Anforderungen der MPL-2.0.
Wie drawtonomy zu esmini steht
Abschnitt betitelt „Wie drawtonomy zu esmini steht“drawtonomy ist ein kostenloses, browserbasiertes Whiteboard für Fahrszenarien. Der In-Browser-Simulator baut auf esmini auf, kompiliert zu WebAssembly — der Simulationskern, der das Storyboard ausführt, ist esmini selbst, mit demselben Parser, derselben Storyboard-Semantik und demselben Fahrzeugzustand. Die Simulationskorrektheit stammt an keiner Stelle von drawtonomy — sie gehört esmini und dessen Maintainern.
Was drawtonomy hinzufügt, ist die canvas-native Hülle um diese
Laufzeitumgebung: bildgenaues Seeking, die Kamera Follow Ego, die
mit dem Ego-Fahrzeug mitschwenkt, Geisterspuren über Path /
Footprint, .webm-Export per Klick sowie dieselbe Zeichenfläche, auf
der auch Szenarien erstellt werden. Das ist die Schicht, die
drawtonomy oben aufsetzt — kein Fork, keine Neuimplementierung.
Die Aufteilung im Überblick:
| Frage | esmini (nativ) | drawtonomy (Browser-Simulator auf esmini-WASM) |
|---|---|---|
| OpenSCENARIO-1.x-Storyboard ausführen (Acts, Trigger, Bedingungen, Controller) | ✅ esmini-Laufzeitumgebung | ✅ esmini-Laufzeitumgebung (gleiche Engine, WebAssembly-Build von esmini selbst) |
| 3D-OpenSceneGraph-Viewer | ✅ eingebaut | ❌ nur 2D-Canvas |
| Headless-Modus für CI / Regressions-Sweeps | ✅ Headless-Flag | ❌ Browser-Hülle |
| C++- / Python-APIs | ✅ | ❌ nur JS (esmini-WASM) |
| Bildgenaues Seeking und Schrittsteuerung | abhängig vom Viewer | ✅ Scrubber + Pfeiltasten |
| Kamera folgt dem Ego-Fahrzeug (Follow Ego — Ansicht schwenkt mit) | über Flags möglich | ✅ ein Toggle |
| Geisterspuren (Path / Footprint) | nicht eingebaut | ✅ konfigurierbares Intervall |
Lauf als .webm aufzeichnen für Folie / PR / Social Media | externe Bildschirmaufnahme | ✅ In-App-Export mit Seitenverhältnis-Presets |
| Installation erforderlich | C++-Build oder Release-Binary | ❌ läuft in jedem modernen Browser |
| Sensorsimulation (Kamera / LiDAR / Radar) | ❌ | ❌ |
Beide Workflows greifen nahtlos ineinander. drawtonomys
OpenSCENARIO-Bundle-Export erzeugt ein Zip
mit .xosc, .xodr und einem run.sh-Skript, das das Szenario in
Ihrem lokalen esmini ausführt. Gleiche Standards
(OpenSCENARIO +
OpenDRIVE), gleicher Simulationskern, zwei
Hüllen.
Wozu die Browser-Hülle überhaupt gut ist
Abschnitt betitelt „Wozu die Browser-Hülle überhaupt gut ist“Wenn esmini in beiden Fällen die Laufzeitumgebung ist — wozu dann noch die Browser-Hülle?
- Einen CI-Fehler triagieren, ohne esmini auf dem gerade
verfügbaren Rechner installiert zu haben — Laptop, Handy, geliehener
Desktop. Die Build-Toolchain ist nicht immer dort zur Hand, wo man
gerade in eine
.xoscschauen möchte. - Eine Szenario-PR reviewen, wenn die reviewende Person esmini nicht lokal laufen hat.
- OpenSCENARIO vermitteln, ohne dass das Publikum irgendetwas installieren muss.
- Eine
.webm-Aufzeichnung der Simulation erstellen, für eine Folie, einen Bugreport oder einen Social-Media-Post — drawtonomy bietet 16:9, 9:16, 1:1, 4:3 sowie ein freies Seitenverhältnis direkt im Export-Popover an. - Ein generiertes Szenario überfliegen von scenariogeneration oder Scenic, bevor man sich auf einen vollständigen Simulatorlauf festlegt.
Umgekehrt gilt: Die Browser-Hülle überspringen und direkt natives esmini nutzen, wenn
- der 3D-Viewer von OpenSceneGraph gebraucht wird,
- ein CI-Sweep über Hunderte Szenarien läuft,
- esmini aus Python oder C++ heraus in einer größeren Pipeline angesteuert werden soll,
- esmini in einen anderen Simulator eingebettet wird.
Im gemeinsamen OpenSCENARIO-Ökosystem
Abschnitt betitelt „Im gemeinsamen OpenSCENARIO-Ökosystem“drawtonomy und esmini bauen auf denselben ASAM-Standards auf — OpenSCENARIO und OpenDRIVE — und teilen sich denselben Simulationskern. drawtonomy ruft esmini buchstäblich unter der Haube auf; ohne das esmini-Projekt gäbe es drawtonomys browserbasierten OpenSCENARIO-Simulator nicht. Die OpenSCENARIO-Community ist überschaubar, und die Werkzeuge darin — esmini, drawtonomy, RoadRunner, Truevision Designer, LaneMaker, scenariogeneration — übernehmen jeweils unterschiedliche Rollen im selben Workflow. esmini ist der Simulator; drawtonomy ist die darauf aufgesetzte Browser-Hülle (plus ein Whiteboard zum Entwerfen und Skizzieren).
drawtonomys OpenSCENARIO-Simulator existiert, weil es das esmini-Projekt gibt und dessen Team sich für eine offene Lizenz entschieden hat. Herzlichen Dank an die esmini-Maintainer und -Contributor für die jahrelange Arbeit an einer sauberen, schnellen, gut dokumentierten OpenSCENARIO-1.x-Laufzeitumgebung — und dafür, dass sie der ganzen OpenSCENARIO-Community als verlässliche Referenz dient. Wer den browserbasierten OpenSCENARIO-Simulator-Modus von drawtonomy nutzt, sollte auch in Erwägung ziehen, esmini auf GitHub einen Stern zu geben und das Projekt zusätzlich zu unterstützen.