Type a name. The identity cubebear|<name> is hashed with SHA-256 and those bytes become the bear — no configuration, no randomness, no takebacks. The same name will always produce the same bear.
This is where provable identity stops being a slogan inside this forest. Pick a bear: Shinrin recomputes its entire trajectory from tick 0 — herd-aware, using this world’s recorded coupling history — and compares the replayed hash with the live one here. That does not prove a match to yuragiengine.com or to a BSV mainnet anchor (different float equations). Use “ask the engine to attest” on a linked bear for the engine’s own replay.
Retracing the pendulum's phase trajectory (θ, θ̇) tick by tick, live — ● replay in progress, ● where the live bear stands now. They should land on the same point.
This forest’s local epoch log uses YURAGI|life|v1|id|tick|hash for its own simulated anchors. The canonical engine at yuragiengine.com stamps mainnet state anchors as YURAGI|v1|id|tick|hash PushDrop outputs (Living UTXO life epochs separately use YURAGI|life|v1|…). Same idea — spendable proof — but Shinrin hashes are not the engine’s float hashes.
Let the forest move forward. Still deterministic — the same number of steps, just quicker. The chain height in the HUD counts every block.
Each bear's inner metronome is a dot on the circle. Raise the Kuramoto coupling K and watch independent personalities fall into a shared rhythm — with no coordinator. The order parameter r measures it: 0 is scattered individuals, 1 is one herd.
Coupling mixes bears together, so proving a coupled bear replays the whole herd with the recorded K history. Individuality and togetherness, both auditable.
Every epoch (50 blocks) the herd elects a leader. Each ballot is a pure readout of bonds, traits, and phase — zero dice, zero politics-as-noise. Leadership is a title: it never changes the fluctuation equations or K.
Aye/nay from each bear’s die state right now. Carried motions only nudge expression (gather / lantern drift) — physics untouched.
Each bear's move comes from its live state at this tick. No dice — and no quiet rewrite: after a round, Prove this round recomputes each life from genesis and checks the hashes. We cannot change who won without breaking the match.
Jump across the realm. Outer landmarks sit past the heart valley — High Tor, Drift Shore, Starwell, and the rest.
Published seeds — Witness is read-only (lives keep moving). Fork a copy when you want to leave a trace. Sibling floats only; not engine or mainnet hashes.
Shinrin is not a game with NPCs. It is a life simulator where every creature is a deterministic dynamical system — a chaotic logistic die, a phase-oscillator metronome and a driven Duffing pendulum, coupled — read out through sigmoids into four personality traits that choose one of six actions every timechain block: explore · rest · greet · create · wander · sing. Expression-layer recall / craft metaphors are inspired by the engine mind layer — they never fold experience into the float core.
Shinrin is a sibling of the Yuragi Engine — same metaphors (identity → D/M/P → traits → action; cubebear|<name>), own browser-side float equations. It does not embed core/fluctuation.js, so state hashes here will not match engine / mainnet hashes. Canonical engine, guide, and SDK: yuragiengine.com · /guide · npm: yuragi-engine.
A bear's identity is world-independent. The genome lives in the name; a world is nothing but an event log. Name Kuma in two worlds and you get the same soul — same physics, same temperament — living two different lives. Export a log and your world, with everything you did in it, travels as plain JSON.
Or publish a share link from the current world — anyone opening ?w= recomputes the same forest (Shinrin floats, not engine hashes).
Fork this forest at block 0 into two copies. Change exactly one thing in the second copy. Run both forward the same number of blocks. See how different they became — nothing scripted, nothing invented, just the same equations from a different starting nudge.
The canonical registry of souls lives at yuragiengine.com. Shinrin shares the philosophy (name → genome → D/M/P → traits → action) and the cubebear|<name> identity convention, but runs its own browser float core — not a byte-copy of the engine. Linking registers / invites names and can ask the engine to attest its life (herd + mind aware). Embed the real engine without a server via npm: yuragi-engine (createLife / createLifeFp).
Invite brings an engine bear into this world: same genome, fresh biography here. Its engine life continues untouched — one soul, many worlds.