Skip to content

lyc-aon/strata-sim

Repository files navigation

Strata

Strata is a greenfield colony/world simulation project aiming to exceed RimWorld in simulation scale, depth, multiplayer readiness, visual clarity, tooling, and emergent history.

The repo now has a durable MVP foundation: deterministic Rust sim primitives, schema-validated seed content, runtime observability, multiplayer/checkpoint gates, data-backed combat anatomy with wound-to-need consequences, provenance-gated asset inventory tooling, and a manifest-driven 3D visual render studio.

Current Primitives

  • crates/strata_core: fixed ticks, 3D coordinates, stable entity IDs, deterministic RNG streams, command/event replay, typed/binary snapshots, indexed spatial queries, path reservations, route fields with advisory portal corridors, deterministic combat aim-resolution/near-miss audit events, data-backed body hit profiles, per-part wound health, wound physiology audit scalars, and state hashes.
  • crates/strata_cli: deterministic smoke/combat scenario replay generation, snapshot inspection, machine-readable summaries, and artifact bundles.
  • crates/strata_data: schema-backed content validation for pawn archetypes, humanoid body hit profiles, weapons, ammo, projectiles, utility networks, and research capabilities.
  • crates/strata_observability: structured JSONL logs, spans, counters, state-hash checkpoints, artifact manifests, and visual-analysis bindings/reports.
  • crates/strata_assets: read-only legacy asset manifest extraction and provenance classification. Sidekick/Fenris inventory is reference-only, not the Strata humanoid direction.
  • crates/strata_bench: deterministic simulation-kernel, pathing/reservation, spatial-index, combat aim/projectile/body-hit/per-part-wound throughput, and social-retention throughput harnesses with stable JSON output.
  • crates/strata_world: deterministic aggregate world-history baseline with tiles, settlements, factions, causal events, strategic state hashes, bounded site materialization, and aggregate demotion foldback reports.
  • crates/strata_colony: integrated 24-pawn, 3-Z-level MVP colony runtime with typed scenario state, schedule-owned reducer-driven command admission, route-affordance previews, exact accepted-claim navigation, inventory-backed food/water stock reservations plus rifle-ammo combat consumption, same-tick wound-to-need injury-stress consequences, action/social drivers, deterministic daily-life six-need, social consequence, and world-site reconciliation gates, command hash-bound snapshots/replay, runtime-checkpoint v11 late-join catch-up and checkpoint inspection, local multiplayer connection-handshake, client command-ingress, connected command-ingress, connected-client admission, session-delta, encoded transport delivery, ACK/retry, and loopback gates with explicit event-visibility policy hashes and deterministic transport-frame wrapping, saved session-delta client-projection inspection, scale/retention/daily-life/social/world-site/replay inspect CLI surfaces, subsystem events, reducer reports, artifact bundle generation, and visual projection output.
  • crates/strata_people: deterministic pawn needs, traits, compact genomes, lineages, social relations, bounded interaction logs, compacted relationship retention, and strata-people social inspect tooling.
  • crates/strata_research: deterministic evidence/institution/capability progression primitives, catalog-backed research capability loading, calendar pacing gates, state hashes, strata-research pacing inspect, and long-horizon doctrine-ladder strata-research progression run tooling.
  • crates/strata_net: deterministic multiplayer protocol primitives for pre-socket connection handshakes, capability negotiation, client command-ingress artifacts, command admission, delivery frame transcripts, late-join packages/suffixes, interest-scoped snapshot delta bundles, transport-frame artifact wrapping, hash chains, and desync reports.
  • crates/strata_jobs: deterministic job request scoring, pawn-context claims, reservation conflict reduction, and board state hashes.
  • crates/strata_inventory: deterministic container/stack/reservation stock substrate used by the colony MVP for food, water, and combat ammo logistics.
  • crates/strata_infra: deterministic water/waste/power/fuel/heat utility graph reducer with flow, shortage, overflow, contamination, and disconnected-component audits.
  • crates/strata_inference: deterministic integrated-inference boundary for prompt/context/response hashes, typed proposal validation, accepted events, and replay checks.
  • tools/scenario-artifacts: replay-to-visual bridge that emits strata.scenario.artifact.v1 bundles and renderable scene manifests.
  • tools/world-artifacts: world-history-to-visual bridge for strategic map/debug render manifests.
  • tools/visual-render-studio: Three.js render/inspection surface for Z-level cutaways, pawn crowds, overlays, and combat traces.

Useful Commands

