A high-performance, memory-efficient, reproducible, and extensible ActivitySim dashboard written in Python. The goal is to build a dashboard that allows ActivitySim developers to easily validate their model and compare its runs. This dashboard utilises the Parquet format—a recent addition to the output table format in ActivitySim v1.3—and Polars’ Lazy DataFrame to achieve a reactive experience that doesn’t make you wait until your coffee gets cold.
It is true that there are many ways to visualise ActivitySim outputs, and the official ActivitySim documentation recommends SimWrapper for this purpose. However, there is not yet support for computing and visualising the differences between any two model runs (see documentation). Hence, this simple ActivitySim dashboard project aims to address this gap in the short term, or until the ActivitySim community recommends a standard approach.
To get started, you only need to install two Python packages:
- uv: "A Python package and project manager"
- marimo: "an open-source reactive notebook for Python — reproducible, git-friendly, executable as a script, and shareable as an app."
I recommend installing uv using one of the installation methods here. Once you have uv on your machine, install marimo as a uv tool.
# install marimo as a tool in uv
uv tool install marimo
# run the dashboard using marimo uv tool
uvx marimo edit --sandbox dashboard.py
# for read-only mode
uvx marimo run --sandbox dashboard.py
# using an environment e.g., Conda or Python virtual environment
marimo edit --sandbox dashboard.pyThis is another Marimo notebook that helps convert CSV, SHP, GeoJSON and OMX files to the Parquet format, enabling you to create compatible inputs for dashboard.py. This is particularly useful if you want to use the dashboard with ActivitySim final outputs provided in CSV format.
