language for agent-based modeling and simulation
C++ Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


ochre is an agent-based modeling toolkit designed mainly for experimental modeling or prototyping models. includes an implicitly parallel language that helps avoid all the parallel systems programming pitfalls (illegal memory writes/reads, race conditions... ABMs are parallel systems after all), and keeps the (to most people) familiar imperative programming paradigm.
both the language and the frontend are designed for modifying code on-the-fly, while the simulation is running, and for providing as much design- and run- time data about your model as possible.
you can check ochre out on youtube or vimeo, and the first release (binaries with examples) is coming very soon.

the repo


ochre is an imperative, type-safe, memory-safe, domain-specific language (the domain being, of course, ABM) with c/c++/c# -like syntax. each agent type (class) is located in its own file, and types can be added to and/or removed from a simulation at run-time.
the language is implemented as a c++ library with a c API, and the only dependencies are standard c/c++ libraries and pthread.


a glfw-based frontend for the ochre language. uses a custom widget framework to optimize the modeling experience by integrating design- and run- time data into a seamless UI.

plans for the future

  • automatic time plots and histograms
  • debugging (breakpoints & stepping through code)
  • regression testing codes and a batch mode for the command-line version