# planets as data

Every planet in GitVerse is a **proof**: a verifiable, deterministic transformation of public repository data. Nothing is invented. If a field is missing, the planet renders as "unborn" rather than fake.

***

## The seed

A planet's "DNA" is its **first commit hash** — the immutable cryptographic fingerprint of the very first commit in the repo. This hash:

* Cannot be changed once the repo has commits.
* Is the same for everyone who looks at the same repo.
* Cannot be forged without rewriting git history.

This is the seed. Same seed → same planet, byte for byte.

***

## What goes into a planet

```ts
seedToWorld(firstCommitHash, {
  commitCount,
  branches,
  openPRs,
  dominantLanguage,
  trust,
  lastActivityTs,
}) → WorldParams
```

The function is pure. Its output (`WorldParams`) contains everything needed to render the planet:

| Field               | Determines                                        |
| ------------------- | ------------------------------------------------- |
| `radius`            | Planet size                                       |
| `biome`             | Visual category (volcanic, oceanic, jungle, etc.) |
| `palette`           | Surface colors (4-color palette)                  |
| `moons` / `rings`   | Orbital decorations                               |
| `atmosphereDensity` | Glow intensity                                    |
| `surfaceRoughness`  | Terrain detail                                    |
| `axialTilt`         | Rotation angle                                    |

***

## Biomes and languages

The dominant language of the repo determines the biome:

| Language        | Biome       | Example planet             |
| --------------- | ----------- | -------------------------- |
| Rust            | Volcanic    | Hot, fissured, lava plains |
| TypeScript / JS | Oceanic     | Cyan oceans, archipelagos  |
| Python          | Jungle      | Dense green canopies       |
| Go              | Tundra      | Pale blue, icy plains      |
| Solidity        | Crystalline | Sharp purple shards        |
| C / C++         | Barren Rock | Cratered, mineral          |
| HTML / CSS      | Gas Giant   | Banded, layered            |
| (unknown)       | Desert      | Soft amber dunes           |

Two Rust projects are never identical (the seed differs) but they look related — same biome family, different texture.

***

## What makes this "real data"

* **No server-side database.** The frontend queries the public gitlawb node directly.
* **No fabricated seeds.** A repo without a first commit hash is shown as "Unborn" — we don't make one up.
* **No hidden state.** The render is a function call you can verify in the browser console.
* **No central authority.** Anyone can host a frontend and produce the same universe.

The slogan: *the planet is a proof.*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitverse.gitbook.io/gitverse-docs/planets-as-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
