https://github.com/simplestatemachine/simplestatemachinenodeeditor
🔗WPF node editor based on ReactiveUI
https://github.com/simplestatemachine/simplestatemachinenodeeditor
csharp finite-state-machine net-core net-core-3-1 node-editor nodeeditor reactiveui scheme simple-state-machine simplestatemachine state state-machine statemachine visualization wpf
Last synced: 14 days ago
JSON representation
🔗WPF node editor based on ReactiveUI
- Host: GitHub
- URL: https://github.com/simplestatemachine/simplestatemachinenodeeditor
- Owner: SimpleStateMachine
- License: mit
- Created: 2020-03-21T16:40:04.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-11-06T19:39:45.000Z (over 2 years ago)
- Last Synced: 2025-04-06T10:12:44.420Z (14 days ago)
- Topics: csharp, finite-state-machine, net-core, net-core-3-1, node-editor, nodeeditor, reactiveui, scheme, simple-state-machine, simplestatemachine, state, state-machine, statemachine, visualization, wpf
- Language: C#
- Homepage:
- Size: 12.5 MB
- Stars: 355
- Watchers: 8
- Forks: 61
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/releases) [](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor) [](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor) [](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor) [](https://join.slack.com/t/simplestatemachine/shared_invite/zt-fnfhvvsx-fTejcpPn~PPb2ojdG_MQBg) [](https://t.me/joinchat/HMLJFkv9do6aDV188rhd0w)
[](https://dev.azure.com/GMIKE/SimpleStateMachineNodeEditor/_build/latest?definitionId=1&branchName=master)
# 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🔗](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)**2.** Load scheme in your project using [library📚](https://github.com/SimpleStateMachine/SimpleStateMachineLibrary)
**3.** Describe your app logic and run the state machin🚘
## Features💡
### Custom Window with Visual Studio design
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Two themes
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### 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
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Undo and redo
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Collapsing and moving
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Scaling
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Selection
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Naming for states and transitions
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Moving transitions
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Deleting transitions
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)
### Import/Export scheme from/to xml
```xml
```
### Save work space as PNG/JPEG
[](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor)## Getting Started📂
**1.** Download the [latest release archive](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/releases)
**2.** Unzip the downloaded file
**3.** Run the exe file
## Shortcuts📎
* Ctrl +A = Select All Nodes
* Ctrl + S = Save
* Ctrl + Shift + S = Save As
* Ctrl + Shift + O = Open
* Ctrl + Shift + N = New
* Alt + F4 = Exit
* Ctrl + Shift + Alt + P = Export to PNG
* Ctrl + Shift + Alt + J = Export to JPEG
* Ctrl + Z = Undo
* Ctrl + Y = Redo
* Ctrl + N = Add Node
* Ctrl + LMB on Canvas = Start Select
* Ctrl + LMB on Connector = Create Loop
* LMB on Node = Select one Node
* Ctrl + LMB on Node = Select/UnSelect Node
* Ctrl + LMB on Transition = Select/UnSelect Transition
* Shift + LMB on Transition = Multiple selection
* LMB on Connector = Start create Connect
* Alt + LMB on Connector = Move Connector in Node
* Alt + LMB on Canvas = Start Cut
* Delete = Delete Selected Elements
* C + Delete = Delete Selected Connector
* N + Delete = Delete Selected Nodes## FAQ❔
If you think you have found a bug, create a github [issue](https://github.com/SimpleStateMachine/SimpleStateMachineNodeEditor/issues).
But if you just have questions about how to use:
- [Slack channel](https://join.slack.com/t/simplestatemachine/shared_invite/zt-fnfhvvsx-fTejcpPn~PPb2ojdG_MQBg)
- [Telegram channel](https://t.me/joinchat/HMLJFkv9do6aDV188rhd0w)## License📑
Copyright (c) SimpleStateMachine
Licensed under the [MIT](LICENSE) license.