LudoForge #4

Now that the evolutionary process to grow game definitions is progressing at a steady pace in my app, named LudoForge, I fed the architectural docs to ChatGPT so that it would write a good explanation on how it works. It may be interesting to those curious about how complex systems can grow organically through an evolutionary algorithm that mimics biological evolution.


Teaching a computer to invent tabletop games (and occasionally rediscover the classics)

If you squint, evolving game designs is a lot like evolving creatures: you start with a messy ecosystem of “mostly viable” little organisms, you test which ones can survive in their environment, you keep the best survivors—but you also keep a diverse set of survivors so the whole population doesn’t collapse into one boring species.

In our system, the “organisms” are game definitions written in a small, strict game DSL (a structured way to describe rules: players, state variables, actions, effects, win/lose conditions, turn order, and so on). Each candidate game definition is wrapped in a genome: basically an ID plus the full definition.

From there, the evolutionary loop repeats: seed → simulate → score → place into niches → mutate elites → repeat.

1) Seeding: where the first games come from

Evolution needs a starting population. We can generate seeds automatically, or import them from disk, or mix both approaches. The important bit isn’t “are the seeds good?”—it’s “are they valid and diverse enough to start exploring?”

So seeds must pass two kinds of checks before they’re even allowed into the ecosystem:

  • Schema validation: does the JSON structure match the DSL’s required shape?
  • Semantic validation: does it make sense as a playable ruleset (no broken references, impossible requirements, etc.)?

And there’s a third, subtle filter: when we place games into “niches” (more on that below), seeds that land only in junk bins like unknown/under/over are rejected during seed generation, because they don’t help us cover the design space.

Think of this as: we don’t just want “a bunch of seeds,” we want seeds scattered across different climates so evolution has many directions to run in.

2) Playtesting at machine speed: simulation as the “environment”

A human can’t playtest 10,000 games a day. A simulation engine can.

For every candidate game, we run automated playthroughs using AI agents (simple ones like random and greedy are enough to expose lots of structural problems). The engine repeatedly:

  1. Lists the legal moves available right now
  2. Checks termination (win/lose/draw conditions, cutoffs, loop detection)
  3. Lets an agent pick an action (with concrete targets if needed)
  4. Applies costs and effects, recording what happened
  5. Advances the turn/phase according to the game’s turn scheduler

Crucially: when a complex game definition tries to do something illegal (like decrementing below a minimum, or targeting something that doesn’t exist), the engine records skipped effects/triggers instead of crashing, so the system can observe “this design is broken in these ways” rather than just failing outright.

This is the equivalent of an organism interacting with the world and leaving tracks: “it tried to fly, but its wings didn’t work.”

3) Turning playthroughs into numbers: metrics, degeneracy, and fitness

After simulation, we compute a set of analytics that act like proxies for design quality—things like:

  • Agency: did players have meaningful choices, or were they railroaded?
  • Strategic depth (proxy): how large is the typical decision space?
  • Variety: do many different actions get used, or does one dominate?
  • Interaction rate: are players affecting each other or only themselves?
  • Structural complexity: is this a tiny toy, or something richer?

These are not “fun detectors.” They’re sensors.

Then we run degeneracy detection: filters that catch the classic failure modes of randomly-generated rulesets:

  • infinite loops / repeated states
  • non-terminating games (hits max turns/steps)
  • games with no real choices
  • trivial wins, dominant actions, excessive skipped effects, etc.

Some degeneracy flags cause an outright reject (hard gate), others apply a penalty (soft pressure), and too many penalties at once can also trigger rejection.

Finally, all of this becomes a feature vector, and we compute an overall fitness score—the number evolution tries to increase.

4) “Growing in niches”: why we don’t keep only the top 1%

If you only keep the single highest-scoring game each generation, you get premature convergence: the population collapses into one design family and stops surprising you.

Instead, we use MAP-Elites, which you can picture as a big grid of “design neighborhoods.” Each neighborhood is defined by a few chosen descriptors (think: agency bucket, variety bucket, etc.). Each candidate game gets “binned” into a niche based on its descriptor values, and then it competes only with others in that same niche.

  • Each niche keeps its best resident (the “elite”).
  • Over time, the map fills with many different elites: fast games, slow games, chaotic games, skillful games, high-interaction games, and so on.

This is how you get a museum of interesting survivors, not one monoculture.

5) Reproduction: mutation (and why mutation is structured, not random noise)

Once we have elites across niches, we generate the next generation by mutating them.

Mutation operators aren’t “flip random bits.” They are rule-aware edits that make plausible changes to game structure, such as:

  • tweak a number (thresholds, magnitudes)
  • add/remove/duplicate actions (with safety guards so you can’t delete the last action)
  • add/remove variables (while rewriting dangling references)
  • change turn schedulers (round-robin ↔ simultaneous ↔ priority-based, etc.)
  • add triggers and conditional effects
  • modify termination rules (win/lose/draw conditions)

The key is: the operator library is rich enough to explore mechanics, not just parameters.

Mutation retries (because many mutations are duds)

Some mutations do nothing (“no-op”), or produce something that can’t be repaired. The runner will retry with a different operator a few times; if it still can’t produce a productive mutation, it falls back to keeping the parent for that offspring slot.

This keeps evolution moving without pretending every random change is meaningful.

6) Repair, rejection reasons, and staying honest about failure

After mutation, we may run repair (optional), then validation and safety gates. If a candidate fails, it’s not just dropped silently—the system classifies why it failed:

  • repair failure
  • validation failure
  • safety failure
  • evaluation error
  • evaluation returned null fitness/descriptors

And it persists these outcomes for observability and debugging.

This matters because “evolution” is only useful if you can tell whether the ecosystem is healthy—or if you’ve started breeding nonsense.

7) Adaptive evolution: learning which mutations are actually useful

Not all mutation operators are created equal. Some will be reliably productive; others will mostly create broken genomes.

So the runner tracks per-operator telemetry every generation: attempts, no-ops, repair failures, rejection counts, and how often an operator actually helped fill a new niche or improve an elite. evolution-runner

Those stats feed into adaptive operator weighting, so the system gradually shifts its mutation choices toward what’s working in the current region of the design space—without hardcoding that “operator X is always good.”

8) Optional superpower: motif mining (stealing good patterns from winners)

Sometimes an evolved game contains a little “mechanical phrase” that’s doing real work—like a neat resource exchange loop, or a repeating pattern of effects that creates tension.

When motif mining is enabled, we:

  1. select elites (top per niche + global best)
  2. re-simulate them to extract trajectories
  3. mine repeated effect sequences (“motifs”)
  4. convert those motifs back into DSL effects
  5. feed them into a special mutation operator that can inject those motifs into new games

That’s evolution discovering a useful mechanic, then turning it into reusable genetic material.

9) Human taste enters the loop (without turning it into manual curation)

Metrics are helpful, but “fun” is subjective. So we can add human feedback:

  • ratings (“how good is this?”)
  • pairwise comparisons (“A or B?”)

Rather than asking the human to judge random games, the system uses active learning to choose the most informative comparisons—especially cases where its preference model is uncertain, and it tries to include underrepresented niches so taste is learned across the map.

Under the hood, the preference model is an ensemble trained online (so it can update continuously) and its uncertainty controls how much feedback to request per generation (adaptive budget).

Fitness can then blend:

  • “objective-ish” signals (metrics/degeneracy)
  • “human preference” signals

So the system doesn’t just breed games that are non-broken—it breeds games that align with what you actually enjoy.

10) Why this can rediscover known games and invent new ones

If your DSL is expressive enough to describe the rules of an existing game, then in principle there exists a genome that encodes it. Evolution doesn’t need to “know” the game—it only needs:

  1. Search operators that can reach that region of the rulespace (structural mutations, not just numeric tweaks)
  2. Selection pressure that rewards the behaviors that make that game work (choice, balance, interaction, clean termination, etc.)
  3. Diversity preservation so the system keeps exploring many styles instead of collapsing early

Once those are in place, rediscovery becomes a side-effect of searching a huge space under the right constraints. And invention is what happens when evolution stumbles into combinations nobody tried on purpose—then keeps them because the ecosystem rewards them.

The simplest mental model

If you want the non-technical version in one breath:

We generate lots of small rulesets, machine-play them thousands of times, score them for “does this behave like a real game?”, sort the survivors into many different “design neighborhoods,” keep the best in each neighborhood, then make mutated children from those survivors—occasionally learning from human taste and reusing discovered mechanics—until the map fills with strong and varied games.

That’s the evolutionary process: not magic, not random, but a relentless loop of variation + playtesting + selection + diversity.

LudoForge #3

If you don’t know about LudoForge, you should probably read the previous posts. In summary: I’m developing an app to evolve tabletop game prototypes according to a “fun” factor made up of plenty of fun proxies like player agency, strategic depth, etc. The code is now mature enough to run X evolutionary generations on demand, produce shortlists of the best games, and finish. That’s great because it means the code works well, although there’s always room for improvement. But the shortlist of four winners is absolutely terrible in a way that has had me giggling for a while. I’ll let ChatGPT explain these “games.”


Game 1: “The Shared Counter Chicken”

Two players take turns. There’s a shared number on the table that starts at 0 and can be increased up to 15. The “win condition” is simple: whoever makes it hit 15 wins instantly.

The game also includes a couple of other buttons that change other numbers… but those numbers can never actually produce a win. They’re basically decorative dials. One of them always gets set to 12, but the victory threshold for it is 20, so it’s like having a “Launch Rocket” button that always fuels you to 60% and then stops forever.

So what do players really do? They increment the shared counter… and then start playing a tiny psychological game of chicken: “I could push the counter closer to 15… but then you might get the final move.” So the game hands them some useless actions that function as “stalling.” If both players are stubborn, they can just keep stalling until the match times out.

It’s not strategy so much as who blinks first.

Game 2: “The Game Where You Can’t Move”

This one is my favorite kind of failure because it’s so clean.

The game defines two counters. The only action in the entire game says: “Decrease both counters.”

But the action is only allowed if both counters are greater than zero.

And the game starts with both counters at zero.

So on turn one, a player looks at the rules and… there is literally nothing they’re allowed to do. No move exists. The game doesn’t even fail dramatically. It just sits there like a vending machine with the power unplugged.

In other words: it’s a tabletop game prototype that begins in a stalemate.

Game 3: “First Player Loses: The Speedrun”

This one actually runs, which makes it even funnier.

There are two counters. One counter is the only one that can possibly lead to a win — the other one only goes downward forever, so its “win condition” is a permanent lie.

The “real” counter starts at 0, and there’s an action that increases it by 2. The victory threshold is 4.

Here’s what happens:

  • Player 1 goes first. Their only sensible move is: 0 → 2.
  • Player 2 goes next and does the same move: 2 → 4.
  • Player 2 instantly wins.

So the entire “game” is basically:

“Player 1 sets up the win for Player 2.”

It’s like a sport where the first player is forced to place the ball on the penalty spot and then politely step aside.

Game 4: “The Unwinnable Ritual”

Three players this time. There’s one shared counter. Winning requires the counter to reach 4.

But the rules only let you do two things:

  • Set it to 2.
  • Decrease it by 2 (if it’s above zero).

Notice what’s missing: any way to make it bigger than 2.

So the win condition is a castle in the sky. The game is a ritual where players take turns setting the number to 2, or knocking it back down toward 0. It can never, ever reach 4. No amount of cleverness changes that.

It’s essentially a machine that cycles between “2” and “less than 2” until you get bored or the turn limit ends it.


ChatGPT finished its report with this note: “The first evolutionary run didn’t produce brilliant board games. It produced life, in the same way early evolution produced algae and sea foam. These were rule-sets that technically existed… but didn’t yet deserve to.”

These idiotic games already provided fun by existing, so as far as I care, this app has already been a success. The good thing is that I have code to handle degeneracy, fitness, etc., so I simply have to tighten that code so some of these nonsensical points would either kill a genome or penalize its fitness.

By the way, earlier tonight I was playing tennis in VR with people across Europe while I waited for Claude Code to work through the tickets of one of the app’s new features. And yet the world is terrible. We live in the lamest cyberpunk dystopia imaginable.

LudoForge #1

Two nights ago I was rolling around in bed trying to sleep when a notion came into my head, one that has returned from time to time: some of the most flow-like fun I’ve ever had was playing tabletop games. I’m a systems builder by nature, and I love to solve problems with a variety of tools. Tabletop games are complex problems to solve with specific series of tools. My favorite tabletop game is Arkham Horror LCG, although I’ve loved many more like Terraforming Mars, Ark Nova, Baseball Highlights: 2045, Core Worlds, Imperium, Labyrinth, Renegade… But none of them fully captured me. Like some potential game exists that has exactly every feature my brain yearns for, but that game doesn’t exist. I’ve cyclically thought that I should create that game, but I never know where to start. I don’t even know what exactly I want, other than knowing that what I’ve experienced isn’t enough.

These past few weeks I’ve been implementing extremely-complex analytics reports generators for my repository Living Narrative Engine. I was surprised to find out that it’s feasible to mathematically find gaps in extremely complex spaces (dozens of dimensions) as long as they’re mathematically defined. I guess Alicia was justified to be obsessed with math. So I started wondering: what makes a tabletop game good? Surely, the fun you have with it. Can “fun” be mathematically defined? Is it the agency you have? The strategic depth? The variety? If any of such metrics could be mathematically defined, then “fun” is a fitness score that combines them.

And what if you didn’t need to design the game yourself? If you can map a simulated game’s activity to metrics such as the agency per player, the strategic depth, the variety… Then you can evolve a population of game definitions in a way that, generation after generation, the “fun” score improves. If you can turn all game mechanics into primitives, the primitives will mutate in and prove their worth throughout the generations, composing coherent mechanics or even inventing new ones. Initially, a human may need to score game definition variants according to how “fun” the playthrough of those games were, but in the end that could be automated as well.

Because this is the era of Claude Code and Codex, I’ve already implemented the first version of the app. I’ve fed ChatGPT the architectural docs and told it to write a report. You can read it down below.


LudoForge: evolving tabletop games with a deterministic “taste loop”

I’m building LudoForge, a system that tries to answer a pretty blunt question:

What if we treated tabletop game design like search—simulate thousands of candidates, kill the broken ones fast, and let a human “taste model” steer evolution toward what’s actually fun?

Under the hood, it’s a seeded-population evolution loop: you start with a set of game definitions (genomes), run simulations, extract metrics, filter degeneracy, blend in learned human preferences, and then evolve the population using MAP-Elites and genetic operators. Then you repeat.

The big picture: the loop

LudoForge is structured as a pipeline with clean seams so each layer can be tested and swapped without turning the whole thing into spaghetti. The stages look like this: seed → evaluate → simulate → analytics → (optional) human feedback → fitness → MAP-Elites → (optional) mutate/crossover/repair → next generation. pipeline-overview

A key design choice: the core expects a seeded population. There’s no “magic generator” hidden inside that invents games from scratch. If you want a generator, you build it outside and feed it in. That keeps the engine honest and debuggable. Note by me after rereading this part of the report: this will change soon enough.

Games as genomes: a DSL that can be validated and repaired

Each candidate game is a genome: { id, definition }, where definition is a DSL game definition. Before any evaluation happens, the definition goes through schema + semantic validation—and optionally a repair pass if you enable repair operators. Invalid DSL gets rejected before it can contaminate simulation or preference learning.

Repair is deliberately conservative: it’s mostly “DSL safety” (e.g., clamp invalid variable initial values to bounds). Anything that’s “this game is technically valid but dumb/unplayable” is handled by simulation + degeneracy detection, not by sweeping edits that hide the real problem.

The simulation engine: deterministic playthroughs with real termination reasons

The simulation layer runs a single playthrough via runSimulation(config) (or wrapped via createSimulationEngine). It builds initial state from the definition, picks the active agent, lists legal actions, applies costs/effects/triggers, advances turns/phases, and records a trajectory of step snapshots and events.

It’s also built to fail safely:

  • No legal actions → terminates as a draw with terminationReason = "stalemate".
  • Max turns exceededterminationReason = "max-turns" with an outcome computed in that cutoff mode.
  • Loop detection (optional hashing + repetition threshold) → terminationReason = "loop-detected".

Most importantly: runs are reproducible. The RNG is a seeded 32-bit LCG, so identical seeds give identical behavior.

Metrics: cheap proxies first, expensive rollouts only when you ask

After simulation, LudoForge summarizes trajectories into analytics: step/turn counts, action frequencies, unique state counts, termination reasons, and sampled “key steps” that include legalActionCount.

From there it computes core metrics like:

  • Agency (fraction of steps with >1 legal action)
  • Strategic depth (average legal actions per step)
  • Variety (action entropy proxy)
  • Pacing tension (steps per turn)
  • Interaction rate (turn-taking proxy)

Extended metrics exist too, and some are intentionally opt-in because they’re expensive:

  • Meaningful choice spread via per-action rollouts at sampled decision points
  • Comeback potential via correlation between early advantage and final outcome

Here’s the honest stance: these metrics are not “fun”. They’re proxies. They become powerful when you combine them with learned human preference.

Degeneracy detection: kill the boring and the broken early

This is one of the parts I’m most stubborn about. Evolution will happily optimize garbage if you let it.

So LudoForge explicitly detects degeneracy patterns like:

  • loops / non-termination
  • stalemates
  • forced-move and no-choice games
  • dominant-action spam
  • trivial wins metrics-and-fitness

By default, those flags can reject candidates outright, and degeneracy flags also become part of the feature vector so the system can learn to avoid them even when they slip through.

Human feedback: turning taste into a model

Metrics get you a feature vector. Humans supply the missing ingredient: taste.

LudoForge supports two feedback modes:

  1. Ratings (1–5) with optional tags and rationale
  2. Pairwise comparisons (A/B/Tie) with optional tags and rationale

Pairwise comparisons are the main signal: they’re cleaner than ratings and train a preference model using a logistic/Bradley–Terry style update. Ratings still matter, but they’re weighted lower by default.

There’s also active learning: it selects comparison pairs where the model is most uncertain (predicted preference closest to 0.5), while reserving slots to ensure underrepresented MAP-Elites niches get surfaced. That keeps your feedback from collapsing into “I only ever see one genre of game.”

Fitness: blending objective proxies, diversity pressure, and learned preference

Fitness isn’t a single magic number pulled from the void. It’s a blend:

  • Base composite score from metrics (weighted sum/objectives)
  • Diversity contribution (pressure toward exploring niches)
  • Preference contribution from the learned preference model (centered/capped, with bootstrap limits early on)

Feature vectors are keyed by metric id (not positional arrays), which matters a lot: adding a new metric doesn’t silently scramble your model weights. Renaming metrics, though, becomes a migration event (and that’s correct—you should feel that pain explicitly).

Evolution: MAP-Elites + mutation/crossover that respect DSL validity

Instead of selecting “top N” and converging into a monoculture, LudoForge uses MAP-Elites: it bins candidates into descriptor niches and keeps the best elite per niche.

Descriptor binning is explicit and deterministic (normalize → floor into bin count; clamp to range), and niche ids serialize coordinates like descriptorId:bin|....

Then you can evolve elites with genetic operators:

  • Mutations like numeric tweaks, boolean toggles, enum cycling, duplicating/removing actions, nudging effect magnitudes, adding/removing phases, rewriting token/zone references safely, etc.
  • Crossover via subtree swaps of state.variables or actions, followed by DSL re-validation.

Optional “shortlisting” exists too: it picks a diversified subset of elites for human review using a max-min distance heuristic over descriptor coordinates.

What’s already proven (and what isn’t yet)

This isn’t vaporware; the end-to-end tests already prove key behaviors like:

  • the ordered phases of the pipeline
  • invalid DSL rejection before evaluation
  • safety cutoffs (max-turns) and deterministic seeded outputs
  • human prompt loops and legality enforcement
  • deterministic state transitions
  • MAP-Elites producing stable ids
  • active learning selection behavior
  • mutation + repair at scale, including crossover

And there are explicitly documented gaps—like extended metrics aggregation and worker-thread batch simulations.

The point of LudoForge

I’m not trying to build a “game designer replacement.” I’m building a design pressure cooker:

  • Simulate hard
  • Reject degeneracy ruthlessly
  • Measure what you can
  • Ask humans the right questions
  • Let evolution explore breadth, not just a single hill

If you’re into procedural design, evolutionary search, or just enjoy the idea of treating “fun” as something you can iteratively approximate with a human-in-the-loop model, that’s what this project is for.

Living Narrative Engine #19

I have quite the treat for you fuckers. I’ve recorded myself playing through my test scenario involving Alicia Western. More than an hour of me speaking in my accented English even though I rarely speak in real life, and showing off a fun, frustrating playthrough that made me hungry.

This is, of course, related to my beloved Living Narrative Engine. Repo here.

Living Narrative Engine #18

I’m building a browser-based app to play immersive sims, RPGs and the likes. In practice, I use it to set up short story scenarios or elaborate gooning sessions. I dared myself to build the most comprehensive psychological system imaginable, so that Sibylle Brunne, a 34-year-old orphan living in her parents rustic home somewhere in the Swiss mountains, while controlled by a large language model, would realistically bring her blue-eyed, blonde-hair-braided, full-breasted self to seduce my teenage avatar who is backpacking through the country, eventually convincing me to stay in her house so she can asphyxiate me with her mommy milkers.

Here’s a visual glimpse of the current complexity:

Alicia has become my test subject, as if she didn’t have enough with freezing to death. The system works like this: at the base you have mood axes (like pleasant <-> unpleasant), which change throughout a scene. Actors also have permanent biological or personality-based traits like aversion to harm. Together, mood axes and affect traits serve as weights and gates to specific emotion prototypes like disappointment, suspicion, grief. Delta changes to those polar mood axes naturally intensify or lessen the emotions. I also have sexual state prototypes, which work the same as the emotional states.

These emotional and sexual states serve as the prerequisites for certain expressions to trigger during play. An expression is a definition that tells you “when disappointment is very high and suspicion is high, but despair is relatively low, trigger this narrative beat.” Then, the program would output some text like “{actor} seems suspicious but at the same time as if they had been let down.” The descriptions are far better than that, though. The actors themselves receive in their internal log a first-person version of the narrative beat, which serves as an internal emotional reaction they need to process.

It all works amazingly well. However, to determine if I was truly missing mood axes, affect traits or prototypes, I had to create extremely complex analytics tools. I’ve learned far too much about statistical analysis recently, and I don’t really care about it other than for telling a system, “hey, here are my prototype sets. Please figure out if we have genuine gaps to cover.” Turns out that to answer such a request, some complex calculations need to map 20-dimensional spaces and find out diagonal vectors that run through them.

Anyway, I guess at some point I’ll run my good ol’ test scenario involving Alicia, with her now showing far more emotion than she used to before I implemented this system. That’s a win in my book.

manga2cbz: read manga in VR

I’ve been reading manga for a long time, usually relying on my old-ass tablet and scanlations (or whatever they’re called). I came across the Livro app for the Meta Quest 3, and I intended to read manga on it. However, I found out you can’t move the manga folders like you would on a tablet.

So, this morning I had Claude Code create a Go app that can be baked into a Linux/Windows exec to compress manga chapters into corresponding cbz files. Those files can just be copied into the Quest 3 through a link cable, and opened on Livro. Because Livro has trouble rendering WebP files, my app also converts WebP to PNG. As you can see in the video, it works.

Here’s the repo for the app:

https://github.com/joeloverbeck/manga2cbz

Living Narrative Engine #17

I’ve recently implemented an emotions and expressions system in my app, which is a browser-based platform to play immersive sims, RPGs, adventure games, and the likes. If you didn’t know about the emotions and expressions system, you should check out the linked previous post for reference.

I was setting up a private scenario to further test the processing of emotions for characters during changing situations. This was the initial state of one Marla Kern:

Those current emotions look perfectly fine for the average person. There’s just one problem: Marla Kern is a sociopath. So that “compassion: moderate” would have wrecked everything, and triggered expressions (which are narrative beats) that would have her acting with compassion.

This is clearly a structural issue, and I needed to solve it in the most robust, psychologically realistic way possible, that at the same time strengthened the current system. I engaged in some deep research with my pal ChatGPT, and we came up with (well, mostly he did):

We lacked a trait dimension that captured stable empathic capacity. The current 7 mood axes are all fast-moving state/appraisal variables that swing with events. Callousness vs empathic concern is a stable personality trait that should modulate specific emotions. That meant creating a new component, named affect_traits, that the actors would need to have (defaults would be applied otherwise), and would include the following properties:

  • Affective empathy: capacity to feel what others feel. Allows emotional resonance with others’ joy, pain, distress. (0=absent, 50=average, 100=hyper-empathic)
  • Cognitive empathy: ability to understand others’ perspectives intellectually. Can be high even when affective empathy is low. (0=none, 50=average, 100=exceptional)
  • Harm aversion: aversion to causing harm to others. Modulates guilt and inhibits cruelty. (0=enjoys harm, 50=normal aversion, 100=extreme aversion)

In addition, this issue revealed a basic problem with our represented mood axes, which are fast-moving moods: we lacked one for affiliation, whose definition is now “Social warmth and connectedness. Captures momentary interpersonal orientation. (-100=cold/detached/hostile, 0=neutral, +100=warm/connected/affiliative)”. We already had “engagement” as a mood axis, but that doesn’t necessarily encompass affiliation, so we had a genuine gap in our representation of realistic mood axes.

Emotions are cooked from prototypes. Given these changes, we now needed to update affected prototypes:

"compassion": {
  "weights": {
    "valence": 0.15,
    "engagement": 0.70,
    "threat": -0.35,
    "agency_control": 0.10,
    "affiliation": 0.40,
    "affective_empathy": 0.80
  },
  "gates": [
    "engagement >= 0.30",
    "valence >= -0.20",
    "valence <= 0.35",
    "threat <= 0.50",
    "affective_empathy >= 0.25"
  ]
}

"empathic_distress": {
  "weights": {
    "valence": -0.75,
    "arousal": 0.60,
    "engagement": 0.75,
    "agency_control": -0.60,
    "self_evaluation": -0.20,
    "future_expectancy": -0.20,
    "threat": 0.15,
    "affective_empathy": 0.90
  },
  "gates": [
    "engagement >= 0.35",
    "valence <= -0.20",
    "arousal >= 0.10",
    "agency_control <= 0.10",
    "affective_empathy >= 0.30"
  ]
}

"guilt": {
  "weights": {
    "self_evaluation": -0.6,
    "valence": -0.4,
    "agency_control": 0.2,
    "engagement": 0.2,
    "affective_empathy": 0.45,
    "harm_aversion": 0.55
  },
  "gates": [
    "self_evaluation <= -0.10",
    "valence <= -0.10",
    "affective_empathy >= 0.15"
  ]
}

That fixes everything emotions-wise. A character with low affective empathy won’t feel much in terms of compassion despite the engagement, will feel even less empathic distress, and won’t suffer as much guilt.

This will cause me to review the prerequisites of the currently 76 implemented expressions, which are as complex as the following summary for a “flat reminiscence” narrative beat:

“Flat reminiscence triggers when the character is low-energy and mildly disengaged, with a notably bleak sense of the future, and a “flat negative” tone like apathy/numbness/disappointment—but without the emotional bite of lonely yearning. It also refuses to trigger if stronger neighboring states would better explain the moment (nostalgia pulling warmly, grief hitting hard, despair bottoming out, panic/terror/alarm spiking, or anger/rage activating). Finally, it only fires when there’s a noticeable recent drop in engagement or future expectancy (or a clean crossing into disengagement), which prevents the beat from repeating every turn once the mood is already flat.”

That is all modeled mathematically, not by a large language model. In addition, I’ve created an extremely-robust analysis system using static analysis, Monte Carlo simulation, and witness state generation to determine how feasible any given set of prerequisites is. I’ll make a video about that in the future.

You Will Spend the Rest of Your Life (Short Story – Redux)

I won’t repeat the necessary preface here. Go check out the original short story. This is a redux, a reshoot if you will, because Alicia needed a kick in the ass. Enjoy.


Half past nine at night on December 22. In two days I’ll walk into those woods behind the sanatorium and freeze to death. I’ll never see Bobby again. The silence is enormous. I can hear snow falling outside.

The letter. I need to finish it. Bobby won’t read it—he’s already gone—but it’s still unfinished. Two days left. If I’m leaving something behind, it should be complete. The drawer is the only private space they’ve left me in this narrow institutional room. Time to open it and face the half-written goodbye.

My hand is still on the handle when a deep, male voice speaks from the center of the room, behind me.

The door is locked. I turned it myself. I didn’t hear it open. I didn’t hear footsteps. I didn’t hear anything.

“Hello, Alicia Western,” the voice says. “Glad to finally meet you.”

The voice is male, positioned exactly where a body would be. Turning my back buys me a second to think without performing eye contact. If he’s real, he’ll react to the dismissal. If he’s a visitor, the geometry won’t care.

“Either you’re another visitor—in which case, congratulations, you’ve achieved better fidelity than the Kid ever managed—or I’m more gone than I thought.”

The voice speaks again from behind me, still calm.

“I can hardly imagine a more violent act—other than, you know, literally violent—than materializing in the assigned patient room of a young woman at the end of her rope. I would have preferred to infiltrate the hospital staff to orchestrate this meeting, which I assure you is necessary, but in that case, the staff would end up having a problem with me, so appearing at your room at half past nine it is. Sorry about that, girl.”

The phrasing was careful: necessary, infiltrate the hospital staff, the staff would end up having a problem with me. He’s framing himself as someone operating outside institutional channels but not hostile to me personally. That’s either true, or it’s exactly what someone sent by the institution would say to lower my guard. Either way, I need to see him. The voice has location, timber, breath—auditory fidelity the Kid never had. If he’s real, his face will tell me whether this is threat or proposition. If he’s a visitor, turning around won’t make him more solid, but at least I’ll know what I’m dealing with. And if I’m hallucinating a fully embodied man in my locked room two days before I walk into the woods, then the line between visitor and reality just collapsed entirely, and that changes the plan.

“You said ‘necessary,'” I tell him. “That word does a lot of work in a single sentence. So before I decide whether to scream, cooperate, or ignore you until you evaporate—what exactly is necessary, and who decided that?”

I turn around.

The man is very tall and hulking, maybe thirty or thirty-two, but his eyes look old. Ancient. White skin, brown wavy hair cut short. Bearded. Hairy forearms below the sleeves of a gray wool T-shirt. Indigo jeans, brown leather belt, sand-beige chukka boots. I can smell his slight musk and the faint sweat of having worn clothes all day. His expression is calm and measured, as if he has plenty of experience doing this. Whatever this is.

He nods.

“I did use the word ‘necessary,’ and I don’t use words lightly. Except when I’m blabbing. In any case, we have to do this carefully, Alicia, as you’re in an extremely vulnerable emotional state. First of all, let’s focus on the fact that I’m real and I just materialized in your locked room at a sanatorium. What does that communicate to you?”

The test is simple. If he’s a hallucination with unprecedented fidelity, proximity won’t change anything. If he’s an actual man who broke into my locked room at night, getting close will tell me whether he smells like sweat and worn clothes or nothing at all. The visitors never had scent this consistent. The Kid smelled like burnt sugar once, and it changed every time I tried to verify it. This man smells like musk and day-old cotton—specific, stable, repeating. That’s either reality asserting itself or my mind learning to lie better.

Either way, I need to know if he occupies space the way matter does.

