alunduil / alunduil/blog.alunduil.com
Making late packets look like smooth motion: interpolation and extrapolation in a Haskell client
- Langage dominant
- Astro
- Étoiles
- 1
- Forks
- 1
- Merge moyen
- 6 h 34 min
- PR mergées (30 j)
- 118
Description
## Spark
Twelve direct commits over four days landed `Partir.Sim.Interpolate` in
partir.qua.world, with follow-on issues for extrapolating late samples and
pruning the sample history below the render horizon.
## Why it could be interesting
Smoothness in a networked game isn't a rendering problem, it's a decision about
what to believe when the truth is late. Interpolating between known samples is
always correct and always behind; extrapolating past them is current and
sometimes wrong. The whole design is choosing where that handoff sits and how
badly it fails when it guesses. Haskell makes the bounded-history invariant
expressible in the type rather than in a comment, which is the part worth
writing about — if it turns out to be load-bearing rather than incidental.
## Open questions
- [ ] Is the Haskell angle actually load-bearing, or would this be the same post in any language?
- [ ] Where does the interpolate-to-extrapolate handoff sit, and what does a visibly wrong extrapolation look like?
- [ ] Does `RemoteHistory` pruning belong in the post, or is it implementation detail?
- [ ] Wait for #66 and #65 to land so the post has both halves rather than just interpolation?
- [ ] Is there a capture — video of the smoothed vs unsmoothed agent — that carries this better than prose?
## Source material
- partir.qua.world PR#63 (merged) — `Partir.Sim.Interpolate` for smooth remote agents, closing #18: https://github.com/qua-world/partir.qua.world/pull/63
- partir.qua.world#66 — extrapolate remote agents when samples are late: https://github.com/qua-world/partir.qua.world/issues/66
- partir.qua.world#65 — `RemoteHistory` prunes samples below the render horizon: https://github.com/qua-world/partir.qua.world/issues/65
- partir.qua.world#68 — demux received `Snapshot` messages into per-agent histories: https://github.com/qua-world/partir.qua.world/issues/68
- 12 commits, 2026-07-20 through 2026-07-23
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Évaluation
Cette issue n'a pas encore été évaluée.