# Revision review and independent KSF evidence

Reviewed 2 October 2026. This supplements the original validation report. The earlier statement that no CSS telemetry was available is superseded by the public replay described below. It does not establish whole-game or current-server parity.

## Requested play profile and controls

`DEFAULT_CONFIG` remains the researched manual-jump profile. `SURF_CONFIG` enables held-jump autobhop and unrestricted prestart hops under a different configuration/version, so records are separated. Gravity, acceleration, wish-speed rules, friction, jump impulse and simulation interval remain unchanged. Tests verify repeat jumps only from ground, identical jump impulse across successive hops, preservation of earned horizontal momentum, no automatic horizontal boost, and an unrestricted start after twelve prehops at 1,200 u/s.

No stamina or vanilla bunnyhop speed penalty was added. This is an explicit surf-profile choice, supported by the CSS-derived Momentum surf mode and the user's requested behavior, not proof of a live KSF plugin manifest. A first crouch jump in the KSF recording independently matches the implemented impulse/order. It alone cannot prove stamina behavior after repeated native CSS jumps. [CSS-derived jump implementation](https://github.com/momentum-mod/game/blob/9da88b97769e0f2306623946ebbcb5d0f919a1f0/mp/src/game/shared/momentum/mom_gamemovement.cpp).

Actions accept multiple physical keyboard codes, mouse buttons and wheel directions. Defaults retain Space and add Wheel Down for jump. One wheel event becomes one simulation-tick pulse followed by a release tick; another scroll during release is retained for the next press tick. Same-tick wheel events coalesce. Held Space continues to hold jump through wheel release ticks. `peek()` never consumes events; `sample()` is called once per simulation tick. Focus loss, release of Pointer Lock and binding changes clear pending input. Mouse angles remain immediate, using 0.022 degrees/count times sensitivity and no frame-duration multiplier.

Sixteen input tests and thirteen revision tests cover the revised behavior. Tick-indexed wheel inputs produce identical command sequences and terminal physics states at 30, 60, 144 and 240 render FPS, including extra HUD reads. This checks consumption and render independence; browser event dispatch time relative to a tick still determines which command receives a real physical event.

## Public Boreas telemetry

