|
arslee07
f78c860e72
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. |
||
|---|---|---|
| .cargo | initial | |
| assets | add basic documentation | |
| docs | add notes for devs | |
| media | media | |
| python | update basic example | |
| src | embed auv model into binary | |
| .gitignore | add basic documentation | |
| Cargo.lock | update to bevy 0.16 | |
| Cargo.toml | update to bevy 0.16 | |
| LICENSE | add license | |
| mkdocs.yml | add basic documentation | |
| README.md | extend readme with additional useful information | |
| README.ru.md | extend readme with additional useful information | |
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
-
Install Rust Install Rust using rustup and ensure you're using the stable toolchain:
rustup default stable -
Clone the repository
git clone https://codeberg.org/naus/naus cd naus -
Build the project Prebuilt binaries are not currently provided. Build the project in release mode for optimal performance:
cargo build --releaseThe binary will be located at:
- Linux/macOS:
./target/release/naus - Windows:
.\target\release\naus.exe
- Linux/macOS:
-
Install the Python API From PyPI:
pip install nausOr 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
- Optimize the physics model and rendering performance
- Plugin support for additional sensors
- Expand the documentation
- 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