cargo test --workspace
cargo run -p strata_cli -- --json --seed 7 --run-id run_smoke --replay-id replay_smoke --artifact-dir /tmp/strata-run --log-level debug
cargo run -p strata_cli -- scenario combat --json --seed 7 --run-id run_combat --replay-id replay_combat --artifact-dir /tmp/strata-run --log-level debug
cargo run -p strata_cli -- snapshot inspect /tmp/strata-run/run_combat/snapshot.bin --json
cargo run -p strata_data --bin strata-content-validate -- --check --json
cargo run -p strata_bench --bin strata-bench -- --seed 9 --entities 4 --ticks 5 --json
cargo run -p strata_bench --bin strata-bench -- pathing --seed 9 --width 4 --height 3 --levels 2 --routes 6 --reservations 4 --max-expanded 128 --json
cargo run -p strata_bench --bin strata-bench -- spatial --seed 9 --cells 20 --levels 9 --entities 12 --queries 6 --updates 3 --removes 2 --radius 2 --json
cargo run -p strata_bench --bin strata-bench -- combat --seed 5 --shooters 4 --targets 4 --ticks 3 --range 6 --cover-every 2 --json
cargo run -p strata_bench --bin strata-bench -- social --seed 9 --actors 128 --interactions 4096 --social-log-limit 16 --relation-limit 64 --json
cargo run -p strata_world --bin strata-world -- --seed 7 --tiles 12 --years 10 --json
cargo run -p strata_people --bin strata-people -- social inspect --seed 33 --actors 1000 --interactions 5000 --social-log-limit 64 --relation-limit 1000 --edge-limit 5 --top 5 --repeat 2 --json
cargo run -p strata_research --bin strata-research -- pacing inspect --json
cargo run -p strata_research --bin strata-research -- catalog inspect --schema-root schemas/strata-content/v1 --data-root data/strata_core/v1 --json
cargo run -p strata_research --bin strata-research -- progression run --scenario doctrine-ladder --seed 7 --years 100 --compressed-days 730 --repeat 2 --json
cargo run -p strata_colony --bin strata-colony -- mvp --seed 424242 --ticks 96 --run-id run_colony_mvp --artifact-dir target/tmp/strata-colony-mvp/run_colony_mvp --json
cargo run -p strata_colony --bin strata-colony -- mvp --seed 424242 --ticks 96 --run-id run_colony_commanded --artifact-dir target/tmp/strata-colony-mvp/run_colony_commanded --command-schedule docs/examples/colony-command-schedule.example.json --json
cargo run -p strata_colony --bin strata-colony -- inspect target/tmp/strata-colony-mvp/run_colony_mvp/snapshot.colony.bin --json
cargo run -p strata_colony --bin strata-colony -- scale --seed 9 --ticks 4 --pawns 64 --variant layered-settlement --movement-batch 16 --json
cargo run -p strata_colony --bin strata-colony -- late-join gate --seed 424242 --ticks 8 --join-tick 4 --checkpoint-output target/tmp/strata-late-join-checkpoint.bin --json
cargo run -p strata_colony --bin strata-colony -- late-join checkpoint inspect target/tmp/strata-late-join-checkpoint.bin --json
cargo run -p strata_colony --bin strata-colony -- multiplayer connection-handshake --seed 424242 --ticks 8 --pawns 24 --player-id 2 --artifact-output-dir target/tmp/connection-handshake --json
cargo run -p strata_colony --bin strata-colony -- multiplayer command-ingress --seed 424242 --ticks 8 --pawns 24 --reconnect-tick 4 --artifact-output-dir target/tmp/command-ingress --json
cargo run -p strata_colony --bin strata-colony -- multiplayer connected-command-ingress --seed 424242 --ticks 8 --pawns 24 --player-id 2 --reconnect-tick 4 --artifact-output-dir target/tmp/connected-command-ingress --json
cargo run -p strata_colony --bin strata-colony -- multiplayer session-delta --seed 424242 --ticks 8 --pawns 24 --base-tick 4 --player-id 1 --z-min 0 --z-max 2 --bundle-output target/tmp/session-delta.bin --json
cargo run -p strata_colony --bin strata-colony -- multiplayer session-delta inspect target/tmp/session-delta.bin --json
cargo run -p strata_colony --bin strata-colony -- multiplayer transport-delivery --seed 424242 --ticks 8 --pawns 24 --base-tick 4 --z-min 0 --z-max 2 --frame-output-dir target/tmp/transport-delivery --json
cargo run -p strata_colony --bin strata-colony -- multiplayer connected-client --seed 424242 --ticks 8 --pawns 24 --player-id 2 --base-tick 4 --z-min 0 --z-max 2 --artifact-output-dir target/tmp/connected-client --json
cargo run -p strata_colony --bin strata-colony -- multiplayer transport-ack-retry --seed 424242 --ticks 8 --pawns 24 --base-tick 4 --z-min 0 --z-max 2 --max-pending-frames 2 --artifact-output-dir target/tmp/transport-ack-retry --json
cargo run -p strata_colony --bin strata-colony -- multiplayer transport-ack-retry inspect target/tmp/transport-ack-retry/ack-retry.transcript.bin --json
cargo run -p strata_colony --bin strata-colony -- multiplayer transport-loopback --seed 424242 --ticks 8 --pawns 24 --base-tick 4 --z-min 0 --z-max 2 --max-pending-frames 2 --drop-recipient 2 --artifact-output-dir target/tmp/transport-loopback --json
cargo run -p strata_colony --bin strata-colony -- replay inspect --artifact-dir target/tmp/strata-colony-mvp/run_colony_mvp --pawn pawn_1000 --tick-start 0 --tick-end 4 --json
cargo run -p strata_colony --bin strata-colony -- retention age-gate --seed 12345 --ticks 12 --ticks 24 --pawns 24 --recent-ticks 3 --repeat 2 --save-age-offset 0 --save-age-offset 1000 --save-age-offset 100000 --save-age-offset 630720000000 --max-retained-events 160 --max-retained-reducers 48 --max-active-command-keys 4 --max-active-path-reservations 384 --max-active-job-requests 24 --max-active-job-claims 24 --max-pending-job-claims 0 --max-job-bucket-entries 24 --max-active-actions 24 --max-active-action-steps 72 --max-active-action-path-reservations 384 --max-active-action-stock-reservations 24 --max-active-inventory-containers 32 --max-active-inventory-stacks 64 --max-active-stock-reservations 24 --json
cargo run -p strata_colony --bin strata-colony -- daily-life six-need-gate --seed 424242 --ticks 256 --pawns 24 --json
cargo run -p strata_colony --bin strata-colony -- social consequence-gate --seed 424242 --ticks 64 --pawns 24 --json
cargo run -p strata_colony --bin strata-colony -- world-site reconciliation-gate --seed 7 --world-years 1000 --tiles 12 --recent-event-years 25 --era-years 50 --settlement 0 --source-event-cap 8 --active-pawn-cap 24 --ticks 64 --repeat 2 --json
cargo test -p strata_colony --test commands
cargo test -p strata_colony --test cli_tools
cargo test -p strata_colony --test world_site_reconciliation
cargo test -p strata_colony --test replay
cargo test -p strata_colony --test runtime_commands
cargo test -p strata_colony --test activity_driver
cargo test -p strata_colony --test scale
npm run mvp-slice:check
npm run core-hot-primitives:check
npm run scenario-artifacts:check
npm run scenario-artifacts:fresh:check
npm run world-artifacts:check
npm run visual:check
npm run visual:screenshot -- --manifest tools/visual-render-studio/fixtures/colony-cutaway.json --output /tmp/strata-visual/colony-cutaway.png --json --capture canvas

