Metadata-Version: 2.4
Name: aquakit
Version: 1.0.0
Summary: Refractive multi-camera geometry foundation for the Aqua ecosystem
Project-URL: Homepage, https://github.com/tlancaster6/aquakit
Project-URL: Documentation, https://aquakit.readthedocs.io
Project-URL: Repository, https://github.com/tlancaster6/aquakit
Project-URL: Issues, https://github.com/tlancaster6/aquakit/issues
Author: Tucker Lancaster
License: MIT
License-File: LICENSE
Keywords: 3d-reconstruction,calibration,camera-geometry,computer-vision,multi-camera,pytorch,refraction,triangulation,underwater
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Image Processing
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: numpy>=1.24
Requires-Dist: opencv-python>=4.8
Provides-Extra: kornia
Requires-Dist: kornia>=0.7; extra == 'kornia'
Description-Content-Type: text/markdown

# AquaKit

Refractive multi-camera geometry foundation for the Aqua ecosystem. Provides shared PyTorch implementations of Snell's law refraction, camera models, triangulation, pose transforms, calibration loading, and synchronized multi-camera I/O — consumed by [AquaCal](https://github.com/tlancaster6/AquaCal), [AquaMVS](https://github.com/tlancaster6/AquaMVS), and AquaPose.

## Installation

AquaKit requires PyTorch but does not bundle it, so you can choose the build that matches your hardware. Install PyTorch first, then AquaKit:

```bash
# CPU only
pip install torch
pip install aquakit

# CUDA (example: CUDA 12.4 — see https://pytorch.org/get-started for other versions)
pip install torch --index-url https://download.pytorch.org/whl/cu124
pip install aquakit
```

## Quick Start

```python
import torch
from aquakit import CameraIntrinsics, CameraExtrinsics, InterfaceParams
from aquakit import create_camera, snells_law_3d, triangulate_rays

# Load calibration from AquaCal JSON
from aquakit import load_calibration_data

calib = load_calibration_data("path/to/aquacal.json")
```

## Development

```bash
# Set up the development environment
pip install hatch
hatch env create
hatch run pre-commit install
hatch run pre-commit install --hook-type pre-push

# Run tests, lint, and type check
hatch run test
hatch run lint
hatch run typecheck
```

See [Contributing](docs/contributing.md) for full development guidelines.

## Documentation

Full documentation is available at [aquakit.readthedocs.io](https://aquakit.readthedocs.io).

## License

[MIT](LICENSE)
