Zum Inhalt springen

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.

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.

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:

Frageesmini (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 Schrittsteuerungabhä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 Mediaexterne Bildschirmaufnahme✅ In-App-Export mit Seitenverhältnis-Presets
Installation erforderlichC++-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.

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 .xosc schauen 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.

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.