1
Clone or fork the repository
You can clone the code from the Gitlab repository, or fork the project on Github:
git clone https://gitlab.com/utopia-project/utopia.git
If you are a developer, get an SSH key registered and clone via SSH.
The following instructions will install Utopia into a development environment on your machine. If you simply want to run Utopia, you can do so via a ready-to-use docker image; consult the documentation for more information on how to use it.
These instructions are intended for ‘clean’ macOS or Ubuntu (20.04) setups. Utopia is always tested against a recent Ubuntu release. However, you may also use Utopia with an earlier release, as long as the dependencies can be fulfilled.
You can clone the code from the Gitlab repository, or fork the project on Github:
git clone https://gitlab.com/utopia-project/utopia.git
If you are a developer, get an SSH key registered and clone via SSH.
Install the third-party dependencies using a package manager. For instance, on macOS and using homebrew, do
brew update
brew install armadillo boost cmake hdf5 pkg-config python3 spdlog yaml-cpp
See the full instructions for details on how to install on other platforms. Then, navigate to your top-level directory containing the ‘utopia’ folder and create a build directory:
cd utopia
mkdir build
Now, enter the build directory and invoke CMake:
cd build
cmake ..
The terminal output will show the configuration steps, which includes the installation of further Python dependencies and the creation of a virtual environment. After this, you can build a specific or all Utopia models using:
make dummy # builds only the dummy model
make -j4 all # builds all models, using 4 CPUs
Utopia makes building, running and evaluating your own model easy. You can start from scratch, modify one of the pre-impelemented models, or base your model on one of three templates models that you may find provide a good starting point for your specific scenario:
CopyMeGrid
: A basic Cellular Automaton model. Already includes the
CellManager. Recommended if you want to work with a Cellular AutomatonCopyMeGraph
: A basic graph model. Already includes a graph and
example functionality. Recommended if you want to work with a graph.CopyMeBare
: The bare basics. Really. Recommended if you do not need
a Cellular Automaton or a Graph, and are already proficient with Utopia.