What it is
PaleoData Explorer is an interactive web app that makes the Paleobiology Database (PBDB), one of the largest open archives of fossil occurrence data in the world, usable by anyone. Type in a species or group, pick a geological time window, and the app turns raw API records into paleogeographic maps, deep-time timelines, Wikipedia-powered taxon profiles, stratigraphic range charts, and clean, exportable datasets. It is built with Python and Streamlit, runs on Hugging Face Spaces, and its source is open on GitHub.
Not just dinosaurs
Paleontology is not just dinosaurs, even if that is where most of us start. The fossil record is the story of all life: ancient plants, early insects, the first fish, the mammals that outlasted the asteroid, even our own ancestors. Every species that ever lived is in that record, and a huge part of it is gathered in one place, the Paleobiology Database, a global public archive built and maintained by researchers over decades.
Who it is for
PaleoData Explorer is for anyone who has ever wondered about life before us, and for the professionals who study it:
- Students and educators: see what a biology or geology class talks about. Pick a taxon and watch its story unfold on maps and timelines, no coding required
- Science communicators and museum educators: pull ready-made visuals for articles, exhibits, and social posts in seconds
- Researchers: explore the PBDB quickly before committing to heavy queries, then export clean, filtered datasets for their own analysis
- Curious minds: search any species, from Tyrannosaurus rex to a humble trilobite, and see where it lived, when it lived, and what the world looked like back then
The idea
The PBDB is an incredible resource and its API makes all that data available. But the raw data comes back as dense JSON: coordinates, ages, taxonomic names. That works if you are a researcher. For a curious person, a student, or a science communicator, it is a wall. The data is too valuable to sit behind a query language, so PaleoData Explorer puts a friendly face on the database.
How it works
One query, five perspectives. Enter any species or group and a geological time window. The app calls the PBDB API, cleans every record, and builds the views below in seconds.
1 · The main page: the whole workflow in one screen

Choose a taxon or clade, set a geological time window, cap the record count, and run the query. The summary bar shows how many records, how many unique taxa, and the age range you are looking at, and every view below updates from this single query. No SQL, no code, no setup.
2 · Paleogeographic map

Every fossil occurrence is plotted on the continents as they were arranged when that species lived, not on today's map. Paleogeographic reconstructions show a Devonian trilobite's world, the ancient seas early fish swam in, or where early hominids roamed, with markers sized by the number of occurrences in each region.
3 · Wikipedia-powered taxon profile

Select any taxon from your results and get its full story: scientific context, fossil species, and behaviour, pulled straight from Wikipedia. The profile pane turns a row of data into something you can actually read and share.
4 · Stratigraphic range chart

Each species becomes a horizontal line across geological time, showing exactly when it appeared and when it disappeared. Range charts make extinctions, radiations, and survivorship visible at a glance.
5 · Deep-time ranges

Zoom out and compare many species at once. Mass extinctions become visible as a wall of lines stopping at the same horizon: the same patterns palaeontologists study, now readable by anyone.
6 · Clean data, ready for research

Every record is normalised into a filterable table: matched names, ranks, intervals, ages, and palaeocoordinates. It exports as CSV in one click, ready for a researcher's own analysis.
The data pipeline
The hard part was never the visualisation, it was the cleaning. PBDB records arrive in wildly inconsistent formats: ranks that disagree, intervals with different spellings, coordinates with different conventions. PaleoData Explorer normalises all of it, with matched taxonomic names, standardised ranks, merged geological intervals, consistent age ranges, and palaeocoordinates mapped for the deep-time views. Responses are cached so repeated queries stay fast, and large clades still render smoothly.
Architecture
A Python and Streamlit app structured as three clean modules: an API client, a data processor, and a visualisations layer. Dependencies are pinned and a Dockerfile ships with the repo, so the exact environment is reproducible. The full source is open on GitHub.
Why Hugging Face
The app needed a backend and I did not want to set up and maintain my own server. Hugging Face Spaces runs the whole thing on their infrastructure. I push the code, and anyone in the world can use it in the browser, free, with no install.
What I learned
Building this taught me the full lifecycle of a data-driven app: talking to a live scientific API, cleaning messy real-world data, designing visualisations that actually communicate, and shipping something strangers can use. The hardest lesson was that a dashboard is only as good as its data pipeline.
What is next
- Pre-built curated explorations (for example "the last 10,000 years" or "marine vs terrestrial life")
- Embeddable maps for researchers to drop into their own sites
- Smarter search: fuzzy matching, common-name lookup, and region-based browsing
- Nightly data refreshes so the archive stays current
- Refined paleocoordinate accuracy: the paleogeographic reconstructions are approximate, and improving the rotation model behind them is a priority
Try it live
Open the app, search Tyrannosaurus rex or any species you are curious about, and watch half a billion years unfold: https://huggingface.co/spaces/benjamintia/PaleoData-Explorer
Data sources: Paleobiology Database (PBDB) API · Wikipedia · Macrostrat Source code: https://github.com/BenjaminTia/PaleoData-Explorer
Log in or sign up for Devpost to join the conversation.