In this project, we implement a variety of directed percolation models in Rust. The Rust code is accessed via a Python wrapper to make experimentation as convenient as possible. Jupyter notebooks are used to implement the Python-wrapped simulations.
We have two motivations for adopting Rust: one is to ensure maximum performance; another is to achieve this in a memory-safe and bug-free fashion (which is not easy to do in C or C++).
Fast run times are achieved through parallelization using the Rayon crate.
We anticipate boosting performance further with GPU-compute using wgpu.
See here for some rough "how-to" notes on wrapping Rust with Python.
Simplified DP-class Domany-Kinzel model simulations are demonstrated in the following Jupyter notebooks. The emphasis here is on checking the t-decay of mean ρ(t), which has well-established power-law tail-scaling behavior.
Related pure-Python demos can be found here:

