Skip to main content

Proof-of-life Gymnasium-compatible reinforcement learning environment for plume navigation research

Project description

plume-nav-sim

🧪 Proof-of-Life Gymnasium Environment for Plume Navigation Research

Python 3.10+ Gymnasium MIT License

plume-nav-sim is a Gymnasium-compatible plume navigation environment built for researcher workflows: start quickly with a default setup, then plug in your own action, observation, and reward logic through a component architecture designed for controlled experimentation and reproducible comparisons. For direct component extension patterns, start with EXTENDING.md.

Quick Start

Install:

# Preferred for released versions:
pip install plume-nav-sim

# Local development:
pip install -e .

For another project, pin the Git tag in pyproject.toml:

[project]
dependencies = [
  "plume-nav-sim @ git+https://github.com/SamuelBrudner/plume_nav_sim.git@v0.1.0#subdirectory=src/backend",
]

Run a minimal episode (5 lines):

import plume_nav_sim as pns
env = pns.make_env()
obs, info = env.reset(seed=0)
obs, reward, terminated, truncated, info = env.step(env.action_space.sample())
env.close()

Extend It

The fastest way to add your own navigation behavior is to build custom components and inject them into ComponentBasedEnvironment. Use EXTENDING.md as the researcher entry point: it shows minimal interfaces, implementation templates, and a full custom-components example.

Read: EXTENDING.md

Architecture Overview

plume-nav-sim supports two main usage modes:

  • PlumeEnv: standard, ready-to-run Gymnasium environment
  • ComponentBasedEnvironment: dependency-injected environment for custom research logic

ComponentBasedEnvironment centers on three swappable components:

  • ActionProcessor: maps policy actions to next agent state
  • ObservationModel: maps environment state to observations
  • RewardFunction: maps transitions to scalar reward

These interfaces make it straightforward to test alternate assumptions without rewriting the full environment stack.

Installation Details

Requirements:

  • Python 3.10+
  • Gymnasium 0.29+

Extras:

pip install -e ".[notebooks]"  # Jupyter widgets
pip install -e ".[media]"      # video/movie plume support
pip install -e ".[data]"       # data capture and analysis

# Once published:
# pip install plume-nav-sim[media]

Editable install for local development:

git clone https://github.com/SamuelBrudner/plume_nav_sim.git
cd plume_nav_sim/src/backend
python -m venv .venv && source .venv/bin/activate
pip install -e .[dev]

Verify install:

python -c "import plume_nav_sim; print(plume_nav_sim.PACKAGE_VERSION)"

Contributing / License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plume_nav_sim-0.1.0.tar.gz (579.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

plume_nav_sim-0.1.0-py3-none-any.whl (167.7 kB view details)

Uploaded Python 3

File details

Details for the file plume_nav_sim-0.1.0.tar.gz.

File metadata

  • Download URL: plume_nav_sim-0.1.0.tar.gz
  • Upload date:
  • Size: 579.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for plume_nav_sim-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aaac2f6aa23ca9aa73da2ff5c6667f5b97762bbcf93c2f11747fb206da02775e
MD5 4f5762b12dca43fd5c4f928831410784
BLAKE2b-256 f746ac4cf0b99bfda1960ca40cdcd2532a46f40bf28270cef92b8994e816e2dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for plume_nav_sim-0.1.0.tar.gz:

Publisher: pypi-publish.yml on SamuelBrudner/plume_nav_sim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file plume_nav_sim-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: plume_nav_sim-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 167.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for plume_nav_sim-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee7a490c68ac31994b0b8afcb7dfda187c126707ed99bdb259b418db0e8b3779
MD5 19308cb40e457dd249d5dd9033ea03fe
BLAKE2b-256 6fed06ed64a352634846dca954c992686b868e1e1b20438d135ca7756c2e2d56

See more details on using hashes here.

Provenance

The following attestation bundles were made for plume_nav_sim-0.1.0-py3-none-any.whl:

Publisher: pypi-publish.yml on SamuelBrudner/plume_nav_sim

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page