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

PaleoData Explorer Main Page

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

Paleogeographic Map Feature

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

Profile Viewer Feature (Source: Wikipedia)

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

Stratigraphic Range Chart Feature

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

Taxon ranges over deep time

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

Occurrence Data Table Feature

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

Built With

Share this project:

Updates

posted an update —

How I built PaleoData Explorer (the long version)

I started with a simple search. I wanted to see where a species I was reading about had been found, and that led me to the Paleobiology Database. It is a global archive of fossil occurrences maintained by researchers, and it holds millions of records going back half a billion years.

The catch is that it all comes through raw JSON. I'm a student, not a paleontologist. I didn't want to write queries to look at fossils. I wanted to click a name and see its story.

The first prototype took one evening. A Streamlit app that called the API for a single taxon and dumped the results in a table. Ugly, slow, and honestly amazing. I searched for a species I actually cared about and watched the data come back. That moment is why I kept going.

The fun part was the visualisations. The hard part was the data. PBDB records arrive in wildly inconsistent shapes. Ranks that disagree. Geological intervals spelled different ways. Coordinates in different conventions. Most of the build went into that pipeline, and it is invisible when you use the app, which is exactly how it should be.

For hosting I chose Hugging Face Spaces. The app needed a backend and I didn't want to run a server. Spaces runs everything on their infrastructure. I push the code and anyone in the world can open the app in a browser, free, no install.

The app is live now. Search Tyrannosaurus rex, or a humble trilobite, and see where it lived: https://huggingface.co/spaces/benjamintia/PaleoData-Explorer

Next on the list: curated explorations, embeddable maps for researchers, and smarter search. Half a billion years of records, and there is still plenty left to build.

Log in or sign up for Devpost to join the conversation.

posted an update —

Day 6 — The hackathon push

The last day was about the parts users never see: a README that explains the project in one read, pinned dependencies and a Dockerfile so anyone can reproduce the environment, screenshots that show the app honestly, and this Devpost page.

PaleoData Explorer is live now — search Tyrannosaurus rex or a humble trilobite and see where it lived: https://huggingface.co/spaces/benjamintia/PaleoData-Explorer

Next: curated explorations, embeddable maps for researchers, and smarter search. The archive is half a billion years old — there is plenty left to build.

Log in or sign up for Devpost to join the conversation.

posted an update —

Day 5 — Shipping without a server: Hugging Face Spaces

The app needed a backend, and I did not want to run a 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.

It felt like cheating at first. It is not — it is choosing the tool that lets the project live, instead of the one that impresses. The app has been up and public ever since.

Log in or sign up for Devpost to join the conversation.

posted an update —

Day 4 — Five views, one query

With the pipeline clean, the app grew into five perspectives on the same data:

  • a paleogeographic map — fossils on the continents as they were when the species lived
  • a deep-time timeline of occurrences
  • a Wikipedia-powered taxon profile
  • a stratigraphic range chart — when species appear and disappear
  • a clean, exportable occurrence table

One query, five ways to see it. That structure — figure, explanation, next figure — is the heart of the page you are reading.

Log in or sign up for Devpost to join the conversation.

posted an update —

Day 3 — The messy middle: cleaning half a billion years

The visualisations were the fun part. The hard part was the data.

PBDB records arrive in wildly inconsistent formats — ranks that disagree, geological intervals with different spellings, coordinates in different conventions. Cleaning that pipeline took most of the build: normalising names, standardising ranks, merging intervals, mapping palaeocoordinates, caching everything so big clades still render fast.

The lesson stuck: a dashboard is only as good as its data pipeline.

Log in or sign up for Devpost to join the conversation.

posted an update —

Day 2 — The first working prototype

The first version took an evening: a Streamlit app that called the PBDB API for one taxon and dumped the results into a table. Ugly, slow, and wonderful.

The moment it worked, I searched a species I cared about and watched the data appear. That was the spark — a dashboard that made the fossil record feel reachable. From there it was a question of how far I could take it.

Log in or sign up for Devpost to join the conversation.

posted an update —

Day 1 — Half a billion years in one database

The idea started with a search. I wanted to see where a species I was reading about had been found — and I landed on the Paleobiology Database (PBDB), a global archive of fossil occurrences built by researchers over decades. The data was incredible: millions of records, half a billion years of life. And it was all behind raw JSON.

I am a student, not a paleontologist. I did not want to write queries — I wanted to see it. That gap became the project.

Log in or sign up for Devpost to join the conversation.

posted an update —

Why I built PaleoData Explorer (and why it runs on Hugging Face)

When I first opened the Paleobiology Database API, I was amazed at what is in there — millions of fossil records spanning half a billion years. But the raw data is dense JSON: coordinates, ages, taxonomic names. I am a student, not a paleontologist, and I wanted to SEE it — to search a species and watch its story appear on a map of the ancient world.

So I built PaleoData Explorer: type any species or group, pick a time window, and get paleogeographic maps, deep-time timelines, Wikipedia-powered profiles, range charts, and clean exportable data.

The best engineering decision was the hosting. The app needed a backend, and I did not want to set up and maintain my own server — so it runs entirely on Hugging Face Spaces. I push the code, and anyone in the world can use it in the browser, free, with no install.

It is live now — try it: https://huggingface.co/spaces/benjamintia/PaleoData-Explorer

Next up: curated explorations (the last 10,000 years, marine vs terrestrial life), embeddable maps for researchers, and smarter search. If you are curious about life before us, give it a search — even a humble trilobite has a story.

Log in or sign up for Devpost to join the conversation.

Submission history