language
Go Yacc Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
boosd
model-test
models
runtime
.gitignore
LICENSE
README.md
TODO
all.bash
main.go

README.md

boosd - object-oriented system dynamics engine

Boosd is an implementation of an object-oriented system dynamics language. Models have a simple, text-based representation:

main model {
        timespec = {
                start:     0
                end:       50
                dt:        .5
                save_step: 1
        }

        rate = .07
        in flow = rate * accum

        accum stock = {
                inital: 200
                inflow: in
        }
}

This is influenced by go's syntax, but boosd models are declarative rather than imperitive. Currently the best documentation and background on boosd is my thesis.

The advantage of boosd is the formal grammar and semantics, and that the model equations are cleanly presented in a compact representation.

development

This is in a very rough stage. I currently test by running a pipeline like this:

time (f=`mktemp --suffix=.go`; go install && boosd models/exp.osm >$f; go run $f; rm $f)

license

boosd is offered under the MIT license, see LICENSE for details.