SkillAgentSearch skills...

SimpleStateMachineNodeEditor

🔗WPF node editor based on ReactiveUI

Install / Use

/learn @SimpleStateMachine/SimpleStateMachineNodeEditor

README

Build Status

SimpleStateMachineNodeEditor

SimpleStateMachineNodeEditor is a WPF node-editor for visual work and editoring state-machine

Give a Star! :star:

If you like or are using this project please give it a star. Thanks!

Why SimpleStateMachine?

Create state machine in three steps :

1. Create scheme in this node editor🔗

2. Load scheme in your project using library📚

3. Describe your app logic and run the state machin🚘

Features💡

Custom Window with Visual Studio design

Two themes

Two representations for State machine

  • Scheme of nodes
  • Table of transitions

Validating

  • for unique name for Node/Transition
  • for exists Nodes without connects

Adding nodes and connections

Undo and redo

Collapsing and moving

Scaling

Selection

Naming for states and transitions

Moving transitions

Deleting transitions

Import/Export scheme from/to xml

<?xml version="1.0" encoding="utf-8"?>
<StateMachine>
  <States>
    <State Name="Start"/>
    <State Name="State 1"/>
    <State Name="State 2"/>
  </States>
  <StartState Name="Start" />
  <Transitions>
    <Transition Name="Transition 2" From="State 2" To="State 1" />
    <Transition Name="Transition 1" From="Start" To="State 2" />
  </Transitions>
   <Visualization>
    <State Name="Start" Position="37, 80" IsCollapse="False" />
    <State Name="State 1" Position="471, 195.54" IsCollapse="False" />
    <State Name="State 2" Position="276, 83.03999999999999" IsCollapse="False" />
  </Visualization>
</StateMachine>

Save work space as PNG/JPEG

Getting Started📂

1. Download the latest release archive

2. Unzip the downloaded file

3. Run the exe file

Shortcuts📎

  • <kbd>Ctrl</kbd></kbd> +<kbd>A</kbd> = Select All Nodes
  • <kbd>Ctrl</kbd> + <kbd>S</kbd> = Save
  • <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>S</kbd> = Save As
  • <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd> = Open
  • <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>N</kbd> = New
  • <kbd>Alt</kbd> + <kbd>F4</kbd> = Exit
  • <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>P</kbd> = Export to PNG
  • <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>Alt</kbd> + <kbd>J</kbd> = Export to JPEG
  • <kbd>Ctrl</kbd> + <kbd>Z</kbd> = Undo
  • <kbd>Ctrl</kbd> + <kbd>Y</kbd> = Redo
  • <kbd>Ctrl</kbd> + <kbd>N</kbd> = Add Node
  • <kbd>Ctrl</kbd> + <kbd>LMB</kbd> on Canvas = Start Select
  • <kbd>Ctrl</kbd> + <kbd>LMB</kbd> on Connector = Create Loop
  • <kbd>LMB</kbd> on Node = Select one Node
  • <kbd>Ctrl</kbd> + <kbd>LMB</kbd> on Node = Select/UnSelect Node
  • <kbd>Ctrl</kbd> + <kbd>LMB</kbd> on Transition = Select/UnSelect Transition
  • <kbd>Shift</kbd> + <kbd>LMB</kbd> on Transition = Multiple selection
  • <kbd>LMB</kbd> on Connector = Start create Connect
  • <kbd>Alt</kbd> + <kbd>LMB</kbd> on Connector = Move Connector in Node
  • <kbd>Alt</kbd> + <kbd>LMB</kbd> on Canvas = Start Cut
  • <kbd>Delete</kbd> = Delete Selected Elements
  • <kbd>C</kbd> + <kbd>Delete</kbd> = Delete Selected Connector
  • <kbd>N</kbd> + <kbd>Delete</kbd> = Delete Selected Nodes

FAQ❔

If you think you have found a bug, create a github issue.

But if you just have questions about how to use:

License📑

Copyright (c) SimpleStateMachine

Licensed under the MIT license.

Related Skills

View on GitHub
GitHub Stars379
CategoryDevelopment
Updated9d ago
Forks61

Languages

C#

Security Score

100/100

Audited on Mar 25, 2026

No findings