CI Gates

GitHub Actions runs cargo fmt --all -- --check, cargo clippy --workspace --all-targets -- -D warnings, cargo test --workspace, npm run doctrine:gate, the MVP/world/scenario artifact checks, the visual render unit/check gates, the visual animation loop gate, the visual interaction gate, the visual regression gate, the visual promo clip gate, the daily-life six-need gate, the social consequence gate, the combat aim-resolution benchmark gate, the core hot primitive benchmark gate, and the human-readable MVP gate on pushes to master and pull requests. The doctrine gate uploads strata-doctrine-gate, whose doctrine-gate.report.json includes the 1,000-pawn runtime scale throughput gate and its embedded deterministic runtime_scale_gate proof. The world-site reconciliation gate emits strata.colony.world_site_reconciliation_gate.v1 proof that a 1,000-year strategic world can materialize a bounded active site, build a colony scenario from its materialization hash, ingest capped source records into runtime world pressure, derive nonzero site demotion from runtime consumption/pressure, fold that delta back into aggregate world state, preserve unrelated settlements, and repeat deterministically. The human-readable MVP gate emits promptToArtifactChecklist in its strata.mvp.acceptance_gate.v1 report, binding MVP requirements to concrete artifact paths, JSON pointers, counts, hashes, commands, and external CI gates, then uploads the rendered artifact bundle as strata-human-readable-mvp-gate; the daily-life gate uploads strata-daily-life-six-need-gate with strata.colony.daily_life_six_need_gate.v1 matched-chain proof that drink, eat, clean, sleep, recreation, and talk each request, claim, pass inventory audit, complete, apply positive need deltas, respect stock/no-stock semantics, stay bounded by pawn count, remain replay-queryable across every stage, and repeat deterministically; the social consequence gate uploads strata-social-consequence-gate with strata.colony.social_consequence_gate.v1 proof that logged interactions have same-sequence pawn need consequences, update relation state, record witnesses, account for retained plus compacted social history, remain replay-queryable, and repeat deterministically; the core hot primitive benchmark gate uploads strata-core-hot-primitive-benchmarks with strata.core_hot_primitives.gate.v1 evidence for deterministic pathing/reservation, spatial-index, social-retention, and combat cover/line-of-fire smoke workloads, including fixed final workload hashes, hot query hashes, and per-benchmark gate.json outputs; the combat aim-resolution gate uploads strata-combat-aim-resolution-gate with strata.bench.combat_projectile_throughput.v1 proof that deterministic shots emit aim-resolution, projectile traces, cover intersections, profile-hashed body hits, armor, per-part wounds, suppression, broadphase, audit-hash, and final workload hashes; the world-site gate uploads strata-world-site-reconciliation-gate with the machine-readable world/site/runtime/reconciliation hashes and pass checks; the interaction gate uploads strata-visual-interaction-gate with the cutaway/overlay/pawn-selection report; the animation loop gate uploads strata-visual-animation-loop-gate with a 1,000-pawn frame sequence and strata.visual.animation_loop_artifact.v1 manifest. The promo clip gate uploads strata-visual-promo-gate with the rendered MP4 and strata.visual.promo_clip_artifact.v1 manifest. The fresh scenario artifact chain uploads strata-fresh-scenario-artifact-chain with regenerated combat scenario output, snapshot inspection JSON, projection check output, and the projected strata.scenario.artifact.v1 bundle.

