fuzzyworld

nordic-skating / commit

docs: tilt to steer

9f2e250988c25bf4931bb7ffac829eb59a20ac77 · Pavel Safronov · 2026-10-09 22:36:27 -0700 · parents 8876a48d98c4

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

docs: tilt to steer

Usage: 914 in / 783.4K out / 104.4M cached (session tally)
rtk:   1.7M saved, 25.3% over 2678 cmds (global/lifetime)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 PLAN.md   | 15 +++++++++++++++
 README.md | 16 +++++++++++++++-
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/PLAN.md b/PLAN.md
index 13286ed..3bef7aa 100644
--- a/PLAN.md
+++ b/PLAN.md
@@ -168,6 +168,21 @@ cannot put spread into a sound that has none.
 **What would settle it**, if it matters: a recording made some hundreds of metres from
 the cracks, with the ice's thickness known. The paper's own data are of that kind.
 
+### 5a. Tilt to steer — built, not tried on a phone
+
+Asked for by Pavel on 2026-10-10. A setting, off by default, shown only on phones and
+tablets: lean the phone like a wheel to steer, level to let the skater skate itself.
+Dragging still works with it on.
+
+Checked in a desktop browser pretending to be a phone, with made-up tilt: the setting
+shows, is remembered, and leaning turns the skater. Not checked: a real phone, where
+the things to judge are whether 4° of rest and 28° for full steering are right, whether
+leaning is the right way round in each orientation, and whether an iPhone's request for
+leave appears and works. It needs HTTPS, so it can only be tried on the live site.
+
+**Open.** There is no way to set which lean counts as level: it is level. Someone lying
+on their side cannot use it.
+
 ### 6. Phone controls
 
 **Waiting on Pavel**, who is still trying the touch steering and will send feedback.
diff --git a/README.md b/README.md
index c03f78e..61a734c 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ one side of every fork, for as long as you leave it.
 
 | To | Touch or mouse | Keyboard |
 |---|---|---|
-| Steer left or right | Drag sideways from wherever you touch | ← → or A D |
+| Steer left or right | Drag sideways from wherever you touch; or tilt the phone, if that is turned on in Settings | ← → or A D |
 | Turn right round, or circle an islet | Hold the steer over | the same |
 | Choose a way at a fork | A touch towards it on the way up to the fork | the same |
 | Sound on or off | The button at the top right | M |
@@ -78,11 +78,25 @@ Each takes effect as it is touched, behind the box, and is remembered for next t
 | Setting | Choices | To begin with |
 |---|---|---|
 | Time of day | Surprise me, Day, Dusk, Night, Aurora | Surprise me: whichever the lake comes with |
+| Tilt to steer (phones and tablets only) | on or off | off |
 | Impossible ice | on or off | off |
 | Lake | Another lake (the same as Randomize); a link back to this one | a different lake every visit |
 
 <img src="docs/screenshots/settings.png" alt="The settings box at the foot of the screen, under a night sky" width="320" />
 
+### Tilt to steer
+
+On a phone or tablet, Settings has **Tilt to steer**. Turned on, the phone is leaned
+left or right like a wheel, about the line the skater looks along: more lean, tighter
+turn, full steering at 28°. Within 4° of level counts as level, since nobody holds a
+phone dead level, and held level the skater skates itself. It works held upright or on
+its side, and dragging still works alongside it.
+
+An iPhone asks leave for this, each visit, at the first touch. If it has been refused
+it is not asked again: Settings, Safari, Motion & Orientation Access turns it back on.
+Browsers give a page the phone's tilt only over HTTPS, which the live site is and
+`npm run dev` on a phone is not, so it cannot be tried on a phone from the dev server.
+
 ### A different lake every visit
 
 A lake is a number from 1 to 999,999, and everything about it follows from the number: