No free will. No escape. Just the chain.
F.A.T.E. (the Free Agency Termination Emulator) grows people from genetics and gut bacteria, lets them live whole lives across an eight-rung mind-body cascade, and then rewinds them frame by frame to show every choice they ever made was just the next link in a chain that started before they were born.
Walk eight lives instead.
If pages of typed arrays and pipeline diagrams are not the way you absorb an argument, there is a companion site for you. Same project, same thesis. Eight characters drawn from the substrate, each one walked from age zero to seventy. The DMN's narration on one side. The substrate's actual ledger on the other. You can return here whenever you want.
Walk the eight lives →Before we look at simulated people, look at yourself.
The chain that produced you did not start on the day you were born. It started in your mother's body, and her mother's body, and a hundred generations of bodies before that — each one passing forward a configuration of alleles, a setting of HPA tone, a microbiome, a culture of holding babies or not holding them — until the configuration arrived at the cell that became you, and the configuration was already, in every meaningful sense, finished.
Trace one specific thread to feel its weight. I cannot show you your actual chain — most of it is unrecoverable — so let me sketch a representative one. A great-grandmother lived through enough chronic cortisol that her FKBP5 locus quietly upregulated. Her ovum carried that epigenetic mark forward. Her daughter — your grandmother — inherited a slightly hotter HPA axis and ran through a life that kept it hot. Her daughter — your mother — gestated you in a body whose 5-HTT expression had drifted to 1.22 of baseline, meaning your serotonin signal is structurally damp before you have ever experienced anything. By the time your critical-period window closed around age seven, your ATTACHMENT schema's valence_target had crystallised toward whatever felt-quality your earliest caregivers had been able to produce while running their chains. The window then closed. The encoding persisted. The plasticity available to adult you is roughly 0.028× what it was at age zero. You did not choose any of it. The configuration was already finished before you were old enough to know the word configuration.
By the time you were old enough to call anything a choice, the machinery that does the choosing — your perceptual filters, your need set-points, your social embedding, the policy weights that bias every decision toward what worked yesterday, the schema lattice the previous decade encoded, the cue field a million repetitions Hebbianed into place — was already running, configured by a thousand things you had no say in. Every preference you have today is an attractor in a state space that was set decades before you arrived in it. Often, longer.
You will not, by reading this, feel the absence of free will. The reason is architectural and it is, by itself, the most damning piece of evidence: your Default Mode Network is the second-to-last step in an eight-rung cascade. It runs after the substrate has already moved. Each tick, it composes a sentence that explains, to you, what the substrate just did. The composition is what you experience as "I chose". The composition is the only memory of the moment your introspection has access to. The substrate cannot show you itself, because the only instrument capable of looking at it is also the only instrument capable of writing the lie. The feeling of choosing is the narrator narrating. It is not the choosing. Your conviction that you are the chooser is the narrator's most-reinforced output, and the most-reinforced outputs are the ones the substrate has spent the longest making smooth.
Most people cannot hold this in mind. The problem isn't intellectual; it's perceptual. To see the absence of free will, you would have to hold someone's entire history in your head at once — every meal, every wound, every overheard sentence, every microbiome shift, every chronic-cortisol multiplier their grandmother passed forward as epigenetic expression — and watch the cascade roll forward. Nobody can do that for a real person. Nobody can do that for themselves. So the illusion of authorship survives because the machinery that would refute it is too vast to perceive.
F.A.T.E. is built to make that machinery small enough to see, and to make every link in the chain, ancestor by gene by hormone by schema by choice, addressable. What follows is the architecture of the chain that produced one woman named Mara, and by structural equivalence, you. Yours cannot be inspected. That is the only thing protecting the illusion.
If this is true, here is what it means.
-
01
Nobody chose to be poor. Poverty is a continuous attractor in the substrate — low
econ_wealthdrivesn[physiological]decay, which drives desperation, which drives worse decisions, which drives less income. The body did not choose the rung of the ladder it was born onto, did not choose the schemas the rung wrote during the critical period, and does not have a free-will lever for stepping off. -
02
Nobody chose to be a criminal. Crime fires in the substrate when
econ_wealthcollapses,cortisolstays high, and a co-located tie is vulnerable. The conditions produce the act. There is no "criminal personality" stored anywhere — there is a body in a configuration the substrate names theft or assault. The same body in a different configuration is a saint. The configuration was not theirs to set. -
03
Nobody chose to be a drug user. Addiction is a configuration of P31 schemas, P33 cue-field edges, dopamine receptor density (
DRD2allele), and a reinforcement history the body inherited and the world reinforced. The first hit was weighted before it happened. The relapse, three years sober, is the lattice firing under cortisol exactly as it was Hebbian-wired to do. -
04
Nobody earned their success, either. Discipline is a configuration of executive function loci, schemas, and a reinforcement history the body did not author. The "successful" person is a body running a winning sub-routine on a substrate they did not build. The same applause from the same audience would land identically on a body with the same configuration and a different name. Meritocracy is a story the winners tell. Architecturally it does not exist.
-
05
Trauma is not something that happened to someone. It is what the substrate looks like, decades later, after the body could not metabolise the event. P32 intrusion fires under cortisol — a trauma-flagged episode re-injects its stored affect, the schema lattice retrieves harder, the cue field grooves deeper, and the next cortisol spike is a little easier to reach. PTSD is this loop hardening into a structural feature of the substrate. The victim did not choose to remember. The body cannot stop remembering. The "healing" we want is a re-encoding through the P35 BDNF window, not a moral act.
-
06
Every society built on the premise that people chose is structurally compromised. Criminal justice premised on free choice punishes substrate configurations. Welfare premised on "deserving poor" rewards substrate configurations. Education premised on "trying harder" is a cortisol bath aimed at children with low executive-function loci. The system isn't wrong about people. It's wrong about the premise underneath the system.
-
07
Media is not a marketplace of ideas. It is a cue-field configuration weapon. Whoever owns the affordances owns the cue nodes a population's lattice will Hebbian-encode against. Whoever owns the cue nodes owns the schema content the population's children will crystallise during the critical period. Whoever owns the schema content owns the logit boosts every later "decision" inherits. Twenty-four hours of news cycle is twenty-four hours of population-scale schema encoding. The "informed voter" is a body whose substrate was sculpted by the people who own the affordances. There is no neutral information environment, and there has never been one.
-
08
America was never a democracy in the sense the word claims. Wealth owns the media that owns the cue field that seeds the schemas that bias the vote. The vote is L13 — the narrator picking from a distribution that layers one through twelve already wrote. A "free citizen" is a body whose cue field was sculpted by the people who own the affordances. The conversation about democracy is downstream of the conversation about ownership, and the conversation about ownership is downstream of the conversation about substrate.
-
09
Compassion stops being optional. If you can see the chain, the addict in the doorway and the broker in the corner office are running the same machine with different initial conditions. Cruelty toward either is a category error. Pity toward either is also a category error. What's left is something stranger and more useful: seeing them clearly.
-
10
"Deserve" becomes incoherent. Nobody deserves their suffering. Nobody deserves their wealth. Nobody deserves their prison sentence. Nobody deserves their applause. The substrate produces what it produces. The intervention question becomes: what change to the substrate would produce a less-cruel attractor? — which is a real question with real answers, none of which involve moral desert.
-
11
You, reading this. Whatever attention you are bringing to this paragraph (engaged, skeptical, defensive, interested, mildly bored) is the output of a substrate. Whatever conclusion you reach about the argument is a logit-sample from a distribution your last forty years wrote. The thought you are about to have — "this is overstating it" or "this changes everything" or "I already knew this" — is being packed into
dmn_idle_contentin real time, by the same architecture F.A.T.E. simulates. This page is a mirror. The mirror does not flatter. The looking is, itself, the chain looking at itself.
The resistance you feel reading this is not an objection. It is the chain, recognizing itself in a mirror.
Personality is not a category. It is weather over an organ system.
F.A.T.E. is built on a single bet: that everything we call a self, temperament, attachment, trauma, conviction, a marriage, a slow descent, is an attractor in a small set of universal rules. There are no special cases for "anxious" or "stubborn" or "in love." There are only states, and the operators that move them.
Most simulations of people start with a category and decorate it. This person is an introvert. This one is a believer. The category does the work; the rest is presentation. F.A.T.E. refuses that shortcut. The substrate is psychology-as-physics: a handful of typed arrays, a handful of operators, a tick that runs them in order. Anything we recognise, a quiet child, a brittle marriage, a confirmation bias, has to fall out of the dynamics, or it does not exist.
No free will.
Every behaviour is causally traceable through state arrays. A fixed seed produces an identical history, tick for tick, mood for mood. The point of the simulation is to make this visible.
Substrate purity.
Each domain is a small operator, a state array, an event kind, and (optionally) a vocabulary file. There is no if married then… branch anywhere in the codebase, and never will be.
Content is configuration.
Substances, locations, weather states, life-event templates — all live as JSON. Adding a new substance, a new occupation, a new climate is a data change, not a code change.
Higher-order phenomena emerge.
Big Five, attachment style, catastrophizing, learned helplessness, social class — none are stored. They are projections, computed on demand from the substrate. Categories live in the eye of the observer.
Each module is small enough to hold in mind.
Gut chemistry, housing tier, mate selection — each domain is one operator, one state group, a few hundred lines. The architecture is the diagram of how the modules wire together; nothing is hidden in a god-file.
The chain begins before you.
Founders are not random initial conditions. They carry recombined parental alleles, prenatal stress proxies from a maternal life, and chronic-window epigenetic multipliers from generations of cortisol. The agent inherits the chain, then runs it.
The story is downstream.
The Default Mode Network is the second-to-last rung of eight. By the time it composes a thought about why the body just did what it did, the rungs beneath it have already moved. The agent does not know this. The agent reads the thought as I chose.
The reader is invited in.
Every claim F.A.T.E. makes about a simulated life applies, structurally, to yours. The agents and the visitor are the same kind of object. There is no glass between you.
Depth over breadth.
Every scope is built for lived-experience realism, never shallow coverage. The inner-life system was first built broad — many topics, byte-identical, passing every telemetry gate — and the oracle scored it F. Breadth passes the gates; depth is the only thing that earns an enable.
"There is a kind of person who insists they are not a kind of person. F.A.T.E. generates those people, and shows you the exact line of code where they decided."
Eight rungs. One cascade. No exit.
By the time an agent thinks the words I have decided, the whole mind-body cascade has already moved — eight rungs from genome to behaviour. Each rung is built from small operators with a declared reads and writes. Each tick, they fire in canonical order. Genes → prenatal → epigenetics → bio → hormones → morphology → perception → affect → schema lattice → episode pool → cue field → identity → DMN → the softmax that chooses what the body does next. Click any link, or press Cascade.
Notice where the Default Mode Network sits. The second-to-last rung. After appraisal. After the schemas have already pulled affect toward their stored targets. After identity has integrated the day's behaviour into the self-concept. The narrator runs on a substrate that has already moved. We return to this in section 12.
INVARIANT. Every coupling is gated by a K_* switch checked before any state read. Roughly 2,500 K-knobs govern the substrate. At K=0 a mechanism is built but inert — byte-identical to baseline. At K=1 it becomes a live causal force. Hundreds of mechanisms run LIVE today; hundreds more wait at K=0 for the calibration engine to enable them — sign-off gated against the oracle, not merely the telemetry. The substrate is allowed to be the cause; it is not allowed to fake the result.
Every agent is a row index across two dozen typed arrays.
There is no object-per-agent. An "agent" is the integer i. Their fear is at psych.affect[i*3+1]; their gut diversity at bio.gut_diversity[i]; the cumulative valence of their relationship with agent j at social.H.get(i*N+j). This is not an aesthetic choice. Flat arrays mean cache-friendly iteration over five hundred lives at sixty hertz; they mean a deterministic snapshot that can be hashed in a microsecond; they mean adding a new domain is one entry in a registry, not a refactor.
The state registry
Every typed array is declared once, in a single SCHEMA object, grouped by namespace. The state allocator, the snapshotter, the determinism hash, and the IndexedDB serialiser all walk this registry. To add brain–heart–gut chemistry was to add a bio namespace with twenty-eight entries. Twenty-eight stride-1 Float32Array views; zero changes to the tick orchestrator.
NOTE. Twenty-eight of 1,500+ typed state fields shown, written by ~307 operator files firing ~425 EventKinds across 91/91 shipped modules. Every namespace introduced since P31 is here. The full schema also includes weather, governance budget, full location tables, the policy enforcement budget, the determinism RNG state itself — every byte that defines a moment is in here, and only here. Click any agent in the runtime to open the inspector; the Schemas, Body, Mind, and Genetics tabs all read from this registry directly.
Every event the world produces is a twelve-dimensional vector.
Whether it is a thunderstorm, a job loss, a kind word from a stranger, or the sudden absence of one's mother — the world only ever speaks in this vocabulary. This is Klaus Scherer's Component Process Model, expressed as a tensor. Each agent's B-matrix warps the vector before it ever touches affect: ê = tanh(B·e). The catastrophiser's B has a heavy diagonal on threat; the trusting child's is gentle there. Same world, different perception. Watch the axes pulse below — that's the world arriving, one event at a time. Hover or tap any axis to fire it manually.
From event to feeling
The appraisal operator collapses the perceived twelve-vector into a change in valence and arousal, weighted by self-relevance:
// operators/appraisal.ts — the entire signature of feeling selfRel = (ê[SELF_REL] + 1) / 2 weight = selfRel * 0.8 + 0.2 // always at least 0.2; even strangers register Δvalence = (ê[VALENCE] * 0.45 + ê[GAIN_LOSS] * 0.25 + ê[ACHIEVEMENT] * 0.15 + ê[FAIRNESS] * 0.10 - ê[THREAT] * 0.20) * weight Δarousal = (|ê[VALENCE]| * 0.20 + ê[AROUSAL] * 0.35 + ê[THREAT] * 0.45 + ê[NOVELTY] * 0.15) * weight a[i] += [Δvalence, Δarousal, 0] // dominance is updated elsewhere a[i] += γ * (a_base[i] - a[i]) // γ = 0.08; resilience is mean-reversion speed
This is the entire bridge between world and feeling. Once the brain–heart–gut axis arrives in Phase 1, every coefficient and every a_base is itself a function of neurochemistry. Serotonin shifts the valence baseline. Cortisol sensitises the threat term. The gut microbiome, three organs away, is silently moving the constant.
Three organs, one nervous system, no metaphor.
Most simulated minds run in the head. F.A.T.E.'s run between three organs that don't always agree, with the rest of the cascade stacked above them. The gut produces serotonin under good microbial conditions and inflames under chronic cortisol. The heart's variability is a vagal-tone proxy that feeds back into norepinephrine. The brain integrates both, sets a mood baseline, and decides — under temperature governed by the chemistry it inherited that morning.
Each tick, before any decision is made, a cascade runs in fixed order: substances → gut → heart → brain. Each operator reads only the previous tick's outputs of the others, which resolves the inherent circularity (gut affects brain affects heart affects gut) into a clean Euler step. Click an organ to see what it carries and how it talks to the rest.
The cascade in one tick
The biological day starts before any thought. By the time the agent perceives an event, their decision-making temperature has already been set by chemistry that depends, distantly, on what they ate three weeks ago.
// BIO_MORNING phase — strict order, one Euler step per tick substances ▶ caffeine, alcohol, processed diet → bio deltas gut ▶ cortisol↑ → inflammation↑ → diversity↓ → 5-HT production↓ heart ▶ HRV recovery; current HR; interoceptive feedback → norepinephrine brain_axis ▶ HPA: CRH → cortisol → BDNF↓; tonic DA, GABA, glutamate balance ▶ valence baseline a_base[i] is now today's number // → APPRAISAL inherits these. DECISION temperature is now // T = f(5-HT, DA, GABA, arousal). The agent's mood today // depends on a microbe count from a meal three weeks ago.
LIVE COUPLINGS. The axis is no longer one-directional. Dopamine now learns: a reward-prediction error (Berridge wanting/liking) updates the policy every tick. Oxytocin couples to bonds at 0.5 (with a +0.30 event-pulse, female ×1.6 around parturition/lactation); vasopressin guards mates at 0.5 and potentiates the HPA axis at 0.6. Chronic high cortisol desensitises its own negative feedback — the stressed body loses the brake on its stress. None of these are scripted reactions; they are standing couplings the chemistry runs.
Six innate slots. Everything inside them, learned.
Between the neurochemistry of an hour ago and the personality of a lifetime, there is one bridge — a small lattice of six emotional templates the body has carried since before it could speak. The brain–heart–gut axis sets today's mood. The lattice decides what today's mood means.
Every agent is born with six schema slots empty. SELF_WORTH, ATTACHMENT, INTIMATE_OTHER, AUTHORITY, THREAT_RESPONSE, BELONGING. Each slot stores nothing more than a target — a valence and an arousal — and a strength that says how confidently the body has learned it. The slots are universal across humans; the contents are not. A child whose threat response crystallises from years of cortisol spikes carries a different lattice than one whose first relationships were calm. The slots are the species. The contents are the person.
The six slots
Each schema activates only when its conditions are met. Activation is the gate: below the floor (0.10) the slot is dormant and neither writes nor reads. Above it, the slot quietly does two things at once — it encodes today's affect into its stored target, and it retrieves, pulling the body's valence and arousal toward that target, biasing the appraisal of every event that follows.
|valence| > 0.40 or arousal > 0.50. Stores how the self felt in the moments the self was last visible to itself.cortisol > 0.30, saturates at 0.80. Crystallises from every hormonal surge the body could not metabolise. The earliest scar.The lattice, live
Below: a single agent (Mara, age 31 — the same Mara whose first eighty days you'll meet in section 10, three decades later) at one tick. Each card shows one of her six schemas, its current activation, and the stored emotional template it has learned over thirty-one years. Click any schema to see what activates it, what it stores, and how it bends today's affect and tomorrow's decision.
The encoding rule
One line of physics, the same for all six slots. Plasticity decays sharply with age (the critical period is roughly seven years), gates on BDNF, and scales with emotional magnitude and current activation. Childhood writes the deepest grooves; adulthood mostly retrieves what childhood wrote.
// operators/schemaEncoding.ts — one rule, six slots ageFactor = exp(−ageYears / K_SCHEMA_CRITICAL_PERIOD) // τ = 7 years emoMag = |valence| + arousal // 0..2 rate = K_SCHEMA_PLASTICITY_BASE · ageFactor · BDNF · emoMag · activation // Rescorla–Wagner delta-update toward today's experienced affect schema.valence_target += rate · (valence − schema.valence_target) schema.arousal_target += rate · (arousal − schema.arousal_target) schema.strength += rate · 0.5 // saturates at 1.0 // Then retrieval runs in the same operator, gated on strength: // Δaffect = K_SCHEMA_RETRIEVAL_PULL · activation · strength · (target − current) // And decision.ts reads the same activations: // logit += K_SCHEMA_LOGIT_BOOST · strength · activation
NOTE. The schemas operator runs in the APPRAISAL phase at order 50 — after appraisal.ts writes today's affect, before decision.ts reads features for action selection. Encoding sees the freshly-appraised state. Retrieval lands in time to bend the decision. The slots are the species. This lattice is just one of six memory systems — it sits alongside the episodic ring, the cue-lattice, RL learned-value, the trauma scars, and the per-dyad bond ledger (section 08).
How the body remembers what the body did.
F.A.T.E. has no record-and-playback memory. There are no "files" of past events stored verbatim. There is a six-system memory architecture — schemas, an episodic ring, the cue-lattice, reward learned-value, trauma scars, and a per-dyad bond ledger — that each tick (a) encodes a fragment of today's experience, (b) erodes or consolidates yesterday's, and (c) lets the DMN read across all of them to compose what the agent thinks she remembers. The remembering is the chain firing again, with the materials that survived.
This is, as far as we know, the most novel architectural commitment in the project. Six substrate systems. Each one is small, each one is wired through the same family of update rules (Rescorla-Wagner / Hebbian / EMA / reward-prediction error — all variants of rate × (target − current)), and together they constitute everything F.A.T.E. agents have in place of an explicit memory. The Schema Lattice from section 07 is just one of those systems.
Schemas
Six innate slots: SELF_WORTH · ATTACHMENT · INTIMATE_OTHER · AUTHORITY · THREAT_RESPONSE · BELONGING. Each stores a learned (valence_target, arousal_target, strength). Encoding rate falls thirty-six times from age zero to twenty-five. Retrieval pulls bio state toward the stored target AND adds a logit boost to decision. The shape of "what kind of person you are around X."
- 6 slots/agent · innate taxonomy · learned content
- encoding:
K_PLASTICITY × exp(−age/7) × BDNF × emo_magnitude × activation - retrieval pull:
K × activation × strength × (target − current) - logit boost:
K_LOGIT × activation × strength × sign(target_valence)
Episodes
Salience-thresholded snapshots of moments worth remembering. A fixed pool of ~64 slots per agent with priority-based eviction. Flashbulb pinning above salience 0.85 (immutable). Trauma flag above 0.95 with negative valence. Sleep consolidation replays the day's top-K episodes into the schema lattice each night. Intrusive recall under high cortisol re-fires trauma-flagged episodes. The body's receipts.
- ~64 episodes/agent · fixed pool · priority-evict lowest non-pinned
- fields: salience, valence_at_encode, arousal_at_encode, cortisol_at_encode, cue_target, schema_mask, tick, flags
- flashbulb pin:
salience > 0.85· trauma flag:> 0.95 ∧ valence < −0.4 - sleep consolidation: DAY_END/0 replays top-K → schemas
- intrusive recall: APPRAISAL/70 fires probabilistically when cortisol high
Cue field
The lattice that does what humans call association — the smell that returns the room, the song that returns the year. A sparse per-agent Hebbian graph of ~500 weighted edges between cue nodes: locations · agents · time-slots · weather · schema nodes · episode nodes. Two- to three-hop activation propagation from current cues seeds decision logits. The graph is what makes "I always feel this way in this kitchen" a substrate fact, not a metaphor.
- ~500 edges/agent · sparse · sorted-adjacency · binary-search lookup
- nodes: 16-bit composite IDs (type:3 bits + id:13)
- encoding: Hebbian co-activation during execution
- propagation: 2–3 hops from current cues at decision time
- output: ACTION_PATTERN logit boosts (P34 dual-process can hand decision over to top-activation pattern)
Reward memory
What the body has learned to want, and what it has learned to like — two different ledgers, in the Berridge sense. Dopamine reward-prediction error writes them every tick: an outcome better than expected raises wanting; the hedonic hit raises liking. Place-value memory tags where reward happened. This is the system that makes a relapse, three years sober, a substrate fact rather than a failure of will.
- Berridge wanting / liking · separate channels
- update: dopamine RPE (reward − expectation),
K=0.4 - place-value EMA · tags locations with their reward history
- now LIVE — the learning loop frozen since init is running (PR #1735)
Scars
The memories the body does not get to file away. A high-salience negative event leaves a signature vector that permanently bends the perceptual filter — the B-matrix — so every future event of the same kind routes through a sensitized lens that never normalizes on its own. The body hurt by an authority figure reads all future authority through that bend. Reconsolidation through the BDNF window is the only thing that re-files it.
- scars[N × BIAS_DIM] · written on
salience > 0.95 ∧ valence < 0 - permanently modifies the B-matrix at runtime
- intrusive recall re-fires the source episode under high cortisol
- re-encoding only via the BDNF reconsolidation window
Bond ledger
Memory of people, kept one relationship at a time — and asymmetric. One partner can remember warmth the other has forgotten. Each dyad carries a cumulative valence, a last-interaction stamp, and a ~4-month sentiment snapshot, decaying without contact. This is the substrate behind a tie that quietly cools, and behind a loved one who keeps surfacing in the mind long after they are gone.
- per-dyad, asymmetric ·
social.H.get(i*N+j) - cumulative valence +
tie_last_interactstamp - ~4-month dyad sentiment snapshots · contact-decay
- feeds bond-presence: loved ones surface as a tonic background channel
How the six systems interact in one tick
This is where it stops being an inventory and starts being an architecture. No system is sovereign. Each writes into the next, each reads from the last, and the DMN, the second-to-last rung, harvests across all of them to compose the prose the agent's introspection will mistake for memory. (The narrative self you might call “identity” is not a seventh store — it is a projection the DMN computes across these six, drifting toward the last-five-action histogram at a critical-period rate.)
Every tick, during APPRAISAL. Today's affect writes into all active schemas (Rescorla-Wagner toward the experienced valence/arousal). High-salience moments are saved as episodes with cortisol-at-encode preserved. Co-activations during execution lay new Hebbian edges in the cue field. Today's action histogram nudges the identity trait vector.
During sleep (DAY_END). P32-S3 replays the day's top-K episodes into the schema lattice via the shared encoding helper. Schemas inherit yesterday's affect, not today's. This is why what you slept on lands differently in the morning.
At decision time, every active slot. Current cues (location, time-of-day, agents nearby, weather) seed 2–3 hop activation through the cue field. Active schemas pull bio state toward their stored targets AND contribute additive logit boosts. Identity contributes a consistency bias. All before the softmax samples.
Under stress, opportunistically. P32 intrusion: when cortisol crosses threshold, a trauma-flagged episode probabilistically re-fires. Its stored affect re-injects into today's appraisal. The body remembers, without consent, what the body said it would never forget. PTSD is this loop hardening.
At late cognition, after everything above. The DMN packs a reference — to a replayed episode, a narrative weaving across episodes, or a free association down the cue field — into dmn_idle_content. This is the only memory the agent's introspection actually surfaces. Everything else is upstream of conscious access. Everything else is the chain doing the remembering. The narrator names it.
NOTE. There is no central memory store. There is a substrate that wrote itself yesterday, reads itself today, and lets a narrator at the second-to-last rung compose the prose the agent mistakes for recall. Human memory is the same machine. Every clinical and folk distinction, declarative, procedural, episodic, semantic, working, is a projection of which substrate layer is doing what at the moment of "remembering." The diagnosis is the projection. The layers are the substrate.
One day in the life of an agent: setup, thirty-two half-hours, teardown.
One tick is one day. The day has three bands. Setup runs at dawn: chemistry, world, appraisal, the schema lattice, the DMN's first wander. Then the body lives the day in thirty-two half-hour slots, each one a slot-aware decision and execution pass. At dusk, teardown runs: bonds, plasticity, mental-health accumulation, the chronic-window updates that quietly carry today into tomorrow — plus the modern phases the diagram only samples: the inner-life preoccupation readout, tag-narrative synthesis (the true story and the cover story), and the developmental lifecycle operators. The visualization compresses ~307 operators into representative cells; the real pipeline runs every one of them in canonical order each day. Press play, or scrub.
The biological day begins before any thought. Substances → gut → heart → brain_axis → sleep recovery, in strict order; each operator reads the previous tick's outputs of the others so the inherent circularity resolves into a clean Euler step. By the end of this phase, today's serotonin level, today's cortisol, today's BDNF, today's decision temperature are all set. The agent has not yet thought a thought.
This is what the absence of free will looks like when you can see it.
Mara is born at tick 0. Her mother carried her through a stressful pregnancy; her gut microbiome at birth was assembled from a small handful of species. On day 12 of her life, too young to do anything but eat, sleep, and cry, we pick a single, morally neutral fact about her body and nudge it. We then watch her first eighty days unfold, twice.
Both timelines run from the identical seed and the identical eight-thousand-element state vector. The simulation is deterministic. One tick is one day; inside each day, every agent makes thirty-two slot-aware decisions, work, lunch, public, home, so eighty days is roughly twenty-five hundred individual choices per Mara. Until the moment of the perturbation, the two infants are bit-for-bit the same person.
Mara's chain did not start at Mara.
Before tick 0, the genetic recombinator drew Mara's 128 loci from two parents she also did not choose, who carried recombined alleles from their parents, and so on. Her HPA set-point was offset by maternal cortisol during a pregnancy her mother lived inside a life-stress configuration she also inherited. The chronic_cortisol_365 EMA accumulator her epigenetics layer reads from was already moving when Mara was a single cell. Three generations of the same chain, before the day-12 perturbation we are about to apply:
- chronic_cortisol_365 0.48
- FKBP5 expression 1.18 (overexpressed)
- BDNF locus 0.71 (suppressed)
- THREAT_RESPONSE schema strength 0.84
- SELF_WORTH valence_target −0.31
- inherited 5-HTT short allele · expression 1.22
- raised inside Astrid's THREAT_RESPONSE field
- ATTACHMENT target +0.18 · anxious
- pregnancy mh_anxiety 0.18
- pregnancy cortisol mean 0.46
- genome recombined from Vera + father
- HPA cortisol baseline 0.34 (maternal prenatal shift)
- 5-HTT inherited from Vera, expression 1.22
- gut microbiome low diversity (0.42)
- prenatal mh_depression seed +0.04
- schema slots empty, but the targets they'll learn are biased
- cortisol 0.34 → 0.41 (cumulative)
- THREAT_RESPONSE schema activation 0.18 · encoding
- ATTACHMENT schema first encoding writes
- plasticity 36× adult rate
- the chain is already running
None of this is Mara's. None of it is up to her. By tick 0 she has inherited a body, an endocrine setpoint, an epigenetic expression profile, and a population of bacteria that together constitute the initial conditions of every tick that follows. Below, we run her eighty days twice — and the divergence we are about to see is downstream of this table.
Eighty days is not a long time. But these first weeks are the highest-plasticity window the schema lattice will ever see — the encoding rate falls off sharply after age seven and never recovers. Whatever cortisol baseline Mara's body settles into right now is the value her THREAT_RESPONSE schema is being written from. Whatever her first caretakers feel like in her arms is the target her ATTACHMENT slot is crystallising. A different microbial richness, a different cortisol bath, a different first-week affect — these become different schema content, and that schema content is what every later moment will retrieve.
Run the simulation long enough and the marriage in A may never form in B. The depressive episode in B may never arrive in A. Not because the rules diverged, since the rules are identical, but because the lattice is. Mara's last words, half a century from now, will not be the same words. None of it is up to her. The only difference between the two women is a single number, set once, before she could speak, by something she did not choose.
The unsettling part is not that the simulation is deterministic. The unsettling part is that you are the same kind of object. A substrate of eight interacting rungs, running an Euler step a day, with a Default Mode Network at the second-to-last rung quietly writing the story you mistake for yourself. The microbiome at your birth, the cortisol in your mother's blood, the parent who held you on the third day — none of it was yours to set, and from those settings everything else proceeds. There is no later moment where the rules change and the chooser appears. The chooser is the rules.
WHAT MARA HAS NOW. The Mara of this demo is no longer just a state vector holding a value. She carries an inner life — the 23-topic preoccupation stack, surfacing whatever concern is loudest each half-hour. Her spouse and children register as tonic background presences through det_bond_presence, warm even on the days none of them wins her foreground attention. And she has a developmental trajectory: the childhood attachment this demo perturbs feeds an adolescence, a midlife, and a late-life integrity reckoning that visibly change her across the lifespan. The single number set on day 12 does not just bend a mood — it bends sixty years of a life that now has depth at every age.
One variable in your chain, set differently. Watch the cascade.
Mara is illustrative. You are present. This is the interactive version of section 10, applied to you. Pick one variable that you know about yourself — chronic stress, the felt-quality of your earliest attachment, your perceptual bias toward threat, the wealth configuration you were born into, your serotonin floor, the story you tell about who you are — and F.A.T.E. will show you the chain that fired given the setting you actually had, the chain that would have fired given a different setting, and the developmental window in which the variable was written. This is not comfort. This is precision.
Pick one variable above. Then set it the way it actually got set for you.
NEWER AXES. The six variables above are the oldest and clearest, but the chain now has more places a single setting rewrites a life: how fast the body learns from reward (the policy gradient, now live), how often a lost spouse still surfaces in mind (inner-life topics weighted by how many episodic memories encoded them), whether a child was written into the bond ledger as a secure background presence or never quite landed, and where the lifespan mood-floor settled after a hard decade. Each is one number. None was yours to set.
The variable that cannot be changed
You may have noticed that some of the developmental windows above closed before you could read. The cortisol bath, the attachment encoding, the threat diagonal of the B-matrix — these were written into the substrate in years zero through seven, while you were learning that milk is a word. The encoding rate at age zero is 1.0×; at age seven, 0.37×; at age twenty-five, 0.028×. The variables that determined the most about who you became are the variables you had the least access to. The plasticity available to adult-you is real but vanishingly small relative to what your three-year-old self was rewriting daily. Therapy and psychedelics open a transient P35 BDNF window that briefly restores some of it, which is why the people who get them sometimes describe the experience as "meeting a part of myself I had forgotten was there." The part was there. The window had been closed.
What the counterlife is for
The point of looking at the counterfactual is not to mourn the version of you that did not happen, and it is not to congratulate yourself on the one that did. It is to see clearly that the variable could have been different and was not yours to set. The grief you might feel about that, the relief, the loss, the small dread, the small flicker of but I worked so hard, is itself a substrate output. The relief is the SELF_WORTH schema reaching for the version that did not include the suffering. The loss is the ATTACHMENT schema reaching for the version that did include the warmth. The feeling that something is being taken from you by this argument is the variable working exactly as it was configured to work. The chain doesn't just produce the life. It produces the resistance to seeing that the chain produced it.
"A counterfactual is not a regret. It is a measurement. The substrate is set to the value it was set to. The counterlife is what the same architecture would have produced from a different value. Both are the chain."
The Default Mode Network is the second-to-last layer. By the time it speaks, the substrate has already finished its work.
Inside every brain, including yours, there is a subnetwork that activates the moment task focus drops. Mind-wandering. Replay. Mental time travel. The voice you call thinking about it. F.A.T.E. simulates this layer. It does not let it drive.
Here is the heresy. In F.A.T.E.'s tick pipeline the DMN runs late in cognition — after the body has moved, after the schemas have pulled, after the identity has integrated, and before the action is selected from a softmax that does not consult its content. What the DMN produces is narrative, not cause. Its raw material is now the 23-topic preoccupation stack — twenty-three kinds of concern that compete each tick for what is on the agent's mind, grounded in episodic memory and neurochemistry. Whichever wins gets packed into dmn_idle_content as what I was thinking. And because a winner-take-all contest can never represent a quiet background presence, a separate tonic channel, det_bond_presence, lets loved ones surface without having to win the foreground — the architectural insight that finally let a secure bond feel like one. Either way, the reference is downstream of the state it pretends to author.
The discipline was earned the hard way. Each of the DMN's three affect couplings (rumination, anticipation, theory-of-mind) was originally wired as a per-tick affect-and-cortisol nudge. Every one of them broke the gate. Rumination collapsed PTSD to zero, because the replay was always the maximum-salience trauma, every tick, encoded so hard that the schema saturated. Anticipation collapsed depression population-wide, because the optimist→serotonin / pessimist→cortisol coupling fired every day for everyone with a non-zero serotonin gradient. Theory-of-mind raised cortisol for everyone who held a strong tie they felt fractionally less than. The narrator was trying to drive. The substrate refused. All three shipped with K_DMN_*_COUPLING = 0 — wired, observable, tested, neutralised — until a later rework restored rumination as sleep-gated round-robin episodes (PTSD back in band) and theory-of-mind as a weekly arousal-routed cadence, and left anticipation permanently inert because no reformulation of "the narrator changes the body" survives the gate.
Left side: her inner monologue, as the Biography tab would render it from her packed DMN state. Right side: the actual ordered substrate updates of the tick, oldest first. Notice when the narration arrives. The decision that follows is already written. The DMN does not consult its own output to compute logits; the softmax reads π·features + slot_priors + schema_boosts + identity_bias and never looks at dmn_idle_content. The story is for her, not for the rules.
There are now two registers to that story, and the gap between them is the point. Every action the body takes is tagged (bright / dark / relational / discharge) with two narration hints: Mode-O, the true account of why the body moved, and Mode-C, the agent's cover story for it. The narrator composes from both. The distance between the truth and the confabulation — the soul gap — is something the project can now read directly, and score.
The biography that writes itself
F.A.T.E. has a further confession to make. Even the agent's life story — the developmental biography rendered in the Biography tab, the one that reads as a coherent account of childhood, adolescence, and how she became the woman she is — is itself a post-hoc narrative rationalization. The state comes first. The story explains the state. This is documented as architectural decision ADR-029:
ADR-029 · ACCEPTED · POST-HOC NARRATIVE RATIONALIZATION "Founding agents' developmental history is generated after their biological state is already determined by genetics. The narrative is a post-hoc rationalization: high cortisol → 'stressful upbringing' story; high gut diversity → 'healthy early nutrition' story. The narrative explains the state rather than generating it."
An agent reading her own biography would feel she was reading how she became who she is. Architecturally, she is reading a vocabulary template that selects prose to match state arrays the genetic recombinator set at construction. Both are true. Only one is the cause. The other is the story.
Now apply the same logic to yourself.
Pick one above. F.A.T.E. will walk it backwards through the chain that produced it. Try to find the place where the choice was yours.
When you ask why you said the cruel thing, why you finished the bottle, why you stayed in the job a year too long, the DMN of your brain, the second-to-last rung, composes an answer the same way: it reads the state already there (the cortisol, the schemas, the episode pool, the policy gradient your last decade of repetitions wrote) and renders prose that explains it. The story arrives last. It feels first. That is the bug. That is the human bug F.A.T.E. is built to show you on a single screen, with the cursor at the line that produced the lie.
The closest thing to free will
Here is the cruel twist, and the place where the user of any human-sized nervous system gets to feel most like themselves. The closest thing to free will any human being will ever experience is the moment after an act, when the narrator catches up and writes the line why did I just do that? — a question whose existence proves the gap. The doing happened in the rungs beneath. The asking is the narrator, the second-to-last rung. The asking is what you mistake for the doing. The most you ever get to be is metacognition aimed at a verdict the body has already issued.
This is what philosophers in the consciousness literature have been gesturing at for forty years and what neuroscience keeps finding in fMRI — the readiness potential precedes the report of intention. F.A.T.E. is the engineering version: the substrate moves; the narrator narrates; you are the narration. The freedom you would have to find, in order for free will to be real, would have to be located somewhere in the rungs beneath the narrator — the chemistry, the body-state, the schemas, the cue field, the identity. Try to find it. Pick another option in the trace above. It is not there.
"The narrator runs after the body has already moved. What it tells you about the moving is not where the moving came from."
At any moment, a real mind has something on it. So does theirs.
A worry. A person. A plan. The thing you would name if someone asked what you were thinking. The substrate models this directly: twenty-three kinds of concern compete for the foreground every half-hour, and whichever is loudest becomes the thought the agent is actually having. Nobody scripts the thought. It is whatever the body, the memory, and the chemistry have made loudest right now.
The competition is grounded, not random. Each topic's volume is a function of recent episodic memory, current neurochemistry, and a habituated decay — a concern you have chewed on all day quiets itself; a fresh wound shouts. Out of that contest fall the things a mind does on its own: concern dynamics, regret and relief, variety from one hour to the next, mood-congruence (a low body reaches for low topics), and, when one topic refuses to yield, rumination.
The fix that made a loved one enter the mind
For a long time this was the system's deepest flaw, and it was architectural. A winner-take-all competition can represent thinking about someone. It cannot represent the quiet, standing presence of someone you love — because a secure bond does not have to win an argument to be there. It is simply, tonically, present. So the model was wrong in a specific, falsifiable way: loved ones only surfaced when they became a problem.
The fix (det_bond_presence, PR #2353) added a separate tonic background channel — a warmth that rises slowly, holds for months, and surfaces without competing. Bond-type weights set its strength: child 1.00 > partner 0.85 > parent 0.55 > sibling 0.45 > friend 0.35. The loved one finally enters the mind the way they do in yours: not as the loudest thought, but as the floor under all of them.
each half-hour
broad & shallow
first depth pass
bond-presence
WHY THIS IS THE HEADLINE. The inner-life stack is where the project's law was written. Built first as breadth — many topics, byte-identical, passing every telemetry gate — it scored F (1.0/5) on the oracle, because the depth wasn't there. Breadth passed every gate; depth is what failed. Reaching A is the proof that the law holds: build by day, enable by oracle, depth over breadth.
Every act carries two stories: the true one, and the one the agent tells.
When a person snaps at their child, there is what actually happened — cortisol high, sleep short, a memory tripped — and there is what they will say happened: “I was just tired.” The gap between those two is most of what we mean by a person's inner life. The substrate now writes both, for every action.
Each action is tagged along four registers — bright · dark · relational · discharge — and carries two narration hints. Mode-O is the true account: why the body actually moved. Mode-C is the confabulation: the cover story the agent would offer. The narrator composes from both, which means the biography can show the mask and the machine at once. The distance between them — the soul gap — is no longer hidden in the math; it is a readable quantity, and the soul-gap oracle scores it 5/5.
This is why the narrator is now compositional, not a single post-hoc paragraph generator. It assembles a life out of tagged atoms, each one already carrying its truth and its lie. Covert vulnerable narcissism, the polished apology that isn't one, the kindness performed for an audience of one — these stop being things a writer has to hand-author and become things that fall out of the gap between Mode-O and Mode-C.
NOTE. Wave-3 ships this with K_ACTION_TAGS_ENABLED=1. It is the operational form of the project's oldest thesis — the narrator that lies (section 12) — turned from an argument into a measured quantity.
None of these are stored. All of them appear.
The substrate has no concept of "the Big Five," no flag for "anxious attachment," no field marked has_PTSD. The categories familiar to clinical and personality psychology are projections — pure functions over the typed arrays — not data. They appear when the dynamics produce them, and only then.
is_poor flag.Not just who an agent is. How they become.
An early version of any agent was a state vector holding a value. A person is not that. A person is a trajectory — the same body at four, at fourteen, at forty, at eighty, each stage rewriting the next. The substrate now runs that arc, and it changes the agent visibly across a life.
Two programs carry it. The developmental wave (W5) runs the clocks of growing up and growing old: a child's skill-mastery clock (live), a late-life wisdom buffer that softens cortisol (live), with the infant-attachment arc and adolescent risk-temperature built and waiting on their enable. The lifespan affect trajectory runs the slow weather of mood: belonging-deficit deepening into depression (F1, live), and an allostatic mood-setpoint integrator (F2, live, oracle 4.25/5) — the mechanism behind the most important sentence the model can say about depression.
"It's not that she got depressed. It's that the floor she returns to after each bad stretch is a little lower than before. The substrate adds up the years."
And it carries forward. Career tenure, the friendship lifecycle (with interaction-stamping), mortality-meaning and Erikson integrity, and parenting's intergenerational transmission all run as live clocks. A parenting style writes a child's attachment schema, which writes that child's parenting of the grandchild — three generations of the same chain, with no stored "attachment style" type anywhere. The lifespan arc is the determinism demo (section 10) extended from eighty days to eighty years.
FELT CONTROL. One live coupling deserves its own line: occupational control now shapes felt threat in real time (the Whitehall arc, PR #2300) — the first depth enable to affect the means of the simulation, not just its texture. Chronic low control builds a persistent threat-charge that colours every later appraisal. A life spent without a say in it is, mechanically, a more threatening life.
A new domain is four files.
The architecture is engineered to absorb whole new dimensions of human experience without rewriting anything. Phase 1 added the brain-heart-gut axis. Phase 3 added the entire economy. Phase 4 added mating, marriage, infidelity, divorce, pregnancy, and birth. The orchestrator was untouched each time. This is the discipline:
// Adding a domain — the canonical recipe. 1. SCHEMA entry: register typed arrays under a new namespace 2. operator: a pure (state, ctx) → void function, declares reads / writes / emits / consumes 3. EventKind: one or more new event names for the bus 4. vocab/: optional JSON template for biography prose // That is it. The tick orchestrator does not know your domain exists. // The validator catches undeclared reads/writes in dev. The hash // covers your new arrays automatically. The biography sink picks up // your narratable events. Your domain composes with every other one // for free, in the deterministic order you registered.
The same recipe took Phase 1 from a sketch to a working brain-heart-gut axis in four sessions. Phase 5 added genetics, virtual ancestry, and prenatal programming with the same four steps repeated. The remaining phases (aging and death, healthcare, education, governance) were sketches at the time of P0. They are operators today.
Cards as state deltas
The most strict rule is that nothing bypasses the architecture. Interventions, perturbations applied to one or many agents, are not special objects with custom downstream logic. They are state deltas, written once, the same way an operator writes them. The next tick's normal pipeline does all the work. No if (intervention.type === ...) anywhere. There never will be. This is what makes the simulation comprehensible: the rules of physics do not change based on what gets dropped into the world.
SCALE. The four-file recipe has now run 91/91 times — every module on the wishlist shipped, the first time in project history. Today that is ~307 operator files firing ~425 EventKinds across 33+ subdirectories, every one of them K-gated: an operator at K=0 is byte-identical to a simulation without it, so a domain can ship, be observed, and wait for the calibration engine to bring it live without ever disturbing the seeds.
Three rules the simulation is not allowed to violate.
A substrate this permissive needs a discipline this strict. The manifesto says what F.A.T.E. is; these are the rules for how it gets built. Every new operator, every new module, every new content type is screened against them. Violation is a refusal to merge.
before content.
No new biological detail, no new action verb, no pets or media or religion or addiction, until the substrate it needs is in place. Phase 31 added the schema lattice precisely because attachment, body image, narcissism, religious belonging, and a dozen other "content" stories needed somewhere to land. The remaining substrate phases (P32 episodic, P33 cue field, P34 procedural takeover, P35 therapy editing window, P36 spatial world) finish the floor. Content rides on top.
before calibrated.
Every new mechanism ships with telemetry and an inspector tab. Without that, the mechanism is silently broken. It quietly produces the wrong distribution while the user reads sensible-sounding biographies. Reference ranges are pinned to real-world data: WHO 7% depression, NIMH 14% anxiety, OECD Gini 0.32–0.40. Every fifty ticks the engine grades itself against them. Out-of-range frames emit parameter suggestions, direction and magnitude, that a calibration loop acts on.
over scripts.
No if (situation_X) do_Y rule anywhere in the codebase. Every behavioural effect must flow through the canonical pipeline: substrate state → memory retrieval → bio modulation → logit shifts → softmax. When a designer asks "how do I make agents do X when Y?", the answer is never a branch. It is a learned weighted target somewhere in the lattice. Behaviour falls out of physics, or it does not exist.
The substrate stack
The universal-mechanism stack — the brain-heart-gut cascade, the six memory systems, the relational substrates (L8 / L10 / L11), the temporal self and meaning layers (L15 / L16), and a runtime introspection lane (L18 Emergence Detector). The dependency graph closed long ago; the work since has been bringing each layer live and proving it against the oracle, not adding new floor. Content modules arrive forever as configuration, not architecture. The architecture is the limit, not the modules.
The stack is finite at the substrate layer and unbounded at the content layer. The floor is set. Every additional dimension of human experience, and there are many, is now a registration, a few hundred lines of operator, a JSON vocabulary, and a calibration target. A pet, a phone, a god, a diagnosis, a hobby, a war.
The simulation grades itself. Telemetry is the floor. The oracle is the bar.
A substrate this permissive cannot be trusted to inspection. So F.A.T.E. grades itself in three tiers, and only the hardest one decides whether a mechanism goes live. Tier 1 is a deterministic, demographic-invariant registry — build-time plausibility gates that fail fast and for free. Tier 2 is a DeepSeek LLM realism judge that reads what each agent actually thinks and does and scores whether it feels like a real person. Tier 3 is a human Mission Controller reading whole biographies. Telemetry is necessary but never sufficient: it can prove a distribution is in band and still miss that the inner life is hollow. The oracle, not the telemetry, is the acceptance gate.
The Flight Director is the telemetry tier — the instrument cluster, the engineer who refuses to launch on a red gauge. An 18-metric regression gate runs migration_baseline (~157s) on every merge; the full 16-seed sweep (~45 min) runs only for K-enables, watching for new CRITICALs. But passing it is the floor, not the verdict. Above it sit the realism oracles — chief among them the inner-life oracle, whose two-tier read (a free deterministic pass, then the DeepSeek qualitative judge) is the score that actually clears a depth enable. Below: a representative gate run, and the oracle scores that sit on top of it.
#7 · tick 342 · partner #12 died at 340 (high salience), no GRIEF_ONSET emitted within 5-tick window. FP guard cleared (death was high-salience, survivor alive).
SUBSTRATE_BUG
#23↔#31 · ticks 450–470 · MARRIAGE → DIVORCE → MARRIAGE in 20 ticks. Recommend K_MIN_MARRIAGE_DURATION cooldown.
CALIBRATION
#5 · tick 120 · biography text implies loneliness while snapshot shows BELONGING strength 0.72 and tie_count 6. State and narrative disagree.
SUBSTRATE_BUG
#19 · tick 81 · commute proxy fired while workplace_id == home_id. Remote-worker flag clears; downgraded to MINOR. (5 similar instances in run, all econ_remote.)
MODELLING_GAP
#34 · WITHDRAW > 80% of slots, ticks 380–434. Severe depressive attractor; chronic-stress markers cleared; legitimate state. (Reported, not flagged as bug.)
MODELLING_GAP
Run #418: the Flight Director flagged home.meal.eat as BLOCKED — agents in F.A.T.E. were not eating. The proposed substrate fix: ACTIONS.EAT, a fourteenth verb. Phase P54 implemented it.
Run #421 (post-P54): calibration RED. depressionRate moved CRITICAL. The cause was structural — incrementing ACTION_COUNT from 13 to 14 re-rolled the decision softmax + the per-agent RNG draw, displacing every prior calibration result by RNG noise alone. P54 REJECTED · calibration-breaking
The Flight Director's recommendation logic then re-classified the proposal: a new action verb is decision-layer rebaselining, not a substrate phase. P54B shipped instead: a hunger_level[N] bio state (the sleep_debt precedent), decayed in homeostasis, restored via the existing ACQUIRE and REST verbs, with a MEAL_EATEN event. Zero change to ACTION_COUNT. P54B SHIPPED GREEN · 8-seed byte-identical
Run #428: the catalog auto-reclassified home.meal.eat from BLOCKED → SUBSTRATE_EXISTS. No human re-touched the behavioural database. The tool found the gap, rejected the wrong fix, accepted the right one, and re-graded itself. That is the loop. That is, as far as we know, novel.
NOTE. Reference ranges are pinned to published sources — WHO 2023 depression prevalence 7%, NIMH 2022 anxiety 14% and PTSD 3.5%, CDC sleep deprivation, OECD wealth Gini 0.32–0.40, Dunbar support-layer tie counts. The 16-seed aggregate gate uses the CRITICAL-only philosophy (value > max·1.5 ∨ value < min·0.4) — ELEVATED and LOW are advisory, never block. Inert couplings are reported as unverifiable and never faked PASS. The Flight Director is read-only; it never mutates state.
Passing the statistics is not the same as being believable.
So we don't trust the statistics alone. A mechanism can hold every distribution in band and still produce agents whose inner lives are hollow. The acceptance gate for depth is a separate question, asked by a separate set of judges: does this read like a real person? That score, not the telemetry, decides whether a new mechanism goes live.
It runs in three tiers. Tier 1 is a deterministic, demographic-invariant registry — build-time plausibility gates that fail fast and for free. Tier 2 is a DeepSeek LLM realism judge that reads what each agent actually thinks and does and grades whether it feels human. Tier 3 is a human Mission Controller reading whole biographies. Telemetry is necessary but never sufficient; the oracle is the bar.
registry · LLM · human
chemical-trace oracle
the soul debugger
on every merge
Beneath the tiers sit the specialist oracles. The inner-life oracle (two-tier: a free deterministic pass, then the DeepSeek qualitative judge) is the one that cleared the depth program to A. The chemical-trace oracle scores a per-agent chemical timeseries against forty literature-grounded reference curves — does this cortisol curve bend the way a real one would? The soul debugger dumps the 23-topic preoccupation softmax internals so a human can see why a thought won. And the DDS diversity meter watches that the population isn't quietly collapsing into one kind of life.
THE GATE, IN PRACTICE. The telemetry tier still runs every merge — migration_baseline (~157s) on all merges, the full 16-seed Flight Director (~45 min) only for K-enables, watching for new CRITICALs. But a green gate is permission to ask the oracle, not permission to ship. The oracle is what says yes.
The build system critiques itself.
The hardest question on a project like this is not how do I build the next thing — it is what is the next thing. F.A.T.E. now answers that question with a tool instead of a hunch. A read-only meta-analyzer (--self-evolve) reads the whole substrate and proposes the project's own next build.
It ranks candidates by a single ratio — (unblocking × realism × depth) ÷ build_cost — and checks each proposal against a ground-truth cross-reference so it can't reward itself for a fantasy. Because it reads the actual substrate rather than a human's mental model of it, it finds gaps the team didn't know to look for: a coupling that quietly blocks three others, a layer whose realism ceiling is lower than its neighbours, a cheap enable hiding behind an expensive-looking one.
Around it runs a nightly rhythm: build-by-day, sweep-by-night — the calibration engine proposing and probing while no one is watching, so the morning starts with a ranked queue and a set of overnight sweep results rather than a blank page. The frontier in section v3 is, increasingly, a frontier the project drew for itself.
WHY IT MATTERS HERE. A model whose thesis is that systems run themselves should, eventually, run its own development. The self-evolving engine is that thesis turned on the project: the chain, proposing the next link.
Fifty-four phases plus the substrate-gap program. One floor. A program of inert switches.
Each phase enters its own plan-then-execute cycle. The first thirty-one built the foundation; phases 32 through 36 finished substrate v1 (episodic, cue field, procedural takeover, therapy window, spatial world); phases 37 through 45 expanded the world (hierarchy, employment, life events, UI); phases 46 through 52 built substrate v2 (deep genetics, hormones, identity, epigenetics, the DMN, morphology, attractiveness memes); phase 53 was a dedicated calibration program that reactivated four of the six inert behaviour couplings; phase 54B closed with hunger as bio state. The floor is now set. Every later dimension of human experience arrives as a content module, not a new architectural phase. Below: the full timeline, grouped by what each phase added.
State registry, operator registry, event bus, projections, design tokens, IndexedDB persistence with three stores, tiered history (hot · warm · cold), end-turn pacing, start menu, agent list, biography view, journal split, worker dispatch split, determinism harness. Eleven ADRs. Two months of refactoring before any new domain was added.
Twenty-eight bio fields. Substances as JSON. Gut–serotonin pathway, HPA cascade, HRV dynamics, sleep recovery. Appraisal and decision rewired to be neurochemically grounded. Bio tab in the agent inspector with live readouts. The depressive attractor (high cortisol → gut damage → 5-HT depletion → negative valence baseline) emerges within thirty ticks of a stressed population.
Location graph (homes, workplaces, public spaces). Day-of-week scheduling. Markov weather chain biased by season. Storm cortisol spikes. Winter sleep debt. Layout anchored to current activity — agents physically migrate from home to work to public space across the week, visibly clustering by where their day asks them to be.
Wages, jobs, skills, housing tiers, wealth as continuous attractor. Three feedback loops cross-domain: poverty drag on physiological needs, housing quality on sleep quality, executive job stress on the HPA axis. Wealth produces health and produces stress, depending on which tier and through which pathway.
Pair-bonding from ψ-similarity in the social graph. Marriage and divorce as thresholded transitions. Infidelity as an opportunistic deviation modulated by bond strength. Pregnancy across three trimesters with maternal cortisol and serotonin transfer to the fetus. Birth, parenting, kinship as a graph that gets queried, never stored.
Thirty-two gene loci per agent, blended from two parents with mutation and recombination. Prenatal programming: maternal cortisol during pregnancy permanently shifts HPA set-points. Compressed childhood and adolescence collapsed into a developmental biography that runs once at birth and seeds B-matrix, ψ, and personality embedding. By age eighteen, every agent has a story behind them.
Continuous senescence across all bio arrays. Lifespan-stage projections (childhood, young adult, mid-life, late life). Death from accumulated cause: cardiovascular failure, complications of dysbiosis, accident, suicide following sustained low-valence attractor, peaceful old age. Grief as a narratable event that propagates through the kinship graph. Inheritance, wealth, housing, sometimes the depressive attractor, to surviving children.
Crime as a desperation attractor on the joint state (low wealth × high cortisol × thin ties). Justice as the police-arrest-release loop budgeted by governance. Mental-health accumulators (depression, anxiety, PTSD) that integrate today's neurochemistry into clinically observable rates. Persistent medication state (SSRIs as multi-week buildup), therapy as repeated B-matrix soft regularisation, healthcare access modulated by economy. The first phase where intervention can change a trajectory durably; the first place where an agent can be helped on purpose. ADR-040 (mental health), ADR-041 (crime).
The level at which a population becomes a society. Schools as compressed B-matrix and π-policy initialisation regimes. Culture as the long-running meme equilibrium. Governance as collective-action thresholds over aggregate wealth. Technology adoption as a wealth-and-literacy gradient that bonuses income at the high end. P9 added Rewind, Branch Mode, Forensics, and the Stress Test harness. P10–P17 brought telemetry, AgentModal expansion, and lazy biography prose to readable fidelity. None of these are special-cased; all of them are operators against the same substrate.
Reorganised the tick into SETUP · 32 slots · TEARDOWN. Each active half-hour slot fires its own DECISION and EXECUTION pass with slot-aware activity (home, work, lunch, public). Suddenly a day is a sequence of contexts, not a single judgement. Crime targets co-located ties from the last slot, not the day's averaged location. Contagion catches a feeling from the lunch crowd. Mara now makes ~2,500 decisions across her first eighty days, not eighty.
Twelve phases of bringing every aggregate inside its real-world reference range. WHO depression at 7%. NIMH anxiety at 14%. CDC sleep deprivation. OECD wealth Gini between 0.32 and 0.40. Each phase tightened one or two constants and ran six-hundred-tick baselines until the population didn't drift. P20–P23 hardened pagination, sleep recalibration, and typed ties. P24–P28 added UI polish, telemetry expansion, world-event injection, and a full hobbies module (action verb, per-kind neuro profile, biography). P29–P30 closed with serotonin homeostasis and mental-health gates that hold against the reference baselines through tick 600. The substrate was working from the start; making it match the world was its own twelve-phase project.
The bridge between neurochemistry and personality. Six innate schema slots per agent — SELF_WORTH, ATTACHMENT, INTIMATE_OTHER, AUTHORITY, THREAT_RESPONSE, BELONGING. Encoding rate falls off sharply with age (the critical period is roughly seven years). Retrieval pulls today's bio affect toward the stored target and contributes additive logit boosts to decision. Sixty years from now the agent's marriages and depressive episodes will all be downstream of the schema content laid down in the first eighty months.
The five phases that closed the original substrate plan. P32 added a ~64-slot episodic trace store per agent with salience-thresholded encoding, flashbulb pinning above salience 0.85, and overnight sleep consolidation replaying the day's top-K episodes back into the schema lattice. P33 added the cue-association field — a sparse per-agent Hebbian graph of ~500 weighted edges between locations, agents, time-slots, weather states, schema nodes, and episode nodes. 2-3 hop propagation seeds decision logits. P34 added the cortical-inhibition gate: high gaba × glucose × (1 − emo_load) hands the decision to a top-activation ACTION_PATTERN from the lattice (System 1); low inhibition keeps it in the deliberative π softmax (System 2). P35 wired the transient BDNF window — therapy and psilocybin produce a multiplicative override on neuro_bdnf that decays over days, opening a critical period in which schemas can be re-encoded. P36 shipped the spatial world: 512 locations with kind, capacity, affordance set, social density, emotional charge; affordance filtering nullifies action logits unavailable at the current location; place memory becomes first-class in the cue field.
The world-side expansion that followed substrate v1. Flat-typed-array location hierarchy with parent-pointer fields. Workplace departments. Finite employment as a per-tick equilibrium operator — there are exactly N jobs, not N agents who might be hired; layoffs and promotions clear at the population level, not per-agent FSMs. Developmental crowding routed through the existing HPA / childhood cascade. Job mobility. Nightlife affordances. A wave of life-event narrators. Master plan archived sections P38–P45 ride here. The widened meanTieCount / ptsdRate reference bands during this stretch are documented in DECISIONS.md as cross-seed evidence, not single-seed fitting.
P46 expanded the genome from 32 loci to 128: gene_body × 32, gene_brain × 32, gene_health × 32, gene_cognitive × 16, gene_personality × 16, plus sex_chromosomes, Mendelian alleles, X-linked inheritance, per-locus mutation, and birth-defect flags. P47 added the endocrine cycle: testosterone / estrogen / progesterone recomputed each morning from genetic baseline + age + chronic-cortisol suppression, with a 28-day cycle phase for reproductive-age females and a postpartum estrogen crash. Mutual libido feeds the bonding score as an active coupling.
Per-agent self_concept_traits × 8 EMA-tracking the last-five-action histogram at a Gaussian critical-period rate peaking at age 19. Roles mask from demographics, economy, bonds. Chapter = life-stage × dominant role with an anti-thrash threshold emitting CHAPTER_STARTED. Identity crisis fires when the behaviour-vs-self gap exceeds threshold under stress: ×3 plasticity for the duration, reuses the P35 BDNF window, resolves with a +0.15 certainty bump. After P53, the per-day consistency bias on decision shipped active.
O(1) chronic-window EMA accumulators (α ≈ 1/30 and 1/365 days) for cortisol, sleep debt, isolation, and early-life warmth — approximating rolling means without per-agent ring buffers. Eight brain loci drift their expression multipliers toward chronic-state targets in a tight band: chronic cortisol↑ → 5-HTT↑ (lower serotonin signalling) & BDNF↓; isolation↑ → FKBP5↓; early warmth↑ → OXTR↑. Two identical genomes diverge from divergent chronic histories. Same genome, different brain. EPIGENETIC_SHIFT events emit on edge crossings.
Mind-wandering content, autobiographical replay, mental time travel, theory-of-mind, narrative weaving. dmn_wander at APPRAISAL/30 packs a deterministic reference (replay / weaving / free-association) into dmn_idle_content. Replay (76), anticipation (82), and theory-of-mind (84) all ship behind their own K_* switches. All three originally shipped inert: every-tick population-wide affect coupling collapsed calibration — rumination zeroed PTSD, anticipation cratered depression, ToM elevated cortisol for everyone. The substrate refused to be driven by its own narrator. The full architectural argument lives in section 12./p>
P51: nine morph fields — facial symmetry, jawline, skin clarity, height, BMI, waist-hip, shoulder-hip, bust, genitalia — set at birth from gene_body × 32 + sex chromosomes + a maternal-prenatal proxy, then drifted slowly by chronic bio (skin follows chronic cortisol; BMI follows stress + metabolism gene; shoulder-waist follows testosterone). Attractiveness term in bonding shipped active at K=0.05 post-P53. P52: a BEAUTY_IDEAL tag on the existing meme substrate computes an adoption-weighted cultural-ideal vector and a per-agent mean-L1 gap vs morph; deterministic, persistent, extinction-exempt diffusion. The SELF_WORTH activation hook ships inert pending an employment-model co-tune.
The dedicated phase that returned to the six inert couplings from P48–P52, reworked each one structurally, and re-ran the 8-seed Flight-Director gate using a delta-vs-baseline criterion. P48-S4 (identity → decision consistency) was reworked from per-slot ×32/day to a once-per-day morning nudge — ships active. P50-S2 (DMN rumination) was reworked to sleep-gated round-robin replay — ships active, restored PTSD into band. P50-S4 (DMN theory-of-mind) was reworked to a weekly agent-staggered cadence with arousal-routed cortisol — ships active. P51-S4 (morph → attractiveness) was co-tuned to W=0.05 — ships active, fixed the unemployment-CRITICAL. P50-S3 (DMN anticipation) ships permanently inert: every form of population-wide affect-by-narrator collapses the gate. P52-S3 (beauty ideal → SELF_WORTH) is deferred pending employment co-tune. Of six inert couplings entering P53, four shipped active. The chain is now closed.
The first phase driven by the Flight Director's gap analysis. P54 originally proposed a 14th action verb (ACTIONS.EAT) — empirically calibration-breaking because incrementing ACTION_COUNT re-rolls the decision softmax + per-agent RNG draw. Recorded as rejected (substrate-pure form: a verb is decision-layer re-baselining, not a substrate phase). P54B shipped instead: a hunger_level[N] bio state (the sleep_debt precedent), decayed in homeostasis, restored via the existing ACQUIRE / REST verbs, with a MEAL_EATEN event and a meanHungerLevel calibration-safe metric. S1 byte-identical (8-seed GREEN). The behavioural hunger→physiological-need coupling ships inert pending mental-health + employment co-tune. Substrate purity preserved; no decision-RNG change.
After P54B closed the substrate floor, the next round of work happened inside the existing rungs — as depth-expansion overlays, not new substrate phases. Twenty-one MW.* modules shipped in the May 21–22 cycle: MW.sleep_architecture, MW.weather, MW.healthcare_depth, MW.cityscape (twelve new venue subkinds), MW.household_dynamics, MW.food_system, MW.city_economy, fifteen more. Plus the CP-1-REOPEN program that yielded five previously-inert couplings, two S2 venue activations (museum + theater re-baselined bondRate 0.4283 → 0.4412), and the Tell-Life-Story local-LLM narrative feature. The phase number didn't advance; the depth did. See the depth-expansion section below.
The frontier the v2 audit named was three layers: L8 relational ledger, L10 reward physics, L11 group identity. Sessions 13–15 shipped all three. L8 ships at K=1 ACTIVE — four per-tie EMA fields, five narratable EventKinds emit at DAY_END:14 under a tie-age guard. L10 and L11 ship K=0 inert under sign-off gates (PRs #25, #26). The Emergence Detector (PRs #32, #35, #46) runs DAY_END:90 last in the tick, multi-scale, with ten named phenomenon templates — all det_* state lives outside SCHEMA so K=1 stays byte-identical to K=0 on the 18-metric mean gate.
On top of those four substrate ships, 46 plan docs were authored across the same window: L15 Temporal Self (Carstensen subjective time horizon — scope-doc-ready, lowest-risk first ship), L16 Meaning / Purpose (Steger MLQ), PSAM (Sapolsky 4-axis stressor appraisal), Window of Tolerance (Siegel/Schore/Gerhardt regulatory band), Glucocorticoid Cascade (Sapolsky chronic-HPA structural atrophy), Attachment 2D (Hazan-Shaver anxiety × avoidance replacing the 1-D schema slot), Depression Multifactor (3-factor monoamine/disconnection/adversity model), ACE Tracker (Felitti 10-category), Defense Cascade (Kozlowska 5-stage neuroception), Attunement Tick (Tronick rupture-and-repair), Frontal Maturation (Sapolsky+Casey dual-system), Compliance Heuristics (Cialdini 6 principles), Flow State (Csíkszentmihályi + Mosing autotelic), Mating System (Buss/Chivers/Schmitt sex-distributed strategy), Otherness/Mystery (Perel erotic over-familiarity), Tend-and-Befriend (Taylor 2000), Challenge T (Sapolsky testosterone refactor), Berridge Wanting/Liking (incentive salience vs hedonic), Learned Helplessness (Seligman + Maier 2016), Social Pain (Eisenberger dACC overlap), Stereotype Content (Fiske warmth × competence), plus 17 module-wishlist extensions (life script, narrative archetypes, moral foundations, psychological flexibility, interoception, power inhibition, mentalization, sex-differentiated, social comparison, grief dual-process, embodied aging, Erikson resolution, SDT autonomy, post-sex neuro, performance layer, embodied signaling, money meaning, awe, play/humor, trauma transmission, family pressure). See the frontier section below.
Content modules · the open ledger
Now that the substrate floor is set, every additional dimension of real human life arrives this way: not as a new phase, but as a small configuration of the substrate that already exists. A non-exhaustive list of what's queued for the content layer. None are on a roadmap; all of them are the project.
STATUS · JUNE 2026. The roadmap above is a historical record; its milestones are reached. As of June 2026 the substrate-gap program is complete — 91/91 wishlist modules SHIPPED, the first time in project history. L8 / L10 / L11 are all live; the temporal-self and lifespan-affect layers (L15 / L16) are live; the inner-life depth stack reached oracle A. Today's scale: ~307 operator files, ~425 EventKinds, ~2,500 K-knobs, 1,500+ state fields, 381+ catalog rows. The frontier is no longer "what to build" but "what the oracle will pass": build-by-day at K=0, enable-by-oracle at K=1, depth over breadth.
The depth expansion is the current phase — and the bar it answers to is the oracle, not the gate.
The substrate floor closed long ago; the work since has been depth — bringing each mechanism live and proving it feels like a real person. That proof now runs on three oracle tracks, not a single telemetry score: the inner-life oracle (does the agent's mind read as coherent, varied, evolving, grounded — currently A), the chemical-trace oracle (does a per-agent chemical timeseries match 40 literature-grounded reference curves), and the soul debugger with its diversity meter (DDS). The overlays that began this program were the first move; ~307 operators and ~425 EventKinds later, the program is the project.
shipped this cycle
SHIPPED
(narrative atoms)
(post-classify)
files
at K=1
The Depth Expansion was launched after a verb-dominance audit flagged twenty-six of thirty-two slots as monoculture — REST 49–54% of every morning slot, 8am to 11:30am. The finding wasn't a bug. The simulation had accumulated rich substrate (thirty-plus biological fields, twenty-plus psychological) but the operators that read this substrate were sparse. Sleep was a single field. Jobs were three occupations on one schedule. Food was just hunger satiety.
The pivot was load-bearing: stop adding new substrate; deepen the operators that read what already exists. Each module in the program reads existing substrate richly, ships byte-identical at K=0, pre-registers all S2 sub-plans, and follows the P54B pattern — no new ACTIONS verbs. The verb-dominance monoculture readings in the Flight Director are the project's quietest accountability mechanism.
Which layer absorbed what.
Read the overlay list as the v2 patch beneath the v1 stack — same rungs, new furniture in most of them.
The chemistry layer absorbed the largest plurality. MW.sleep_architecture adds chronotype, sleep quality, and bedtime procrastination over sleep_debt. MW.weather adds continuous temperature and a SAD cohort. MW.exercise_fitness classifies exercise pattern over hobby substrate. MW.healthcare_depth adds chronic conditions, medication adherence, insurance, healthcare debt. MW.injury ships the cardiac-trigger pathway with scar conversion via rng.derive('injury', …) — the F0 keyed-sub-stream guarantee in action. MW.compulsive_content sits inert at K=0 awaiting a sign-off. GATE-INSOMNIA emits over sleep_debt ≥ 0.40 with a 7-day refractory.
The hormones layer absorbed two highly load-bearing additions. MW.repro HOT_FLASH emits vasomotor symptoms over the existing reproductive cycle for the post-menopausal cohort — emit-only, bitflag-latched, zero new RNG, byte-identical at K=1. MW.fertility_treatment adds an IVF/ART substrate (four bio fields, two operators, a new EventKind) shipped behind K_FERTILITY_TX_ENABLED=0 pending gate.
CA-2 and CA-4 closed under the same discipline. CA-2 leisure satiety (K=0.10) uses the foreground-discriminant pattern — PURSUE_HOBBY writes leisure_satiety the other verbs already write directly. CA-4 belonging (K=0.30) is the first non-foundational baseline in the project's history to improve bondRate's per-seed floor (0.3030 → 0.3607) through a measured belonging → affect homeostasis cascade. CA-1 (hunger satiation) did not yield to multi-slot refractory + bisection and was honestly reverted — the project's lesson on multi-path downstream coupling.
Three emit-only detectors give the narrator something to find when it walks the biography. TIE_DROPPED emits when relationships quietly lapse. DYAD_SENTIMENT reads warm/close/strained/hostile periodically from the H-map. BOND_MILESTONE emits per-agent on romantic-arc band crossings. All three byte-identical, all three present in the Tell-Life-Story dossier (below).
Tell-Life-Story. A button in the agent inspector reconstructs the selected agent's entire life into a flowing third-person narrative via a locally-running deepseek-r1:14b over Ollama. The persisted biography (every narratable event since birth) is serialised with named relationships and a per-kind dossier, bounded to roughly four-thousand tokens regardless of life length, then streamed into a scrollable overlay. Display-only. Read-side. Calibration-neutral. Byte-identical. The substrate never sees the prose come back.
The CP-1-REOPEN program probed seven previously-deferred couplings under the post-F0 16-seed mean gate. Five yielded; two remained PROBE_NULL_CHAOTIC and reverted. Shipped active: K_DEP_CRAVING=0.06 (YIELDED_PEAK, bondRate +0.0268), K_HUNGER_NEED_COUPLING=0.65, K_HYGIENE_NEED_COUPLING=0.65, K_BEAUTY_SELFWORTH_COUPLING=0.30 (YIELDED_BISECTED), K_UPKEEP_NEED_COUPLING=0.10. K_MORPH_MATE_COUPLING and K_LEISURE_NEED_COUPLING reverted — non-monotonic at probed K values. Recorded honestly; no tuning.
The world layer absorbed the long tail. MW.cityscape ships twelve new venue subkinds (NIGHTCLUB, DAYCARE, PHARMACY, GAS_STATION, BANK, SALON, COMMUNITY_CENTER, FARMERS_MARKET, VETERINARIAN, FUNERAL_HOME, PARK_PLAYGROUND, BEACH). MW.household_dynamics, MW.food_system, MW.city_economy (macro business cycle, inflation, rent, housing, labor tightness), MW.education_depth, MW.financial_life, MW.hobbies_depth, MW.commute_depth, MW.news_information, MW.friendship_lifecycle, MW.romance_depth, MW.parenting_depth, MW.daycare, MW.employment_depth (the latter inert pending gate). And under sign-off: LOC-MUSEUM-S2 activated K_MUSEUM_VENUE_COUNT=1 and re-baselined bondRate 0.4283 → 0.4420; LOC-THEATER-S2 held the new floor; LOC-WORSHIP-S2 regressed against prediction and was deferred. Honest result, recorded, not chased.
Every overlay above ships behind a K_*_ENABLED switch checked before any state read, so K=0 is a byte-identical no-op. The 16-seed Flight Director runs after wiring. If any of eighteen calibration means shifts band, the overlay ships inert with a documented structural-fix path. Of the twenty-one this cycle: thirteen ACTIVE byte-identical; four ACTIVE with measured improvement; four INERT pending dedicated bisection programs; two S2-activated under explicit sign-off; one reverted to inert (CA-1) under honest non-result. Never tuned to force an effect.
The full per-layer overlay matrix lives in the stratified protocol stack →
The third venue activation didn't ship. Recorded, not chased.
Museum and theater S2 cleared the 16-seed mean gate at K=4 on the first rung, no bisection, no co-tunes. Museum re-baselined bondRate 0.4283 → 0.4420; theater held the new floor at 0.4412. Both museum.visit and theater.show closed at ~2.18–2.19% PARTIAL.
Worship-S2 attempted the same enable. It cleared the formal 16-seed mean gate — but tripped the plan's own red flag: bondRate moved the wrong way, 0.4412 → 0.4242. The plan had predicted a Putnam social-capital increase. Diagnosis: it was a category error. bondRate is romantic-partner fraction, formed by scanning each unbonded agent's top-5 H-map neighbours; worship's social-capital benefit actually landed on meanTieCount (friend ties, +0.0356). The romantic bondRate dipped because routing carriers to one Sunday venue floods their top-5 neighbour list with same-faith co-attendees, crowding out the opposite-sex mate pool.
Reverted per feedback_validate_then_back_out. The fix is structural (H-map de-crowd in bonding.ts, or congregation pairing), not a prob-magnitude lever. Recorded honestly; deferred; not tuned.
The frontier moved. Here is the map, as it stands.
For a year the named gap was three layers: a per-dyad relational ledger the H-map threw away every tick, a reward physics that decayed flat instead of with prediction error, and a group identity field that didn't exist at all. All three landed — and all three are live. So are the layers that were “designed-not-built” a year ago: the temporal self, the inner-life stack, the lifespan affect trajectory. What remains gated is now a handful of sub-levers, not whole layers, and the queue itself is now proposed by the build system rather than a human — see the self-evolving engine below.
The relational ledger is the one most worth saying out loud. Almost every domestic pathology — the one who reaches and the one who doesn't, the chronic-neglect numbness, the invisible labour, the affair that arrived because someone stopped feeling seen — is a property of an asymmetric relationship. The substrate's H-map stored both directions, then averaged them away on a single line of code. That line is no longer load-bearing. The ledger reads each direction independently, and five narratable events fire from the asymmetry it preserves.
Reward physics and the social layer are live now; what remains is a sub-lever each. The in/out-group logit bias is the last load-bearing piece for political radicalisation, class reproduction, and the bond-by-belonging shortcut. Reward physics S3 — the variable-ratio reinforcement lever — is the trauma-bond mechanism every survivor knows the texture of without a name. Both wait on the oracle, not the calendar.
The map matches the territory now, in a way it didn't a year ago. The frontier didn't disappear; it climbed. And it is increasingly self-drawn: a read-only meta-analyzer (--self-evolve) now proposes the project's own next build, ranking candidates by (unblocking × realism × depth) ÷ build_cost against a ground-truth cross-check — the build system critiquing itself.
For a model that claims evolutionary determinism, the loop must close.
Children inherit genes (Mendelian recombination), schemas (0.30), personality + affect baseline, prenatal cortisol & scars, faith. Children resemble parents on many axes. STRONG.
Conception = K_BASE × fertility[i] × fertility[partner] × contraMult. There is no status, mate-value, or strategy term. A high-status agent does not out-reproduce a low one. WEAK / absent.
Conclusion. The evolutionary layer is currently descriptive, not selective — traits propagate by inheritance but are not selected by reproductive success. Closing the loop (coupling mate-value/status/strategy → conception so fitness-relevant phenotypes out-reproduce over long runs) is a deliberate, calibration-load-bearing extension. Explicitly deferred, not assumed.
Beneath the drives — eight evolutionary algorithms.
Most of the relational pathologies on the to-build list are expressions of one of eight proximate algorithms. Decoding by algorithm (rather than one row per phenomenon) reveals that jealousy, triangulation, coercive control, and mate-guarding violence are all the same program. The prime directive: model the proximate drive, never the fitness goal. Pathology is the gap between the ancestral heuristic and the modern supernormal cue.
Distress display → elicit aid; aggression → deter. Generates addiction-as-escape, chronic-stress numbness, defensive violence. Mismatch: chronic low-grade modern stressors peg an acute-threat system.
Conspicuous display → raise perceived value, deter rivals, attract mates. Generates workaholism, domestic power imbalance, conspicuous consumption. Mismatch: status treadmill decoupled from reproduction.
Courtship display → provoke investment. Generates limerence ("soulmate"), validation-seeking, the initiating side of affairs. Mismatch: screen-mediated validation loops as supernormal.
Vigilance, possessiveness, rival deterrence, dependency manufacture. The densest cluster. Generates jealousy, triangulation, coercive control, partner-driven isolation, mate-guarding violence.
♂ overt — contest, dominance, direct derogation. ♀ covert — reputation management, exclusion, information control. demo_sex currently never reaches decision.ts — wiring it there is the change.
Provisioning, protection, differential allocation by offspring value. Generates invisible labour, golden-child/scapegoat, parentification, empty-nest void.
The commitment device. Engineered to be sticky — including past the point of fitness benefit. Generates trauma bonding, honeymoon cycle, break-up→re-turn, codependency. The perverse strength is S3 (variable-ratio reinforcement).
Prosocial signalling, loyalty display → coalition membership. Generates tribalism, friendship maintenance, social activity as mate-signalling venue, the in/out-group flag itself.
Falsifiability discipline. A sim defeats strong adaptationism's unfalsifiable-just-so-story problem: either a proposed drive demonstrably raises sim-fitness (offspring/kin propagation) in this environment, or it is a named mismatch — and naming the mismatch is what generates the dark texture.
The DMN is inverted — and that is the narrative gift.
The model has no conscious reasoner for a subconscious to hide beneath. The decision softmax + hormones + needs + schemas already are the animal. So we do not add a deeper layer under the DMN; we add the DMN as a divergent cover story: the real cause is the winning logit, and the DMN narrates a flattering, different reason.
For the life-story feature this is the most novelistic move available — the story shows what she told herself vs. what actually drove her, and they don't match. Read-side, calibration-safe (S1).
The acid test — covert vulnerable narcissism.
The clinical pattern (fragile self-worth masked by grandiosity; hidden entitlement; covert manipulation; triangulation; validation-driven cheating; idealize→devalue→discard) maps onto the designed stack with no "narcissist type" flag.
Fragile / contingent SELF_WORTH schema (exists) = the core driver.
Asymmetric supply extraction = rel_attention_balance shows demand ≫ give.
Covertness = the divergence between the cover story ("I'm the victim / I just care so much") and the L8 ledger reality. The cover-story layer IS the covert mask — and the sim makes both inspectable.
Triangulation + validation-cheating routed via mate-retention & covert-competition algorithms feeding the existing bond_infidelity → AFFAIR path; intermittent reinforcement makes supply-seeking compulsive.
Honest caveat: this requires L8 + L10 + the cover-story / strategy-bias mechanisms to be built, and the pattern must emerge from a configuration we verify by inspecting agents — not assert.
From museum to engine.
To house the relational and group-identity substrate, the simulation needs to grow into a spatial 3D world, move its biography log onto binary storage, and replace the canvas with a real renderer — all while staying byte-identical at K=0. Six moves, three groups, one capstone.
The unification insight. Group tag (L11) and Cultural Substrate (L12) look like two frontiers. They are the same origin-seeding move: the neighborhood / family / class you are born into IS your initial group tag AND your initial economic/cultural/affective load. Built as one "born-into-a-configured-environment" substrate seeded at spawnChild. Consistent with the project's root-cause-origin-seeding discipline: don't assign a random tag; derive it from a genetics × environment handshake.
The honest caveat on "Total Determinism." Internal determinism ≠ external validity. The sim is deterministic given seed + params, but "models all of human reality" is the aspiration. A closed deterministic system can be perfectly self-consistent and still not match reality. Only calibration / validation (the 16-seed mean gate + the Flight Director honesty bar) makes it true rather than merely coherent. "Admin password to the soul" is really "a high-resolution, self-consistent topology pending validation."
Twenty-two patterns the substrate is being built to produce, not script.
None of these are coded as types. They fall out of configurations once the substrate is in place — and each one tells you which ship is one ship away, which needs a cluster, and which needs a layer that doesn't exist yet.
You have read this far because you were always going to.
The mood you are in right now, curious, defensive, quiet, irritated, vindicated, sad, is the output of a body chemistry you did not pick, reading a page you happened upon, in a life that has been narrowing toward this exact second since long before you were born. There is no version of you who could have closed the tab three paragraphs ago. The version of you that read on, read on. That is the only version there is.
F.A.T.E. does not prove free will is an illusion. The argument for that is older and better made elsewhere. What F.A.T.E. does is make the case visible. It puts the entire causal chain of a life into a state vector small enough to hash, and lets you scrub backwards through it until you find the gut microbe, the storm, the overheard sentence, that became, three decades later, a marriage or its absence, a remission or a relapse, a death by old age or a death by despair. None of those endings were chosen. They were computed.
The eight-rung cascade runs in order. The narrator runs second-to-last. Whatever the narrator just said about why you are reading this, why you feel what you feel about it, what you intend to do with it — that sentence was packed into dmn_idle_content after the seven rungs before the narrator had already decided what would happen. The story is not your authorship. The story is the receipt.
If you sat with that and felt something move, something small, a dread or a relief or a quiet rearrangement of who you thought you were, then the simulation has done its work without ever simulating you. The machinery did. It was always going to.
What is left, after the chain finishes producing its commentary, is a body that read these words. The body did not have to. The body did. Tomorrow it will not be exactly the same body, because the chain that ran today wrote itself into the chain that will run tomorrow. That is the only kind of becoming there is.
Nothing in this argument says you matter less. The architecture says you were never the thing doing the choosing. Those are different sentences.
"You will close this tab. That was always going to happen too."
The vocabulary, briefly.
The substrate has its own words. They are precise; the rest of the document leans on them. On desktop, hover any dotted term anywhere on this page for a definition; on mobile, tap.
Affect
The emotional state, modelled as VAD: valence, arousal, dominance. Distinct from mood (longer baseline) and emotion (a labeled cluster, produced by projection).
Affinity
Pairwise relationship strength: 0.4 · cos(ψᵢ, ψⱼ) + 0.6 · history valence. Drives layout, contagion, edge rendering. Computed on demand.
Appraisal
The operator that converts a perceived event into an affect change. Phase 1+ grounds it in neurochemistry.
Attachment
Relational pattern emerging from early-childhood parenting and ongoing relationship history. Classified post hoc by clustering. Never stored as a type.
B matrix
Per-agent perceptual filter, twelve by twelve. Eigenstructure classifies cognitive distortions: catastrophizing, mind-reading, confirmation bias.
Biography
An agent's complete life history as an append-only event log. Cold-stored in IndexedDB. Rendered as prose lazily by the vocabulary system.
Determinism
Fixed seed produces an identical history. All randomness routes through state.rng. Verified on every commit.
Event Bus
Phased per-tick queue of LifeEvent structs. Operators emit; later phases consume. The narratable flag double-duties as the biography sink.
HPA axis
Hypothalamus-pituitary-adrenal stress cascade. CRH → cortisol with negative feedback. Chronic stress damages feedback sensitivity → dysregulation.
LifeEvent
Atomic unit of biography. Carries kind, agent, tick, salience, optional involved agents and state delta. Prose is rendered lazily.
Operator
A registered tick step with declared reads/writes/emits/consumes. Pure function. Adding a domain is adding operators.
Projection
Pure read-only function from state to labels or aggregates. Big Five, attachment cluster, social graph edges. ESLint-enforced no-write barrier.
Salience
An event's impact magnitude, 0 to 1. |Δaffect| · (1 + β · novelty). Drives memory consolidation, biography filtering, trauma scarring.
Schema
One of six universal emotional templates — SELF_WORTH, ATTACHMENT, INTIMATE_OTHER, AUTHORITY, THREAT_RESPONSE, BELONGING. Each stores a valence/arousal target and a strength. The slots are innate; everything inside them is learned.
Schema lattice (MSL)
The Memory-Schema Lattice. Six schema slots per agent. Phase 31 of the build. The bridge between neurochemistry and long-term personality.
valence_target
The valence the schema has learned to expect. Encoding shifts it toward today's affect via a delta rule. Retrieval pulls today's affect back toward it. Stored at schemas.schema_valence_target[i*6 + s].
Retrieval pull
Δaffect = K_SCHEMA_RETRIEVAL_PULL · activation · strength · (target − current). The mechanism by which a learned template biases the body's present state. Older grooves cut harder.
Scars
Per-agent twelve-dim trauma signature. Accumulates from high-salience negative events. Permanently bends the B matrix.
Substrate
The minimal universal rule set, state arrays, operators, event bus, from which all higher-order phenomena emerge. Content is configuration.
Half-hour slot
P18 structure. Each tick (one day) is divided into 48 half-hour slots; slots 0–15 are deep sleep (skipped), slots 16–47 each fire a DECISION + EXECUTION pass with slot-aware activity. An agent makes 32 micro-decisions per day, not one.
Telemetry frame
A JSON snapshot of population aggregates captured every 50 ticks. Each metric is graded against a published reference range (WHO, NIMH, CDC, OECD, Dunbar). Out-of-range frames emit paramSuggestions, direction and magnitude, that the calibration loop acts on. Telemetry is necessary but not sufficient: a distribution can sit in band while the inner life is hollow. The oracle, not the telemetry frame, is the acceptance gate for depth.
Content module
Anything that ships above the substrate layer: pets, media, body image, religion, addiction, online life. A content module is a registered operator and a vocabulary file, never a new architectural layer.
Discipline
The three rules: substrate before content, observable before calibrated, emergence over scripts. Every operator, every module is screened against them.
ψ (psi)
Per-agent six-dim social embedding. Cosine similarity approximates the affinity at zero history. Updated by Hebbian rule.
π (pi)
Per-agent action policy weights, shape N × 15 × 17 (ACTION_COUNT = 15). Action selection is softmax over π · features. Now updated by policy gradient every tick — the agent genuinely learns from outcomes.
Vocabulary
JSON-table-driven prose generator that maps event kinds plus state to readable text. The Tell-Life-Story feature now renders whole biographies through a locally-run deepseek-r1:14b over the same event log.
Preoccupation stack
The inner-life readout: 23 topics compete every half-hour for what is on an agent's mind, grounded in episodic memory and neurochemistry with habituated decay. Whichever wins becomes the thought the agent would report. Stored in det_preoccup_*.
Bond presence
A tonic background channel (det_bond_presence) so loved ones surface without winning the foreground competition. Weighted by bond type — child 1.00 > partner 0.85 > parent 0.55 > sibling 0.45 > friend 0.35. The fix that took the inner-life oracle to A.
K-gate
The K_* switch on every coupling. At K=0 a mechanism is built but inert — byte-identical to a sim without it. At K=1 it is a live causal force. ~2,500 K-knobs govern the substrate; enables are sign-off gated.
Oracle
The realism judge that decides whether a mechanism goes live. Three tiers: a deterministic invariant registry, a DeepSeek LLM realism judge, and a human Mission Controller. The inner-life oracle currently scores A (up from F).
Lifespan affect trajectory
The mechanism by which mood is a moving floor, not an event: belonging-deficit drives depression (F1), an allostatic integrator sets the mood-setpoint over years (F2), and a ~8% cohort shows prolonged grief (F3, pending enable). Agents change across a lifetime.
Tag scaffold
Every action is tagged (bright / dark / relational / discharge) with two narration hints: Mode-O (the true story) and Mode-C (the agent's cover story). The gap between them — the soul gap — is readable and oracle-scored.
Thirteen objections, dissected in the order they typically arrive.
A claim this large attracts a well-rehearsed catalogue of replies. The catalogue is not random. It moves in a specific psychological order — from the gut reflex, through the consequentialist panic, into the personal grievance, and finally into the most sophisticated retreats — and at every level the objection is itself a substrate event. Every defense in this list was produced by the chain it is attempting to refute.
"I feel like I'm choosing. That feeling is data."
The feeling is data about where the narrator runs in the pipeline, not data about who is doing the choosing. The Default Mode Network is L13 — the second-to-last layer. It composes the sentence "I chose this" after layers one through twelve have already moved the body. The feeling cannot help but feel like authorship; that is what L13 is structurally for. The architecture of the feeling and the architecture of the choice are different objects. You are reading the receipt and mistaking it for the transaction.
dmn_idle_content packed at APPRAISAL/30; softmax samples without consulting dmn_idle_content"Philosophers have argued about this for two thousand years. You won't resolve it in a webpage."
F.A.T.E. is not trying to win the philosophical argument at the level the philosophical argument is being conducted. Philosophers can't resolve it because they're trying to identify free will at the level of phenomenology and intuition. F.A.T.E. moves the question down a level: build a substrate from which the phenomenology emerges as a projection, then point at the substrate and say here is what the chain looks like when you can address it line by line. We are not refuting compatibilism. We are offering an engineering exhibit that compatibilism's "freedom" is the longest, deepest, most thoroughly determined chain in the room.
"Quantum indeterminacy at the synapse leaves room for genuine freedom."
Randomness is not freedom. Randomness is the chain misfiring. If a quantum event influences a neuron, that neuron just executed instructions written by the universe's noise floor, not by you. A free-will believer should be hoping the chain is deterministic — at least then there's a "you" the chain belongs to. Quantum freedom dissolves the chooser entirely: there is now no agent, only a system being randomly nudged. A coin flip is not a decision. The universe's coin flip is not your decision either.
"Consciousness cannot be reduced to mechanism. There is something it is like to be me."
Maybe. F.A.T.E. does not claim to reduce consciousness. F.A.T.E. claims consciousness has no causal lever. The DMN composes the experience. The experience is real, whatever "real" means at that level. The experience is not driving. Whether qualia "feel like" something is a separate question. Whether qualia cause anything (whether the felt-quality of red ever entered into the softmax that sampled your next action) is the question the substrate answers. The answer is no. Emergent is not the same as sovereign.
"This is nihilistic. If nothing was chosen, nothing matters."
Nihilism is the claim that nothing matters. The substrate says: mattering is itself a substrate event. The felt-quality of mattering is a SELF_WORTH activation co-firing with valence and arousal. It is not less real for being substrate. The cruelty of the addict's craving is substrate. The warmth of holding your child is substrate. The pull of the song that returns the year is substrate. All of it is real. None of it required free will to be real. The architecture is the meaning.
"But people change. So free will must exist somewhere in there."
Change is in the architecture. P35 BDNF windows reopen schema plasticity. P31 retains a 0.028× adult floor. P49 epigenetic re-expression. Therapy. Psychedelics. New cue-field edges Hebbian-encoded by repeated exposure. Change happens — because the substrate has those mechanisms, not because someone "chose" to change. The change is the architecture firing. The "I decided to change" is L13 composing the after-the-fact prose for the firing. Look at people who change. Then look at what surrounded them when the change happened. The mechanism is always there.
"If there's no free will, why try? Why do anything?"
Trying is what the substrate produces. The motivation to try is a configuration of SELF_WORTH + tonic dopamine + identity-coherence + a cue field that has reinforced forward-momentum. People who say "why try" are running a substrate configuration that has stopped retrieving forward-momentum. That is not a philosophical position; it is a clinical description of an attractor. The substrate is trying, or it isn't. Reading this argument doesn't change which. If you finished this paragraph and reached for another, that was the substrate trying. If you closed the tab, that was the substrate doing what the substrate was configured to do. Neither was up to you in the way the question presupposes.
"You only believe this because of your own upbringing."
Correct. And that is the demonstration, not the refutation. I am the same kind of object F.A.T.E. simulates. The configuration of my substrate produced this argument. The fact that it did is precisely what the argument predicts. If my belief were instead authored by free will, the argument would have a problem. It does not.
"If we say this out loud, society collapses. People will do whatever they want."
This objection has three failure modes, stacked.
First — the aristocracy of epistemology. The argument concedes the truth-value of the claim and then asks to suppress it for the public's own good. That position is incoherent: either it is true and the public deserves it, or it is false and the suppression is unnecessary. There is no "true but dangerous" coherent stance for a society of adults.
Second — accountability does not require desert. Containment, deterrence, incapacitation, and rehabilitation all still work. What stops working is punishment-as-moral-payback. That is a feature, not a bug. The dangerous thing about giving up desert is the system that was built on it; not the people who live under it.
Third — the kicker. The free-will premise has been running, as policy, for several centuries. Look at the results. Mass incarceration. The drug war. Contempt for the poor. Punitive schooling. Workhouses. Eugenics, when it was popular. The danger critique presupposes the free-will premise has been producing good outcomes. It has not. It has been producing exactly the outcomes a substrate-blind population running a substrate-blind policy stack would produce.
"I've overcome too much for you to tell me none of it was mine."
This is the most careful one. The reply is not "actually, none of it was." The reply is more precise than that.
A tree pushed up through concrete. The growing was real. The roots were real. The pressure-against-resistance was real. The years it took were real. The shape of the tree is downstream of the cracks the concrete gave it. What's taken away by this argument is only the premise that another tree in the same crack could have done it and chose not to. Your growing is yours in the only sense growing can ever be yours: it is what your substrate produced under the conditions it encountered. The substrate is not separable from "you" — it is you. The work is real. The persistence is real. The pride, if you carry it, is real. What is incoherent is the comparison to the imaginary version of you that had the same substrate and the same conditions and chose not to grow.
The cost of carrying this argument is one specific kind of pride: "I did this and others couldn't because I was stronger." What replaces it is something quieter: "This is what my substrate produced under what my substrate was given." That second sentence is harder. It is also true.
"Recent neuroscience walks back Libet. Consciousness has a veto."
The "veto" is still in the chain. Late-stage inhibition of an action is a logit shift, not a separate causal layer. If you vetoed the act, the veto was also produced — by the same substrate that produced the preparation. The Soon/Haggard work does not restore free will; it shows the precise mechanism by which late-stage inhibition can override early-stage preparation. Both stages are operators. Both stages run on state the body did not author. "The body can stop itself" does not imply "the body is free." The stopper is in the chain.
"Compatibilism resolves this. Free will is acting from your own desires, free from external coercion. Done."
Yes. Acting from your own desires. Whose desires? Configured by what? When? The compatibilist position is true and damning. The more "freely" you act by their definition, meaning, the less external coercion is present at the moment of action, the more thoroughly you are determined by the longest, deepest chain in the room: your own substrate. Compatibilism does not refute the claim; it reframes "authenticity" as a measure of substrate depth. The freest agent by the compatibilist test is the agent whose substrate has been most thoroughly written by their history. That is the chain. It is just being praised.
"I'm not being defensive. I just rationally disagree."
This is the deadliest one, and it gets the most precise answer F.A.T.E. can offer. High narrative_certainty does not fire as anxiety. It fires as settled conviction. The substrate cannot tell the difference between "I have considered this and disagree" and "I have not considered this and am protected by the smoothness of my prior schemas." The calm with which you are reading this paragraph is not evidence that you have engaged the argument. It is evidence that your identity_certainty is at high strength on the question — which means the substrate has had a long time to encode the position. The most settled positions are the ones the substrate has had the longest to reinforce. Your substrate is doing what mine is doing. We are running different reinforcement histories. One of us is right about the underlying mechanism, but the calm cannot tell you which.
Every defense above was, at some point, my own. Every defense above was produced by the same machinery that produced this document. The objections are in the chain. The chain produced the objections. The objections do not exit the chain. Neither do you. Neither do I. Neither does this argument.
"You will not argue your way to free will from inside a substrate that is doing the arguing."
Where the substrate is currently wrong, incomplete, or honest about being wrong.
Every architecture is also a list of the things it cannot yet do, the things it does badly, and the things it does well enough to expose the next gap. F.A.T.E. is no exception. The list below is the project's honest answer to the question where is this still broken? — separated by severity, each one named, each one with a documented direction of fix. Some are technical. Some are philosophical. One is a self-inflicted wound the project has not yet decided whether to heal.
Grief had no first-class operator — now resolved
Partner death once only emitted a GRIEF_ONSET event and a one-shot mh_ptsd spike. Grief now runs as a dedicated operator: a per-agent grief accumulator with its own bio signature (cortisol oscillation, sleep disruption, sustained low serotonin, ATTACHMENT partial-decay) and slow decay, intrusion-coupled to the P32 episode pool. On top of it sits a ~8% prolonged-grief cohort whose grief barely decays — Bonanno heterogeneity falling out of a deterministic hash, not a tuned flag.
RESOLVED operators/social/grief.ts ships in the SOCIAL_BONDS phase with a K_GRIEF_* family; the F3 prolonged-grief cohort is built, enable pending final oracle confirm.
Inflammatory pathway in depression is partially absent
Gut → systemic inflammation → cytokines crossing the blood-brain barrier → microglial activation → depressive valence is well-documented in the clinical literature. F.A.T.E. models gut_inflammation as a state variable and lets it influence cortisol slightly, but the cytokine pathway is queued at K_GUT_CYTOKINE_DEPRESSION = 0. The depressive attractor currently passes calibration through the cortisol-only path, which is correct in direction but compressed in mechanism. A real inflammation-driven depression in a real human is not currently distinguishable from a stress-driven one in the simulation.
FIX add cytokine variables to the bio namespace; wire gut_inflammation → cytokines → mh_depression direct coupling behind a K-gate; run the 16-seed Flight Director gate; ship inert if calibration shifts.
Sex-differential mental-health calibration is under-resolved
P47 hormones ship with postpartum estrogen crash and PMS effects, but the population-aggregate depression rate does not visibly separate by sex_chromosomes. Real-world data shows roughly 2× female lifetime depression prevalence; the simulation under-produces this. Probably under-tuned coupling between estrogen, progesterone, and the depression gate, plus the absence of menstrual-cycle-coupled affect variance.
FIX targeted recalibration of K_PMS_DEPRESSION_NUDGE and the postpartum window; multi-seed gate with sex-disaggregated reporting added to telemetry.
Sleep architecture is a single scalar
sleep_debt is one number. There is no REM / SWS distinction, no sleep-onset latency, no fragmentation. P32 sleep consolidation runs in DAY_END as an undifferentiated replay step. Real consolidation is REM-biased for emotional content, SWS-biased for procedural content; the simulation conflates them. The Mara case and the depressive attractor are robust to this, but a future "insomnia" content module cannot be expressed in the current sleep substrate.
FIX expand the sleep_* namespace to multi-stage; route P32 consolidation through stage-specific replay rules; add insomnia as a content module on the new substrate.
The vocabulary system partially undoes the demonstration
This is the most philosophically significant failure on the page. The Biography tab renders agent lives as readable prose by selecting templates from narrator.ts. The templates are too coherent. A real human life, recalled honestly, has gaps, contradictions, partial recall, and stretches of un-narratable middle. The vocabulary system smooths all of that into story-arcs. The result is that the Biography tab is doing for the agent's life what the DMN does for live experience — making the substrate look more lawful than it actually was. Should this be fixed (make biographies less coherent, match the real human pattern) or honored (the DMN of the reader will smooth it anyway, so let the rendering layer demonstrate that)? The project has not decided.
DECISION PENDING the substrate is honest; the rendering layer is currently a lie of omission. The fix and the non-fix are both architecturally valid.
Religion / spirituality had no operator — now resolved
The substrate always supported it; the module is now built. MW.faith ships faith_level as a live field — ritual contexts as cues, congregation amplifying BELONGING, deity targeted by the AUTHORITY schema — with faith inherited across generations. The sketch in EXPANSION_ROADMAP.md is shipped content, no longer a gap.
RESOLVED MW.faith shipped (K=1 LIVE); emergence handles the rest.
The newest depth classes are built but not yet oracle-cleared
Honesty about the frontier: the bond-presence class for non-partner ties (children, parents, siblings as tonic background presences) is built but not yet oracle-validated to the bar partner-presence cleared. The F3 prolonged-grief cohort is built but its enable has not yet passed final oracle confirm. And place-value-as-location-memory — the system that tags where reward happened — is live but still maturing; its contribution to decision is real but under-calibrated.
STATUS each waits on the inner-life / chemical-trace oracle, not the telemetry gate, before it is called done.
Sparse H-map will not scale
The interaction history H is a Map<edgeKey, Interaction>. Fine at N=50, comfortable to N=200, breaks somewhere around N=500–1000 from GC pressure. ADR-008 deferred the CSR migration to the scaling track. Not a correctness bug; a scaling bug.
FIX CSR (Compressed Sparse Row) typed-array pair when the scaling track opens. Behaviorally identical.
Layout is O(N²)
Pairwise force-directed positions. Fine at N≤50. At N≥200 the UI thread chokes. Spatial-grid optimization is queued for the scaling track post-content-modules. Cosmetic-only at current N.
FIX spatial-grid layout on the existing P36 location table; OffscreenCanvas for the city render.
Cross-browser determinism is not guaranteed
Float-determinism holds within a single JS engine. V8 (Chrome, Node, Edge) is identical. Firefox and Safari may diverge in the last ulp on specific transcendental ops. ADR-005 acknowledged this as a known limitation, not a bug. Replay works perfectly within a browser instance; cross-browser save-files are not portable.
ACCEPTED documented as out-of-scope. WASM hot-loops would resolve it but are deferred to the scaling track.
NOTE. The Flight Director's anomaly scanner can find F03, F07, F08 from telemetry. It cannot find F01, F05, or F06 — those require a human reader who knows what a real life looks like and what a real biography reads like. The scanner is the floor of honesty. It is not the ceiling.
What F.A.T.E. inherits, what F.A.T.E. departs from, and the gap F.A.T.E. occupies.
No project this size is built in a vacuum. The intellectual lineage matters not because it grants permission to build but because it locates the work precisely: here is what others have already done; here is where they stopped; here is the gap that justifies one more attempt. The list below is the seven traditions F.A.T.E. is most indebted to, with an honest note on where each one stopped and what F.A.T.E. is doing that those traditions did not.
Schelling · Axelrod · Epstein
Got right what nothing before them did: emergent macro-patterns from simple agent rules. Segregation falls out of a 30%-similar-neighbor preference. Cooperation falls out of iterated prisoner's dilemma. The Anasazi collapse falls out of household-level economic decisions on a hostile landscape.
where the tradition stopped
The agents stayed thin. Utility maximisers with rules. No biology, no developmental upstream, no memory architecture, no schemas, no DMN. The macro-pattern was the emergence; the agent was a vehicle for the rule. F.A.T.E. does the reverse — the agent is the substrate, and the macro-pattern is a projection of running 50–500 of them.
Derk Pereboom
The philosophical scaffolding F.A.T.E. is the engineering instance of. The manipulation arguments. The case for "non-reactive moral responsibility" — accountability without desert. The argument that the consequences of disbelief in free will are tolerable, possibly improving.
where the tradition stopped
Verbal argument all the way down. The case is made by analogy and intuition pump. F.A.T.E. is what happens when you try to build the picture Pereboom argues for — line by line, layer by layer, with a calibration gate. The engineering version of his philosophical case.
Karl Friston · Predictive Processing
The brain is a prediction-error-minimising machine. Perception is a generative model running forward and being corrected by sensory data. Action is a special case of perception. The B-matrix in F.A.T.E. is a compressed shorthand for this — a per-agent prediction kernel that warps incoming events before appraisal touches them.
where F.A.T.E. departs
F.A.T.E. runs the simplified version because the full Friston framework is intractable at population scale. The trade-off is acknowledged: F.A.T.E. buys tractability at the cost of biological fidelity at the perception layer. The direction of the chain is correct; the precision is not yet Friston's.
Daniel Wegner
The empirical foundation for the DMN-as-narrator architecture. The author of the post-hoc rationalization framing F.A.T.E.'s ADR-029 cites verbatim. The finding that "the experience of consciously willing an action and the action itself are produced by different mechanisms" is the experimental version of what F.A.T.E. makes architectural.
where F.A.T.E. extends
Wegner showed the mechanism. F.A.T.E. places it precisely in the tick pipeline. The DMN is L13. It runs after the body has already moved. Every claim Wegner argued for in human subjects is, in F.A.T.E., a phase-order invariant.
Huys · Maia · Adams · Friston (clinical)
The closest existing scientific tradition to F.A.T.E. Substrate-level models of specific disorders. Bayesian models of paranoia. Reward-prediction-error models of addiction. Aberrant-precision models of psychosis. Mechanistic, falsifiable, tied to neuroimaging.
where the tradition stopped
Models the disorder, not the developmental upstream that produced it. A computational-psychiatry depression model takes the depressed brain as a given and explains its dynamics. F.A.T.E. asks the prior question: what configuration of genes, prenatal cortisol, attachment, cue field, identity, and chronic-window EMAs produces the brain that the disorder model then explains? Computational psychiatry is the diagnosis layer. F.A.T.E. is the developmental layer beneath it.
Gary Drescher
The mechanistic-meaning reconciliation F.A.T.E. makes implicitly. Drescher's argument that a deterministic universe still contains genuine meaning, genuine ethics, genuine choice-in-the-functional-sense — provides the conceptual room for F.A.T.E. to assert "the chain produces what it produces; the producing is still real."
where F.A.T.E. inherits
The whole "no free will but meaning is preserved" stance traces back through Drescher. The closing argument in section 19 of this page is in his lineage.
What none of the above did
A unified, deterministic, multi-generational, full-lifespan, full mind-body substrate where every clinical category — depression, addiction, PTSD, anxious attachment, executive burnout, hypergamy, narcissism, the depressive attractor, the addictive loop — is a projection of the substrate, not a stored type. No one had built this. Schelling/Axelrod kept agents thin. Pereboom argued verbally. Friston is too dense for population scale. Wegner mapped the mechanism but didn't build a substrate. Computational psychiatry models specific disorders, not the developmental upstream. Drescher argued the meaning was preserved but built no instance.
F.A.T.E. is the engineering exhibit that fills the gap between the philosophy, the neuroscience, the computational psychiatry, and the agent-based modeling. It is not better than any one of them at its specialty. It is the thing that lets you stand at the population level, drill into one agent, watch them age, examine their schema content, trace the chronic-window EMAs from their grandmother to their current cortisol — all in the same deterministic substrate. That is what is new.
NOTE. Robert Sapolsky and Sam Harris are deliberately not on this list. Their work is in F.A.T.E.'s spirit, both have argued the no-free-will case publicly and well, but they are communication vehicles, not intellectual contributions to the architecture. If you arrived at F.A.T.E. through their work, that is the chain doing what the chain does. Their absence from this list is precision, not slight.
What F.A.T.E. does not yet know, said honestly.
Every architecture rests on a list of questions it has not answered. Some are technical and will close with the next phase. Some are methodological and may not close until a collaborator with a different training opens them. One, the last one, is philosophical and may not close at all. The list below is the project's honest answer to the question where is this still unresolved?
Is the post-hoc biography rendering an honest representation or a fix to be removed? The Biography tab selects vocabulary templates by reading final state and matching the most fitting narrative arc. ADR-029 framed this as a feature — the agent "narrates herself" the way humans do. But the rendering is too smooth. A clinical reader can see the seams.
needsnarrative psychology collaboratorShould the vocabulary system be made less coherent on purpose? A real life recalled honestly has gaps, contradictions, partial recall, un-narratable middle, and contested events. The current vocabulary system smooths all of that. If we render gaps explicitly, the simulation becomes harder to read but more philosophically honest. Is honesty here a feature or a usability bug?
needswriter who has read clinical case notesHow would female agents diverge from male agents in calibration if the hormone coupling were fully tuned? P47 ships with postpartum and PMS coupling at conservative magnitudes. Real-world data shows 2× female depression prevalence, 1.5× anxiety. The simulation under-produces both. The fix is straightforward (tune the K_*); the question is whether to also widen the reference bands to honor population variation, or to keep them tight and report the residual gap as a deliberate failure mode.
needscomputational epidemiologistAre the calibration gates validating outputs or mechanisms? This is the most fundamental methodological question on the page. The Flight Director checks that depression rate matches WHO. It does not check that the agents who are depressed got there for the right reasons. A simulation can match an aggregate statistic for the wrong reasons. The fix is mechanism-level validation — e.g., the depressed agents should preferentially be the ones with high chronic_cortisol_365 AND low childhood ATTACHMENT warmth AND high FKBP5 expression. F.A.T.E. has not formally implemented mechanism-level gates yet.
needscausal-inference statisticianThree falsifiable predictions F.A.T.E. has not yet formally tested: (a) identical-twin divergence should track chronic-window EMAs more strongly than acute events; (b) the depressive attractor should hit at population fractions matching country-level Gini × economic-shock interaction; (c) sleep-consolidation removal should specifically disrupt next-day schema retrieval, not affect today's encoding. Each is testable inside the simulation today. None has been published.
needsgraduate student or sabbatical collaboratorWhen does N=50 stop being representative of a society? The current calibration target is N=50 for run-time tractability. Population dynamics, cultural diffusion, epidemic-style mood contagion, generational schema shift, almost certainly break or distort at small N. The scaling track addresses the engineering question (40k via WebGL). It does not address whether the calibration ranges themselves need re-derivation at large N.
needspopulation dynamics modelerIs the anxietyRate LOW band post-P53 evidence that the causal chain is backwards? Anxiety calibrates low (0.040 vs 0.14 target) even after the calibration program. Speculation: maybe the chain is not cortisol → rumination → anxiety, but anticipation → cortisol → rumination — with anticipation as the initiating loop. If so, the P50-S3 anticipation coupling that ships permanently inert is precisely the missing piece, and a different mechanism than the one currently rejected might restore the band.
needsclinical anxiety researcherHow would F.A.T.E. behave at N=10,000? The scaling track answers the engineering question. It does not answer whether emergent attractors that exist at population scale appear differently — cultural epochs, generational schema cohorts, the propagation of beauty ideals, the formation of class consciousness. Some of these may not be visible at N=50 at all. The scaling track is partly about finding emergent behaviour we can't currently see, not just performance.
needsWebGL renderer + a long weekendIs the philosophical claim stronger than the simulation can support? F.A.T.E. simulates substrate that produces behaviour. It does not claim to simulate qualia, and it does not claim to refute their causal efficacy through architecture alone. The closing argument of section 19, "the chain produces consciousness without remainder", may be stronger than the engineering exhibit warrants. Is this an honest extension or a category error? The project does not currently know.
needsphilosopher of mindIs winner-take-all foreground sufficient, or does the mind need more background channels than bond-presence? The inner-life stack is a competition: 23 topics, one winner per tick. Bond-presence was the first admission that some things — a loved one's standing warmth — are background, not contestants, and adding it took the oracle from C to A. That raises the question of how many other tonic channels a real mind runs underneath the foreground — dread, duty, a body in pain — and whether each needs its own non-competitive lane.
needsphenomenologist + cognitive architectCan the LLM realism oracle be calibrated against real clinical populations, not just text corpora? The inner-life oracle is a DeepSeek judge trained on the internet's account of how people think. That is a corpus, not a clinic. It may share the same blind spots the training data has — over-narrating, under-representing the un-narratable. Grounding the oracle against actual clinical case material (with all the ethics that implies) is the difference between "reads plausibly" and "matches how people actually are."
needsclinical psychologist + ML evaluation leadWhat is the right depth-first ordering for the remaining lived-arc gaps? F3 (prolonged grief), F4, and F5 are built or specced but not yet enabled. “Depth over breadth” says enable the one that most raises lived-experience realism per unit of build risk — but that ranking is exactly what the self-evolving engine now proposes, and the open question is whether to trust its (unblocking × realism × depth) ÷ build_cost ordering or override it with human judgment about what a life most needs next.
If you have read this far, you may belong to one of the collaborator categories listed in the right column. If so, please get in touch. The Flight Director gate is impartial about who proposes the next substrate phase. It only cares whether the gate stays GREEN. Bring a question.
"A project that knows what it does not know is a project that is going to find out. A project that claims to know everything is a project that has stopped looking."