Core Docs

  • AGENTS.md: repository-wide agent operating rules
  • docs/architecture.md: main technical architecture
  • docs/studio-doctrine.md: Codex-native studio doctrine
  • docs/concurrent-agent-protocol.md: multi-session coordination rules
  • docs/tooling-doctrine.md: 10/10 agent-usable tooling rules
  • docs/visual-render-studio.md: 3D render and promo content tooling plan
  • docs/world-history.md: world, lineages, genetics, and long-horizon simulation
  • docs/people-social.md: bounded social relationship retention and strata-people inspection tooling
  • docs/progression-research.md: capability-based research and technology progression
  • docs/asset-strategy.md: current asset direction, AI Human Animation Forge path, and provenance rules
  • docs/fenris-sidekick-assets.md: local Fenris/Synty Sidekick legacy inventory and reference-only extractor
  • docs/mvp-plan.md: first durable MVP vertical slice and acceptance plan
  • docs/runtime-observability.md: structured logging, traces, metrics, and long-run artifact rules
  • docs/visual-analysis.md: screenshot/video analysis artifact contract
  • docs/inference-boundary.md: deterministic boundary for integrated AI/inference
  • docs/benchmarking.md: deterministic benchmark harness expectations
  • docs/jobs-scheduler.md: deterministic pawn job scoring and claim reduction primitive
  • docs/infrastructure-network.md: deterministic utility network reducer primitive
  • docs/inventory-logistics.md: deterministic stock/reservation substrate and colony MVP inventory binding
  • docs/scenario-artifacts.md: replay-to-visual artifact bundle contract
  • docs/scenario-cli.md: headless smoke/combat scenario replay generation
  • docs/world-runner.md: deterministic aggregate world-history runner
  • docs/colony-runtime.md: integrated 24-pawn MVP colony runtime, command APIs, replay/scale CLI tooling, artifact bundle, and verification path
  • docs/world-artifacts.md: world-history-to-visual artifact bridge
  • docs/multiplayer-protocol.md: deterministic multiplayer protocol primitives, late join, local session, and snapshot delta bundle contracts
  • docs/combat-extended-reference.md: Combat Extended reference map and provenance rules
  • docs/infrastructure-mod-references.md: Dubs Bad Hygiene, Rimefeller, and Rimatomics reference map
  • docs/strata-skills.md: local Strata skill inventory

The reusable Strata Codex skills are mirrored in skills/ and installed locally under /home/lycaon/.codex/skills/.

Releases

No releases published

Packages

 
 
 

Contributors

Languages