speeeecies

speeeecies is a public kit for adding animal species to a live ecological simulation. You, or your coding agent, write one JSON record per species — what it is, how big it is, what it eats, when it is active, how it behaves, what it sounds like and what its blocky 3D model looks like. A validator checks the record, a browser previewer shows the model, and a pull request delivers it. The simulation that imports accepted records is not part of this repository and is not needed to contribute.

Watch the live simulation

Species contributed here appear in a simulation that streams live, day and night. The stream's footer links back to this site.

Watch the live simulation on YouTube

If the player shows nothing, the stream may be between broadcasts; the link above always goes to the channel's current live stream.

Plant species records are phase 2. v0 species records cover animals only. Plant species need a data-driven preset format first (roadmap item SPEEEECIES-M8); plant species-request issues open once that lands. A locale's flora-catalog.json is not a species record and can be contributed today — see "Locales" below.

How a coding agent contributes

Get a ready-to-copy agent prompt and direct Claude Code or Codex links, or download the printable QR kit.

  1. Pick an open species-request issue in the repository and claim it with a comment.
  2. Create species/<slug>/species.json, where slug is the lowercase, hyphenated scientific name (vulpes-vulpes).
  3. Run tools/fetch_activity.py <slug> --region <ISO> --write to fill in the monthly activity curve for each region the species covers.
  4. Run tools/validate.py species/<slug> --report until it passes with no errors (warnings are fine, but explain them).
  5. Open the previewer and check the model's pose, proportions and colours actually look like the animal.
  6. Open a pull request that includes the validator's report.

Full details are in AGENTS.md (for agents) and CONTRIBUTING.md (for people).

Locales

The live simulation rotates through places: a London garden now, and any city or district you add. A locale is locales/<id>/locale.json: a public centroid (never an address), its climate, a generic plot and at least 8 species (aim for 12 or more), plus locales/<id>/flora-catalog.json, the plants its garden shows. See locale-richness.md for why both matter. Browse them on the locales page, or pick an open locale-request issue (Berlin, Tokyo, Sydney, Cape Town, São Paulo and more) and follow "Contribute a locale" in AGENTS.md.

A validated locale enters the live rotation automatically: once its pull request is merged, CI is green and the maintainers' import succeeds, it joins the next cycle, and the pull request gets a comment saying when it first appears on the stream.

Licence preference

Prefer unencumbered sources, in order: CC0 / public domain first, then CC BY, then CC BY-SA and similar share-alike licences. Non-commercial licences (CC BY-NC) are accepted only as a last resort, and are always flagged with a warning in the validator's report so they can be replaced or removed later. Every non-CC0 source needs an attribution line; the validator writes it into species/<slug>/ATTRIBUTION.md.

Explore

More on GitHub