“You’re asking what it communicates? Fine. It means you broke into my locked room—which the institution swore was secure—or my perception just failed in a way the visitors haven’t managed. You smell like you’ve been wearing that shirt since morning. So either you’re real and you broke physics, or I’m hallucinating olfactory information now, which would be a new and unpleasant development. Let’s find out which.”

I close the distance.

The smell gets stronger—musk, sweat, cotton worn all day. He’s so tall he has to look down noticeably. His body radiates heat. I can see nose hairs, the texture of his beard, his pupils dilating as I move into his space. He remains still, as if trying to be as unthreatening as possible, even though his muscular chest lifts his gray shirt with every breath.

He holds his ground. Confidence or performance—I’ll know soon enough.

“I have nothing to do with the sanatorium other than the fact that you ended up here,” he says. “I’m not a psychologist, thankfully. And your perception of continuity hasn’t failed. I’ve also broken physics by materializing here. With those facts established, Alicia, what follows?” He smiles faintly, as if against himself. “Kind of fun, isn’t it? Some entertainment at the end of the world.”

That phrasing is too specific to be accidental. He knows the timeline. He knows I’ve locked onto December 24th. That means either he’s been watching, or he has access to information I didn’t volunteer.

And he’s letting me test him. Letting me close the distance, inviting interrogation instead of delivering riddles and leaving. That’s either confidence or something I don’t have a category for yet.

I reach up slowly and run my thumb across his lower lip—firm pressure, deliberate—testing whether the tissue compresses like living flesh or whether my hand passes through geometry that only pretends to be solid.

He pulls his head back slightly, surprised, but his expression is warm. His mouth widens in a smile, and warm saliva touches the tip of my finger.

“Aren’t you bold,” he says. “I’m something—someone actually—that the universe permitted somehow but doesn’t advertise. You’re not hallucinating me, Alicia, so let’s put that behind us and accelerate this verbal foreplay instead, if you don’t mind. You asked necessary for whom. For your depressed ass, Alicia. Given that you’re taking a perilous walk out of the back of the sanatorium in a couple of days. Christmas Eve. Ring any bells, darling?”

He tasted real. Warm saliva, living tissue, the way a mouth should feel under pressure. That’s not something the Kid ever managed. The visitors arrive with geometry but not biology. This man has both. Which means either my mind just learned to hallucinate proprioception and taste simultaneously, or he’s exactly what he claims: real, physical, and operating outside the rules I thought governed locked doors and institutional containment.

But if he’s real and he’s here, then someone or something sent him, or he came for a reason that benefits him, not me. Nobody materializes in a patient’s room two nights before her scheduled exit unless there’s something they need. He said necessary for my depressed ass—framing it as rescue, as if I’m a problem to be solved rather than a person who’s already solved the only problem that matters.

I step back deliberately, putting two feet of institutional vinyl between us.

“All right. You’re real. You broke physics to get here, and you know the December 24 timeline. Let’s skip the part where you pretend this is about saving me out of kindness, and get to what you actually want. Who sent you? What do you need from me? And why does a man who can materialize through locked doors care whether I walk into the woods or not?”

The stranger looks at me calmly, with something almost affectionate in the way his eyes hold mine.

“Don’t look at me like that, Alicia,” he says. “I didn’t come here two days before your suicide to ravage your virginity. I wouldn’t put past a despairing person to hold such fantasies, but I’m not about that life. And you’re too psychologically vulnerable for any boinking at the moment, no matter how tender.”

He produces a yellowed letter—as if he’d been holding it the whole time, though I didn’t see it in his hands before—and extends it toward me.

“Someone did send me,” he continues. “And I do need something from you. But first, let’s prove the current circumstances with an impossible artifact. You’re writing a goodbye letter, aren’t you? This here is the finished version, aged by decades. How about that?”

If this letter contains the exact words I was planning to write but haven’t committed to paper yet, then either he accessed a timeline where I finished it, or he constructed a forgery sophisticated enough to mimic my syntax and the things I’d tell Bobby that I haven’t told anyone here. Either way, reading it will tell me whether he’s bluffing or whether the rules governing past and future just collapsed in my hands.

I take the yellowed paper in both hands. I keep my eyes on the stranger for a moment, then drop them to the paper and read.

He waits, hands on his hips, watching me scan the pages. When I finish and look up, he smiles slightly.

“Well, what do you think? You recognize yourself in it, don’t you?”

It’s exact. The phrasing, the structure, the specific things I’ve been holding in fragments for two days but haven’t written yet. The bar in Nashville, the Thursday jazz nights—I wrote that in my head yesterday. The line about dying a virgin, the cathedral metaphor—last night while I couldn’t sleep. The postscript about perfect recall, about carrying every word Bobby ever said into the dark—I decided on that this morning. But it’s here yellowed, aged decades.

Nobody hands you proof of the impossible unless they need you to believe something worse is coming.

I lower the letter slowly, keeping my eyes on the text for three more seconds before I look up at him.

“I recognize my own syntax—passages I decided on this morning but haven’t written yet. So either you’ve read my mind, or this is from a timeline where I finished it. Either way, you’ve just broken causality in my hands. So let’s stop pretending this is about saving my ‘depressed ass’ out of kindness. You didn’t materialize in my locked room two nights before I walk into the woods just to show me a party trick. You said someone sent you. You said you need something from me. So let’s get to it: What do you want? What’s the price for whatever impossible thing you’re about to offer me? And why does it require proving that the future already exists before I’ve written it?”

He smiles warmly, his eyes fixed on mine.

“Not yet, Alicia. You need to state what you believe is happening here. How do you think that I managed to materialize in your room and provide you with a letter you’ve yet to finish? A letter that has aged decades.”

“You want me to name it,” I say. “To state the premise plainly so you can watch me arrive at the conclusion you’re already standing inside. Fine. If you broke causality to get here, and the letter is real—aged decades, containing passages I haven’t written yet—then either time is non-linear and you have access to a future where I finished it, or the future is deterministic and this letter exists because I was always going to write it, which means my December 24th walk into the woods is already encoded in the structure of things. Either way, you’re showing me proof that the timeline is fixed. That I’ve already made the choice. Or—third option—you’re from a place where past and future are accessible simultaneously, which would make you something that can move through time the way I move through a room. So: you’re either a time traveler, you’re operating from outside linear causality entirely, or you’re showing me that free will is a myth and I was always going to die in two days. Which is it?”

He points at me theatrically.

“Ring-a-ding, princess. Time traveler it is. Obvious conclusion, wasn’t it? But you’re mistaken about something: the future ain’t fixed. Not in the sense you mean. I know you froze your beautiful eyes in the Wisconsin woods, because it happened a long time ago. I’m here because it don’t need to happen anymore. Every time I return, a new timeline is created. I can access the ones I’ve created. All hundreds of thousands of them. I intend to provide a new timeline just for you. A new reality. A whole universe. In which you are the sole person who truly matters.”

Either the most seductive lie I’ve ever heard or the most dangerous truth. Because if he can create timelines, if he has that ontological authority, then he’s not here to save me. He’s here because there’s something about me—my mind, my math, my particular configuration of damage—that he needs for whatever he’s building across those thousands of branches.

Nobody offers you a custom universe unless they need you functional in a way you weren’t going to be if you walked into the woods.

I step closer again, close enough to smell him, close enough to see whether his breathing changes when I name the price he hasn’t stated yet.

“Time traveler. You’re claiming you’ve moved backward from a timeline where I already died—December 24th, Wisconsin woods, hypothermia—and now you’re here in a new branch. That’s not rescue rhetoric. That’s recruitment. So let’s skip the part where you pretend this is altruism and get to the actual terms: What do you need from me that required breaking causality to get here? What’s the price for this ‘new timeline’ you’re selling? And what makes you think I want a universe where I’m the center when I’ve spent twenty-two years trying to escape being the problem everyone else has to solve?”

The warmth he emits reaches me again, his presence solid and tall. He looks down at me with a solemn expression, his voice measured.

