# Tendies — original CSS import

`surf_tendies` by **granis** is a Tier-1 linear course with four checkpoints. This is a local integration; the completed Summer / Forbidden Ways release remains the live 17-map catalog until a separate coordinated release includes Tendies.

The pinned CSS BSP is `db28a17bcbba187046b909398abb1bfc1bfa5c3e`, 34,355,249 bytes, from the [KSF mirror](https://main.fastdl.me/h2/db28a17bcbba187046b909398abb1bfc1bfa5c3e/surf_tendies.bsp.bz2). The [author's CSS upload](https://gamebanana.com/mods/123116) confirms Tier 1, a linear main course, three bonuses and max velocity 5000. Its metadata and original credits are captured in `fixtures/tendies-gamebanana-source.json`. Xbmann and Dream contributed bonuses; asset contributors include fingerprince, DomiTibingen, Karatekaefer, SkyppySDK and TopHATTwaffle. The upload lists CC BY-NC-ND 4.0 and a permission checklist. This conversion does not establish additional redistribution rights.

The import keeps 2,270 collision brushes, 12,960 full-resolution displacement triangles and 46 solid props. Original main start, four checkpoint and finish convexes are used. Main failure portals return to the canonical start, including the map's intermediate filter-routing room. The hidden routing room and three bonus modes are not playable destinations. The 5000 max-velocity rule is map-specific; shared movement settings are unchanged.

The five reviewed player-output triggers implement the original filtered launch and two vertical boosts. See [player-output behavior and limits](MAP-PLAYER-OUTPUTS.md). No new boost was invented to compensate for a geometry problem. Other optional Source entity behavior remains outside the supported main course.

The independent reference is .x's public [CSS66t forward main recording](https://ksf.surf/replays/surf_tendies/replay_css_4074_0_712551_1752625913.rec?game=66t), SHA-256 `f7401a2e5152e0185433d95a03a6f964fa3275c4aff5a86cea5f948271e5e689`, 134,364 bytes. The source, viewer category and frame layout are pinned in `fixtures/easy-three-source-metadata.json`. Independent next-step comparisons pass 2,925 of 2,933 frames at 0.002-unit position/velocity tolerances. All eight discrepancies remain in the report; inferred commands are not used to inflate that result.

The complete local witness uses 3,310 ordinary commands from the canonical spawn, including walking to an observed stationary deck pose, and finishes in **41.185245 seconds** through all four checkpoints. It passes the server verifier and exact state/contact/timer comparisons at 30, 60, 144 and 240 FPS. It is an automated possibility witness, not a human record or reproduction of the native world record. V2 analog input inference, an explicit duck transition and bounded yaw changes are offline planning only. Positions, velocities, collision surfaces and timer state are not injected during playback.

Original visuals include 10,666 faces, 571 displacement surfaces, 173 static props, 36 dynamic props in their initial pose and a baked lightmap. The import reports no missing-asset warnings. All 251 decoded images and all 176 native compressed textures were checked against their source pixels/blocks. Ten unedited rendered course views are captured in `fixtures/easy-three-visuals/tendies-browser-views.json`. Static initial poses, supported material shaders and baked lighting do not establish exact native rendering parity or full animation/particle support.

Reproduction uses the pinned map under `node_modules/.map-imports/`, then:

```sh
python scripts/import_new_maps.py tendies
python scripts/import_boreas_visuals.py node_modules/.map-imports/surf_tendies.bsp --slug tendies --map-id surf_tendies --author granis --game-dir "C:/Program Files (x86)/Steam/steamapps/common/Counter-Strike Source" --texture-format lossless-webp --compressed-textures
node --import tsx scripts/decode-easy-three-replays.ts
node --import tsx scripts/validate-classic-five-reference.ts tendies
node --import tsx scripts/plan-classic-five-routes.ts tendies --canonical
node --import tsx scripts/certify-reset-recovery.ts --check
node --import tsx scripts/validate-new-maps.ts tendies
```

The prior 17 maps retain their geometry, configuration and board identities. The initial opt-in output comparison is recorded in `fixtures/easy-three-compatibility-results.json`. A subsequent shared collision-reset repair is documented in `SUMMER-FORBIDDEN.md`, with current comparison evidence in `fixtures/reset-investigation/compatibility-results.json`. The published physics hash always describes the actual runtime. Live room catalog, board registration, matching client/verifier physics and website promotion must be coordinated when releasing the next map batch.

Final Tendies checks: 505 application tests (502 full-suite checks plus three new Tendies course checks), 21 importer tests, TypeScript and production build passed. The real built-game browser completed all 3,310 commands with exact final state and splits, no browser errors, keyboard/Pointer Lock, restart, responsive menu and persisted selection. Evidence: `fixtures/browser-new-map-results-tendies-local.json`. Both native and decoded texture paths passed; observed browser playback was about 360 FPS on this machine, not a universal performance guarantee.

The final three-map package was rechecked after adding Derpis and Prelude: all 513 application tests and 21 importer tests passed, along with TypeScript, production build and all three full browser routes. The current built-game evidence is `fixtures/browser-new-map-results-easy-three-local.json`; the earlier Tendies-only result remains historical. The 17 released maps still match their frozen trajectories for all 89,846 certified ticks.
