Skip to content

Graphical interface to build a finite state machine and build its matrix representation

Notifications You must be signed in to change notification settings

brainhack-eugene/graph2matrix

Repository files navigation

graph2matrix

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.

Organization

This project roughly follows a model-view-controller organization.

Model

The model provides a digital representation of a finite state machine.
To get started, this project uses the StateMatrix class defined in TasKontrol.

View

Multiple views render the values within the model with varying levels of interactivity: graphical display, matrix, automated code generation.

Control

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.

Input

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).

Output

The primary output is a two dimensional array that represents the state transition matrix.

Dependencies

Future?

About

Graphical interface to build a finite state machine and build its matrix representation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published