“Of course I need something from you. Nobody moves decades of time for fun, does he? What I need… is some of your armpit hair. There’s a certain texture and smell to the armpit hair of blonde synaesthetic math geniuses that turns me on like nothing in history ever has. Will you grant me the honor?”

He stares at me for a moment, then bursts into laughter, throwing his head back.

“Look at your face. Nevermind what I want, for now at least.”

He produces a photograph and walks past me to the wooden desk. Instead of handing it to me, he places it face-down on the surface.

“The person who sent me is right here, on this photo. Perhaps you’ll begin to comprehend, love.”

If it’s me—an older version from a different timeline, someone who survived the woods and decided to intervene retroactively—then this becomes a closed loop: I send him back to save myself, which means future-me has knowledge or authority I don’t have yet. But if it’s Bobby, awake and functional in some other timeline, then every premise I’ve been using to justify the woods collapses. And if it’s someone else entirely, then I’m being conscripted into an external agenda, and I need to know whose authority decided I was worth saving and what they need from me that requires me alive.

I cross to the desk and take the photograph.

“Nobody sends a time traveler backward through causality to hand-deliver photos and letters unless the ask is something I won’t want to agree to. So: who sent you?”

The tall man crosses his arms, looking amused.

“Just take a gander at the photograph, darling. Worth more than a few words from a time traveler. Then we’ll speak.”

I examine the photograph carefully. Bobby. Mid-thirties. Salvage diving gear visible in the background. The date ’81 written in faded ink in the corner. Nine years from now. His face is older, weathered, haunted—like he’s doing his best to look normal while despair bubbles underneath.

As my eyes fixate on the picture, the older man lets out a snort.

“There you have it. Ain’t it something? Your dear old brother, who spent his inheritance on a race car and went to Italy to race professionally and crashed and ended up in a coma. Your brother whom those goddamn Italians believed his brain had gone dark. He woke up, Alicia. Will wake up. April 27, 1973. When those Italians let him call home, he heard from your granny, Granellen, that you hadn’t waited around for your dear old brother to open his eyes. His sister. The person he had promised to take care of for the rest of his life. You had walked into the woods behind a Wisconsin sanatorium and froze your uniqueness goodbye. What a waste.”

Despite the smile on his lips, a tear runs down the side of his face.

“So there you have it, Alicia,” he adds. “Do you comprehend now, you silly, suicidal popsy?”

I was going to walk into the woods because Bobby was gone—because the one tether I had to continued existence had been severed, because the equation no longer balanced without him conscious in the world. But if he wakes up in April, if he calls home and Granellen tells him I didn’t wait, then I’m not dying because he’s gone. I’m dying because I didn’t trust the future enough to let it arrive. I’m killing myself over a medical verdict that turns out to be wrong.

“Bobby. So he woke up. Four months from now. The Italians were wrong about the braindeath, or the substrate repaired itself, or medical certainty is just another story people tell when they don’t want to admit ignorance. Either way, you just handed me proof that the entire premise I’ve been using to justify December 24th is false. He’s not gone. He’s going to wake up. And when he calls home, Granellen is going to tell him I didn’t wait. That I walked into the woods two days before Christmas because I decided the equation didn’t balance without him conscious in the world. And you’re standing here, crying, calling me a ‘silly, suicidal popsy,’ because you know that if I die in two days, I’m killing myself over a future that never happens. So let’s cut to it: What do you actually want from me? What’s the price for this new timeline you’re selling? And why does it matter to you whether I walk into the woods or not, unless there’s something you need from me that requires me alive?”

The man wipes the lone tear with the back of his thumb.

“What’s this obsession of yours with paying a price for being informed about the terrible mistake you were about to commit by heading into those woods wearing your current white dress along with a red sash? Is that what you would do in my shoes? Let’s say you can travel back in time and a sixty-year-old American expat learns that you can travel in time, then asks you—begs you, really—to save his sister. Would you present yourself in front of her vulnerable self and demand a blood price? Who do you take me for? Maybe I just saved you because beauty disappearing from the world is always a tragedy.”

He reaches down and pats my head affectionately, as if I’m a rescued animal he’s coaxing back from the edge.

He just confirmed it: a sixty-year-old Bobby sent him. Bobby survives into his sixties, still carrying the fact that I didn’t wait.

I let the silence hold for three seconds after he pats my head, not pulling away, just standing still—letting him think the gesture landed. Then I speak.

“And it mattered enough to Bobby—decades later—that he sought out a time traveler and sent you backward to stop me. So let’s stop pretending this is about you deciding beauty shouldn’t disappear from the world. This is about Bobby, sixty years old, still carrying the fact that I died. So what does he want from me? What did he ask you to do that required breaking causality to recruit me two nights before I freeze to death in the woods?”

The older man narrows his eyes, a grimace of disbelief shifting his expression.

“Alicia, wake the fuck up. Bobby stood there on a beach in Formentera in 2006, his grief-lined face staring back at me, his voice breaking as he asked me to save you, for the only thing he ever wanted for you: to live and be happy. Aren’t you supposed to be a genius, yet you can’t understand that?”

But if I don’t walk into the woods December 24th—what happens in the meantime? Do I just sit here at Stella Maris for four months waiting for a phone call from Italy? Or is there a plan?

I step back deliberately, putting space between us—two feet of institutional vinyl and fluorescent light.

“You’re standing here, crying, calling me names, because you know what happens if I walk into those woods. I kill myself over a medical verdict that turns out to be false. I die for a future that never happens. Bobby spends the rest of his life—into his sixties, long enough to become an expat, long enough to find a time traveler and send him back here—carrying that.”

“Can’t a man shed a tear without a woman having to point it out? God forbid I feel bad about you dying.”

“So let’s be clear: the price isn’t what you want from me. It’s what Bobby wants. He wants me alive. He wants me to wait. He wants me to trust that the future might contain something other than the woods and the cold and the quiet resolution I’ve been rehearsing for weeks. And the cruelest part is that you’ve just handed me proof that if I walk into those woods, I’m not dying because Bobby’s gone. I’m dying because I’m impatient. Because I couldn’t wait four more months to find out the substrate repaired itself.”

“Really, would it have been so hard to just wait for him to wake up, so you could find out if he’s truly braindead or not?”

“Here’s my question, time traveler: If I agree to wait—if I don’t walk into the woods December 24th—what happens next? Do I just sit here in this institutional box for four months waiting for Bobby to open his eyes? Do I go back to Italy and stand vigil at his bedside? Do you take me somewhere else, some ‘new timeline’ where I’m ‘the sole person who truly matters,’ whatever the fuck that means? Because if you’ve broken causality to get here, if Bobby sent you backward to stop me, then there’s a plan. There’s a next step. And I need to know what it is before I agree to anything. So: what does Bobby want me to do after I don’t die in the woods?”

The older man sighs. He walks past me and settles on the patient bed, the metal frame depressing significantly under his weight. He looks to the side as if reorganizing his thoughts, then focuses on me again.

“Let me clarify something: I can bring any object across time, but not people. No living thing, actually. Not even bacteria. They stay behind. Nobody has figured out why. I suspect it’s some quantum phenomena related to the brain, nervous system, or whatever. To establish the baseline. Is that clear? That said, I have a plan for the next few months until your dear old formerly-braindead Bobby wakes up. Want to hear it, princess?”

I walk over to the bed and sit down next to him. Close enough to signal I’m engaging, not close enough to collapse the distance entirely.

“All right. You’ve established the baseline: you can transport objects across time but not living things. ‘Quantum phenomena related to the brain’ or whatever your framework is. Which means I can’t just hop to April 27th and skip the waiting. So let’s hear this plan you’ve constructed for the next four months. What exactly does Bobby—sixty-year-old Bobby, grief-lined and standing on a beach in Formentera—want you to do with me between now and when he wakes up? Because if this is just ‘don’t walk into the woods and then sit in this institutional box for sixteen weeks waiting for a phone call,’ I’m going to need a better reason to cooperate than ‘your brother wants you alive.’ Wanting me alive and giving me a reason to want it myself are two different problems. So: what’s the plan?”

