evogym-py313 — Evolution Gym fork for Python 3.10–3.13
This is an unofficial fork of EvoGym (MIT) with support for:
- Python 3.10, 3.11, 3.12, 3.13
- numpy 2.x (and 1.23+)
- Modern gymnasium ≥ 0.26 (5-tuple step, 2-tuple reset, no
seed())
The C++ simulator extension (simulator_cpp) is optional. Pure-Python
imports always work; only EvoSim(...) / EvoViewer(...) need the
extension. See § Building the C++ simulator
below.
Upstream: https://github.com/EvolutionGym/evogym — please file bugs in the upstream tracker unless the issue is clearly fork-specific.
Install
Quick start (Python-only API)
pip install evogym-py313
After this, import evogym works, EvoWorld, sample_robot,
evogym.envs registration etc. all work, but constructing EvoSim(world)
will raise a clear error until you install the C++ build dependencies.
Building the C++ simulator
If you want to actually run physics simulations, you need a C++ toolchain plus OpenGL/glfw/glew headers. Install the build dependencies for your distro:
Fedora 42 / RHEL:
sudo dnf install gcc-c++ cmake libGLU-devel libXrandr-devel \
libXinerama-devel libXcursor-devel libXi-devel \
glfw-devel python3-tkinter
Ubuntu / Debian:
sudo apt install build-essential cmake libglu1-mesa-dev \
libxrandr-dev libxinerama-dev libxcursor-dev \
libxi-dev libglfw3-dev python3-tk
macOS (Homebrew):
brew install cmake glfw
Then reinstall the package so the build kicks in:
pip install --no-binary :all: --force-reinstall --no-build-isolation \
evogym-py313
(--no-binary :all: tells pip to build from source rather than grabbing a
universal wheel; --no-build-isolation lets the build use the already
installed pybind11 / numpy.)
After this, evogym.cpp_available() returns True and EvoSim(world)
actually steps physics.
Development install from a local checkout
git clone https://github.com/your-name/evogym-py313 ~/evogym-py313
cd ~/evogym-py313
pip install -e ".[dev]" # or: pip install -e .
pytest -q tests -k 'not requires_cpp'
Verifying the install
python -c "import evogym; print('evogym', evogym.__version__, 'cpp=', evogym.cpp_available())"
Expected (no C++ build yet):
evogym 0.1.0 cpp= False
After building the C++ extension:
evogym 0.1.0 cpp= True
What changed vs upstream
| Area | Upstream | This fork |
|---|---|---|
| Python | >=3.7, <3.11 |
>=3.10 (tested 3.10–3.13) |
| numpy | <2.0.0 |
>=1.23 (works with 1.x and 2.x) |
gymnasium API |
reset() -> None, step() -> bool |
reset() -> (obs, info), step() -> 5-tuple (gymnasium ≥ 0.26 contract) |
| C++ extension | git submodule, vendored externals | Optional, built via scikit-build-core; Eigen via FetchContent |
pkg_resources |
used | replaced with stdlib importlib.resources (setuptools 80+ dropped it) |
import evogym |
requires compiled extension | always works; EvoSim raises clear error if extension missing |
Running the tests
pytest -q tests # pure-Python tests + cpp tests (skipped if no C++)
pytest -q tests -k 'not requires_cpp' # CI / pure-Python installs
License
MIT, same as upstream. See LICENSE.
Release files for evogym-py313 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| evogym_py313-0.1.0.tar.gz | 1.1 MB | Details |
Release files / evogym_py313-0.1.0.tar.gz
| Download URL | evogym_py313-0.1.0.tar.gz |
|---|---|
| Size | 1.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f86218e26907c67a5e50ceeda3ef3dabe6674560d57b43f672c503279094a0b9
|
|
BLAKE2b-256 checksum How to use checksums |
7dd85a36c08f6f7da1a96e8b068c59566f77da4e8d1f0a19a56bef7627bfb875
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency log