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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aquamvs-1.7.1.tar.gz (143.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aquamvs-1.7.1-py3-none-any.whl (126.3 kB view details)

Uploaded Python 3

File details

Details for the file aquamvs-1.7.1.tar.gz.

File metadata

  • Download URL: aquamvs-1.7.1.tar.gz
  • Upload date:
  • Size: 143.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aquamvs-1.7.1.tar.gz
Algorithm Hash digest
SHA256 97161168ecac81865d56356b7c7b623d653bd7339e10bc9f8b8839cffdc184b1
MD5 b7aea35b609ea65097b2caa021af32f0
BLAKE2b-256 401648a2de0f15c8b6dec2eb1160c6ff5cd0980f879e58534ff7316b95c2c8f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquamvs-1.7.1.tar.gz:

Publisher: publish.yml on McGrathLab/AquaMVS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aquamvs-1.7.1-py3-none-any.whl.

File metadata

  • Download URL: aquamvs-1.7.1-py3-none-any.whl
  • Upload date:
  • Size: 126.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aquamvs-1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b1fb7101cd3b641c068fe64852e1048812c8aa08db2d4a3d657db6e319865b3c
MD5 484ced813c5fba84dbc3faa7e3466d91
BLAKE2b-256 c2e03b0af2311cb80f32039759ab4c80ad2b78cc6646cf77502a48c18233ea4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aquamvs-1.7.1-py3-none-any.whl:

Publisher: publish.yml on McGrathLab/AquaMVS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.7.1 This release

2 files

1.7.0

2 files

1.6.2

2 files

1.5.2

2 files

1.3.1

2 files

1.1.3

2 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