Far bodies draw off a flattened scale curve, and the camera leans into the deep court

Oliver: the far-side opponent is barely visible in portrait, and the lens was
already at its measured ceiling. TUNE.farK (0.25) grows far bodies ~20% while
the court keeps the true projection — the 16-bit tennis trick, anchored so the
near player is untouched. TUNE.farCamY/farCamZ add a broadcast lean while the
ball is on the far half, pivoted about the player's feet (fOff) so the pull
room the apron math promised never moves. Both live in the T panel; both
awaiting the phone verdict — see the PROJECT.md session log.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-13 16:18:53 +02:00
1 parent 031a203bb4
commit e571e46d92
4 files changed
+82 -11

No files matched your search

+22
View File
@@ -405,6 +405,28 @@ zombie (now an occasional opponent, `TUNE.racketEvery`, not the every-game fixtu
`RETURNED`, `DOUBLE KILL`) is a footnote to something you already watched happen. Sharing the loud
FACE with the milestone cards is right; sharing their SIZE made every footnote read as a milestone.
## Session log: the far court, without spending the lens (2026-08-13)
Oliver: the far-side opponent is barely visible in portrait, and the lens (camZ/camF, already at its
measured ceiling — see fitViewport) and world height were the only knobs he knew. Two new ones, both
AWAITING HIS PHONE VERDICT — nothing here is settled yet:
- **`TUNE.farK` — bodies draw off a flattened scale curve, the court projects true.** The 16-bit
tennis trick: `s' = s·(sNear/s)^farK`, anchored at the player's deepest stance (he is untouched),
clamped so nothing nearer ever shrinks. At 0.25 the far-baseline opponent draws ~20% bigger
(31 → 38 logical px) and the court gives up nothing. Applied in render.js `farB(z)` to every body
AND to every anchor that hangs off a body height (flames, boss HP, muzzle glow, drill chevron,
umpire) — boosting only the sprite left the HP bar sitting on the boss's hat. Known residual: the
ball keeps the true projection, so at the far baseline it meets a boosted racket ~5px off. 0
restores pure projection.
- **`TUNE.farCamY`/`farCamZ` — a broadcast lean while the ball is on the far half** (tennis + match
only; the gore modes would pump). Eased like aimCam, and pivoted about the player's deepest stance
via `fOff` in render.js — without that pivot 0.35m of camY slides his feet 14px toward the rack,
and the apron math promised that room. Measured in-pane: far court rises ~14px and grows ~1.3%,
player feet drift ≤2.3px and return exactly. The backdrop cache repaints while the camera eases
(~0.35ms/frame desktop, settled key at both ends) — if the phone stutters in rallies, zero these
two before touching anything else.
## Session log: nothing arrives unannounced (2026-08-11, same day)
Oliver's retest: *"the horde is not announced anymore"* and *"bosses are just there now"*. Both were