Dependency Map

This page explains the current dependency footprint and what each part does.

OpenFloodAI is still a local proof-of-concept validation system. A small runtime dependency set keeps local testing easier to install and helps future edge-device planning. It does not make the system production-ready.

Runtime Dependencies

Dependency What it does Why it is here
Python 3.12+ Runs the project code The supported language runtime.
jsonschema Checks event and data-contract JSON Keeps structured records consistent.
numpy Handles numeric frame and signal calculations Supports simple visual measurements.
opencv-python-headless Opens local videos and writes/reads frames Supports video replay without a desktop UI.

The runtime does not currently include TensorFlow, PyTorch, scikit-learn, a cloud SDK, a database client, or an alert provider. ML training, cloud services, live cameras, and alert delivery are future work, not hidden runtime features.

Development Dependencies

The development installation adds tools for quality and documentation:

Dependency What it does
pytest Runs deterministic unit, component, and replay-style tests.
ruff Checks Python lint and formatting.
mypy Checks Python types.
mkdocs Builds the documentation site.
types-jsonschema Provides type information for jsonschema.
hatchling Builds the Python package.

Install the project and development tools with:

python3 -m pip install -e ".[dev]"

Current Runtime Boundary

The current dependency map supports:

local video -> frame metadata -> simple visual signals -> local records -> human review

It does not provide:

  • production flood detection;
  • a trained ML model;
  • live camera or RTSP deployment;
  • cloud upload or storage;
  • public warning delivery;
  • emergency decision-making.

Why This Matters

A small dependency footprint is useful for local validation and future edge experiments, but dependency size is only one engineering concern. A future edge system still needs device benchmarking, failure testing, privacy controls, monitoring, update/rollback support, and field evidence before deployment claims.

See Project Overview, Validation Results And Known Limits, and the V1 Requirements for current boundaries.