Keith Briggs and Ibrahim Nur
The CRRM (cellular radio reference model) simulator emulates a cellular radio system following 5G concepts and channel models. The intention is to have an easy-to-use, scalable, and very fast system written in pure Python with minimal dependencies.
Note that CRRM is a system-level simulator, not a link-level simulator. This means that it takes a coarse-grained approach, specifically meaning that it does not model concepts like packet flows and queueing at all. Resource allocation is modelled, but only as a continuous process that ignores discrete resource blocks. These simplifications are necessary if large systems are to be simulated. The main application areas are the evaluation of high-level network management strategies, not the accurate estimation of throughputs to indvidual devices. Other software is available for that type of link-level simulation.
The simulator builds on an earlier one developed for the AIMM project (https://github.com/keithbriggs/AIMM-simulator) by Keith Briggs (https://keithbriggs.info), but is a complete rewrite with many improvements. It also uses ideas from the CRM project by Kishan Sthankiya (https://github.com/apw804/CellularReferenceModel).
- Python 3.8 or higher https://python.org.
- NumPy https://numpy.org/.
- SciPy https://scipy.org/.
- Matplotlib https://matplotlib.org.
pip install CRRM
- Download zip from the green "<> Code" tab above
- unzip CRRM-2.0.zip
- cd CRRM-2.0
- pip install .
See https://crrm-20.readthedocs.io/en/latest/ (local version in doc/sphinx-build/index.html).
Further technical documentation is at https://arxiv.org/abs/2511.02692.