Local, privacy-first AI for wildlife camera trap analysis and conservation monitoring
Project description
BioDex
Local AI for wildlife camera traps. Detect animals, filter blanks, identify species, export results — on your machine, not in the cloud.
Built for conservation research, field review, and defensive wildlife monitoring (Fratres / EcoSentinel integration hooks).
Run locally (do this)
Mac / Linux
git clone https://github.com/FratresMedAI/BioDex.git
cd BioDex
./run_biodex.sh
Windows
git clone https://github.com/FratresMedAI/BioDex.git
cd BioDex
run_biodex.bat
Your browser opens http://127.0.0.1:7860. Use the Batch tab to process a folder, or Quick demo for a fast preview.
First analysis downloads models once (~500 MB). After that, everything stays offline on your computer.
v1.0 highlights
- Pluggable models — registry architecture (
core/models/) with MegaDetector + SpeciesNet adapters - Batch performance — chunking, cancel, ETA progress, optional
torch.compile - Video foundations — frame sampling + timeline export (
biodex video, requires[video]extra) - Advanced exports — Wildlife Insights, iNaturalist drafts, timelapse JSON, SQLite, EcoSentinel hook
- Tabbed UI — Dashboard, Batch, Video, Analytics, Settings
- Optional AI review (BYOK) — per-frame LLM notes after batch runs (see below)
- Docker — CPU and GPU images for deployment
- Release maturity — stable API surface, strict typing/linting, and CI-gated quality
Optional AI review (BYOK)
Core detection runs fully offline on your machine. AI review is an optional power feature:
- Open Use via API in the footer.
- Choose a provider, paste your API key, pick a model (or type a custom model ID), then Save.
- After a batch run, select a frame and click AI review (LLM) for a field note: scene summary, species second opinion, and data-quality flags.
Privacy: API keys are stored locally in ~/.cache/biodex/settings.json and sent only to the provider you choose — never to BioDex servers. See SECURITY.md.
Scope in v1.0.1: batch frame review only. Single-image spot check, video key frames, and batch-level summaries are planned for v1.1. Not every model slug in the dropdown is guaranteed to work with every provider — use a custom model ID if needed.
Extras install matrix
pip install -e ".[ui,models]" # Web UI + inference (default)
pip install -e ".[video]" # OpenCV video support
pip install -e ".[analytics]" # Heatmaps + diversity metrics
pip install -e ".[edge]" # ONNX stubs (future edge deploy)
pip install -e ".[all]" # Everything
Batch CLI
For large folders (100+ images), no browser:
biodex batch /path/to/images -o ./results --classify-species --recursive
biodex batch /path/to/images -o ./results --chunk-size 500 --torch-compile
biodex video /path/to/clip.mp4 -o ./video-results --fps 1 --max-frames 120
Environment variables: BIODEX_DETECTOR_MODEL, BIODEX_TORCH_COMPILE, BIODEX_GEOFENCE_REGION, BIODEX_AUDIT_LOG=1
Docker quick start
docker build -t biodex:cpu -f Dockerfile .
docker run --rm -p 7860:7860 biodex:cpu
GPU:
docker build -t biodex:gpu -f Dockerfile.gpu .
Developers
pip install -e ".[ui,models,dev]"
pytest tests/ -v -m "not slow"
ruff check core app.py ui
mypy core app.py ui
pre-commit install # optional
See CHANGELOG.md, docs/roadmap.md, CONTRIBUTING.md, and SECURITY.md.
MIT License. Uses MegaDetector and SpeciesNet.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file biodex-1.0.1.tar.gz.
File metadata
- Download URL: biodex-1.0.1.tar.gz
- Upload date:
- Size: 4.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd72443ebdd30d7da61b02d138b67af067966b3d2ea15babb6559756b58fa046
|
|
| MD5 |
620edcf478a374fd2664dfc1d75cdf70
|
|
| BLAKE2b-256 |
bb422a90aa1067b3f2253e14fa404f9506a05c69c56ca69b98991a5f0422115d
|
Provenance
The following attestation bundles were made for biodex-1.0.1.tar.gz:
Publisher:
release.yml on FratresMedAI/BioDex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
biodex-1.0.1.tar.gz -
Subject digest:
cd72443ebdd30d7da61b02d138b67af067966b3d2ea15babb6559756b58fa046 - Sigstore transparency entry: 1767467645
- Sigstore integration time:
-
Permalink:
FratresMedAI/BioDex@e1c84ac47f27cef06a8a18ffdb64b8ce56099860 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/FratresMedAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e1c84ac47f27cef06a8a18ffdb64b8ce56099860 -
Trigger Event:
push
-
Statement type:
File details
Details for the file biodex-1.0.1-py3-none-any.whl.
File metadata
- Download URL: biodex-1.0.1-py3-none-any.whl
- Upload date:
- Size: 978.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4dd802f4c0406b7839b972ae2e91778be493ad8c7a9215c8bd3fed36f13d1613
|
|
| MD5 |
adcd029ef3444c0cd6870b85434afff1
|
|
| BLAKE2b-256 |
8736922ef4a51af1d3e706e50b6ecf57c02cb2841723ecdf054f5fb4cf177c01
|
Provenance
The following attestation bundles were made for biodex-1.0.1-py3-none-any.whl:
Publisher:
release.yml on FratresMedAI/BioDex
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
biodex-1.0.1-py3-none-any.whl -
Subject digest:
4dd802f4c0406b7839b972ae2e91778be493ad8c7a9215c8bd3fed36f13d1613 - Sigstore transparency entry: 1767467796
- Sigstore integration time:
-
Permalink:
FratresMedAI/BioDex@e1c84ac47f27cef06a8a18ffdb64b8ce56099860 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/FratresMedAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e1c84ac47f27cef06a8a18ffdb64b8ce56099860 -
Trigger Event:
push
-
Statement type: