Summary: Graphical interface to build a finite state machine and create its matrix representation
This project was launched at Eugene Brainhack 2017.
The manual process of creating a state transition matrix, the structure that controls progress through an experimental trial, is highly susceptible to to error. The objective of this project is to standardize and automate the creation of state transition matrices.
The project was inspired by a need in the TASKontrol project (TASKontrol (documentation), TASKontrol (source)) from the jaralab at the University of Oregon, but was implemented as a stand alone module that could generalize to other tasks creating and editing a finite state machine and state transition matrix.
This project roughly follows a model-view-controller organization.
The model provides a digital representation of a finite state machine.
To get started, this project uses the StateMatrix class defined in
TasKontrol.
Multiple views render the values within the model with varying levels of interactivity: graphical display, matrix, automated code generation.
The controller provides the logic that accepts input from the designer as they build the finite state machine and pushes updates to or between the views.
The prototype implementation accepts interactive input from the user through
keystrokes and mouse clicks in the graphical view.
(Future features could include the ability to read in a state transition matrix
for display, editing, and automated code generation).
The primary output is a two dimensional array that represents the state transition matrix.
- NetworkX (Documentation), under the BSD license
- MatPlotLib, custom license (PSF-like)
Future?