[Project] Monkey Brain: a "low-code" finite state machine / decsision engine framework

Hi Everyone!

I’d like to share a project I’ve been working on for quite some time now called Monkey Brain.

GitHub Link: https://github.com/cwecht/monkey_brain

Monkey Brain started out as a finite state machine based on SCXML but is now a decision engine framework which could potential employ engines like rule engines or behavior trees. It allows you to define state machines in a specific DSL with little to no actual programming.

As of now, this project is still in a fairly early stage—it’s little more than a proof of concept. At this point, I’d really appreciate your feedback. Are you interested in something like Monkey Brain? Or perhaps a “low-code behavior tree engine” or something similar?

I’m looking forward to your feedback or questions.

Sincerely,
Christopher

1 Like

Thanks for sharing!

If you’d like to show your work and get some feedback, @ct2034 and I would be happy to host you in the ROS Deliberation Community Group.

Our next meeting is in less than 24 hours (Monday, April 13), but maybe in one of the next ones in May/June if you’re interested?

Nice, could you please mention the primitves of this DSL?

Thanks for asking!
Most SCXMLs primitives are supported, if they are related to the state machine itself, e.g.:

  • states
  • substates/nested state machines
  • parallel states
  • history states
  • final states
  • transitions
  • actions on
    • state entry
    • state exit
    • transition taken
  • internal/external events

Elements of SCXML which are not supported are:

This is for sake of simplicity, but also, because Monkey Brain has its own DSL for defining conditions, expressions and actions, which could (and must for that matter) be reused by potential other decision engines.