WebGME HFSM
A browser-based modeling and simulation tool for hierarchical UML state machines that generates dependency-free C++17 code from the diagram, and simulates the machine live while it is being drawn.
WebGME HFSM turns hierarchical finite state machines, in the UML sense with nested states, history, choice pseudostates and typed event payloads, into readable C++17 code for embedded and desktop targets. It simulates the machine while it is being drawn, so a missing transition can be found in the browser rather than on real hardware, and the diagram itself, exportable as Mermaid, PlantUML or SCXML, is the actual model rather than a separate drawing of it.
Generated code is a header and source file per machine plus a few small header-only support files, with no RTTI and no framework to link against; events are posted through a thread-safe queue and handled to completion on one thread, so an interrupt handler or another task can safely post into the machine. It can be used entirely in the browser with no install through a hosted playground, or run as a self-hosted WebGME server using Docker or Node.js and MongoDB, with the same runtime also shipping inside the espp library for ESP32 firmware.