Skip to content

Repository files navigation

Random Knights XYZ Earth

Random Knights | XYZ Earth

🏫 rand0m.ai 2025-2030 🛸 roswell, ga 🍑 ᴚk.xyz + ᴚk.llc + ᴚk.org 🏰
🌝 randomly.engineering & knightly.engineering 🌚

View Demo · View Docs · Report Bug

xyz-earth: E+ badge over a single globe

XYZ-EARTH

The living globe for rand0m.ai is keyless, open-source, clone-and-run.

A self-contained Flutter web app that renders Earth's real environmental signals as an animated globe with a Planet Health Score. It reads public rand0m.ai Storage over plain HTTPS and ships with bundled representative data, so it always renders offline: no keys, no auth, no Firebase, no private dependencies.

ForScience ForDevs ForQAs

QUICKSTART

Prerequisites: the Flutter SDK (stable, Dart ≥ 3.6) and Chrome.

One command from a fresh clone:

git clone https://github.com/random-knights/xyz-earth.git && cd xyz-earth && flutter run -d chrome

(flutter run fetches dependencies itself; no accounts, no keys, no .env.)

That's the whole setup. The globe boots from bundled representatives and upgrades to live data wherever a public rand0m.ai Storage object exists. There is nothing to configure and no secret to provide.

Build a static bundle (e.g. to host or to attach to a Release):

flutter build web
# output in build/web/

What you can do

  • Toggle an Animate layer (wind / ocean currents / waves), a scalar Overlay (SST, air quality, forest, …), and a Points layer (wildfires, glaciers, power plants, …).
  • Read the Planet Health Score ring (global) and open the History panel for the daily score over time.
  • HD raises the flow-field particle budget; Spin auto-rotates the globe.

How it stays keyless

The viewer reads the public rand0m.ai Storage bucket directly:

https://storage.googleapis.com/randomknights-xyz.firebasestorage.app/<object>
  • Score: earth/score/health-score.json · history earth/score/health-history.json
  • Scalar grids (earth.scalarfield.v1): earth/<layer>/...-grid.json
  • Point sets (earth.pointset.v1, identity-stripped): wildfire, biodiversity, …

Each source tries the public live object and, on any failure (offline, a not-yet-deployed object, a non-public 403), falls back to the bundled representative asset under assets/earth/. The app never crashes and never blocks on auth. A live-ready manifest skips fetches for objects known to be undeployed, and every live fetch has a timeout.

The score math is frozen at v0.7 (owner-ratified). This app only reads and displays the score document. It never recomputes or alters it.

rand0m earth2d, 2D wind globe preview

2D globe (earth2d), wind layer. Static preview · open the interactive mock » (drag to rotate). Illustrative wind field, not live data.

(back to top)

PLANETARY HEALTH SCORING

A single number per region and globally, blending nine Earth-system domains. It is an estimate, not a certified assessment; every signal carries a confidence label.

Domain What it measures Primary source
Land Tree-cover health, forest loss rate GLAD Hansen / VCF5KYR
Fire Active hotspot burden, 24 h window NASA FIRMS
Atmosphere Air-quality burden, AQI-weighted CAMS
Ocean temperature SST anomaly vs 1991-2020 WMO baseline NOAA OISST / Open-Meteo Marine
Ocean acidification pH trend stress signal (open for proposals)
Cryosphere Sea-ice extent and anomaly (expanding)
Biodiversity Species pressure / habitat integrity proxy GBIF
Conservation Protected-area coverage signal IUCN / WDPA
Anthroposphere Human-pressure index (gHM-grounded) Global Human Modification index

Domains are anchored against planetary boundary thresholds (Rockström et al.). Signals within a domain are averaged; each domain contributes once to the global score. Normalizers are locked at ratification (anchored), not floating with observed ranges.

