Skip to main content

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)

Source distribution for evogym-py313 0.1.0
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page