fuzzyworld

nordic-skating / commit

docs: drifts and the controller; screenshots retaken

893cda77555aa98b080b8d14cb6c932f1f26cd0d · Pavel Safronov · 2026-10-10 09:55:26 -0700 · parents 8bb08e4acc50

Claude Code usage: this commit ≈0 out / ≈0 cached · cost unknown (no per-model trailer) · session 1 tally 1.2K in / 1.0M out / 180.3M cached · usage by commit and session

docs: drifts and the controller; screenshots retaken

Usage: 1.2K in / 1M out / 180.3M cached (session tally)
rtk:   1.7M saved, 25.3% over 2690 cmds (global/lifetime)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 PLAN.md                               |  17 ++++++++++-------
 README.md                             |  17 ++++++++++++++++-
 docs/screenshots/about.png            | Bin 223447 -> 228324 bytes
 docs/screenshots/aeroplane.png        | Bin 380544 -> 373494 bytes
 docs/screenshots/aurora-phone.png     | Bin 249769 -> 244606 bytes
 docs/screenshots/aurora.png           | Bin 307857 -> 309866 bytes
 docs/screenshots/autopilot.png        | Bin 225527 -> 203312 bytes
 docs/screenshots/blizzard.png         | Bin 191089 -> 224810 bytes
 docs/screenshots/comet.png            | Bin 266095 -> 264360 bytes
 docs/screenshots/dusk.png             | Bin 259044 -> 258024 bytes
 docs/screenshots/far.png              | Bin 266775 -> 277082 bytes
 docs/screenshots/fork.png             | Bin 335791 -> 337280 bytes
 docs/screenshots/island-alongside.png | Bin 187465 -> 187937 bytes
 docs/screenshots/island.png           | Bin 307249 -> 311364 bytes
 docs/screenshots/islets-dusk.png      | Bin 197278 -> 197038 bytes
 docs/screenshots/islets.png           | Bin 301437 -> 298472 bytes
 docs/screenshots/landscape.png        | Bin 282478 -> 281658 bytes
 docs/screenshots/night.png            | Bin 261847 -> 265652 bytes
 docs/screenshots/pass.png             | Bin 226360 -> 229983 bytes
 docs/screenshots/sea.png              | Bin 235753 -> 235244 bytes
 docs/screenshots/settings.png         | Bin 216511 -> 236119 bytes
 docs/screenshots/snow.png             | Bin 280049 -> 318141 bytes
 docs/screenshots/steering.png         | Bin 174419 -> 269382 bytes
 docs/screenshots/thin-ice.png         | Bin 284706 -> 287613 bytes
 docs/screenshots/tracks.png           | Bin 268253 -> 278012 bytes
 25 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/PLAN.md b/PLAN.md
index 39ff39a..dfbd980 100644
--- a/PLAN.md
+++ b/PLAN.md
@@ -139,10 +139,11 @@ silent; should it be?
 **Still to judge.** Are the tracks too faint against the ice's own cracks, which are the
 same colour? Should they fade with time?
 
-**Named and not yet built.**
-- **Snow drifts**: snow lying on the ice in streaks blown by the wind, building up in
-  a blizzard. They would want to slow a skater and deaden the ice's sound where they
-  lie, which is the "bad ice" of the first description of this app.
+- **Snow drifts** (2026-10-10): snow lying on the ice in streaks down the lake's wind,
+  under falling snow and more in a blizzard. A drift slows the skater to about half
+  speed and takes the ring out of the ice: the "bad ice" of the first description of
+  this app. Still to judge: is half speed too much of a penalty for a relaxing skate,
+  and are there too many drifts in a blizzard to find a way between?
 
 **Further ideas, none started**: a moon and its phase; mist that thins and thickens;
 dawn; how wooded and how hilly the banks are; the colour of the aurora; birds; a far
