Simularity, Inc, has very generously open sourced a project I worked on for them that may be of interest to some of you all.

SimGen is a simulation language implemented in (and run embedded in) SWI-Prolog.

The language is based on behavior trees. Those of you making artificial agents, games, or AGI-ish projects may find it useful. It’s reasonable to think of SimGen as an implementation of behavior trees for SWI-Prolog.

SimGen is also a choice when one can explicate the desired behavior as a hybrid system, with state transitions and continuous changes within each state.

An example of such a system is a bouncing ball. The ball is either in the air, or in contact with the ground. I’s behavior is different in each regime.

I’ve only had access to the repo for about a week, and this is now a spare time project for me. I’m cleaning it up and will be trying to provide some documentation.