Skip to content

tlancaster6/AquaCal

AquaCal

Build Coverage PyPI Python License DOI

Refractive multi-camera calibration for underwater arrays. AquaCal calibrates cameras in air viewing through a flat water surface, using Snell's law to achieve accurate 3D reconstruction in refractive environments.

🚧 Status 🚧

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.

Features

  • Snell's law refractive projection — Accurate ray-tracing through air-water interfaces
  • Multi-camera pose graph — BFS-based extrinsic initialization for camera arrays
  • Joint bundle adjustment — Simultaneous optimization of extrinsics, interface distances, and board poses
  • Sparse Jacobian optimization — Scalable to 10+ cameras with column grouping
  • ChArUco board detection — Robust corner detection for calibration targets

Installation

pip install aquacal

Quick Start

  1. Install AquaCal:

    pip install aquacal
  2. Generate a configuration file from your calibration videos:

    aquacal init --intrinsic-dir videos/intrinsic/ --extrinsic-dir videos/extrinsic/
  3. Run calibration:

    aquacal calibrate config.yaml

Results are saved to output/calibration.json with camera intrinsics, extrinsics, interface distances, and diagnostics.

Documentation

Full documentation is available at aquacal.readthedocs.io:

Citation

If you use AquaCal in your research, please cite:

@software{aquacal,
  title = {AquaCal: Refractive Multi-Camera Calibration},
  author = {Lancaster, Tucker},
  year = {2026},
  url = {https://github.com/tlancaster6/AquaCal},
  version = {1.2.0},
  doi = {10.5281/zenodo.18644658}
}

See CITATION.cff for full citation metadata.

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

License

MIT License. See LICENSE for details.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors