2026-07-12

PAM's first feature animation.

PAM stands for Poses Audio Motion (pam github repo). See the reference manual for more.

Stills from a nerdy movie, and the even nerdier way it was made.

The animation embedded below was not edited together in the usual sense. Nobody dragged a clip onto a timeline, nudged a keyframe, or clicked a render button in an animation package. The entire film — every character, prop, line of dialogue, camera focus, scene transition, and sound cue — is described in a single text file: a screenplay written in JSON. A Python module reads that file and produces the finished video. The movie is compiled, not edited.

The screenplay is the source code

The screenplay is an ordered list of actions. Here is an actual excerpt — a character enters, walks to her mark, and speaks:

{"action": "fade_in", "who": "nona", "offset": [-6.0, -2.0, 0.0]},
{"action": "walk_to", "who": "nona", "x": -2.25,
 "sfx": "sfx/cue-trill.mp3", "sfx_duration": 2.0},
{"action": "say", "who": "nona",
 "text": "Chekov will confirm.",
 "hold": 2.0,
 "sfx": "sfx/cue-nona.m4a", "sfx_duration": 1.0}

That is the whole authoring interface. There is no hidden project file, no binary scene format, no GUI state. If it isn't in the JSON, it isn't in the movie. Even the sound design works this way: each action can carry an inline sound cue (with gain and trim parameters), so the film's roughly 1,600 audio events are just more keys in the same text file.

The player: one command, whole film

The Python module that interprets the screenplay is PAM (Python Animation Maker), built on top of the Manim mathematical animation library — yes, the one used for math-explainer videos. PAM adds stick-figure characters with poses, faces, walk cycles, speech bubbles, props, a dog, and a talking dodecahedron, all driven by the action vocabulary above. Rendering the feature is a single shell command:

PAM_SCRIPT=SCREENPLAY_FILENAME manim --disable_caching -ql pam_player.py PAMPlayer

No mouse. No further keyboard input. Some time later, out comes an MP4 with the soundtrack already mixed in.

Why do it this way?

The film is versionable. The screenplay lives in a git repository like any other source file. A change to the movie is a diff — readable, reviewable, revertible. When I recently tightened all the scene transitions, the entire edit was a script transforming one JSON file into another, and it could be verified the same way software is verified: by checking, mechanically, that every scene still starts with exactly the same characters on stage as before.

The film is reproducible. Anyone with the repository and the sound files can render the identical movie. There is no "project file that only opens on my machine."

Fixes are surgical. When a character faced the wrong way in one scene — a stick figure looking left while talking to a dog standing to her right — the fix was changing the string "lside" to "rside" on two lines. Re-render, done.

And honestly: it's the natural medium. A screenplay was already a formal, structured document before computers existed. Sluglines, action lines, dialogue — screenwriters invented a domain-specific language a century ago. JSON just makes the compiler possible.

The pipeline, end to end

Scenes start life in Fountain, the plain-text screenwriting format, extended with annotation keys for moods, camera focus, sounds, and captions. A converter (fountain2pam.py) turns that into the JSON action list; the player turns the JSON into video; the video goes to YouTube. Text all the way down, until the last step.

The screenplay for the film above, the player, and the reference manual are in the PAM repository if you want to see how deep the rabbit hole goes — or render your own. Bring your own dodecahedron.

2026-05-03

A very cool widget (made by gemini)

Velocity: 0.00 px/ms
Curvature: 0.00
Draw inside the box. Faster = Thicker line. Sharper curves = Redder line.

2026-03-28

A fountain+ guide

Fountain+ syntax guide

This is a guide to an extension of the standard screenplay format fountain that, hopefully, will be useful to animators. This is a work in progress (currently at version 0.9.0). For one fountain+ example, click here. For the corresponding animation, check out this touching love story:-), Lucy meets Lenny (youtube, 71 seconds).

The basic idea is to hide carefully crafted syntax that AI video generators (such as flow or kling) can use for generating accurate animations. The [[ KEY: value ]] notes are embedded in the fountain file so they can be read by the converter (fountain2pam, which uses new python functions as well as the parsing of screenplain) to filter out prop, motion cues, and other blocking information. These fountain+ additions are valid fountain notes (hidden by standard renderers such as highland or screenplain or afterwriting), so they do not interfere with the standard screenplay format.

