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

AquaMVS is 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).
#    RoMa v2 must be installed --no-deps, or pip replaces your torch (see INSTALL.md)
pip install -r requirements-prereqs.txt
pip install --no-deps -r requirements-romav2.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

Validation

AquaMVS's geometric accuracy has been validated against independent ChArUco calibration-board ground truth, recovered from the boards without using the MVS reconstruction it assesses. On the ground-truth set (13 cameras, 10 board poses, AquaMVS 1.7.2 with RoMa v2 and an AquaCal 2.1.0 calibration), the reconstruction gives:

Metric Value
Board flatness (RMS) 1.11 mm
Rigid-fit corner error (inlier RMSE) 1.08 mm
Lateral / range error (RMS) 0.53 / 1.78 mm
Absolute scale error +0.064 %

AquaMVS 1.7.3 reproduces the 1.7.2 reconstruction bit for bit (checked on the ground-truth set's first frame); its changes are to installation, headless rendering and CPU device handling.

Citation

If you use AquaMVS in your research, please cite the software (machine-readable metadata in CITATION.cff; GitHub's "Cite this repository" button uses it):

Lancaster, T. (2026). AquaMVS: Multi-view stereo reconstruction of underwater surfaces
with refractive modeling [Computer software]. https://github.com/McGrathLab/AquaMVS
Example dataset: https://doi.org/10.5281/zenodo.18702024

A paper describing AquaMVS is under review; this section will cite it once published.

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.3

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.3
File Size Uploaded
aquamvs-1.7.3.tar.gz 146.1 kB Details

Built distribution (wheel)

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

Total release size: 273.7 kB

Release files / aquamvs-1.7.3.tar.gz

Download URL aquamvs-1.7.3.tar.gz
Size 146.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1cf46daf2d7f88c5bb6d4cecd37073662ed9e4425412b1ff42be52d00a1ced20
BLAKE2b-256 checksum
How to use checksums
e3eb2570702c2d38bbb25be0b6db82e56442afdf13172a02e88fabc692d73747
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 Oct 1, 2026.

Transparency log

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

Download URL aquamvs-1.7.3-py3-none-any.whl
Size 127.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f28c3c6fbbe85999075c8af6dafa8537f3bc9c31f566cb9b1f1861cbef4e672
BLAKE2b-256 checksum
How to use checksums
2c71d64d7905cf406f85c413317ab9ea33ce1deae10cc039869b74132dc93485
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 Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.7.3 This release

2 release files

1.7.2

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