determinismlisted
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** —