Skip to main content
Experimental setup 3D surface reconstruction

PyPI Python CI License: MIT Dataset DOI

AquaMVS

Multi-view-stereo (MVS) reconstruction of underwater surfaces viewed through a flat water surface, with Snell's law refraction modeling.

Status

v1.3.5 released. AquaMVS is feature-complete for the v1.0 milestone and available on PyPI. The API is considered stable; breaking changes will follow semantic versioning.

What it does

AquaMVS is a companion library to AquaCal. It consumes calibration output and synchronized video from above-water cameras to produce time-series 3D surface reconstructions. The pipeline handles the unique challenge of cameras positioned in air observing underwater geometry, accounting for refraction at the air-water interface using Snell's law.

Key Features

  • Refractive ray casting through air-water interface (Snell's law)
  • Dual matching pathways: LightGlue (sparse) and RoMa v2 (dense) for different accuracy/speed tradeoffs
  • Multi-view depth fusion with geometric consistency filtering
  • Surface reconstruction (Poisson, heightfield, Ball Pivoting Algorithm)
  • Mesh export (PLY, OBJ, STL, GLTF) with simplification
  • Full CLI and Python API for pipeline users and custom workflow developers

Quick Start

from aquamvs import Pipeline

pipeline = Pipeline("config.yaml")
pipeline.run()

See the full documentation for configuration details, API reference, and examples.

Installation

AquaMVS requires several prerequisites (PyTorch, LightGlue, RoMa v2) to be installed first. AquaCal is installed automatically as a dependency.

See INSTALL.md for complete installation instructions.

Quick summary:

# 1. Install PyTorch from pytorch.org
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

# 2. Install git-based prerequisites (LightGlue, RoMa v2)
pip install -r requirements-prereqs.txt

# 3. Install AquaMVS (pulls AquaCal automatically)
pip install aquamvs

Documentation

Full documentation is available at https://aquamvs.readthedocs.io/

Topics include:

  • Installation guide
  • Configuration reference
  • API documentation
  • Usage examples
  • Extension points for custom workflows

Citation

If you use AquaMVS in your research, please cite:

Lancaster, T. (2026). AquaMVS: Multi-view stereo reconstruction with refractive geometry.
GitHub: https://github.com/McGrathLab/AquaMVS
Example dataset: https://doi.org/10.5281/zenodo.18702024

License

AquaMVS is released under the MIT License. See LICENSE for details.

Third-party components and commercial use

AquaMVS vendors no third-party source code or model weights; all optional components are installed separately at the user's request. The out-of-the-box configuration is fully MIT/permissive: the default matcher is RoMa v2 (MIT) and the default feature extractor is ALIKED (BSD-3-Clause).

The optional SuperPoint extractor (reachable via LightGlue by setting extractor_type: superpoint) is provided under Magic Leap's non-commercial academic-research-only license. It is not a default. Commercial users should select ALIKED (BSD-3) or DISK (Apache-2.0) instead of SuperPoint.

See THIRD_PARTY_LICENSES.md for the full breakdown.

Metadata

Release files for aquamvs 1.7.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aquamvs 1.7.2
File Size Uploaded
aquamvs-1.7.2.tar.gz 144.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aquamvs 1.7.2
File Interpreter ABI Platform
aquamvs-1.7.2-py3-none-any.whl Python 3 none any Details

Total release size: 270.3 kB

Release files / aquamvs-1.7.2.tar.gz

Download URL aquamvs-1.7.2.tar.gz
Size 144.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4a45bb7ad9b727a4dcf1a087b81e585a4aa4899db8955f9b6aa51a23ebf3c6cb
BLAKE2b-256 checksum
How to use checksums
f86da44d34eddf3cd701d3bcfa68625f2aa4348539daa3bc56fba2ec1f898f7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / aquamvs-1.7.2-py3-none-any.whl

Download URL aquamvs-1.7.2-py3-none-any.whl
Size 126.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
03925992da06c4b87caf8f2afa6fb8701ab39d44aa7186cb939e8973a2f9e014
BLAKE2b-256 checksum
How to use checksums
815734e673ee5da01d33262ebaff2eb0190ba0078fcf4086daee072df5dd8133
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

1.7.3

2 release files

This release

1.7.2 This release

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.2

2 release files

1.5.2

2 release files

1.3.1

2 release files

1.1.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page