I turned a game's official Nuxt payload into a 130-species dataset and a 1,221-pair co-habitation matrix
Description and use
A 130‑species Planet Zoo 2 dataset and a 1,221‑pair co‑habitation matrix were built from Nuxt payloads, published on GitHub, archived on Zenodo with a DOI, and marked with JSON‑LD for discoverability.
Problem
Planet Zoo 2 provides no public API to answer which animals ship, their needs, and which can share an enclosure before launch.
Outcome
A publicly available, CC BY 4.0 dataset of 130 Planet Zoo 2 species and a 1,221‑pair co‑habitation matrix, with clear provenance and a DOI for citation.
Workflow
- 1. Inspect the serialized payload on an animal page and note its flat array structure.
- 2. Write a 20‑line resolver in Python that dereferences integer indices, guards against booleans and cycles.
- 3. Extract every Zoopedia slug, run the resolver, and flatten each record into CSV columns.
- 4. Compile the 130‑species table, noting species, biomes, enclosure types, conservation status, etc.
- 5. Generate all 130 choose 2 pairs, filter by shared biome and enclosure type to 1,221 candidates.
- 6. Parse the Social & Reproduction prose for each species and apply rules: solitary → no, both social/mixed → likely, otherwise unverified.
- 7. Store the verdict and source sentence for each pair.
- 8. Publish the dataset as CSV/JSON on GitHub, archive on Zenodo with a DOI, and embed JSON‑LD on the site for discoverability.
- 9. Provide a browsable site with sortable tables and clear separation of extracted facts and inferred verdicts.
Evidence
The shape is roughly this (heavily abridged): ...
Two gotchas worth naming, because they cost me the most time: ...
Over the 1,221 pairs that gives 376 likely, 106 unverified, 739 no.
The dataset is archived on Zenodo, so "how do I cite this" has an answer that is not a URL that might rot: 10.5281/zenodo.23263613.
- Record date: 2026-10-09T15:40:59.918Z