The older man’s presence is like a human black hole, gravity making me lean toward his side of the bed that his weight is depressing. He looks at me without turning his head much.

“Your brother didn’t ask me to do anything specific with you for these four months. He was happy enough with you surviving and eventually rejoining the past version of him. The greedy fucker just didn’t want to wake up from his coma to find out you were dead. Can you believe it? Anyway, I do have a plan for you, my pale, suicidal princess. As a time traveler, I have damn near infinite access to dollar. I’m talking gems, diamonds, gold. Stolen from different spots of time. Travel back to a point on a timeline, return to the future bringing spoils, then back to the same spot in time, and repeat. Can you imagine? So it don’t matter that you gave away even your panties. I’m buying you a mansion somewhere you prefer. I’ve already scouted some. That will be the base of operations. With me so far? So first order of things, yes, we get you out of this fucking madhouse as soon as possible. Tomorrow morning preferably, after you say goodbye. You’re too pretty for this place anyway.”

I rest a hand on his shoulder, grounding the conversation in the body, making him feel the weight of the question I’m asking.

“So you extract me tomorrow morning, buy me a mansion. And then what? You just install me in a house for four months and hope I don’t walk into different woods in a different state? Because if Bobby sent you backward through causality to save me, and all you’re offering is real estate and waiting, then that’s just changing the location of my despair from Stella Maris to wherever you install me. I need to know what I’m supposed to do with those four months. What does sixty-year-old Bobby think happens between now and April 27th that makes me capable of waiting when two days ago I was organizing the details of my own death? What’s the actual plan, time traveler? Not the logistics. The structure. What am I doing with the time you’re asking me to survive?”

My hand rests on solid muscle under his gray shirt. He looks at me with a teasing expression.

“We’ve moved on to sustained physical contact, is that it? Not complaining. You know, I would answer, ‘Damn it, woman, do you want me to also tell you what to eat for breakfast?’ But perhaps you’re right. Your genius mind had decided the best course of action was to freeze to death in the Wisconsin woods of all places, so your decision-making is suspect. Listen, Alicia: I’m from the fucking future. I can bring you decades of music, books, movies from my original timeline and many others. Oh, and math papers. I don’t know shit about math, but decades of math discoveries may be interesting to you. I’m not telling you to simply sit around in the mansion of your choice. I have a plan for the very same day we buy that base of operations.”

“Decades of music, books, movies, math papers from multiple timelines—as if access to the future’s intellectual production is supposed to make waiting four months feel like anything other than purgatory dressed in better accommodations. But you said you have a plan for the day itself. Not the waiting. The day. So let’s hear it. What does Bobby—sixty-year-old Bobby, standing on a beach in 2006, grief-lined and desperate enough to recruit a time traveler to stop his sister from freezing to death in the Wisconsin woods—what does he want you to do with me the day you extract me from Stella Maris? Because if the answer is just ‘install you in a mansion and hope the amenities distract you from the fact that you’ve been organizing your own death for weeks,’ I’m going to need something structurally different from that. So: what’s the plan for the day we leave this place?”

The older man lifts a hand to hold mine—the one resting on his shoulder. His hand is much bigger than mine and wraps it in solid warmth.

“My goodness, aren’t you difficult,” he says. “Okay, imagine it: tomorrow morning I offer you breakfast. I know this small bakery from 1912 France that went belly up in the First World War, that makes the most delicious pastries. That’s just breakfast, so don’t start with ‘How am I supposed to survive on pastries?’ Tough fucking crowd here. Anyway, we put on a show for the clueless staff, and get you out of Stella Maris in a car. We stop at the first town and buy you some clothes. Can’t be moseying around in the Wisconsin winter with your youthful nips showing through your white dress. Then, either I rent a hotel room or we head up to the sky in a future vehicle of mine, and I present you the choices of mansion to buy. But you need to tell me the general area where you want to live. Just contribute a little, and I’ll scout around. I guess my main point is: I didn’t come here to tell you ‘Your brother wakes up in the future. Anyway, bye.’ No. I’m going to stay with you these four months, Alicia, to make sure you ain’t walking into no woods. You get me, dollface? I’m not letting you kill yourself.”

I shift my weight deliberately, moving from sitting beside him to sitting on his lap—face-to-face, legs straddling his hips, bringing our eyes level.

The older man’s eyebrows shoot up. When my legs settle on his thick, solid thighs, my blue eyes staring straight at him, the warmth of his exhalation reaching my skin, his face shifts into a mix of amusement and disbelief.

“The fuck…?” he says. “Aren’t you a bold one. Must be the decade.”

“I won’t walk into the woods. I’ll wait until Bobby wakes up. And in the meantime, you’re going to show me what I’m supposed to do with four months of survival when my mind has been organizing the details of my own death for weeks. But first—you’re going to stop calling me ‘princess’ and ‘dollface’ like I’m a rescue project you picked up at a yard sale. My name is Alicia. Use it.”

He lifts his free hand—the other still holding mine—and ruffles my hair playfully, which causes a lock to settle hanging in front of my right eye.

“Let me clarify something,” he says. “I’m going to keep calling you whatever nickname comes to mind, because those are verbal tics, sweetface. What are you going to do about it, huh?” He smirks. “I may not look it, but I’m much older than you. You’re barely a baby. You’re also wrong about something: when Bobby wakes up, he ain’t gonna be in Italy, blondie. We’re going to extract him from Italy and place him in a special bed from the future to ensure he recovers safely in a room at your mansion.”

Bobby’s unconscious body in the same house. Proximity to the thing I love most while it remains inaccessible. That’s either the cruelest structure or the most honest one.

I run my thumb slowly across Jon’s lower lip again—the same testing pressure I used earlier, but this time with clear possessive intent.

“You’re going to keep deflecting with nicknames, aren’t you? ‘Princess,’ ‘dollface,’ ‘sweetface,’ ‘blondie’—verbal tics, you said. Fine. I’ll allow it. But here’s what you need to understand: if you’re staying with me for four months, if you’re the tether Bobby sent backward through causality to keep me from walking into different woods in a different state, then I need to know you can hold frame when I push boundaries. Because I will push. I don’t do passive rescue. I don’t do gratitude theater. And I don’t do four months of supervision dressed as kindness without testing whether the supervisor collapses when reality misbehaves. So: you said you’re extracting Bobby from Italy and installing him in a ‘special bed from the future.’ That means you’re bringing him here—to whatever mansion you’re buying tomorrow—before he wakes up April 27th. That changes the structure entirely. So tell me plainly: what does sixty-year-old Bobby think happens when I’m living in the same house as his comatose younger self for four months? What’s the actual plan for that waiting period? Because if it’s just ‘sit tight and perform hope until he opens his eyes,’ I’m going to need something structurally different from that.”

Jon narrows his eyes, staring at me with a teasing expression.

“Push all you want. You’re a woman, I couldn’t expect anything less. Besides, lonely as you’ve been, voluntarily committed to a sanatorium, I guess you’ve been aching for some solid flesh under your thighs. Happy to provide, skinny. Oh, didn’t even tell you my name. Where are my manners and all that. Name’s Jon. Jon Ureña. From Spain, originally. But that was a long-ass time ago when someone pushed me out of their nether regions. Anyway, where were we? Ah, yes. No, I ain’t doing four months of supervision dressed as kindness. I’m telling you now: you ain’t walking into no woods or no bridge or no tall-enough window without me grabbing you back to safety. I’m much bigger than you, so don’t even think of fighting. And now, do you want me to specify what bringing Bobby to a bed in your mansion implies? It ain’t what you’re imagining, milkskin.”

He squeezes my hand reassuringly. I shift my weight slightly, moving my free hand from his shoulder to his chest—palm flat against solid muscle, grounding the question in the body.

“All right, Jon Ureña from Spain, let’s cut to it: what does bringing Bobby to the mansion actually entail? What’s the structure I’m missing?”

Jon gently lets go of my hand. I leave both palms on his broad chest.

