What this uses
src/sim/morale.ts
src/sim/condition.ts
src/sim/wound-aging.ts
src/sim/impairment.ts
src/sim/combat.ts
src/sim/events.ts
docs/use-case-validation.md
Narrative stress measures the gap between what the physics demands and what the story requires. A high-stress beat is one where the simulation outcome is unlikely given the characters' physical state — e.g., a badly wounded character landing a decisive killing blow against a fresh opponent.
Tier 3 — planned A formal src/sim/narrative.ts module is not yet implemented. The beat editor and push scale on this page are design-stage tools using only in-browser state. The underlying primitives that would power a real API (morale.ts, condition.ts, wound-aging.ts) are stable Tier 1. Track STABLE_API.md for promotion.
Examples from fiction
Recognisable narrative beats calibrate the push scale against stories readers have already accepted. Higher push = more suspended disbelief required.
natural · 0.05
Gladiator — Maximus opens fight cautiously
Fresh combatant, high stamina, clear tactical read. Physics fully supports the outcome.
low push · 0.28
The Hobbit — Bilbo escapes goblins through luck and speed
Unlikely but physically possible — small, fast, and unarmoured vs. disorganised enemies. Acceptable without justification.
medium push · 0.52
Kill Bill Vol. 1 — The Bride fights 88 opponents while recovering from coma
Extreme skill and adrenaline partially justify this, but the physics demand special circumstances (story-native training). Needs in-world grounding.
high push · 0.74
Braveheart — Wallace fights on after catastrophic abdominal wound
Classic plot armour. Severe internal bleeding would cause consciousness loss within minutes. The story accepts it as a mythic finale. Suspension of disbelief required.
implausible · 0.92
Dragon Ball Z — Goku fights at full power with multiple fatal wounds
Explicit genre contract with the audience: physics are suspended. Requires an in-world override (ki, magic, divine intervention). Ananke would assign near-zero probability to every beat in this sequence.
Narrative push scale
0.0 – 0.2NaturalOutcome is well within what the physics supports. No narrative armour required.
0.2 – 0.4Low pushOutcome is unlikely but plausible — high-skill roll or lucky seed. Acceptable in fiction.
0.4 – 0.65Medium pushOutcome requires special circumstances (adrenaline, environment, artefact). Needs justification in story.
0.65 – 0.85High pushPhysics strongly contradicts outcome. Classic plot-armour territory. Suspension of disbelief required.
0.85 – 1.0ImplausibleSimulation gives near-zero probability to this outcome. Explicit narrative override needed (magic, divine intervention).
Beat sequence editor
A beat sequence describes a scene's narrative arc. Each beat has a type, description, and estimated narrative push. Aggregate push across the sequence flags high-stress scenes. Add beats below, or delete individual beats by clicking ✕.
1
setup
Knight and mercenary face off, equal footing
0.05
2
tension
Knight takes a deep cut to the sword arm
0.10
3
escalate
Mercenary presses advantage — rapid combos
0.15
4
reveal
Knight draws on rage — attacks despite wounds
0.42
5
climax
One-hit KO from critically injured combatant
0.78
6
resolution
Victor collapses immediately after — physics reasserts
0.08
natural
aggregate push: 0.26 — low push
implausible
Try this
- Map your scene's key moments to beat types. Assign push estimates based on how badly injured the protagonist is at each moment.
- Keep aggregate push below 0.35 for a grounded story. Above 0.65 you will need in-world justification (magic, poison, special training).
- Run the equivalent scenario in the Playground with different seeds to see the natural probability distribution for the scene's outcome.
- Use high push consciously: reserve the 0.7+ range for the story's defining mythic moment — not every chapter.