Skip to main content

Multi-view stereo reconstruction of underwater surfaces with refractive modeling

Project description

AquaMVS reconstruction - multi-view stereo reconstruction of underwater surfaces

PyPI Python CI License: MIT

AquaMVS

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

:construction: Status :construction:

02/17/26: This project is under active and rapid development. The API and internal structure are subject to frequent breaking changes without notice. It is not yet recommended for production use. A stable release is planned by the end of the month. This section will be updated accordingly once that milestone is reached.

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.

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
pip install -r requirements-prereqs.txt

# 3. Install AquaMVS
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/tlancaster6/AquaMVS
Example dataset: https://github.com/tlancaster6/AquaMVS/releases/tag/v0.1.0-example-data

A Zenodo DOI will be added in a future release.

License

MIT License. See LICENSE for details.

Project details


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.3.1.tar.gz (136.5 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.3.1-py3-none-any.whl (119.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aquamvs-1.3.1.tar.gz
  • Upload date:
  • Size: 136.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aquamvs-1.3.1.tar.gz
Algorithm Hash digest
SHA256 c3cf965c299a2feb73e12b9bb5982b0a1196a4ad605f6adef3de5dbc26a7c74f
MD5 eeabddf7cf8d944d5b8899e448dfbfb1
BLAKE2b-256 99abc4f3f489c9508f1d5525848fc7d915174f3112c309d3b04f5429a6f309a4

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on tlancaster6/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.3.1-py3-none-any.whl.

File metadata

  • Download URL: aquamvs-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 119.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aquamvs-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ad84337672081ce6e404091f1a415bc524bc5aa9dd8eb91d9e548874fb1ee0e6
MD5 d3a9bcff06d1b029ae4f3070c1f7f72e
BLAKE2b-256 8ec6dbe39e2177ec0ccafc764ea7009ffd8b8ff333a2211cf22449dca44b2f39

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on tlancaster6/AquaMVS

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page