@@ -280,10 +281,12 @@ falls through and nothing is scored. Falling is written and switched off (`RULES
 one is a maybe, as an option beside the relaxed one and never instead of it. Ideas: time
 spent on singing ice, distance without falling, a set course against the clock.
 
-### Game controller
+### Game controller — built, not tried with one
 
-Postponed. `~/code/flight/src/utils/input.ts` already reads gamepads and is the place to
-start.
+Either stick or the direction buttons steer; Y or triangle goes to another lake; X or
+square turns the sound on and off (2026-10-10). The stick's mapping is tested; no
+controller has been connected to it. To judge with one in hand: the 15% rest in the
+middle of the stick, and whether the buttons are the right ones.
 
 ### Multiplayer
 
diff --git a/README.md b/README.md
index 9d1f224..ff7ea3e 100644
--- a/README.md
+++ b/README.md
@@ -158,7 +158,15 @@ address asks for a time whatever the settings say.
 | Snow | falling quietly | 420 m | mostly cloud | 0.5 to 3 m/s | 26% |
 | Blizzard | thick, and driven | 200 m | all cloud | 7 to 16 m/s, in gusts | 10% |
 
-Snow is a box of flakes that stays round the skater (`src/render/snow.ts`): they fall,
+**Snow that falls lies, in drifts** (`src/render/drifts.ts`): long pale streaks on the
+ice, all running the way that lake's wind blows, a few of them under falling snow and
+many in a blizzard. A drift is the lake's bad ice. In the middle of one a skater is
+dragged at four times as hard as on ice and slows to about half speed; the ice under
+it does not ring to a strike or sing to the glide, and the blade shushes instead. Bare
+ice between the drifts is as fast and as loud as ever, so in a blizzard there is a
+reason to pick a way.
+
+Snow in the air is a box of flakes that stays round the skater (`src/render/snow.ts`): they fall,
 the wind carries them, and they stream past as the skater moves, which is most of what
 makes a blizzard feel fast. Each lake's wind blows from a direction of its own. The wind
 can be heard, louder and higher in its gusts. Cloud hides the stars, the aurora and
@@ -167,6 +175,11 @@ address asks for a weather whatever the settings say.
 
 <img src="docs/screenshots/snow.png" alt="Snow falling over the lake by day" width="640" />
 
+**A game controller** works as well: either stick or the direction buttons steer, Y or
+triangle goes to another lake, and X or square turns the sound on and off. It needs no
+setting up beyond being connected, though a browser shows a page a controller only
+once one of its buttons has been pressed.
+
 Steering turns the skater: the harder the steer, the tighter the curve, up to a circle
 16 m in radius, with a moment to lean into it. Held over, the skater turns right round
 and can skate back up the lake, or round and round; that needs open water, about 24 m
@@ -345,6 +358,8 @@ measured the spreading directly, with instruments on the ice.
   of noise at its note, starting a little high and falling onto it, then dying away.
 - **The hum and the scrape**: the gliding blade keeps the note faintly alive and hisses.
 - **The wind**, when there is one: low, loose noise, louder and higher in its gusts.
+- **Snow under the blade**, in a drift: a soft, low shush in place of the ring, the hum
+  and the scrape.
 - **The cracks**: every few seconds the ice cracks somewhere between 40 and 600 m off,
   and the chirp for that distance and that thickness arrives. The falling chirp is a
   sine wave and stops the moment it lands on the note; what rings on after it is the
diff --git a/docs/screenshots/about.png b/docs/screenshots/about.png
index cfaff71..54dcac9 100644
Binary files a/docs/screenshots/about.png and b/docs/screenshots/about.png differ
diff --git a/docs/screenshots/aeroplane.png b/docs/screenshots/aeroplane.png
index 0a36426..577d0a0 100644
Binary files a/docs/screenshots/aeroplane.png and b/docs/screenshots/aeroplane.png differ
diff --git a/docs/screenshots/aurora-phone.png b/docs/screenshots/aurora-phone.png
index fe65915..9e83080 100644
Binary files a/docs/screenshots/aurora-phone.png and b/docs/screenshots/aurora-phone.png differ
diff --git a/docs/screenshots/aurora.png b/docs/screenshots/aurora.png
index 1b4a3ed..5fec0d6 100644
Binary files a/docs/screenshots/aurora.png and b/docs/screenshots/aurora.png differ
diff --git a/docs/screenshots/autopilot.png b/docs/screenshots/autopilot.png
index 82c97ec..c19482c 100644
Binary files a/docs/screenshots/autopilot.png and b/docs/screenshots/autopilot.png differ
diff --git a/docs/screenshots/blizzard.png b/docs/screenshots/blizzard.png
index 3efbc17..ee9dc87 100644
Binary files a/docs/screenshots/blizzard.png and b/docs/screenshots/blizzard.png differ
diff --git a/docs/screenshots/comet.png b/docs/screenshots/comet.png
index d251767..0e06435 100644
Binary files a/docs/screenshots/comet.png and b/docs/screenshots/comet.png differ
diff --git a/docs/screenshots/dusk.png b/docs/screenshots/dusk.png
index e6b8813..5eb966a 100644
Binary files a/docs/screenshots/dusk.png and b/docs/screenshots/dusk.png differ
diff --git a/docs/screenshots/far.png b/docs/screenshots/far.png
index 10728f3..d8bcfea 100644
Binary files a/docs/screenshots/far.png and b/docs/screenshots/far.png differ
diff --git a/docs/screenshots/fork.png b/docs/screenshots/fork.png
index 84883c9..1d1fa99 100644
Binary files a/docs/screenshots/fork.png and b/docs/screenshots/fork.png differ
diff --git a/docs/screenshots/island-alongside.png b/docs/screenshots/island-alongside.png
index 3a233c1..00afef9 100644
Binary files a/docs/screenshots/island-alongside.png and b/docs/screenshots/island-alongside.png differ
diff --git a/docs/screenshots/island.png b/docs/screenshots/island.png
index 17d6e86..48c35a4 100644
Binary files a/docs/screenshots/island.png and b/docs/screenshots/island.png differ
diff --git a/docs/screenshots/islets-dusk.png b/docs/screenshots/islets-dusk.png
index a94ef68..c794a8b 100644
Binary files a/docs/screenshots/islets-dusk.png and b/docs/screenshots/islets-dusk.png differ
diff --git a/docs/screenshots/islets.png b/docs/screenshots/islets.png
index 5eb4eba..00fd2f0 100644
Binary files a/docs/screenshots/islets.png and b/docs/screenshots/islets.png differ
diff --git a/docs/screenshots/landscape.png b/docs/screenshots/landscape.png
index 6b56ba5..7802681 100644
Binary files a/docs/screenshots/landscape.png and b/docs/screenshots/landscape.png differ
diff --git a/docs/screenshots/night.png b/docs/screenshots/night.png
index 0f66b43..468f9df 100644
Binary files a/docs/screenshots/night.png and b/docs/screenshots/night.png differ
diff --git a/docs/screenshots/pass.png b/docs/screenshots/pass.png
index 8295446..133b779 100644
Binary files a/docs/screenshots/pass.png and b/docs/screenshots/pass.png differ
diff --git a/docs/screenshots/sea.png b/docs/screenshots/sea.png
index 891781f..1da40a5 100644
Binary files a/docs/screenshots/sea.png and b/docs/screenshots/sea.png differ
diff --git a/docs/screenshots/settings.png b/docs/screenshots/settings.png
index 6c11178..bba5cb9 100644
Binary files a/docs/screenshots/settings.png and b/docs/screenshots/settings.png differ
diff --git a/docs/screenshots/snow.png b/docs/screenshots/snow.png
index 9672530..426d67c 100644
Binary files a/docs/screenshots/snow.png and b/docs/screenshots/snow.png differ
diff --git a/docs/screenshots/steering.png b/docs/screenshots/steering.png
index cc37201..33dda4e 100644
Binary files a/docs/screenshots/steering.png and b/docs/screenshots/steering.png differ
diff --git a/docs/screenshots/thin-ice.png b/docs/screenshots/thin-ice.png
index f205977..2cf7050 100644
Binary files a/docs/screenshots/thin-ice.png and b/docs/screenshots/thin-ice.png differ
diff --git a/docs/screenshots/tracks.png b/docs/screenshots/tracks.png
index e6546d4..c8a32c9 100644
Binary files a/docs/screenshots/tracks.png and b/docs/screenshots/tracks.png differ