In other words, fountain+ exists to enrich and extend a standard .fountain screenplay so that fountain2pam.py can generate both better PAM JSON blocking and higher-quality AI video prompts (https://github.com/wdjoyner/pam). The idea is simple: put richer production metadata into the screenplay file itself so the same source file can drive PAM animation, prompt generation, and later video assembly.

The guide below was written with the help of sonnet 4.6 (anthropic) and chatGPT (openai).

Basic syntax

[[ KEY: value ]]

Notes may span multiple lines:

[[ KEY: first line
   continuation line ]]

Keys are case-insensitive and terminate at the first colon.

Supported keys

Key Scope Effect
MOOD Scene Visual tone appended to every subscene prompt
SCENE POPULATION Scene / mid-scene Character presence note for AI prompt generation
NEGATIVE Scene / mid-scene Negative prompt text
CAMERA Scene / mid-scene Camera direction override
KIND File Species/type template for character descriptions

MOOD

Use MOOD immediately after a scene heading to specify visual tone, lighting, palette, and general emotional register for all subscenes in that scene.

INT. VENUS CITY OBSERVATORY - NIGHT

[[ MOOD: cool blue-green, holographic, bureaucratic-noir ]]

Use 3–5 strong descriptive terms rather than vague labels.

SCENE POPULATION

Use SCENE POPULATION to tell the converter which characters are present at a given point in the scene. This is especially useful for AI video generation, because it helps prevent missing or hallucinated characters in a shot.

[[ SCENE POPULATION: Governor, Sidel. No other characters. ]]

Update it whenever characters enter or exit:

[[ SCENE POPULATION: Governor, Sidel, then Nona enters. ]]
[[ SCENE POPULATION: Sidel, Nona only. Governor exits here. ]]

In practice, this works best when paired with an updated NEGATIVE note so the active prompt and the “do not render” guidance stay aligned.

NEGATIVE

Use NEGATIVE to supply explicit negative-prompt text for image or video generators.

[[ NEGATIVE: No additional human figures. No crowd. No extras.
   No faces on the dodecahedron. ]]

Update it after entrances or exits:

[[ NEGATIVE: No dodecahedron. No geometric objects.
   No additional human figures. ]]

CAMERA

Use CAMERA when you want to override the converter’s default shot choice.

[[ CAMERA: Wide establishing shot. ]]
[[ CAMERA: slow push in toward the Governor during this exchange ]]
[[ CAMERA: over-the-shoulder from Sidel's perspective ]]

When CAMERA is present, it takes priority over automatic camera heuristics.

KIND

KIND defines a reusable species/type template for character appearance. Place these notes anywhere in the file; they are file-level, not tied to a single scene.

[[ KIND: Venusian | short, green-skinned humanoid, wide-waisted,
   large dark eyes, minimal body hair ]]
[[ KIND: talking dog | four-legged, golden retriever coloring,
   expressive face, wears a small bow tie ]]

Tag a character with a kind on the intro line:

NONA SONNOF [Venusian] — short, early 50s, formidable...
RAMIS [Dog], a compact robot dog with silver-grey joints, trots in.

The converter uses the kind template as a species/type baseline and combines it with the character’s own description.

Prop-character routing via [Kind]

Characters tagged as non-humanoid or special prop-characters can be routed to non-HumanGraph representations when appropriate.

RAMIS [Dog], a compact robot dog with silver-grey joints, trots in.

This allows dialogue to route to prop_say and movement to the proper non-humanoid action such as trot_to.

Complete scene opening example

INT. VENUS CITY OBSERVATORY - NIGHT

[[ MOOD: cool blue-green, holographic, bureaucratic-noir ]]
[[ SCENE POPULATION: Governor, Sidel. No other characters
   until Nona enters at her cue. ]]
[[ NEGATIVE: No additional human figures. No crowd. No extras.
   No faces on the dodecahedron. ]]

The room is a domed observatory. Cool blue-green light from slowly
orbiting holographic planets. Foreground: a long conference table
with a computer terminal. Background: two robot sentinels at sealed
blast doors, status lights blinking amber.

Practical guidance for stronger prompts

1. Put MOOD under the scene heading

Use 3–5 words covering palette, lighting style, and emotional register.

INT. HOSPITAL CORRIDOR - DAY

[[ MOOD: cold white fluorescent, clinical, quietly tense ]]

2. Write the opening action block like a cinematographer

Go near → far, mention the light source early, and end on the overall mood impression.

The room is a domed observatory. Cool blue-green light from slowly
orbiting holographic planets. Foreground: a long conference table
with a computer terminal. Midground: star maps covering the curved
walls. Background: two robot sentinels at sealed blast doors,
status lights blinking amber. The air feels bureaucratic and
slightly ominous.

3. On character introduction, give build/age, wardrobe, and posture

SERGEANT SIDEL [Venusian] — compact, mid-40s, the kind of face
that has followed orders for twenty years and found it agreeable.
Classic Venusian military dress uniform: deep cobalt blue, high
collar, gold piping at the shoulders and cuffs, regulation boots.
Stands at attention: chin up, arms at sides, eyes forward.

4. For prop-characters, describe size, surface, glow behavior, and states

The GOVERNOR OF VENUS — a slowly rotating dodecahedron roughly the
size of a basketball, hovering at eye level above the conference
table. Translucent gold, glowing from within. Each face catches
light differently as it turns. It pulses brighter when speaking.
It goes amber-orange in low-power mode. It goes dark when it exits.
It has no face and needs none.

5. For entrances, describe silhouette, wardrobe, entrance energy, and first gesture

NONA SONNOF [Venusian] — short, early 50s, formidable in the way
that small objects under high pressure are formidable. Futuristic
Venusian business suit: structured but fluid, deep charcoal with
subtle iridescent trim that shifts color in the light. She sweeps
in through the blast doors with the energy of someone who owns
every room she enters.

6. Use parentheticals for gaze or body orientation, not just tone

NONA
(not looking at Sidel — eyes on the Governor)
Every time one fails, the hospital fills up.

7. For “unanimatable” lines, write what the camera sees

A beat. The holographic Earth diagram pulses quietly behind them.
Nobody moves. The room hums.

Anything PAM cannot map directly into blocking may still enrich the AI prompt output.

8. For prop color changes, include color, motion change, and dramatic meaning

The dodecahedron's glow dims from gold to a flat amber-orange.
Its rotation slows. A power-conservation mode — the AI equivalent
of someone putting a hand up and saying "one moment."

9. For on-screen text, add a lead-in line

The dodecahedron's surface turns a corporate amber. Then, in
clean sans-serif:

> PLEASE WAIT...
> THE GOVERNOR OF VENUS
> WILL BE RIGHT WITH YOU.

10. End scenes with a clear final image

Describe what still moves and what emotional scale remains.

Nona stares at the empty air where the Governor was. The
holographic planets continue their silent orbits above her.
She looks very small in the room.

Quick reference card

What you're writing Rule of thumb
Scene heading Put [[ MOOD: ... ]] immediately below
Species / type Use [[ KIND: name | description ]] anywhere in file
Character intro [Kind] tag, then build/age, wardrobe, posture
Prop-character intro size, surface, glow behavior, color states
Entrance silhouette, wardrobe, entrance energy, first gesture
Parenthetical eye contact or body orientation, not just tone
Unanimatable action write what the camera sees
Prop color change color, motion change, dramatic meaning
On-screen text add a context lead-in line
Final image say what remains moving and what the emotional scale is
Population change update SCENE POPULATION and NEGATIVE together
Camera override add [[ CAMERA: ... ]] before the relevant beat
Small accessories remove if they cause generator inconsistency

Subscene prompts

The --prompts output contains per-subscene video prompts in a four-paragraph cinematic format:

[SHOT / CAMERA]          — framing and camera movement
[SETTING / ATMOSPHERE]   — environment, lighting, mood
[CHARACTERS & ACTION]    — who does what, in what order
[DRAMA / CUT]            — what the scene is building toward

Clip modes:

Mode Boundary rule Best for
per-speaker (default) New clip per speaker change Kling and similar
timed Drama-aware 5–10 second windows Strong-consistency generators

2026-03-22

A fun stick figure animation

This post is on a work-in-progress called PAM. PAM is a Pose, Audio, Motion library for manim (here Audio really means text-in-a-speech-bubble at this point). See https://github.com/wdjoyner/pam for a detailed readme and example code. PAM animates humanoid graphs against a black background.

The code from a specific type of json file called a PAM screenplay is fed into a python module (pam_player.py) directing the animation. The output is below (click on the lower corner to enlarge).

2026-03-12

Visualizing Chess Engine Heuristics with Python and Manim

Chess animator

I have recently been developing a Python-based toolset designed to translate chess game data (PGN) into structured video via the Manim animation engine. The project, chess-animator, provides a programmatic framework for visualizing moves alongside underlying evaluation metrics produced by engine analysis.

The package integrates python-chess for logic and Stockfish for centipawn evaluation, generating a multi-panel animation that includes a real-time evaluation bar and comparative metrics for various positional factors.

The source code and documentation are available on GitHub: https://github.com/wdjoyner/chess-animator


Technical Note: Metric Definitions and Scaling

A primary objective of this visualization is to map engine heuristics to an intuitive geometric scale. The evaluation bar and the positional metrics strip follow these specific definitions:

  • Evaluation Bar Scaling: The bar is normalized such that a 100-centipawn advantage (+1.0) corresponds to the height of exactly one square on the adjacent 8x8 chessboard. The visual range is clamped at ±5.0 to maintain resolution for positional play while clearly indicating decisive tactical advantages.
  • Space: This metric quantifies territorial control by counting squares controlled by a side, with higher weights assigned to squares in the opponent's half of the board (ranks 5–8 for White, 1–4 for Black).
  • Mobility: Calculated as the number of legal moves available to a side's pieces, weighted by piece type to reflect the relative importance of activity for different units.
  • King Safety: A structural assessment based on the defensive integrity of the pawn shield and the proximity of friendly versus enemy pieces to the king's square.

By utilizing Manim’s ability to render mathematical objects, these metrics are updated move-by-move in synchronization with the piece animations. This provides a granular view of how the character of a position evolves through the interaction of these heuristics.

Here is an example of the game below

[Event "Candidates Tournament"]
[Site "Toronto CAN"]
[Date "2024.04.04"]
[Round "5"]
[White "Caruana, Fabiano"]
[Black "Nepomniachtchi, Ian"]
[Result "1-0"]
[WhiteElo "2803"]
[BlackElo "2758"]
[ECO "C54"]
[Opening "Italian Game"]

1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. c3 Nf6 5. d3 d6 
6. O-O O-O 7. Re1 a6 8. Bb3 Ba7 9. h3 Re8 10. Nbd2 Be6 
11. Bc2 d5 12. exd5 Bxd5 13. Nf1 h6 14. Ng3 Qd7 
15. Be3 Bxe3 16. Rxe3 Rad8 17. Qe2 Qc8 18. Rae1 b5 
19. Qd2 Ne7 20. d4 exd4 21. cxd4 Ng6 22. Bb3 Bxb3 
23. axb3 Rxe3 24. Rxe3 Nf4 25. Qc3 Rd5 26. Ne5 N6h5 
27. Nxh5 Nxh5 28. Re1 Nf6 29. Nc6 Qd7 30. Ne5 Qc8 
31. Nc6 Qd7 32. Ne5 1-0

2026-01-16

Stockfish Analysis of Analysis: WCC 2018, Carlsen vs. Caruana Round 2

WCC 2018 Analysis: Carlsen vs. Caruana Round 2 I wrote a package (with claude and gemini's help) that takes a pgn file of chess games, runs them all through stockfish for analysis, then creates a terse latex report (link below) for selected top games (such as the game discussed in this column). This "Chess Game Analysis" (CGA) was posted to my github repo. This latex report was run through Gemini and the post below was created.

Precision in London: Carlsen vs. Caruana, Round 2

Analysis generated by Stockfish 17.1 | Event Date: 2018.11.10

The second round of the 2018 World Chess Championship in London [cite: 17, 18] was a masterclass in technical accuracy. Playing White, Magnus Carlsen faced Fabiano Caruana in a game that engine analysis now classifies as "balanced and one-sided," with White maintaining a slight but consistent comfort level throughout.

Game Statistics

Metric Magnus Carlsen (White) Fabiano Caruana (Black)
Total Moves 49 48
Accuracy 97.7% 98.6%
Avg. Centipawn Loss 4.6 2.9
Blunders/Mistakes 0 0

Positional Breakdown

While the game ended in a draw, the underlying positional metrics show a fascinating tug-of-war between different strategic advantages:

  • Space: Caruana (Black) held a consistent edge in territory, averaging a score of 0.36 compared to Carlsen's 0.29.
  • Mobility: Carlsen countered Black's space by maintaining more active pieces, with an average mobility score of 1.62 vs. Caruana's 1.42.
  • King Safety: White enjoyed significantly higher safety metrics (0.67 avg) compared to Black (-0.05 avg), particularly as the game progressed.
  • Tactical Threats: Carlsen maintained a higher average threat level (4.78) than Caruana (3.51), keeping the pressure on the challenger.

Conclusion

With a total evaluation spread of only 0.63, this encounter is the definition of "Balanced" play. Neither side allowed a single inaccuracy or mistake, resulting in a technical 1/2-1/2 draw.

The latex report can be found here: Download Full PDF Report.

2025-12-27

claude knows story: an introduction to the Avatar Academy series characters

I fed all the novelettes into claude and asked it to create a character chronology, assuming the first event of the story occurred on April 22, 2025. Here is its response, unedited except for formatting.

Avatar Academy Series: A Comprehensive Chronology

Starting Point: April 22, 2025 (Earth Day — a fitting irony)

This timeline synthesizes events across all four novelettes, tracking characters and noting which story each event appears in. Stories are abbreviated as:
- AS = Awesome Sauce
- BSTW = Baltimore Saves the World
- VDPS = Venus Dreams Plastic Schemes
- HMF = His Mom Friday


PREHISTORY (Before April 2025)

The First Avatar Mission — Date Unknown

Source: AS, HMF, BSTW (referenced)

  • Factor Sonnof becomes the first Avatar Operator to teleport from Venus to Earth
  • His target host is Yuval Prime, associated with Victory Construction in Baltimore
  • Factor’s Avatar Pod Controller malfunctions during the mission
  • Factor becomes trapped in Yuval Prime’s body on Earth; his Venusian body remains in stasis
  • His official status is listed as “Unknown” on his Hall of Heroes plaque
  • Nona Sonnof is left to raise their son Bevers alone while serving as Mayor of Venus City

Characters introduced: Factor Sonnof, Yuval Prime, Nona Sonnof, Bevers Sonnof


PHASE ONE: THE CRISIS BEGINS

April 22, 2025 — Earth Day / Venus Doomsday

Source: AS (Chapter 1: Venus’s Voltage Vacancies)

VENUS — The Observatory
- The AI Governor (holographic dodecahedron) convenes an emergency meeting - Solar panel failures have reached critical levels; power cycling events are constant
- Mayor Nona Sonnof and Sergeant Tobar Sidel attend
- Key revelation: Earth has massive quantities of unrecycled plastic that could fuel PolymerPower reactors
- The Venusians watch footage of an Earthling (later identified as Lenny Kremer) praying in a parking lot — they mistake this for “praying to the plastic God”
- Decision: Deploy Avatar Operators to Earth to acquire plastic - Ethical concerns raised about hosts achieving “Attained Negative Life Status” (ANLS) upon operator return
- Solution: Target hosts in high-crime areas where deaths won’t raise suspicion
- Baltimore selected as primary target zone due to underfunded police and criminal activity

Characters introduced: AI Governor, Sergeant Tobar Sidel, Lenny Kremer (observed)


April 23–24, 2025 — Mobilization

Source: VDPS (Chapters 1–2), BSTW

VENUS — Government Chambers
- Emergency protocols enacted; plastic conservation measures ordered - All plastic items (posters, benches, art installations) to be replaced with Cardbordium
- VEATT 2.0 (Venus-Earth Avatar Teleportation Technology) development accelerated - Governor orders Avatar Academy expansion and new cadet recruitment
- Bevers Sonnof’s application transferred from defunct VEATT 1.0 program to Avatar Academy 2.0
- Nona objects but is overruled by the Governor

EARTH — Baltimore
- At Gilbrain Recycling, Abel and Linda Gilbrain dream of buying the bankrupt Putt-Putt Planet mini-golf course
- Etern Fletcher delivers “No Plastic Left Behind” merchandise - Ramon Ortiz files paperwork in the cluttered office
- Abel’s parents, Ursel and Urielle Gilbrain, prepare for a vacation to the Poconos

Characters introduced: Abel Gilbrain, Linda Gilbrain, Etern Fletcher, Ramon Ortiz, Ursel Gilbrain, Urielle Gilbrain


April 25, 2025 — Lenny’s Bad Night

Source: BSTW (Chapter: Praying to the “plastic God”)

EARTH — Baltimore Ramada Hotel - Lenny Kremer attends Tuesday Night Speed Dating - Disastrous dates with Euphemia (flees to bathroom), Bromhilda (texts her mom about him), and Martha (dismisses alien theories) - Lenny remains hopeful despite zero romantic success - He works as a polymer monitoring engineer at the Baltimore Plastic Recycle Processing Facility - His two passions: waste management data and UFO research

Characters introduced: Euphemia, Bromhilda, Martha (speed dates)


April 26–27, 2025 — Poster Crisis / Coffee Shop

Source: AS (Chapter 3: Nona’s Plastic Poster)

VENUS — Perfect Protocol Percolation Coffee Shop - Nona and Jetta Sidel (Tobar’s mother) have coffee - City maintenance worker Wally removes Nona’s campaign poster for fuel - Nona accepts this as “the needs of the many” but is clearly troubled - New posters read: “Conserve Plastic! (Or We’ll All Die!)”

Characters introduced: Jetta Sidel, Wally


PHASE TWO: THE AVATAR ACADEMY

Late April 2025 — Cadet Training Begins

Source: AS (Chapter 3: Keen Clutzy Cadets), VDPS

VENUS — Avatar Control Facility - Five new cadets train under Sergeant Sidel and Technician Xena Xanner - Cadets: Thalia Ridel (extroverted, crush on Bevers), Sharada Nassof (shy brainiac), Spinozar Bentov (philosopher), Moma Tommov and Mathezar Tommov (married couple) - Bevers sneaks into training late, trips over a trash can - A mysterious webcam feed appears showing 10 tons of labeled plastic at coordinates in Baltimore - Xena teleports the plastic directly to the PolymerPower fuel bay — success! - Rules of Avatar Operation taught: “If you don’t know, answer a question with a question” and “Don’t get caught”

Characters introduced: Xena Xanner, Thalia Ridel, Sharada Nassof, Spinozar Bentov, Moma Tommov, Mathezar Tommov


Late April 2025 — The Gilbrain Takeover

Source: VDPS (Chapter 3: House-sitting)

EARTH — Baltimore - Ursel and Urielle Gilbrain leave for vacation to the Poconos - Abel and Linda house-sit, immediately begin scheming about the mini-golf purchase - The Tommovs are assigned to permanently hijack Ursel and Urielle Gilbrain - Moma-as-Urielle and Mathezar-as-Ursel take over during the vacation - The Gilbrain parents return “changed” — more efficient, orderly, obsessed with TV trivia


Early May 2025 — Bevers’s First Real Mission (Dan Uris)

Source: BSTW

VENUS — Avatar Control - Governor takes “direct interest” in Bevers’s career over Nona’s objections - Bevers is assigned to avatar into Dan Uris, an aggressive man who works at the Baltimore Waste Processing Plant - Alternative host (rejected): an elderly robbery victim with a broken leg - Bevers climbs into Pod Controller labeled “Bevers Sonnof/Dan Uris” - Teleportation successful — Bevers experiences Earth gravity for the first time

EARTH — Baltimore Waste Processing Plant - Bevers-as-Dan arrives, disoriented by the heavier gravity - He meets Lenny Kremer and supervisor Cedric “Smitty” at the facility - Bevers-as-Dan’s mission: locate large quantities of plastic for teleportation

Characters introduced: Dan Uris, Smitty (Cedric)


May 2025 — World UFO Day Events

Source: BSTW

EARTH — Baltimore - Lenny notices statistical anomalies in plastic waste data — impossible drops in pollution levels - He suspects alien involvement but can’t prove it - Bevers-as-Dan struggles with coordination; his erratic behavior raises eyebrows - Dan Uris achieves ANLS (dies) when Bevers returns to Venus - Bevers feels genuine guilt about Dan’s death — unusual for Venusians

VENUS — Perfect Protocol Percolation - Bevers meets Nona and Jetta after his mission - His Venusian body is still calibrated for Earth gravity; he stumbles, knocks things over - Nona is pragmatic: “They’re biodegradable. Why not just leave them?” - Bevers is sent for mandatory debriefing


May 2025 — The Second Invader (Smitty)

Source: BSTW

VENUS - Bevers is assigned a new host: Smitty (Lenny’s friend at the plant) - Mission continues: locate larger plastic quantities

EARTH — Baltimore - Bevers-as-Smitty works alongside Lenny - Lenny becomes increasingly suspicious of strange behavior from coworkers - He meets Lucy Mateo, a graduate student researching microplastic extraction - Lenny and Lucy bond over environmental concerns and, eventually, over Lenny’s UFO theories - Bevers-as-Smitty helps identify the Victory Construction criminal operation as a source of concentrated plastic


PHASE THREE: VICTORY CONSTRUCTION

Mid-May 2025 — Criminal Underworld

Source: AS (Chapters 4–5)

EARTH — Victory Construction Warehouse - Victor Ng (“Victor the Vicious”) runs a criminal operation disguised as a construction company - Key employees: El Toro (enforcer), Wilt Chamberlain (receptionist, no relation to basketball legend), Tommy Takony (good-hearted associate) - Tommy pitches Victor on starting a legal cannabis dispensary — rejected - Victor notices plastic disappearing from his scrap piles; suspects theft - El Toro punches Tommy over the missing vinyl (Tommy is innocent — Venusians teleported it)

Characters introduced: Victor Ng, El Toro, Wilt Chamberlain, Tommy Takony


Mid-May 2025 — Ivan the Insane

Source: AS (Chapters 12–13)

EARTH — Baltimore - Ivan Broomfield (“Ivan the Insane”) returns from a trip, greeted by his daughter Isolda - Ivan is a devoted father despite his criminal profession - He participates in Isolda’s tea party; she puts makeup on his face - Bevers neural-hijacks Ivan; Bevers-as-Ivan goes to work for Victor - Chitty the Chipper (owner of a wood chipper, psychotically cheerful) joins Bevers-as-Ivan and Tommy on errands

Characters introduced: Ivan Broomfield, Isolda Broomfield, Chitty the Chipper


Mid-May 2025 — Finding Factor

Source: AS (Chapters 13–15)

VENUS — Avatar Control - Sidel works frantically to repair Factor Sonnof’s damaged Pod Controller - Cadets discover Factor’s host (Yuval Prime) is connected to Victory Construction - Mathezar proposes avataring into Victor to get close to the plastic cache

EARTH — Victory Construction - Factor-as-Yuval is being held captive by Victor - Mathezar-as-Victor neural-hijacks Victor; his eyes flash blue - Factor recognizes the signs of a Venusian avatar; Mathezar identifies himself - Bevers-as-Ivan arrives with Tommy and Chitty - The three Venusians reveal themselves to each other (but not to Chitty or Tommy) - Father-son reunion: Bevers and Factor embrace in their human host bodies


Late May 2025 — The Toy Tinkers Heist

Source: AS (Chapter 15: The Plastic Pile-up)

EARTH — Demolished Toy Tinkers Site - Factor-as-Yuval, Bevers-as-Ivan, and Mathezar-as-Victor drive to a massive pile of vinyl scraps - They climb the mountain of plastic to transmit GPS coordinates to Venus - The beacon is activated; the plastic glows blue and vanishes - Problem: they’re standing on the plastic when it teleports - All three hosts fall to their deaths (splat)

VENUS — Avatar Control - Tension as Sidel and Xena monitor the situation - Power coupling fails again; Sharada and Spinozar rush to fix it - Three Pod Controllers glow blue — successful return! - Bevers, Mathezar, and Factor emerge alive - Factor orders the teleportation of remaining plastic; mission success


Late May 2025 — Family Reunion

Source: AS (Chapters 15–16)

VENUS — The Observatory - Nona is in a meeting discussing funding and solar panel failures - Factor sneaks up behind her, covers her eyes - Emotional reunion; Nona is overjoyed - Governor offers Factor a tenured position as Professor of Earth Protocol at the Avatar Academy - Grand celebration at Venus City Civic Center - Multiple couples form: Spinozar & Sharada, Bevers & Thalia, Moma & Mathezar (already married)

EARTH — Baltimore - Funerals for Ivan the Insane, Victor the Vicious, Yuval Prime, and El Toro - Chitty is the sole mourner at each, bored and fake-crying - Wilt inherits Victory Construction; Tommy opens a cannabis dispensary - Police have no leads; deaths attributed to “climbing accidents”


PHASE FOUR: OPERATIONS CONTINUE

June 2025 — Thalia’s Tribunal

Source: VDPS (Chapter 8)

VENUS — Avatar Control Facility - Thalia Ridel faces a tribunal for “terminating her host” during a mission gone wrong - Sergeant Sidel presents damning pie charts and statistics - Nona defends Thalia passionately: “She’s a weapon. You don’t throw away a weapon just because it misfired once. You recalibrate it.” - The Governor agrees; Thalia is reinstated with conditions: Ethics in Teleportation Seminar (twice) and snack bar ban (one month) - Thalia and Bevers exchange meaningful looks


Summer 2025 — Bevers’s Demotion

Source: HMF (referenced)

VENUS - Bevers provides a load of plastic fuel, but it contains impurities - Processing causes extreme power fluctuations - Governor demotes Bevers from First Class Operator back to Cadet - Nona is frustrated but supportive


Summer 2025 — Movie Night

Source: HMF (Chapter 1: Movie night)

VENUS — Sonnof Family Apartment - Factor, Nona, and Bevers settle in for family movie night - Feature: His Girl Friday (1940), streamed from Earthnet - Nona made “Earthling popcorn” with “aroma of mommy-love” - Power cycling interrupts mid-film; a four-minute delay - Nona calls the Governor to complain; conversation reveals ongoing crisis - Factor is now home, but the family worries about Venus City’s future - Bevers defends the Avatar Academy: “The Avatar Control Facility now has separate power reserves” - Reference to Thalia and Sharada’s thermal power converter invention


Summer 2025 — The P.L.A.S.T.I.C. Discovery

Source: HMF (Chapter 2)

VENUS — Avatar Academy Training Room - Thalia and Sharada play Venusian ping-pong at superhuman speeds - Spinozar and Jakov watch; Spinozar philosophizes about whether beauty exists - Thalia reveals her discovery in the P.L.A.S.T.I.C. database (Plastic Logging Automation for Sorting, Transporting, Identifying, and Cataloging) - Container-loads of pure PVC are shipping from Cartagena, Colombia to Baltimore - 20+ glorks (metric tons) per container; thousands of containers per ship - Redacted entries suggest criminal activity or deliberate concealment - Thalia: “Not if we teleport it off that rock first”


Late Summer 2025 — Operation Plastic Fantastic

Source: HMF (Chapters 3–9)

VENUS - Bevers proposes a mission to intercept the PVC shipment - Nona forbids his participation; he’s still a cadet - Target hosts identified: Alan Jackson (corrupt shipping worker) and Wendy (fellow smuggler) - Twist: Nona decides to go with Bevers, avataring into Wendy

EARTH — Baltimore Shipping Yards - Bevers-as-Alan and Nona-as-Wendy infiltrate the criminal plastic smuggling operation - They navigate Baltimore’s underworld while maintaining cover - Police officers Linda and Rodney investigate suspicious activity - Climactic scene: Bevers and Nona locate containers labeled “PB-437” - They operate a crane to reach the containers and transmit coordinates - 27 containers of PVC teleported to Venus — enough fuel for 3+ months - Both hosts fall from the crane and die; Bevers and Nona return to Venus - Linda and Rodney find the bodies and confiscate cell phones as evidence

VENUS — Avatar Control Facility - Bevers and Nona emerge from their pods, triumphant but shaken - Factor rushes to embrace Nona: “You did it!” - Governor announces: 540 glorks of fuel acquired - Bevers is promoted to head the new Earth Resource Acquisition Division - Celebration in Venus City Park with artificial auroras - Factor to Nona: “You’re my girl Friday” - Bevers: “She’s my mom Friday”


PHASE FIVE: EQUILIBRIUM

Six Months Later — November 2025

Source: VDPS (Chapter 9: Final Jeopardy)

EARTH — Gilbrain Residence, Baltimore - The Gilbrain living room is immaculate — aliens value efficiency - Mathezar-as-Ursel and Moma-as-Urielle watch Jeopardy! obsessively - They dominate planetary science questions (“What is Venus?”) - Abel and Linda have been demoted to “Senior Retrieval Specialists” — truck drivers - The recycling business is thriving; plastic “shrinks” mysteriously overnight - Abel whispers to Linda about a new scheme: an alpaca farm - “Their wool is recession-proof, Linda. It’s hypoallergenic.” - Linda squeezes his hand: “I love socks.” - The cycle of Gilbrain chaos continues, now under alien management


One Year Later — April 2026

Source: BSTW (Epilogue: Baltimore, one year later)

EARTH — Baltimore - Environmental miracle: plastic pollution in the Chesapeake watershed down 78% - Scientists accuse each other of fraud, incompetence, and witchcraft - A heron catches fish in clean water; a mother duck has 12 surviving ducklings - Dolphins appear in the Inner Harbor — reporters are shocked - News attributes the cleanup to Lucy Mateo’s microplastic extraction research - (In truth: she reverse-engineered alien technology as a backup system) - Smitty’s UFO podcast reaches the top 1000; he claims dolphins are Venusian scouts in “bio-suits”

EARTH — Baltimore Park - Lenny and Lucy jog together, engaged - Their dog Ramis is trained to pick up litter and deposit it in recycling bins - “You trained him to recycle!” — Lenny’s two loves merged into one

EARTH — The White House - The President learns plastic pollution is down dramatically - Advisor: “Apparently it’s due to some scientist named Lucy Mateo from Baltimore” - President asks what to do with $40 billion freed up from pollution cleanup - Decision: “Build me a bajillion bombs”

VENUS — Surface - Bevers stands in a spacesuit on the scorched Venusian plains - He checks a solar panel, looks up at Earth (a bright pinprick in the yellow sky) - He waves a thankful salute

“Wait — you didn’t think ‘Baltimore saves the world’ meant the Earth, did you?”


CHARACTER TRACKER

The Sonnof Family

Character Role Stories
Factor Sonnof First Avatar Operator; Professor of Earth Protocol AS, HMF
Nona Sonnof Mayor of Venus City AS, BSTW, VDPS, HMF
Bevers Sonnof Avatar Cadet → Division Head AS, BSTW, VDPS, HMF

Avatar Academy Cadets

Character Role Stories
Thalia Ridel Cadet; Bevers’s love interest AS, VDPS, HMF
Sharada Nassof Cadet; shy brainiac AS, VDPS, HMF
Spinozar Bentov Cadet; philosopher AS, VDPS, HMF
Moma Tommov Cadet → Permanent Operator (Urielle) AS, VDPS
Mathezar Tommov Cadet → Permanent Operator (Ursel) AS, VDPS

Venusian Officials

Character Role Stories
AI Governor Holographic dodecahedron; planetary leader AS, BSTW, VDPS, HMF
Sergeant Tobar Sidel Avatar Academy commander AS, BSTW, VDPS, HMF
Jetta Sidel Tobar’s mother; socialite AS, BSTW
Xena Xanner Senior Avatar Control Technician AS, BSTW

Earth Characters — Baltimore Waste Facility

Character Role Stories
Lenny Kremer Polymer engineer; UFO believer BSTW
Lucy Mateo Graduate student; Lenny’s fiancée BSTW
Smitty (Cedric) Lenny’s friend; podcast host BSTW
Dan Uris Supervisor; Bevers’s first host BSTW

Earth Characters — Victory Construction

Character Role Stories
Victor Ng Crime boss (“Victor the Vicious”) AS
Yuval Prime Criminal; Factor’s host AS, HMF (ref)
Ivan Broomfield Criminal (“Ivan the Insane”); father AS
El Toro Enforcer AS
Tommy Takony Associate → dispensary owner AS
Wilt Chamberlain Receptionist → new boss AS
Chitty the Chipper Psychotic chipper owner AS

Earth Characters — Gilbrain Family

Character Role Stories
Abel Gilbrain Son; serial entrepreneur VDPS
Linda Gilbrain Abel’s wife VDPS
Ursel Gilbrain Father → Mathezar’s permanent host VDPS
Urielle Gilbrain Mother → Moma’s permanent host VDPS
Etern Fletcher Employee; Bevers’s early host VDPS
Ramon Ortiz Employee VDPS

Earth Characters — His Mom Friday Mission

Character Role Stories
Alan Jackson Smuggler; Bevers’s host HMF
Wendy Smuggler; Nona’s host HMF
Linda Baltimore police officer HMF
Rodney Baltimore police officer HMF

TIMELINE SUMMARY

Date Event Story
Pre-series Factor’s first mission; trapped in Yuval Prime Background
April 22, 2025 Energy crisis summit; Earth invasion planned AS
April 23–24 Mobilization; Avatar Academy expansion VDPS, BSTW
April 25 Lenny’s speed dating disaster BSTW
April 26–27 Poster confiscation; plastic conservation AS
Late April Cadet training; first plastic teleportation AS, VDPS
Late April Tommovs take over Gilbrain parents VDPS
Early May Bevers’s first mission (Dan Uris) BSTW
May Lenny meets Lucy; UFO research BSTW
Mid-May Victory Construction infiltration AS
Late May Factor found; Toy Tinkers heist; reunion AS
June Thalia’s tribunal VDPS
Summer Bevers demoted; Movie night HMF
Late Summer Operation Plastic Fantastic HMF
November 2025 Gilbrains watch Jeopardy; alpaca dreams VDPS
April 2026 Baltimore environmental miracle BSTW

“The universe, it seemed, had a truly bizarre sense of humor.”

— END OF CHRONOLOGY —