“As soon as we settle down on that mansion,” he says, “we’re flying to Italy, you and I. We’ll talk to the idiots in charge, who at least kept Bobby alive. I’ll pay them for their troubles, along with a generous donation for not pulling the plug. Also to not ask too many questions. Then, we’ll fly Bobby home as he rests in a special bed from the future that comes armed with an artificial intelligence named Hypatia, developed by a company of mine. She’s amazing, you’ll see. I’m talking about a bed that exercises the comatose patient’s muscles to prevent atrophy, that turns them to prevent sores, and constantly monitors the recovery. In addition, it also scans brain activity. It will show that Bobby isn’t braindead, which we already know. Whenever you talk to him, the bed’s panel will light up with the translation of his brain activity: affection, regret, memory. Who knows what else. Something embarrassing, probably. So it will be a conversation of sorts, with someone immersed in a dream. These beds are proven to make comatose patients wake up earlier, so he’ll likely be with us, in a way that truly matters, before April 27th.”

And Jon’s staying with me the whole time. Not alone with the waiting. He’s solid, warm. He stayed calm when I climbed onto him, didn’t retreat when I started testing boundaries. I can feel the muscle of his thighs under mine, his body heat through the denim.

I shift my hips forward deliberately, pressing the thin cotton of my briefs against the denim covering his lap, and start moving in a slow, circular grind.

“So Bobby’s in the house with me—unconscious but monitored by Hypatia. And you’re staying with me to prevent December 24 recurrence. Supervision dressed as companionship. Making sure I don’t find different woods in a different state when the despair comes back. Which it will.”

I keep grinding slowly, watching his face.

“So here’s my question, Jon Ureña from Spain, time traveler, Bobby’s emissary, whatever you are: What happens if I spiral anyway? What happens if I’m living in the mansion with Bobby’s unconscious body in the next room and Hypatia’s panel lighting up with proof that he loves me and I still can’t make myself want to stay alive long enough to see him wake up? What’s your contingency plan for that scenario?”

His expression shifts—something between amusement and challenge. His breath is steady.

“The way you’re going,” he says in a calm, low voice, “seems like you’re begging for me to fuck the suicidal despair out of you. Is that what you’re thinking as you rub your virgin pussy against a man you’ve just met?”

The words land like a slap, but he sounds direct, not angry.

“Jesus, math genius. I get you’ve been lonely and empty of affection and likely aching for touch.” He cups my chin, turning my face toward his to look straight into my eyes. “You’re not thinking straight, Alicia. You know this. Your mind’s waking up from the fact that it tried to murder you. We’ll have fun, you know? Movies, music, math papers. Soon enough you’ll be laughing your ass off and thinking that this whole ‘walking into the Wisconsin woods in the middle of winter’ was just a horrible nightmare.”

Lonely, empty of affection, aching for touch. It’s true.

Jon stayed present, held my face, spoke calmly. But he deflected the question about what happens when I spiral. Movies, music, math—as if that’s supposed to prevent recurrence.

I lean back slightly, stopping the grinding motion but staying seated in his lap, and meet his eyes directly.

“You’re right. I’m not thinking straight. You just handed me proof that the premise was false—Bobby wakes up, I don’t need to die.” I cup his chin, holding his face steady so he can’t look away. “So I’m recalibrating. And part of that recalibration is testing whether you collapse when I push boundaries, or whether you stay solid when reality misbehaves. Because if you’re going to be the tether Bobby sent backward to keep me alive for four months, I need to know you can hold frame when I spiral. When the despair comes back, I need to know you won’t retreat into therapeutic distance or moral theater about how I’m ‘too vulnerable’ for intimacy. So here’s what I’m agreeing to: I won’t walk into the woods December 24th. I’ll wait until April 27th. I’ll let Bobby wake up and find out I’m still here. But first—you’re going to tell me plainly: when the despair comes back, when I’m living in that mansion with Bobby’s unconscious body in the next room and Hypatia’s panel lighting up with proof that he loves me and I still can’t make myself want to stay alive, what exactly are you planning to do? ‘Fuck the suicidal despair out of me,’ you said. Was that deflection, or an actual contingency plan?”

Jon narrows his eyes, looking straight into mine.

“Oh, believe me, I’m staying solid. As solid as you’ve just fucking made me, you teasing virgin.”

“I can feel you through the denim.”

“What am I going to do when you feel suicidal? I’ll hug you tight until the numbness goes away, or you cry your eyes out. I’ll let you go when you start feeling like yourself again. The real question, Alicia, which only you can answer, is: what the fuck do you want to do in an ideal world where Bobby isn’t dead and you have all the money in the world? Can you even answer that, genius?”

I let my hand drop from his chin and rest both palms flat on his chest—grounding the answer in the body, making contact while I name what I actually want. His chest rises and falls under my hands. Steady breathing.

“Physical contact as tether—not talk therapy, not medication. Just holding me through it. What I want to do in an ideal world where Bobby isn’t dead and I have all the money in the world? That’s the real question, isn’t it? Because if I can’t answer that—if I don’t know what I’m surviving for beyond just not-dying—then four months of survival is just purgatory with better accommodations.”

I press my palms harder against his chest, feeling the muscle underneath.

“So here’s my answer, Jon Ureña from Spain, time traveler, Bobby’s emissary: I want to finish the work I walked away from. I want to return to mathematics without being devoured by it. I want proximity to Bobby while his substrate repairs itself—watching Hypatia’s panel light up with proof that he’s receiving me, that love is still communicable across the boundary between conscious and unconscious. I want to know whether the visitors are guardians or invaders, and I want to stop being afraid of my own mind long enough to find out. And I want—”

I slide both hands up to cup his face again, holding him steady so he can’t deflect with humor or nicknames. His beard is rough under my palms.

“—I want to know that when the despair comes back, when I’m standing in that mansion at three in the morning staring at different woods in a different state, you’ll be solid enough to grab me and fuck the suicidal resolution out of my head before I walk out the door. Not as punishment. Not as control. But as proof that the body can want something the mind hasn’t decided to kill yet. Can you do that? Can you stay solid for four months when I spiral and test every boundary? Because if the answer is yes, I’ll walk out of Stella Maris with you tomorrow morning. And if the answer is no, then I need to know that now before I agree to postpone December 24th.”

Jon takes a deep breath. His gaze drifts over my features—eyes, mouth, the line of my jaw—with something that reads like affection.

“You are a handful, princess. Let me clarify something: whether or not you think you’re postponing December 24th, you ain’t killing yourself on December 24th, because if you try to make a run for it, I’m grabbing you. And it seems you’ll like what I’ll do to you.” He shakes his head slightly, as if in disbelief. “So emotionally vulnerable, yet you’re putting this weight on me. Alright, I’ll carry you.”

He glances at the clock on the nightstand.

“A quarter to eleven already. Now, you’re getting into bed and trying to drift into sleep as you imagine waking up tomorrow to a nice breakfast. I’m telling you, not asking. The question is: do you want to be alone for tonight, or do you want to sleep warm?”

If I say yes, I’m trusting him to stay close when I’m vulnerable in sleep. And if I say no, it means I’m preserving autonomy—keeping the night as my own space, maintaining control over when and how intimacy escalates.

I’ve been alone in this institutional box for weeks, organizing my own death, and my mind locked onto December 24th because I couldn’t see a version of the future that felt inhabitable. And now there’s a man and he just offered to stay the night. To sleep warm. To be present through the vulnerable hours when despair tends to arrive unannounced and the mind starts rehearsing extinction again.

I can say yes. Let him stay. See whether sharing body heat overnight makes the morning feel different, or whether I wake up at three AM staring at the ceiling with the same quiet resolution I’ve been carrying for weeks.

Jon watches my face, patient. Then he leans in and wraps his arms around me—one arm sliding around my back, the other pulling me close against his chest. His solid warmth envelops me. His cheek rests against the top of my hair. When he speaks, his voice is soft but calm.

“You’ve been wandering in the cold dark, alone, for what must have felt like forever. This current branch of time and space—the universe and all the realities it contains—exists because someone needed to save you. And now you get to carry that weight.”