Outcome is a project aimed at creating an accessible, easy to work with world simulation framework along with necessary tools.

We want to enable people to simulate complex systems in an extensible way, reusing models created by the community.

We believe there is a lack of easy to use tools enabling involved worldbuilding and world simulation. This project is an attempt to change that.

By building worlds resembling the real one, there is also enormous potential to educate and raise awareness about difficult global problems we face today.

This page serves as a brief, high-level introduction to the project. If you want to learn more check out the documentation booklet.

What is this project about?

It’s about creation of user friendly environment for simulation model design and processing. It’s about discovering possibilities for collaboration on certain kinds of simulation models.

At a more basic level it’s about discovering a good minimal simulation architecture that’s useful, extendable and easy to use.

What are the overall goals?

How useful is it right now?

Right now the project consists of a proposed system for how collaborative simulation-modelling could happen, as well as experimental software implementing things that are necessary for this to happen.

If you’re ready to build from source (Rust programming language) you can already run some of the software.

See project overview for more information about the software subprojects, and the project status page to learn more about what’s being actively worked on right now.

How useful could it become?

That’s hard to say. It depends on how useful the base simulation engine and it’s API interface is.

It’s designed to be relatively basic and generic so it can scale well, but it’s not certain that it will.

The design of the engine itself imposes important limitations on the possible simulations to be created for it. There are tradeoffs to be had, as with most things, and the overall design here is influenced by the larger goals of the project.

What is a simulation framework?

We define a framework as an environment, or an interface, allowing for creation of different specific applications using it’s generic functionality. In our case it’s about the ability to create different simulation models, using the underlying set of building blocks.

Outcome is a simulation design framework allowing for different, albeit usually structurally and/or thematically related, use cases.

If it sounds way too abstract and you want to learn more about the specifics check out the documentation section on the basic concepts.

Models created by the community?

One of the goals of this project is to enable multiple people to work on simulation models together.

Collaboration, made possible by the modularity of the underlying simulation framework and input data, as well as the overall focus on accessibility, is one of the defining features here.

Amount of work and research required to build a useful simulation model, or a part of a model, can be overwhelming for any one person. Exploring easier ways of collaboration and reusing work of other people is key.

What kind of tools are being developed?

Simulation models are not enough, we need to be able to do things with them, like run and analyze them. Related to the idea of community-driven development of simulation models is the idea that we need tools for dealing with designing, running and analyzing simulations that are accessible and easy to use.

endgame is the command-line tool, currently the most useful:

furnace is the GUI tool built with the user in mind, currently in early stage of development:

Going beyond simple tooling, anthropocene is a planned game using the outcome simulation ecosystem, it’s will use networking functionality provided by endgame to interface with simulation runner server from Unity’s C#