The KSF website publishes an unauthenticated [replay viewer](https://ksf.surf/replays/surf_boreas/replay_css_4060_0_712551_1763914843.rec) and [replay bytes](https://ksf.surf/api/replays/replay_css_4060_0_712551_1763914843.rec?game=66t) for `.x`'s 39.495121-second CSS forward-style run recorded 23 November 2025. The public viewer specifies 66.66666666666667 ticks/second, corroborating nominal 15 ms. The simulation uses binary32 `0.015` as documented in the reference.

The 121,036-byte recording has SHA-256 `989a61f3682ccbb04026561103e951c90b267c43aa9b09eb66fc6e2c4cdb4d15`. Its version-2 format is documented in [Crashfort ReplayViewer's frame structures](https://github.com/crashfort/ReplayViewer/blob/0341fea8ba85fbb7c3d352b4b5ddf704a659fd4d/src/rv_priv.inc). The fixture `fixtures/boreas-ksf-telemetry.json` contains exact decoded binary32 values and provenance. No viewer code was copied. The decoded layout is a 16-byte header, five 524-byte bookmarks, then 2,960 40-byte frames. Each frame includes buttons, feet position, pitch/yaw/roll and velocity.

| Event | Recorded frame | Notes |
|---|---:|---|
| Initial stationary state | 0 | Position (12587.87793, -12034.27148, 14736.03125) |
| First crouch jump | 74 | End-tick vertical velocity 289.9933777 |
| Timer start | 125 | Horizontal exit speed 350 u/s |
| Checkpoint 1 | 1231 | Bookmark stage 2 |
| Checkpoint 2 | 2303 | Bookmark stage 3 |
| Finish | 2758 | Bookmark stage 99 |

The 2,633 start-to-finish intervals equal 39.495 seconds at decimal 15 ms. The published time differs slightly, so these bookmark indices do not establish exact KSF sub-tick timing semantics.

This run includes a prestart jump and a 350 u/s exit. The 2013 announcement's 270 u/s prehop restriction must therefore not be treated as a universal present-day Boreas rule. Map-specific falling-start behavior or changed rules remain possible. The recorded start transition demonstrably clamps velocity to 350 after displacement, whereas the requested unrestricted browser profile deliberately permits higher starts.

## Command reconstruction and comparison

Independent one-step comparisons establish the recording's alignment: to advance state **i** to **i+1**, use **buttons from i** and **view angles from i+1**. Using next-frame buttons creates approximately 60 u/s errors at some strafe reversals; using current-frame angles produces a median velocity error of about 27.57 u/s in the examined air transitions.

Buttons reconstruct full held forward/back/side commands at magnitude 400, but the recording lacks actual analog command magnitudes. Source `CInput::KeyState` gives an initial key press half strength. The recording's first forward movement gains 15 u/s, matching command 200; assuming 400 incorrectly predicts 19.5 u/s. This is covered by the ground fixture. The browser currently applies full held movement immediately, so native fractional keyboard command generation remains a known input difference. [Valve keyboard command generation](https://github.com/ValveSoftware/source-sdk-2013/blob/b8cfb12c0e083a2ef5b2f9f9b50f3902fa034474/src/game/client/in_main.cpp).

The replay does not encode grounded state, active crouch hull, partial-duck timer, surface friction, exact native build, cvars or plugin versions. An IN_DUCK bit alone does not establish the active hull: blocked uncrouch and a ground-to-air transition can delay a hull change. Surface friction for an isolated air step is reconstructed from the prior categorization velocity, which precedes FinishGravity; use recorded vertical velocity plus half-gravity, not recorded end-tick velocity alone.

Comparison tolerances were set to **0.002 Source units** for position and **0.002 u/s** for velocity, allowing roughly two binary32 position ULPs near 16k coordinates and native float/trigonometric differences at surf speeds.

| Independent fixture | Steps | Maximum position error | Maximum velocity error | First tick outside tolerance |
|---|---:|---:|---:|---|
| KSF flat start and first crouch jump, equivalent floor at Z=14736 | 65 | 0 | 0.0000314568 | None |
| KSF isolated air transitions | 1672 | 0.00048828125 | 0.00088026154 | None |

Air steps are selected from recorded constant-gravity velocity and ballistic vertical displacement, excluding collision, hull-origin shifts, and the recorded start-zone speed cap. These are conditional one-step checks, resetting to each independently recorded initial state. They verify the tested air/ground formulas; they are **not a continuous full-route replay or a test of native ramp collision parity**. Contact-state error cannot be measured from this file because contact state is absent.

## Collision review

The BVH broadphase was compared with independent linear AABB overlap queries for 350 bounds and 400 queries, including exact boundary contact. Candidate membership and original order agree. Preserving original order protects collision-plane tie behavior. Analytic displacement tests verify a swept 62-unit hull cannot tunnel through thin terrain and can travel tangentially across a coplanar two-triangle seam without an invented impact.

The actual BSP/PHY geometry then allowed independent collision debugging. At ticks 1010, 1807 and 2395, adding the trace margin to every convex plane had manufactured a hit across disjoint corners: the swept hull left an edge plane before reaching the face. An additional unpadded interval check rejects those false convex intersections within the finite sweep. It preserves shallow VPhysics skin contacts when the outgoing edge lies beyond this tick, as at 906. This changes geometric hit selection rather than preserving speed artificially. BSP departure ticks 1173 and 2310 reject a brush when both endpoints remain outside a plane, even within the backoff margin. All five seam/departure regression steps agree within the unchanged .002/.002 tolerances. Tick906 now matches native velocity within .000864 u/s, but its contact fraction still produces a .00691-unit position difference, which remains reported.

Native frame2756 independently demonstrates a neutral uphill landing: movement stops at the first walkable contact plus .1 Z, horizontal velocity remains incoming, and vertical velocity becomes zero. This matches the eligibility and offset documented by [RNGFix's pre-tick incline correction](https://github.com/jason-e/rngfix/blob/9831d25e9f6747566a6adc72d75ae3fc671a656c/plugin/scripting/rngfix.sp). The explicit `inclineFix` setting reproduces both this landing and the next manual-jump-profile tick within .002/.002. Frame2757's upward velocity comes from walking up the slope; continuous IN_JUMP in the replay does **not** establish a new jump or global KSF autobhop. The requested browser autobhop remains a separate profile choice. Evidence of this behavior does not identify the installed plugin version.

The authored Boreas `player_speedmod` zone suppresses jump and multiplies movement frame time by .9999. Independent recorded gravity inside the zone corroborates this modifier. The authoritative server tick and timer remain unchanged; no extra acceleration or gravity ticks are introduced. See [map extraction evidence](BOREAS-IMPORT-RESEARCH.md).

## Complete native-route comparison

Run `npx tsx scripts/validate-boreas-reference.ts` to regenerate `fixtures/boreas-reference-validation.json`. It records the exact geometry SHA-256, complete configuration, source provenance and all 2,758 per-tick errors/contact predictions for two comparisons. Both use manual jumping plus the documented incline correction, authored no-jump effect and observed 350 u/s post-displacement clamp at tick125. They do not claim the user's intentionally different autobhop/unrestricted-start profile is identical to KSF.

| Comparison | Maximum position error | Maximum velocity error | First tick outside .002/.002 | Ticks outside |
|---|---:|---:|---:|---:|
| Independently initialized native state each tick | .006905340 at 906 | .003744595 at 2402 | 334 | 27 / 2758 |
| Continuous run from native frame0 and commands | .031625415 at 2755 | .006143667 at 2112 | 199 | 2537 / 2758 |

Continuous final position error is .011624434 units and final velocity error .003204201 u/s. The continuous run receives no recorded position or velocity after its initial state. It reaches the native finish location from reconstructed normal commands. Each mode reports 1,070 simulated collision ticks; native contact/ground flags are absent, so a contact-state error count would be invented. Timed-trigger completion is verified separately by the game-session route witness.

The isolated residuals are concentrated at BSP ramp contacts (334,535–613), shallow VPhysics contact906, curved VPhysics normals (2181–2408), and entry to the map's speed modifier (2641–2642). The contact differences are consistent with native float/trace arithmetic differences, but that explanation is not proven. For the modifier, the exact six-plane trigger begins hull overlap at frame2640, origin entry at2641, and native scaled gravity first appears in transition2642→2643. The current immediate hull-overlap rule acts two ticks earlier. General Source touch/event-queue timing has not been reproduced; shifting the authored bounds would hide this uncertainty. Neither group is hidden by loosening tolerances. The original .002 thresholds remain strict for both comparisons, so accumulated continuous drift is explicitly counted even though the final spatial error is small.

These results are strong evidence for this real CSS/KSF route and its physics/collision behavior. Remaining gaps are native VPhysics and displacement contact implementation, entity-I/O timing at trigger boundaries, keyboard fractional press/release magnitudes, exact native build/cvar/plugin versions, native grounded/duck metadata, detailed repeated-jump stamina rules, and exact KSF timer internals. An instrumented CSS build and experienced human comparison would still improve coverage beyond this single independently recorded run.
