Installation#

SimKit is on PyPI and requires Python 3.10+.

With pip#

pip install simkit

Installing into a fresh environment is recommended:

conda create -n simkit python=3.11
conda activate simkit
pip install simkit

Or with the standard library’s venv:

python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install simkit

With uv#

uv is a fast drop-in replacement for pip and venv. Install it once:

curl -LsSf https://astral.sh/uv/install.sh | sh    # Windows: powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

To add SimKit to an existing uv-managed project:

uv add simkit
uv add "simkit[viz]"          # with extras

To install into a plain virtual environment with uv pip:

uv venv --python 3.11
source .venv/bin/activate     # Windows: .venv\Scripts\activate
uv pip install simkit
uv pip install "simkit[all]"  # with extras

To try SimKit without installing anything permanently:

uv run --with "simkit[viz]" python my_script.py

Optional extras#

The base install requires only numpy and scipy. Heavier dependencies are opt-in:

pip install "simkit[mesh]"     # libigl       -> 2D Triangle meshing
pip install "simkit[viz]"      # matplotlib, polyscope
pip install "simkit[solvers]"  # cvxopt       -> sparse eigensolvers
pip install "simkit[video]"    # Pillow       -> image/video frame helpers
pip install "simkit[cmaes]"    # cma          -> CMA-ES solver
pip install "simkit[all]"      # everything end-user-facing
pip install "simkit[dev]"      # pytest + coverage
pip install "simkit[docs]"     # Sphinx tooling

Combine multiple extras with commas, e.g. pip install "simkit[mesh,viz]". The same syntax works with uv pip install and uv add.

Importing simkit is always safe – if an optional dependency is missing the affected names simply aren’t exported and a one-line warning shows you what to install.

From source#

For development, or to run the demos under examples/:

git clone --recursive https://github.com/otmanon/simkit.git
cd simkit
conda create -n simkit python=3.11
conda activate simkit
pip install -e ".[all,dev]"

The editable install works the same with uv:

uv venv --python 3.11
source .venv/bin/activate
uv pip install -e ".[all,dev]"

Building the docs locally#

pip install -e ".[docs]"
sphinx-build -b html docs docs/_build/html

Then open docs/_build/html/index.html in a browser.