| Crates.io | mantaray |
| lib.rs | mantaray |
| version | 0.2.0 |
| created_at | 2024-06-12 05:08:23.625484+00 |
| updated_at | 2025-12-01 01:04:14.490232+00 |
| description | Ray-tracing solver for ocean surface gravity waves that integrates the wave ray equations over spatially varying currents and bathymetry. |
| homepage | https://github.com/mines-oceanography/mantaray |
| repository | https://github.com/mines-oceanography/mantaray |
| max_upload_size | |
| id | 1269236 |
| size | 1,227,661 |
A library for surface gravity waves ray tracing.

The examples are located in the notebooks directory, and each scenario is inside its own subfolder.
To run the example notebooks, follow installation instructions to install pixi and clone the repo. Then, install the examples environment using pixi run -e examples develop.
After that there are multiple options:
pixi shell -e examples..pixi folder and run the examples your own way.If there are additional instructions, such as needing data files, they will be located in the readme of that example's folder.
Install Pixi
Fork Mantaray's repository, by clicking in the 'Fork' button in the top-right corner.
Clone your forked repository. Check the green button and choose a protocol. For instance, if you use SSH you'll see something similar to:
git clone git@github.com:<your-username>/mantaray.git
cd mantaray
pixi run develop
This can take a few minutes the very first time.
At the top of your python file, you will need to include the following import line:
from mantaray.core import single_ray, ray_tracing
Documentation for these functions are located in core.py.
pixi run python path_to_file.py
examples environmentpixi run -e examples develop
examples environmentpixi run -e examples jupyter lab
pixi run -e test pytest
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
We welcome contributions to this project! Whether you're fixing a bug, adding a new feature, or improving the documentation, your help is greatly appreciated. All contributions should be made through GitHub, by forking the repository, creating a new branch, and submitting a pull request.
There are many ways to contribute to this project, including:
When you create an issue, we may label it (
bug,enhancement, etc). If we are unsure about what you are requesting, we will ask to clarify, and if you believe another label fits it better, let us know.
Before submitting a pull request, please make sure it meets these guidelines:
If you have questions or need help getting started, please open an issue and ask. We'll do our best to assist you.