MCPcopy Index your code
hub / github.com/Marine-RL/MarineGym

github.com/Marine-RL/MarineGym @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
507 symbols 1,563 edges 60 files 93 documented · 18%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Visualization of MarineGym


MarineGym

IsaacSim Python Docs Website License: MIT

MarineGym is a large-scale parallel framework designed for reinforcement learning research on unmanned underwater vehicles (UUVs). It is built upon OmniDrones and Isaac Sim, offering the following features:

  • Efficiency: Achieve a simulation speed of up to 107 steps per second.
  • Fidelity: Accurately replicate the physical environment, including physical laws, kinematics, and dynamics.
  • Flexibility: Ensure compatibility with existing RL frameworks and offer user-friendly APIs to facilitate seamless integration and usage.
  • Evaluation: Assesses and contrasts various RL strategies through multiple tasks.

[!TIP]

🚀 Collaborate with us on Underwater Embodied AI!

We are actively seeking research partners in the field of Underwater Embodied Intelligence and Reinforcement Learning. If you are interested in leveraging MarineGym for your project, please contact us at:

📮 Email: zjuoyh@163.com

Installation

To install MarineGym, we recommend reading one of the following guides: - Installation from Source (recommended for development) - Docker Environment (recommended for training purposes; no visualization interface)

If you encounter any issues, you can find solutions to common problems in the FAQ or feel free to open an issue.

For training and evaluation commands, please take a look at the Quick Start.

Usage

For installation details, please refer to our Setup Guide.

Currently, five gym environments are verified: Hover, Circle Tracking, Helical Tracking, Lemniscate Tracking, and Landing. Additional environments, including vision-based and sonar-based tasks, are under development.

The training script is located in the scripts folder, named train.py.

To start the training process, run:

python train.py task=Hover algo=ppo headless=false enable_livestream=false

where task specifies the training scenario, which can be Hover, Track, or Landing.

Citation

If you build on this work, please cite our paper:

@inproceedings{chu2025marinegym,
  title={MarineGym: A high-performance reinforcement learning platform for underwater robotics},
  author={Chu, Shuguang and Huang, Zebin and Li, Yutong and Lin, Mingwei and Li, Dejun and Carlucho, Ignacio and Petillot, Yvan R and Yang, Canjun},
  booktitle={2025 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={17146--17153},
  year={2025},
  organization={IEEE}
}

Acknowledgement

The architecture and certain implementation ideas build upon concepts introduced in OmniDrones.

Core symbols most depended-on inside this repo

to
called by 55
marinegym/envs/isaac_env.py
sample
called by 24
marinegym/learning/modules/distributions.py
get_prim_at_path
called by 16
marinegym/envs/utils/prims.py
quat_rotate_inverse
called by 15
marinegym/utils/torch.py
_resolve_env_indices
called by 13
marinegym/views/__init__.py
get_current_stage
called by 13
marinegym/envs/utils/stage.py
update
called by 13
marinegym/learning/utils/valuenorm.py
_resolve_env_indices
called by 12
marinegym/views/__init__.py

Shape

Method 290
Function 144
Class 73

Languages

Python100%

Modules by API surface

marinegym/views/__init__.py42 symbols
marinegym/learning/modules/distributions.py42 symbols
marinegym/learning/modules/networks.py35 symbols
marinegym/envs/isaac_env.py30 symbols
marinegym/utils/torchrl/transforms.py29 symbols
marinegym/envs/utils/prims.py27 symbols
marinegym/robots/drone/tiltRotor.py24 symbols
marinegym/envs/utils/stage.py21 symbols
marinegym/utils/torch.py20 symbols
marinegym/robots/drone/underwaterVehicleFin.py20 symbols
marinegym/robots/robot.py19 symbols
marinegym/robots/drone/underwaterVehicle.py19 symbols

For agents

$ claude mcp add MarineGym \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact