Generate production-ready source code from state diagrams or SysML v2 textual models#
From design to code with ease#
Sinelabore is a tool that has proven itself over many years across numerous applications and with many customers. It enables developers to combine event-driven architecture, hierarchical state machines, model-based design, and automatic code generation effectively. You usually see a return on investment very quickly.
⬇️ Download Editor tutorial Getting started: UML state machines Getting started: SysML v2

Many systems are good candidates for a finite-state-machine implementation: anything that must sequence actions, or react to inputs differently depending on its current mode. Typical examples include control-oriented software such as protocol stacks, stateful workflows, visualizations, and control applications.
How it works#
-
1 · Model#
Draw a flat or hierarchical state machine in the built-in editor or in your UML tool.
-
2 · Generate#
Run the code generator. It writes plain source code in C, C++, Rust or one of seven other languages.
-
3 · Integrate#
Call the generated handler from your main loop, an RTOS task or an interrupt service routine.
Why Sinelabore#
-
No framework, no runtime
The generated code does not lock you into a runtime framework and fits bare-metal and RTOS designs alike. -
Any compiler, any CPU
Standard language features only, for 8-, 16- and 32-bit CPUs, your IDE, build and CI. -
Readable code
Nested switch/case and if/else: easy to read, debug, and if needed change by hand.
-
Your system design
Use it with an RTOS (VxWorks, FreeRTOS, embOS, RTEMS, …), in an interrupt or in a super loop. -
Static analysis friendly
Generated C++ passes clang-tidy and is C++11 ready (modernize-*). -
Configurable
A plain text configuration file tailors the generated code to your needs.
Languages and tools#
Generated languages: C · C++ · Rust · Java · Python · C# · Go · Swift · Lua · JavaScript
Modeling tools: Integrated editor · Enterprise Architect · UModel · Cadifra · astah · MagicDraw / Cameo · Modelio · Papyrus · Visual Paradigm · StarUML · draw.io · All tools →
For your field#
Sinelabore generates readable, maintainable C or C++ from flat or hierarchical UML state machine diagrams, for embedded real-time and low-power systems.
Where parts of an IoT application run in Java, Python, C#, Lua, Rust, JavaScript, Go or Swift, the same model generates code for them too. Model once and keep the behavior consistent across gateways, services and firmware.
Sinelabore generates executable C++ from a SysML v2 textual model: state machines, and also the parts, ports and their interactions. Write the model in a text editor such as Visual Studio Code, and simulate the system early in design.
What customers say#
Sinelabore is used worldwide by companies of all sizes and in a wide range of industries, from multinational organizations to independent consultants.
-
“I like that I don’t have to draw the state machine, then separately implement it and keep these two synchronized; this saves me time and reduces the potential of bugs.”
Daniel Bedrenko, Software Developer, BPS…tec GmbH
-
“… wir nutzen Ihr Produkt schon seit vielen Jahren und es hat sich als zuverlässiges und wertvolles Werkzeug erwiesen …”
-
“We like your tool, in fact we will give an intro for another local company next week.”
A study by the Laboratory of Model Driven Engineering for Embedded Systems at CEA, France, “Complete Code Generation from UML State Machine”, reports: “… without optimization, Sinelabore generates the smallest executable size …”
Try it#
⬇️ Download Examples on GitHub Getting started: UML state machines Getting started: SysML v2