v0.7 adds two honesty refinements: protected-areas de-saturation (coverage is scored on a saturating curve that treats the 30×30 target as a safe floor, not a perfect score) and a humility ceiling (every domain's health is softly compressed above 90 so no domain can ever read as a "solved" 100). The bundled representative asset mirrors the live v0.7 document and is guarded against methodology drift by test/score_asset_drift_guard_test.dart.

ROADMAP

gantt
title Future Proofing
dateFormat YYYY-MM
section 2026
✌️ :a1, 2026-01, 365d
❤️ :active, a1, 2026-01, 365d
🌎 :crit, a1, 2026-01, 365d
Loading

CONTRIBUTING

If you have a suggestion that would make this better, fork the repo and open a pull request — or open an issue with the tag "enhancement". Don't forget to star the project!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

follow our progress on GitHub @ Random Knights

Governance

Everything you see is aggregated and identity-free by design:

  • No callsigns, vessel names, tail numbers, registrations, or personal identifiers, ever. Identity suppression is a property of the data, not a display-time filter.
  • No precise sensitive locations. Ambient mobility layers (flights, boats) are decimated and rendered non-interactive (flow, not followable targets).
  • Open scientific sources only, each carrying its provider's license.

Contributors must keep this bar. See CONTRIBUTING.md and the Code of Conduct. The test/keyless_guard_test.dart gate proves the tree stays free of secrets, auth SDKs, and private dependencies.

Join the research

Discussions →: score methodology, data-source proposals, license questions, and layer requests.

License & attribution

  • Code: MIT.
  • Methodology & governance docs: CC BY 4.0.
  • Brand assets (the rand0m logo/header, brand colors beyond the few inlined UI tokens): reserved, not covered by the MIT code license. See NOTICE. The app's runtime does not depend on the brand logo.
  • Upstream data & bundled third-party code: each carries its provider's license. See NOTICE (NOAA, NASA, CAMS, GLAD, IUCN/WDPA, Natural Earth, gHM, WRI, d3/topojson, …).

STANDARD

Name 🐿️ Version Description
Earth+ 🌎 v1.2.0 Earth Health Scoring
AiEDs ⚡ v2.4.0 AI Energy Disclosure
K13 👑 v2.1.0 AI Response Summary
AI for Good ❤️ · (ITU) · (UN) Recommendations

OPERATING

  • RUNBOOK.md - humans: how it deploys (merging to main publishes the live site), roll back, what breaks and how to fix it.
  • AGENTS.md - agents: the rules that apply in this repo.

Ai Energy Disclosure Standard ( AiEDs v2.2.0 )

🌎 Total AiEDs Usage | xyz-earth 🏰

⚡
5.6
kWh

🌫️
2.4
kg CO₂e

🌳
Tree-Time
42
days

🔢
31.87 M
tokens, 6 sessions

Tree-Time is the time one mature tree (two or more years of growth) needs to capture this carbon at its yearly rate, 21 kg CO₂e per year; shown in days.

The figures above are the AiEDs impact of developing this repository, measured by a SessionEnd hook on the developers' machines and reported under AiEDs section 2.4.1,
which counts plain input, cache-creation and cache-read tokens all as input at the input coefficient.
98.5 percent of our input is cache reads, so that rule decides the answer by 8.4x. Weighting a cache read at 0.1 instead gives 0.7 kWh, 0.3 kg CO₂e, 5 days of Tree-Time. That lower figure is a local departure from the standard, not a reading of it. It is published because it is what this project offsets against.

Equivalencies

The same educational comparisons the rand0m.ai app renders, from the same constants. Educational comparisons, not measurements.

Equivalent Amount Basis
Phone charges 464 12 Wh per charge
LED bulb hours 557 10 W bulb
Laptop hours 111 50 W laptop
Driving distance 14 km 170 g CO₂e per km
Tree-Time 42 days 21 kg CO₂e per mature tree per year
Offset

What the figures above cost, and what it would take to absorb them. Modeled, like everything else here.

Energy cost: USD 1.02. 5.6 kWh at USD 0.1834 per kWh, the United States average residential price for June 2026 (18.34 cents per kilowatthour), from U.S. Energy Information Administration, Electric Power Monthly, Table 5.3. The rate is pinned, not looked up at render time, so this figure is reproducible.

Modeled provider spend: USD 17.84. The same sessions priced at published API list prices, rates version 2026-09-01, with cache writes at 1.25x and cache reads at 0.1x an input token. It is a MODEL, not a bill: this work runs on a subscription, so the marginal cost was nothing. It covers the 3 of 6 sessions counted above whose model that file prices; the other 3 carry a model nobody has priced and add nothing, rather than an assumed rate.

Trees needed: 1. 2.4 kg CO₂e divided by 21 kg CO₂e, the yearly capture of one mature tree, rounded up: 1 mature tree would absorb this carbon within one year. Put the other way round, that is the Tree-Time above: one mature tree working for 42 days.

Offset cost: USD 0.01. 0.0 tonnes of CO₂e at USD 6.03 per tonne, the REDD+ (Reduced Emissions from Deforestation and Degradation in Developing Countries) average, 2024, Ecosystem Marketplace, State of the Voluntary Carbon Market 2025, Table 4. That is a nature-based avoidance and protection, not removals average: this project prices itself against keeping land, animals and trees standing, never against carbon removals or industrial and household offsets. Buying an offset is not the same as not spending the energy, and this line does not claim otherwise.

AiEDs Methodology v2.2.0 by Random Knights, LLC (ORCID 0009-0006-5066-1693), CC BY 4.0 · `claude` coefficients are class-estimated, the second-weakest provenance tier · grid 429 gCO₂e/kWh pinned · measured by a `SessionEnd` hook, not modeled from a guess
Energy and carbon are modeled estimates. Tree-Time and equivalents are educational comparisons.

Measured by a SessionEnd hook on one developer machine; a second machine's ledger is not yet merged in, over 293 recorded sessions covering 2026-07-27 to 2026-09-13, which is every session the hook recorded and no session it did not. Two attribution bases are published: BY LANE LEDGER in the table above, and BY WORKING DIRECTORY, the stricter view, in aieds-readme.json. The organization totals are the same under both. Both bases are DATE AWARE: the application repository was named xyz until 2026-08-19 and is named ruok now, so a row written before that day is placed on the repository the name meant then. Any offset figure is a nature-based average, not removals. Generated, never hand-typed.

CONTACT

If any issues arise, please draft a strongly worded email and never send it to: admin@rand0m.ai

(back to top)

TECHNOLOGY

CLI

GitBash Herdr Powershell

IDE

VSCode

Source Control

GitHub Git

Database

HiveDB MongoDB PostgreSQL

Tools

CodexMicropad TeenageEngineeringMic NothingHeadphones RaspberryPi

Development

Node.js Python JavaScript TypeScript Flutter Dart

Testing

Chai.js Cucumber Cypress.js Jest Lighthouse Mocha.js Swagger.js TestLibrary

AI

OpenAI Gemini Claude RabbitTech Perplexity Rand0mAI HuggingFace Ollama

Design

AdobeIllustrator Canva Figma

Pipelines

GoogleCloud GitHubActions Firebase Jira Slack

Research & Funding

ORCiD OpenCollective

(back to top)

🏰🛏️🌚ɯ0puɐɹ kn1ghts🌝🛋️🏫

About

EARTH + Random Knights & Rand0m AI = Planetary Health & AI Research Platform

Topics

Resources

Code of conduct

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages