Creating an open source distributed simulation solution that’s fast, flexible and easy to use.

The goal is to enable open, collaborative work on complex models — from multiplayer game worlds and domain specific experiments to organic city systems and full-scale economies.

Why is this needed?

Because we are currently facing a lack of open, easy to use tools enabling modeling and simulation of complex emergent systems in a scalable way.

How does it work?

It combines the idea of basic composable entity-component architecture with notions of distributed processing and storage. Result is a system that can handle millions of entities running concurrently on multiple different machines, no matter whether these are laptops, phones or dedicated clusters.

Specialized service processes, anything from physics engines to AI solvers, can work on the entities’ data either locally or remotely, building up a coherent, unsharded world.

On the runtime level there is support for execution of synchronized, state-machine based scripted logic, which is easy to write and doesn’t require any prior programming experience.

On a higher-level of abstraction, user-friendly notions of modules, scenarios and snapshots are used. Low-level phenomena like message-passing and load balancing are abstracted away. For many use-cases, running simulations is as easy as downloading an executable and modifying manifest files.

How to get started?

The book contains everything you need to get started. It will not only teach you about the underlying concepts and implementation details, but also guide you through installation and writing your first simulation models. This way you should be able to follow along even if some of the presented concepts are still confusing or unclear.