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.


Is it going to be integrated into Swish?

1 Like

It’s an obvious thing to do, but there are many things ahead of it on the roadmap.
Like much commercial software, it was written to do a job and otherwise got little love, so right now my priorities are documentation, cleaning up interfaces, and filling in glaring holes in functionality

1 Like

I have greatly improved the documentation for SimGen. See the

1 Like

Hi Annie,

I’ve posted a pull request with some suggested edits to the new README:

1 Like

Whoot! Thank you!
I’ve marked some comments. And I don’t see the PR on the simularity/SimGen side.
Maybe something went wrong in making the actual PR request?

1 Like

I reverted the two edits you asked to have removed and just created a pull request against the SimGen master repo. It looks like my first pull request was against the master branch on my fork of the repo from the branch I made for the edits, not against the SimGen repo. The new pull request is against the master branch of the SimGen repo from the master branch in my fork, which has the changes you suggested. Let me know if everything looks right or if any other changes are necessary.

Thanks! Merged

1 Like