← ClaudeAtlas

determinismlisted

Making a game produce the same result twice — same seed, same world, same pixel. Use when a replay diverges, when two runs of the same code disagree, when a world regenerates differently after panning away and back, when a saved game loads wrong on another machine or browser, or when choosing what may be written into a save file or hashed.
C-Aniruddh/lattice · ★ 37 · AI & Automation · score 74
Install: claude install-skill C-Aniruddh/lattice
# Determinism The claim this kit makes is that a session can be replayed from a seed and an input log and land on the same pixel. That is a real property with real edges, and most of the ways it breaks are things nobody would guess. --- ## Two tiers, because the language only promises one ECMA-262 specifies `+ - * /`, `Math.sqrt`, `Math.imul` and the bitwise operators **exactly**. It explicitly does *not* require `sin`, `cos`, `pow`, `exp` or `log` to be correctly rounded, so two conforming engines may disagree in the last bit. | | arithmetic | promise | may reach | |---|---|---|---| | **Tier A** | `+ - * /`, `sqrt`, `imul`, bitwise, `abs`/`min`/`max`/`floor`/`round` | bit-identical on every engine | hashes, save files, replays, anything | | **Tier B** | `sin`, `cos`, `atan2`, `pow`, `exp`, `log` | correct to within an ulp or so | **pixels only** — never hashed, never persisted | Tier B is not banned; a cost curve is `b · r^k` and there is no honest way around that. What it must not do is reach a save file or a hash. Consequences you will meet: - **There are no sine or expo easings anywhere in the kit.** A tween drives a position, a position gets written to a save, and the save no longer replays. - **Pick a dyadic offline exponent.** `0.5`, `0.625` and `0.75` are computed as a chain of `Math.sqrt` and multiplies, so credited time is Tier A for free. `0.6` is three per cent stingier than `0.625` and a whole determinism tier worse. - **Path costs are integers** —