SMCube - modeling, simulation, code generation of discrete time finite state machines


SMCube is a tool for modeling, simulation, and code generation of discrete time finite state machines (FSM).

SMCube Download Page


SMCube screenshot

Why another state machine editor? Automatic code generation from functional models is a clear trend in automotive, industrial control and in other industrial sectors. Most of the application descriptions used for code generation often include both data-flow subsystems and finite state automatas. The Data Flow part is typically used to perform filters and control algorithms. Finite state automatas are used to map complex behaviors that are not easily expressed with data flow concepts (as, for example, application modes, alarms, and so on).

The idea driving the development of SMCube was the need for a lightweight State Machine editor, simulator, and code generator which could be used in conjunction with ScicosLab and the Scicos-FLEX code generator, allowing the creation of hybrid diagrams composed of both a data-flow part as well as finite state machines.

Using SMCube, you can easily:

  • Design your own state machine, drawing states and transitions and configuring their parameters.
  • Define a data model for the state machine, with inputs, outputs and local variables.
  • Save your state machine into a XML file.
  • Simulate the state machine response given an input pattern. The simulation can be interactive (you can monitor graphically the evolution of the simulation with a proper highlighting of the states) or in background (no graphical output is given, useful for simulating at maximum speed).
  • Generate a C++ language implementation of the state machine for simulation purposes.
  • Generate a C language implementation of the state machine, for execution on embedded targets.

Although SMCube is a stand-alone application, the current version of SMCube is shipped as part of of the Scicos-FLEX toolbox, providing the following additional functionalities:

  • Integration of a SMCube state machine inside a ScicosLab diagram, using a customized SMCube block.
  • Integration of the simulation and code generator engines of ScicosLab with SMCube for starting, running, stopping a simulation.
  • Simulation of a ScicosLab diagram including one or more state machines.
  • Code generation of a ScicosLab diagram including one or more state machine with the Scicos-FLEX code generator and ERIKA Enterprise.


For licensing reasons, the download of SMCube is not stored on TuxFamily. please refer to the following page for the SMCube Download:

SMCube Download Page