Implication beats simulation — imagination renders (Will Wright)
Pro scans all 5 files and shows the line behind each finding
Scanned 10/6/2026
npx -y skills add SimHacker/moollm --skill simulator-effect --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Simulator Effect?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/simhacker-simulator-effect)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: simulator-effect
description: "Implication beats simulation — imagination renders (Will Wright)"
license: MIT
tier: 0
allowed-tools: [read_file]
protocol: SIMULATOR-EFFECT
related: [moollm, society-of-mind, manufacturing-intelligence, k-lines, yaml-jazz, empathic-templates, constructionism, procedural-rhetoric, mind-mirror, adversarial-committee, speed-of-light, needs]
tags: [moollm, meta, philosophy, sims, design, k-lines, will-wright]
---
# Simulator Effect Skill Specification
> *Implication is more efficient (and richer) than simulation.*
## Purpose
The Simulator Effect skill provides principles and methods for leveraging imagination -- human or LLM -- to fill gaps in sparse specifications. Instead of exhaustive simulation, provide seeds that activate rich mental models.
---
## Core Methods
### IMPLY
Instead of simulating, imply.
**Input:** Minimal specification (name, archetype, sensory details)
**Output:** Rich interpretation filling gaps coherently
```yaml
# Input
character:
archetype: "grizzled bartender"
# LLM interprets as
bartender:
name: Grim
appearance: weathered face, salt-and-pepper beard
manner: laconic, speaks in short sentences
knowledge: has seen every adventurer who passed through
secrets: knows where the treasure is, will not say
```
### SEED
Provide imagination seeds rather than exhaustive specification.
**Seed types:**
- **Archetype** -- "bartender", "sage", "trickster"
- **Sensory detail** -- "smells of woodsmoke"
- **Mystery** -- "the locked door no one mentions"
- **Tension** -- "she avoided his gaze"
- **K-line** -- "Sagittarius", "melancholy", "playful"
```yaml
room:
seeds:
archetype: "mysterious pub"
sensory: "warm despite the draft, old ale smell"
mystery: "the back room that requires proving yourself"
tension: "regulars glance at newcomers, then away"
```
### SPARSE
Deliberately omit details to invite imagination.
**Anti-pattern:**
```yaml
# Over-specified -- leaves nothing to imagine
room:
name: The Gezelligheid Grotto
tables: 12 oak tables, 3 round, 9 rectangular
chairs: 48 chairs, mix of styles
bar: 15 feet long, mahogany with brass rail
taps: 8 beer taps, 2 cider, 1 mead
lighting: 6 candelabras, 12 wall sconces
floor: wide oak planks, worn in traffic paths
# ... 50 more lines
```
**Pattern:**
```yaml
# Sparse -- imagination fills the rest
room:
name: The Gezelligheid Grotto
atmosphere: warm despite the draft
smell: woodsmoke and old ale
notable: the back room no one talks about
```
### ARCHETYPE
Use cultural archetypes as shorthand for personality packages.
**Archetype categories:**
| Category | Examples | What They Activate |
|----------|----------|-------------------|
| Zodiac | Sagittarius, Cancer | Full personality clusters |
| Role | Bartender, Sage, Trickster | Behavioral expectations |
| Species | Dog, Cat, Monkey | Disposition, physicality |
| Profession | Detective, Librarian, Chef | Knowledge, methods |
| Trope | Grizzled veteran, Naive newcomer | Story function |
```yaml
# One word does the work of a personality matrix
character:
archetype: sagittarius_explorer
# Implies: adventurous, philosophical, blunt, optimistic
```
### JAZZ
Use YAML comments as imagination seeds (per [yaml-jazz](../yaml-jazz/)).
```yaml
playful: 9
# not born playful -- BECAME playful by choice
# 122 years of grim taught me joy is rebellion
melancholy: 6
# higher than I first admitted
# the silver streaks glow when I am sad
```
Comments are read by the LLM. They shape interpretation. They are not documentation -- they are code.
---
## The Two Directions, and the Round Trip
The effect runs both ways, and it is one mechanism with two hosts rather than two
effects. Wright named the human direction. The machine direction is the same prior
supplying structure the signal did not contain, which is how
[`NOISY-CHANNEL.md`](../../designs/NOISY-CHANNEL.md) identifies a recognizer hearing
"Sådan gaves" for "Shannon gave us": *the same mechanism as the simulator effect*,
running in a transcription pipeline with nobody steering.
Do not coin a second noun for the second direction. Name the direction.
| Direction | Sparse thing | Who elaborates | What you get |
|---|---|---|---|
| **Compile** | the machine's rules | the human | a mental model richer than the machinery. Wright's simulator effect; [reverse over-engineering](https://news.ycombinator.com/item?id=22062590) seen from the engineering side |
| **Decompile** | the human's few words | the machine | a world richer than the spec, including names for things you never named |
Both words are Wright's and Don's, not new: *"The computer game is just a compiler for
that mental model"* ([Long Now, 2006, t=5665](https://youtu.be/Dfc-DQorohc?t=5665)), and
*"Science compresses the world into rules; games decompress simple rules into worlds."*
**Decompilation is the right frame for the machine direction because it carries its own
warning.** A decompiler takes a stripped binary, returns plausible source that behaves
like the original, and invents every name that was missing from the symbol table. That is
what four words of spec get back: coherent, useful, not what you wrote, and full of
confident nouns you never chose. Nobody ships decompiler output unread.
### DIFF
The round trip is the method, and it is Wright's own answer to the open-source question
([t=3929](https://youtu.be/Dfc-DQorohc?t=3929)): when players start arguing with the
simulation's assumptions the game has succeeded, because building a model and comparing it
against their own viewpoint makes their previously tacit assumptions coalesce.
**Input:** your sparse spec, plus the elaboration it produced
**Output:** the list of places you had not decided anything
1. Write the sparse spec.
2. Let it decompile into a full world.
3. Diff the elaboration against what you meant.
4. Every invented detail marks a gap. The ones that feel *wrong* are the gaps where you
did hold a tacit commitment, and now you can state it.
5. Put the ones worth keeping into the spec as seeds. Leave the rest open on purpose.
The diff localizes your under-specification. That is the constructionist loop with a
measuring instrument instead of a vibe, and it is why sparse specs are a working method
rather than laziness.
### The hazard, which is the mirror of the human one
In the human direction the risk is imagining machinery that is not there. In the machine
direction the risk is **being credited with a specification you never wrote.** When an
agent does something surprising, the usual cause is that it decompiled a gap you did not
know you had left, and then acted as though you had asked.
In a game that is the medium. In a room full of your real files it is an unlogged decision
attributed to you. The fix is not less elaboration, it is Eager's green pixel: show the
interpolation before acting on it, so the inference is visible while it is still cheap to
correct. See [`AXES-NOT-CAMPS.md`](../../designs/AXES-NOT-CAMPS.md) on where
responsibility lands, and
[I-Beam's constitution](../cursor-mirror/characters/i-beam/CONSTITUTION.md) for the same
rule stated as a refusal.
---
## The Astrillogical Pattern
Named after The Sims' zodiac implementation (1997):
1. **Compute something minimal** (Euclidean distance to archetype vectors)
2. **Display a cultural symbol** (zodiac icon)
3. **Write no behavioral code**
4. **Let imagination do the rest**
Result: Testers reported the zodiac was "too influential" -- but there was no influence to tune. The effect was purely imagined.
**Application:**
```yaml
# Minimal computation
character:
personality_vector: [neat: 7, outgoing: 3, playful: 9]
# Display nearest archetype
archetype: sagittarius # Computed, not assigned
# No behavioral code referencing 'sagittarius'
# Player/LLM imagines Sagittarius behavior
```
---
## Integration with Other Skills
### With k-lines/
Names activate clusters. Simulator Effect explains why.
```yaml
# K-line activation IS Simulator Effect
character:
name: Palm # Activates: open hand, tropical, reaching
```
### With adversarial-committee/
Mode-collapse is Simulator Effect in reverse -- LLM collapses to mean when constraints are absent. Adversarial committee provides constraints through opposing propensities.
```yaml
committee:
- propensity: paranoid_realism # Different lens
- propensity: idealism # Different lens
- propensity: evidence_prosecutor # Different lens
# Same topic, three different Simulator Effects
# Cross-examination finds robust interpretations
```
### With speed-of-light/
One LLM call, many turns. Imagination fills the "rendering" for each turn. Sparse state, rich narrative.
### With needs/
Sims motives are imagination seeds, not behavior code.
```yaml
needs:
hunger: 30 # Seed
# LLM imagines: "distracted by stomach growling"
# Not: deterministic eat() behavior
```
### With empathic-templates/
Templates leverage Simulator Effect -- provide structure, let LLM fill content.
```yaml
template: |
[CHARACTER] enters [ROOM] and notices [NOTABLE_DETAIL].
They feel [EMOTION] because [REASON].
# LLM generates coherent fill based on context
```
---
## Failure Modes
### Over-Specification
Too much detail leaves nothing to imagine. The simulation feels mechanical.
**Symptom:** Output feels like a checklist, not a story.
**Fix:** Remove 80% of specification. Keep seeds.
### Under-Seeding
Not enough anchors for imagination to grip.
**Symptom:** Output is generic, could be anyone/anywhere.
**Fix:** Add archetype, sensory detail, or mystery.
### Wrong Archetype
Archetype conflicts with intended behavior.
**Symptom:** Character behaves "off" despite correct specs.
**Fix:** The archetype K-line is overriding your specs. Change the archetype or add explicit counters.
### Mode-Collapse
Single-agent LLM with weak constraints collapses to bland mean.
**Symptom:** Output is safe, inoffensive, boring.
**Fix:** Use adversarial-committee or add tension/conflict seeds.
---
## Metrics
The Simulator Effect is working when:
1. **Readers imagine more than you wrote**
2. **LLM generates coherent detail you did not specify**
3. **Different interpreters imagine similar worlds**
4. **Sparse specs produce rich output**
---
## See Also
- [k-lines/](../k-lines/) -- The mechanism
- [yaml-jazz/](../yaml-jazz/) -- Comments as seeds
- [adversarial-committee/](../adversarial-committee/) -- Mode-collapse antidote
- [empathic-templates/](../empathic-templates/) -- Smart generation
- [constructionism/](../constructionism/) -- Mental model building
- [sims-astrology.md](../../designs/sims/sims-astrology.md) -- The proof
---
*"The game provides scaffolding. Imagination does the rendering."*
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!