Small prey
Low risk. 0.3 hunger yield. Respawns every 5 sim days.
Internal document
everything needed to get from nothing to a running simulation. phases, stack, world dynamics, and what to leave alone until it's stable.
01 — Stack
95% pure heuristic JS. Groq only for chronicle narration, memory distillation, and communication utterances. all Groq calls go through groq/client.js only.
02 — World
movement, physics, resource regen, env update, collision and proximity detection.
needs eval, action select, Continuity rw, social eval, comms signal emission and reception.
event aggregation, Continuity decay, history compression, cultural markers, Groq narration, SQLite flush.
| Field | Description | Behaviour |
|---|---|---|
| R(x,y,t) | Resource density | Regenerates slowly. Depletes under sustained use. |
| T(x,y,t) | Temperature | Varies by season. Causes cold and heat stress. |
| C(x,y) | Traversal cost | Static per terrain type. |
| H(x,y,t) | Hazard probability | Accumulates from events. |
03 — Scintillae
| Stage | Age | Learning | Survival | Continuity | Repro |
|---|---|---|---|---|---|
| Child | 0–5 yr | Very high | Very low | Low | No |
| Adolescent | 5–15 yr | High | Moderate | Moderate | Rare |
| Adult | 15–45 yr | Moderate | High | High | Yes |
| Elder | 45+ yr | Low | Declining | Very high | No |
a group that protects its elders has better knowledge retention. a group that doesn't, forgets faster.
Reproduction is conditions-based, not scheduled. trust threshold, resource surplus, shelter, safety, and bonding duration all required. gestation is 9 sim days. mother needs decay faster. pregnancy can fail. infant mortality 15% in first 2 sim days. always one offspring.
| Death cause | Condition |
|---|---|
| Starvation / dehydration / cold / injury | Health reaches 0 |
| Old age | Lifespan reached (45–75 sim years) |
| Infant mortality | First 2 sim days — 15% chance |
| Conflict | Lethal resolution |
04 — Entities
none of these are known at spawn. everything is discovered through behavior, survived, remembered, and transmitted. knowledge dies with the carrier if untransmitted.
Low risk. 0.3 hunger yield. Respawns every 5 sim days.
High risk. 0.8 hunger yield. Respawns every 15 sim days.
Lethal. Patrols a radius, attacks on proximity. Respawns every 30 sim days.
Berry bush, fruit tree, hardwood, reed. Seasonal availability. Some finite.
Infinite. Detectable from 8 cells. First Scintilla to find it has a survival edge.
Cave (natural shelter), rock deposit (finite, never respawns). Scarcity drives migration.
05 — Structure
cardinal/ ├── world/ │ ├── grid.js # Float32Array world, R/T/C/H channels │ ├── seasons.js # season cycle, field mutations per tick │ └── entities.js # entity spawning, state, respawn, predator behavior ├── scintillae/ │ ├── scintilla.js # Scintilla state, needs decay, aging │ ├── perception.js # local radius, entity detection, fog of war │ ├── policy.js # heuristic action selection │ └── tendencies.js # weight shifts from experience ├── continuity/ │ ├── memory.js # episodic/semantic/procedural/social │ ├── decay.js # memory decay and reinforcement │ └── knowledge.js # knowledge artifact lifecycle ├── communication/ │ ├── signals.js # primitive signal tokens │ └── language.js # co-occurrence → stabilization → spread ├── substrate/ │ ├── micro.js # micro tick loop │ ├── cognitive.js # cognitive tick loop │ └── chronicle.js # chronicle tick, flush, Groq narration ├── db/ │ ├── schema.js # SQLite schema init │ └── flush.js # world + Scintilla serialization ├── observer/ │ └── events.js # immutable event log, EventEmitter ├── groq/ │ └── client.js # all Groq calls in one place ├── config.js # all tunable parameters └── index.js # entry point, boot sequence
06 — Phases
everything after Phase 8 waits until the survival loop is stable.
07 — Post-MVP