Peregrine - A Tool for Population Protocols


Population protocols are a model of computation intensely studied by the distributed computing community, in which mobile anonymous agents interact stochastically to achieve a common task. Peregrine allows users to design protocols, to simulate them both manually and automatically, to gather statistics of properties such as convergence speed, and to verify correctness automatically.

1 / 4
Visual editor for population protocols

2 / 4
Simulate population protocols

3 / 4
Gather statistics about runtime behavior

4 / 4

View Demo View Source on Gitlab

Getting started


We provide a virtual machine image that comes with Peregrine 2.0 pre-installed. You can download the image under the following URL:

You need VirtualBox for the execution of the virtual machine. Import the file peregrine2.ova in Virtualbox via the menu File -> Import Appliance. When the import is done, a virtual machine with the name Peregrine 2.0 should be registered in Virtualbox. Once the virtual machine is booted, a browser window should appear with Peregrine's user interface as start page. There is also a second terminal window with Peregrine's backend running in the background. You can ignore the terminal window, but you should not close it - otherwise Peregrine's frontend can no longer work properly.

Peregrine in your local browser

Since Peregrine is a web application, it can be executed in any modern web browser. It is probably most convenient for you to use Peregrine in the browser on your host system. To be able to do this, you need to enable port forwarding in Virtualbox:

First, click the Settings button for our appliance:

Then navigate to the network settings, and click the bottom button labelled Port Forwarding:

Finally, add the following line:

Now you can access Peregrine in your local browser via http://localhost:3001.



This project has received funding from the European Research Council (ERC) under the European Unions Horizon 2020 research and innovation programme under grant agreement No 787367 (PAVES).