Free · self-hosted · no tracking

Running your own server is the one hurdle. If enough of you would rather join a single public server, open to everyone, it will be set up — say so with a thumbs-up.

👍 I'd use a public server … One vote per GitHub account, so no bots and nothing tracked here.

The dex of
living things.

Photograph whatever you come across. Your own server recognises it among nearly a million species and fills the slot. Your friends do the same — and you compare.

976 000species slots
82achievements, each with a 3D frog
50ranks to climb
17themes, 13 animated
Biodex on a phone: the map
Biodex on a phone: the dex
Biodex on a phone: a species sheet
What it does

Point. Shoot. Collect.

Everything a collection needs, and nothing that phones home. No email, no account anywhere, no central server: each group of friends hosts its own.

swipe →

📸

Photograph

From the Android app or the website. Crop, straighten, cut the animal out with your finger before sending. Four kingdoms: animals, plants, fungi, and an aquatic lens for fish.

🧠

Recognise

MegaDetector frames the animal, BioCLIP 2 names it, Pl@ntNet takes the plants, FungiTastic the mushrooms. A frequency prior rules out the improbable exotic cousin.

📚

Collect

One slot per accepted species — subspecies and synonyms land together. Five rarities, 5 to 150 points, once per species. Fifty ranks from “Larva” to “Go outside, seriously”.

🏆

Achieve

82 achievements, each with its own 3D frog to spin and a crystal to shatter when earned. Conditions stay hidden until you reveal them.

🧩

Arrange

Press and hold, move, resize to 2×2, choose the slot shape, hide, place empty slots. Your dex, laid out like a desktop, on every device.

👥

Share

Friends, activity feed, five-level reactions, favourites, captions. Tag friends in a photo: it counts in their dex too. A leaderboard of the circle and a best-catches ranking.

🗺

Map

Photos where they were taken, in bubbles that cluster as you zoom out. New things first — what your friends posted and you have not seen yet.

🎨

Dress up

Seventeen themes. Falling glyphs, shooting stars, bubbles, a synthwave grid, autumn leaves, cherry petals, snow, northern lights, fireflies, a savanna sunset…

🌍

In your language

English and French today; adding a language is a single JSON file shared by the app, the website and the server.

Under the hood

How a photo becomes a slot

Four stages on your server, about fifteen seconds on an ordinary CPU, half a second on a GPU.

swipe →

Detect

MegaDetector v5a looks for an animal and crops it. A car or a landscape is rejected on the spot.

Compare

BioCLIP 2 compares the crop to 411 626 Latin names for animals, with separate catalogues for plants and fungi.

Weigh

An observation prior from GBIF reweights the raw scores: the roe deer beats the Chilean deer seen 404 times in history.

Decide

Probabilities are summed per slot — cow, zebu and aurochs are one Cow — so the engine stops hesitating between close relatives.

~7/10

photos land on the right species in everyday use. The others get a tap on the right suggestion, or a pick from the list.

117

domestic breeds added as aliases, so a cocker and a poodle add up on “Dog” instead of waking the wolf.

0

bytes leaving your server, except the Wikipedia article fetched once per species and the address you ask it to geocode.

Fifteen seconds, nothing cut

A phone, a cat, and the server at work

Recorded on the Android app, on a fresh account: take the photo, wait for the server, the slot fills.

  1. 0:00

    An empty dex

    No rank, zero points. The slots to discover are shown as grey silhouettes.

  2. 0:02

    One photo

    Pick the kingdom — animal here — then shoot. No cropping needed: the detector does it.

  3. 0:04

    The server thinks

    MegaDetector frames the cat, BioCLIP 2 names it, the observation prior checks the odds. About ten seconds on a CPU.

  4. 0:12

    New species

    Chat — Felis catus, common, +5 points. Confetti, a slot that was grey a moment ago, and the first rank within reach.

Screen by screen

The whole client, in your pocket

Demo accounts, demo photos — every screen of the web client as it looks on a phone. Tap any picture to enlarge it.

The dex
The dex
A species
A species
Arranging the dex
Arranging the dex
Capture
Capture
The map
The map of finds
A place
Photos at one place
Friends feed
The friends feed
Leaderboard
Leaderboard
Best catches
Best catches
A friend's dex
A friend's dex
Gallery
Gallery
Notifications
Notifications
Profile
Profile
Achievements
Achievements
Ranks
The 50 ranks
Settings
Settings and themes
The dex, in French
Same thing, in French
iPhone

From the home screen, no app needed

Safari → Share → Add to Home Screen. Full screen, its own icon, signed in. That is the iPhone version.

How to install it
Home screen
On the home screen
The dex
The dex
The map
The map
Achievements
Achievements
Friends
Friends feed
Gallery
Gallery
Dress it up

Seventeen themes

Thirteen of them paint an animated backdrop behind every screen — the very engine running behind this page. Try one here:

Hacker
Hacker — falling glyphs
Starry night
Starry night — shooting stars
Abyss
Abyss — bubbles and light rays
Sakura
Sakura — petals in the wind
Forest
Forest — autumn leaves
Starry night on iPhone
Starry night, on iPhone
Sakura on iPhone
Sakura, on iPhone
Download

Get Biodex

Two clients, one server. Pick what you need.

swipe →

🤖

Android app

The APK, signed and ready. Allow installs outside the Play Store, then enter your server's address at first launch.

Attached to every release. Download the APK

iPhone

Open your server's address in Safari, tap Share, then Add to Home Screen. That is the app.

Needs HTTPS for the camera from the home screen. How to
🖥

Server and web client

Python 3.12, FastAPI, SQLite. Runs on a CPU. The code as a ZIP, or clone the repository.

Source archive of the main branch, always current. Download the code (ZIP)
📦

Data pack

The species database without any player, encoded catalogues, detector weights, silhouettes. About 2.3 GB, fetched and checked by one script.

Attached to the donnees-v1 release. Data pack release
Five lines to a running server
git clone https://github.com/Raaatus/BioDex.git && cd BioDex/backend
uv venv .venv && uv pip install -p .venv/bin/python -r requirements-moteur.txt
.venv/bin/python outils/installe_donnees.py https://github.com/Raaatus/BioDex/releases/download/donnees-v1
./run.sh &                        # the API on :8077
.venv/bin/python serveur_web.py   # the web client on :8090

Then the full installation guide: systemd units, HTTPS with Caddy, configuration, upgrading without losing anything.

Read on

Documentation

Everything in one place: how it works, installing, configuring, upgrading, translating, rebuilding the data, privacy. Generated from the repository README, so it never drifts.