naus/naus
1
0
Fork
You've already forked naus
0
auv swarm simulator https://naus.arslee.me/
Rust 64.1%
Python 35.9%
Find a file
arslee07 f78c860e72
extend readme with additional useful information
i don't like this one, to be honest. it's a formal requirement for *one
specific contest* of *one specific university*. now readme has some
information that doesn't fit there well. :(
i guess i will revert the commit after a while.
2025年05月31日 04:02:28 +09:00
.cargo initial 2025年04月10日 20:14:04 +09:00
assets add basic documentation 2025年05月31日 02:05:45 +09:00
docs add notes for devs 2025年05月31日 02:58:35 +09:00
media media 2025年04月26日 17:40:29 +09:00
python update basic example 2025年05月30日 22:48:49 +09:00
src embed auv model into binary 2025年05月30日 22:15:04 +09:00
.gitignore add basic documentation 2025年05月31日 02:05:45 +09:00
Cargo.lock update to bevy 0.16 2025年05月28日 16:04:06 +09:00
Cargo.toml update to bevy 0.16 2025年05月28日 16:04:06 +09:00
LICENSE add license 2025年04月26日 17:41:44 +09:00
mkdocs.yml add basic documentation 2025年05月31日 02:05:45 +09:00
README.md extend readme with additional useful information 2025年05月31日 04:02:28 +09:00
README.ru.md extend readme with additional useful information 2025年05月31日 04:02:28 +09:00

ru / en

naus

naus is a simulator for swarms of Autonomous Underwater Vehicles (AUVs). It allows you to program the behavior of underwater robots, either individually or as part of a swarm.

It is written in Rust, using Bevy as the core engine, Rapier for physics, and ZeroMQ for networking.

Key Features

  • Swarm control – Program interactions between multiple AUVs and test collective navigation algorithms.
  • Flexible scene modeling – Create underwater environments using common 3D modeling tools like Blender.
  • Deep control over vehicles – Access telemetry, control thrusters, and process data from two onboard cameras (front and bottom) for computer vision tasks.
  • Multi-language support – Write code in any language (Python is officially supported with a simple and user-friendly API).
  • Open source – The project is available under the free GNU GPL 3 license, allowing you to freely use, modify, and improve the simulator.
  • Cross-platform – Runs on Linux, Windows, and macOS.

See documentation.

Examples

Computer vision demo scene. One AUV detects shapes, another recognizes ArUco markers, and a third moves along a ring.

Seismic survey mission scene. Seven AUVs scan the area within defined grid cells. Seismic activity is visualized on a graph.

Installation

  1. Install Rust Install Rust using rustup and ensure you're using the stable toolchain:

    rustup default stable
    
  2. Clone the repository

    git clone https://codeberg.org/naus/naus
    cd naus
    
  3. Build the project Prebuilt binaries are not currently provided. Build the project in release mode for optimal performance:

    cargo build --release
    

    The binary will be located at:

    • Linux/macOS: ./target/release/naus
    • Windows: .\target\release\naus.exe
  4. Install the Python API From PyPI:

    pip install naus
    

    Or from source:

    pip install ./python
    

Usage

Let’s run a computer vision example.

Start the simulator:

./target/release/naus # Linux/macOS
.\target\release\naus.exe # Windows

In the opened window, click Load Scene and select the file assets/playground.glb.

Then run the mission:

python python/examples/playground.py

Roadmap

  1. Optimize the physics model and rendering performance
  2. Plugin support for additional sensors
  3. Expand the documentation
  4. Add more example scenes and missions

Project Structure

naus/
├── src/ # Simulator source code
│ ├── auv.rs # AUV simulation logic
│ ├── net.rs # Networking (ZeroMQ)
│ ├── ui.rs # Graphical UI
│ ├── main.rs # Simulator entry point
├── python/ # Python API
│ ├── naus/ # Python API module
│ ├── examples/ # Example scripts
├── docs/ # Documentation (MkDocs)
├── media/ # Media (e.g. branding)
├── assets/ # Assets (scenes, models)
├── README.md # Project overview
└── LICENSE # GNU GPL 3 license

Full Documentation