aarons-portfolio

The Games of Aaronautics

Purpose of this file: the reader-facing explanation of the two playable experiences in this repo — what they are, how they play, and why they exist. If you’re a person (or an LLM) trying to understand the games from the code alone, start here. For maintenance (which file owns which feature, live bugs, roadmap), read orbit/HANDOFF.md instead. For the project’s overall memory and design decisions, read DESIGN-BRIEF.md.

Aaronautics is Aaron Selkridge’s portfolio, built as a place you operate rather than a page you scroll. Two games live in it:

  1. Orbit — the portfolio itself, played as a spaceship you fly. This IS the site; the games/portfolio distinction is deliberately blurred.
  2. The Coldest Call — a self-contained teaching game about go-to-market (GTM) engineering, reached from inside Orbit.

Live at: https://aselkridge.github.io/aarons-portfolio/docs/orbit/ (the game routes directly at …/orbit/coldest-call/).


1. Orbit — the portfolio you fly

Where: docs/orbit/ (entry index.html, logic split across js/01-config.jsjs/10-content-viewer.js, load order matters).

Premise. You arrive at a doorway, pick a ship, and get dropped into a top-down solar system. The sun is Aaron’s mission statement; everything else orbits it — literally the site’s thesis rendered as physics. Flying to a planet and landing on it opens that section of the portfolio as a painted, explorable scene.

The two themes / ships

Everything — palette, star density, weapon, music mood, film grain — swaps with the ship you choose:

Theme key Ship Vibe Accent Weapon
sword Swordfish II Cowboy Bebop: warm amber, jazz, heavy grain + scanlines #f0a63c cannon
roci Rocinante The Expanse: cold blue, ambient, clean #4fb8e8 PDC

You can swap ships mid-session via the hangar-bay animation (08-ui.js).

The map (stations = portfolio sections)

How it plays

The point: a recruiter or friend can just read the stations like pages — but the site rewards play, and the play itself demonstrates the craft the portfolio is claiming.


2. The Coldest Call — the GTM teaching game

Where: docs/orbit/coldest-call/index.html — one fully self-contained page (all CSS/JS inline; art in coldest-call/assets/; fonts shared from docs/assets/fonts/). No build step needed to read it: the file IS the game. Entry: the glowing mission door on the AlphaForge station rail, or the PLAYABLE · BUILD 05 deck card, both opening a mission briefing whose CTA routes here. Direct link works too. Theme follows the site (?t=roci / #roci for Expanse; Bebop default), and the end screen returns to ../#alphaforge.

Title card: The Coldest Call — “a playable outreach run. help a stranded astronaut introduce ice cream to a moon.”

Premise

An astronaut crashed on a far moon two years ago. On the moon’s far side is a town of neighbors who have never tasted ice cream. He radios four people — you and three rivals — and offers a deal: whoever gets the most townsfolk to actually reply to an introduction wins him as a client. It’s a cold-email campaign wearing a spacesuit: the town is a market, the citizens are leads, and “introducing ice cream” is your outreach.

How a run plays (10–15 minutes)

  1. Intro transmission on your wrist unit, then suit select: Pilot, Engineer, Off-Duty, or Ronin (cosmetic + flavor; each ties to a reward category from Orbit). Type a callsign, drop to the surface.
  2. Walk the strip. The world is a vertical pixel-art terrain you climb through four fixed stations (landing site → market district → the big dome / clay workstation → the mast). Stations are pixel-anchored to landmarks in the art, so the layout is identical on every screen size. Rivals (Jordan the Broadcaster, Natalie the Delegator, Adam the Archivist — friendly first-name nods to AlphaForge coaches, plus a Yash cameo) are met along the way, each personifying a strategy.
  3. The economy: 100 credits. Knocking on a door to ask someone a question costs 1 credit per person. There are 24 citizens. Do the math — you cannot brute-force it. Reading the posted town survey is free.
  4. The clay workstation (the game’s centerpiece — a full console takeover with a live 24-row table, CRT styling per theme). You choose which data columns to gather about the citizens. The trap: three columns are free public survey data, and paying a “claygent” to fetch them anyway burns credits for nothing. The interface will happily let you. If you do it, the debrief hands you THE RECEIPT.
  5. Cut the list. Strike citizens who were never going to say yes. Cutting is free; sending is not (2 credits per send). Order of operations is a lesson in itself: enrich → cut → send beats send → regret.
  6. The seam. Six opening lines, all written by the human (you) — three fully hand-written, three written as templates with {field} merge chips filled from your gathered data, previewed live against a real citizen. You pick the approach, not “human vs machine”: the machine never writes; it only fills in what you wrote.
  7. Send and debrief. Replies are computed by a fixed, deterministic formula (fit of your list × quality of your questions × line multiplier × how many you sent) — no AI, no randomness, so the lesson is inspectable. The debrief is a reward-card: headline result, your best line with the load-bearing phrase highlighted, THE POINT / AND THE TRUTH, and the honest caveat that in reality nobody can predict what will work — you can only stack the odds. Send to zero people, or to a bad list, and you get the real ending: “THE SILENCE HAS A REASON,” with the reasons.

The teaching layer

Art & tech notes


3. Where things live (quick map)

Thing Path
Orbit game (the site) docs/orbit/index.html + docs/orbit/js/
Orbit maintenance doc docs/orbit/HANDOFF.md
The Coldest Call (whole game) docs/orbit/coldest-call/index.html
Coldest Call art docs/orbit/coldest-call/assets/
Shared fonts docs/assets/fonts/
Orbit ship/station art docs/orbit/assets/
Project memory / design brief docs/DESIGN-BRIEF.md
Art & quality operating rules CLAUDE.md (repo root)

GitHub Pages serves docs/, so everything under it is the live site.