nordic-skating / mistral-medium-35-littlejs / files / PLAN.md
Branch mistral-medium-35-littlejs · default branch · all branches
PLAN.md
e3bfc714 2026-10-10 Pavel Safronov | 1 | # Plan |
| 2 | ||
| 3 | What is left to do on Nordic Skating, in the order it is meant to be picked up, with what | |
| 4 | has been decided about each item and what is still open. The README says what the app | |
| 5 | does today; this says what it does not do yet. | |
| 6 | ||
| 7 | Last brought up to date 2026-10-09. | |
| 8 | ||
| 9 | ## Where things stand | |
| 10 | ||
2f7e86b7 2026-10-10 Pavel Safronov | 11 | Built: the endless lake, autopilot and steering, the synthesized sound, ice whose |
| 12 | thickness can be seen and heard, forks, narrow passes and open sea, the sound button, | |
| 13 | the About box and the link to the source. Falling through is written and switched off. | |
e3bfc714 2026-10-10 Pavel Safronov | 14 | |
| 15 | Postponed until the items below are ironed out: **game controller**, then | |
| 16 | **multiplayer** (the last step of the original six). | |
| 17 | ||
| 18 | ## Next | |
| 19 | ||
2f7e86b7 2026-10-10 Pavel Safronov | 20 | ### 1. Motion — built, waiting to be felt |
| 21 | ||
| 22 | **The problem was** that each stride swung the view from side to side and tilted it, the | |
| 23 | speed never changed, and steering slid the skater sideways at a fixed rate. | |
| 24 | ||
| 25 | **What was built** (2026-10-09), all four changes proposed: | |
| 26 | ||
| 27 | 1. **A speed that breathes with the stride.** A push adds about 1 m/s over half a | |
| 28 | second; drag takes it back through the glide. Around 7 m/s. | |
| 29 | 2. **Steering that turns the skater.** The skater has a place, a direction and a speed. | |
| 30 | Input sets how fast the direction changes, up to a 16 m circle, with a third of a | |
| 31 | second to lean into it. Paths are arcs by construction. | |
| 32 | 3. **An autopilot that carves.** It aims 18 m ahead on a line that wanders up to 6 m | |
| 33 | either side of the middle, and steers with the same limits as a person. | |
| 34 | 4. **A head that stays level.** The side-to-side sway and tilt are gone. What is left is | |
| 35 | a 3 cm rise on each push and a lean into real turns of at most 3.5°. | |
| 36 | ||
c2835cab 2026-10-10 Pavel Safronov | 37 | **Changed on Pavel's report** (2026-10-10): the autopilot fought the skater. It had a |
| 38 | line fixed in advance, and after any steering it went back to it: steer left out of a | |
| 39 | right-hand curve, let go, and it turned right again. Now the line is a plan that | |
| 40 | steering rewrites. Let go, and the line is centred where the skater has got to and its | |
| 41 | next swing begins the way they are going. Nothing eases back to the middle any more, | |
| 42 | and where the skater is, not the fork's preference, decides a fork for a skater who | |
| 43 | does not steer at it. | |
| 44 | ||
2f7e86b7 2026-10-10 Pavel Safronov | 45 | **Decided by Pavel.** |
| 46 | - The whole lake is safe: falling is suspended, and thickness decides only the sound. | |
| 47 | - Impossible ice is allowed: thinner than could hold anyone, down to 8 mm, never cracks. | |
| 48 | - More complex paths are wanted later, so nothing here may rule them out. | |
| 49 | ||
| 50 | **Kept open on purpose.** The skater is a point with a direction on a flat sheet, not an | |
| 51 | offset along a one-way line, so turning round is already something the model can do. | |
| 52 | One rule stops it: the skater may point at most 50° off the line of the channel | |
| 53 | (`MAX_HEADING` in `src/skater.ts`). What would still need doing for a skater going | |
| 54 | backwards: forks are entered by passing a distance and are not left by passing back | |
| 55 | over it, and only 100 m of shore is kept behind the skater. | |
| 56 | ||
| 57 | **Still to judge, by feel.** | |
| 58 | - Are the push and the glide strong enough to notice, or too strong? | |
| 59 | - Is the carving too wide, too tight, or about right? Should it stop in a narrow pass? | |
| 60 | - Is the turning limit right for a finger on a phone? | |
| 61 | - Should the stride length follow the speed, or thin ice or a pass slow the skater? | |
| 62 | ||
| 63 | ### 2. Screen wake lock — built | |
| 64 | ||
| 65 | Asked for when the page opens, each time it comes back from being hidden, and at the | |
| 66 | first touch, since some browsers give it only then. Where the browser has no such thing | |
| 67 | it is silently skipped. Not checked on a phone: leave it on autopilot and see whether | |
| 68 | the screen stays on. | |
| 69 | ||
| 70 | ### 2a. Settings, times of day, and a different lake every visit — built | |
| 71 | ||
| 72 | Asked for by Pavel on 2026-10-09, with the reason: one of the main things about this is | |
| 73 | to be reloading the page and finding yourself somewhere slightly different. | |
| 74 | ||
| 75 | **What was built.** | |
| 76 | - **A settings box**, opened from the top left, at the foot of the screen so that what | |
| 77 | it changes can be seen changing behind it. It is the control panel new options go in. | |
| 78 | - **Impossible ice is a setting, off by default.** | |
| 79 | - **Four times of day**: day, dusk, night under the Milky Way, and the aurora. The | |
| 80 | setting starts on "Surprise me", which is whichever the lake comes with. | |
| 81 | - **Every visit is another lake**: a number from 1 to 999,999 picked on opening, which | |
| 82 | decides the water, the ice, the trees and the time of day. `?seed=` asks for one by | |
| 83 | number, so a lake can still be come back to, linked to, photographed, and, later, | |
| 84 | shared between players. | |
| 85 | - **Randomize**, a button beside Settings (and the R key): another lake at once, | |
| 86 | without a reload, and put in the browser's history so that Back returns to the lake | |
| 87 | left. A reload still gets a new lake; which lake a page shows is kept with its place | |
| 88 | in the history, not in the address. | |
| 89 | - The Source link left the top bar to make room; it is in the About box. | |
| 90 | ||
| 91 | **Still to judge.** | |
| 92 | - Are the Milky Way and the aurora right? The aurora moves, slowly; a still picture | |
| 93 | cannot show whether it moves well. | |
| 94 | - Is night too dark to read the ice by, on a phone outdoors? | |
| 95 | - Is "slightly different" different enough? Only the lake and the time vary now. | |
| 96 | ||
| 97 | **Ideas for more variety between lakes**, none started: a moon and its phase, falling | |
| 98 | snow, mist that thins and thickens, wind in the sound, dawn, how wooded the banks are, | |
| 99 | how hilly, the colour of the aurora, how fast it moves. | |
| 100 | ||
| 101 | **Ideas for more settings**, none started: speed, how far the autopilot carves, how long | |
| 102 | the strides are, how much the ice cracks, falling through, the haze. | |
e3bfc714 2026-10-10 Pavel Safronov | 103 | |
0045befd 2026-10-10 Pavel Safronov | 104 | ### 2b. More in the scene — partly built |
| 105 | ||
| 106 | Pavel, 2026-10-10: more details in the scene are welcome, and named these. | |
| 107 | ||
| 108 | **Built, waiting to be looked at.** | |
| 109 | - **In the sky**: shooting stars at night; a comet over one night lake in three; an | |
| 110 | aeroplane and its trail over two day or dusk lakes in three. | |
| 111 | - **Weather**: clear, snow, or a blizzard, as a setting that starts on "Surprise me". | |
| 112 | Falling snow that streams past the skater, wind from a direction of the lake's own, | |
| 113 | the wind's sound, cloud over the sky, and less distance to see through. | |
| 114 | ||
| 115 | **Still to judge.** Is a blizzard thick enough, and is 200 m too little to see by? Is | |
| 116 | the wind too loud over the ice? Are shooting stars too frequent? The aeroplane is | |
| 117 | silent; should it be? | |
| 118 | ||
b2c4db9f 2026-10-10 Pavel Safronov | 119 | **Built since, waiting to be looked at** (2026-10-10). |
| 120 | - **Cracks made by the skater, and skate tracks.** The marks are drawn on a picture of | |
| 121 | the hundred metres square of ice round the skater. Tracks and the scratch of each | |
| 122 | push are always left; cracks are drawn where they are heard, and a push on cracking | |
| 123 | ice starts more. Seen working as a drawing; the cracks have not been seen in the app | |
| 124 | itself, only the tracks. | |
| 125 | - **A long island in the middle of the lake**: see "Channels that part and join again". | |
| 126 | ||
94b3b29f 2026-10-10 Pavel Safronov | 127 | **Improved on Pavel's look at them** (2026-10-10), waiting to be looked at again. |
| 128 | - **The cracks the skater makes were too thick and pixelated.** They were drawn into a | |
| 129 | picture with ten pixels to the metre. They are now lines of their own, a pixel wide at | |
| 130 | any distance, and a crack runs out from its middle at 28 m/s instead of appearing whole. | |
| 131 | Tracks and push scratches are drawn the same way. | |
| 132 | - **The cracks the ice already has were not realistic**: thirty jagged lines at random. | |
| 133 | They are now a network made the way ice cracks: a few long, nearly straight runs, and | |
| 134 | later cracks that leave an earlier one at a wide angle and stop at the next. | |
| 135 | - Still not done: the picture of the ice's own cracks repeats every 32 m, and they are | |
| 136 | painted, so close to they are softer than the hairlines the skater makes. | |
c2835cab 2026-10-10 Pavel Safronov | 137 | |
b2c4db9f 2026-10-10 Pavel Safronov | 138 | **Still to judge.** Are the tracks too faint against the ice's own cracks, which are the |
c2835cab 2026-10-10 Pavel Safronov | 139 | same colour? Should they fade with time? |
b2c4db9f 2026-10-10 Pavel Safronov | 140 | |
893cda77 2026-10-10 Pavel Safronov | 141 | - **Snow drifts** (2026-10-10): snow lying on the ice in streaks down the lake's wind, |
| 142 | under falling snow and more in a blizzard. A drift slows the skater to about half | |
| 143 | speed and takes the ring out of the ice: the "bad ice" of the first description of | |
| 144 | this app. Still to judge: is half speed too much of a penalty for a relaxing skate, | |
| 145 | and are there too many drifts in a blizzard to find a way between? | |
0045befd 2026-10-10 Pavel Safronov | 146 | |
| 147 | **Further ideas, none started**: a moon and its phase; mist that thins and thickens; | |
| 148 | dawn; how wooded and how hilly the banks are; the colour of the aurora; birds; a far | |
| 149 | shore with the lights of a house at night; satellites; a bare rock, as in the film. | |
| 150 | ||
b2c4db9f 2026-10-10 Pavel Safronov | 151 | ### Channels that part and join again — built, waiting to be tried |
0045befd 2026-10-10 Pavel Safronov | 152 | |
| 153 | **Pavel's question**: is this something like a long island of grass in the middle of a | |
b2c4db9f 2026-10-10 Pavel Safronov | 154 | lake or river? **Yes**, and that is what was built (2026-10-10): a low bank of reeds |
| 155 | 180 to 480 m long, in the middle of a channel, with water both sides that is one water | |
| 156 | again beyond it. | |
| 157 | ||
| 158 | It turned out simpler than a fork whose channels rejoin. The island is a thing standing | |
| 159 | in one channel, like an islet but long: the channel is made wider by the island's width | |
| 160 | where it stands, and the skater has the water on whichever side of it they are on. No | |
| 161 | channel is left or joined. | |
| 162 | ||
| 163 | **Still to judge.** Is one every 5 km right? Do the reeds read as an island from a | |
| 164 | distance, or as a smudge? Should some islands be wooded, like the ones at forks? | |
0045befd 2026-10-10 Pavel Safronov | 165 | |
3f3d6bce 2026-10-11 Pavel Safronov | 166 | ### 2c. Pace — built, waiting to be felt |
| 167 | ||
| 168 | Asked for by Pavel on 2026-10-10: a peaceful meander, something faster, and something | |
| 169 | ridiculously fast, as if training for the Olympics, with whatever between makes sense. | |
| 170 | ||
| 171 | **What was built.** Five paces: Meander (13 km/h), Cruise (25, as it was), Brisk (36), | |
| 172 | Racing (45) and Olympic (54). A button at the bottom right steps through them; so do | |
| 173 | the up and down keys and a controller; and they are in Settings. Strides shorten and | |
| 174 | quicken with pace, the skater crouches, the view widens, the air rushes, the turning | |
| 175 | circle grows, and the autopilot looks and steers further ahead. | |
| 176 | ||
| 177 | **Still to judge.** | |
| 178 | - The names, which Pavel was not sure of. | |
| 179 | - Is Olympic fast enough to be ridiculous? It is a real speed skater's pace. There is | |
| 180 | room above it, though the lake's bends and narrows were made for 25 km/h. | |
| 181 | - At a racing pace a skater is kept well back from the shores, so in ordinary water | |
| 182 | there is not much steering to be done. Too restrictive? | |
| 183 | - Should a pass, a fork or a bed of islets slow a racer down? | |
| 184 | - Does the wider view at speed feel fast, or only odd? | |
| 185 | ||
8b498d51 2026-10-10 Pavel Safronov | 186 | ### 3. Installable app — built, not yet tried on a phone |
e3bfc714 2026-10-10 Pavel Safronov | 187 | |
8b498d51 2026-10-10 Pavel Safronov | 188 | A web manifest and a service worker, made by `vite-plugin-pwa`. Installed, the app has |
| 189 | its own icon, opens full screen with no browser bars, and works with no network: the | |
| 190 | whole of it is kept on the phone, and nothing is fetched after that. A new version is | |
| 191 | taken up the next time it is opened. | |
e3bfc714 2026-10-10 Pavel Safronov | 192 | |
8b498d51 2026-10-10 Pavel Safronov | 193 | Checked in a desktop browser: with the network off and the server stopped, the app |
| 194 | opens, opens a lake by number, and Randomize works. Not checked: installing it on a | |
| 195 | phone, on either Android or an iPhone. | |
| 196 | ||
3f3d6bce 2026-10-11 Pavel Safronov | 197 | **The icons** are supplied by Pavel: a skate for the app and the pace button, and a |
| 198 | speaker and a crossed-out speaker for the sound button, all by Icongeek26, from | |
| 199 | Flaticon, credited in the About box and the README as the licence requires. The Tilt | |
| 200 | button has a phone in a hand for on and a phone by itself for off, also supplied by | |
| 201 | Pavel; **to confirm: whether those two are by Icongeek26 as well**. The artwork is | |
8b498d51 2026-10-10 Pavel Safronov | 202 | `assets/skate-shoes.png`, and `npm run icons` makes the home-screen and tab icons from |
| 203 | it, pale on the colour of black ice. | |
| 204 | ||
| 205 | **Open.** It opens in whichever orientation the phone is held. Should it lock to one? | |
e3bfc714 2026-10-10 Pavel Safronov | 206 | |
df2b8215 2026-10-10 Pavel Safronov | 207 | ### 4. Islets to skate round, and turning right round — built, waiting to be tried |
e3bfc714 2026-10-10 Pavel Safronov | 208 | |
| 209 | **Pavel's idea.** In the film the skater does a loop around a patch of grass and then | |
df2b8215 2026-10-10 Pavel Safronov | 210 | carries on. Add that, as a kind of fork or obstacle. More complex paths are welcome. |
| 211 | ||
| 212 | **What the film shows** (looked at 2026-10-09): from 2:12 to 2:35, a skater weaving | |
| 213 | among small tufted islets of reeds standing in the ice, several to a cluster. Also a | |
| 214 | bare rock in the lake at 1:52, and at 0:35 ice covered in looping white skate tracks. | |
| 215 | And at 1:17 the ice is measured on camera: 45 mm. The sound alone gives 41 mm. | |
| 216 | ||
| 217 | **What was built.** | |
| 218 | - **Islets**: reeds on humps of frozen ground, 5 to 15 m across, in beds. The autopilot | |
| 219 | steers round them; a skater steering at one is turned aside at the last moment, and | |
| 220 | nobody can get onto one. | |
| 221 | - **Turning right round.** The limit on how far off the lake's line the skater could | |
| 222 | point is gone from open water. Held over, the skater circles, 16 m in radius, and can | |
| 223 | skate back up the lake; let go and the autopilot turns them down it again. The land, | |
| 224 | the ice's thickness and the view all follow whichever way the skater faces. | |
| 225 | - **A touch chooses at a fork.** With steering now turning, holding it over until the | |
| 226 | fork would be a circle, so a touch one way within 200 m of a fork is taken as asking | |
| 227 | for that side. | |
| 228 | ||
| 229 | **Still to judge, by feel.** | |
| 230 | - Is circling an islet with a finger possible, and pleasant? The circle is 16 m in | |
| 231 | radius whatever the islet's size. | |
| 232 | - Is it too easy to turn round by accident? Holding a steer for seven seconds does it. | |
| 233 | - Are there too many islets, or too few? Do the reeds look like reeds? | |
| 234 | ||
| 235 | **Not done, and wanted or possible.** | |
0045befd 2026-10-10 Pavel Safronov | 236 | - Forks of three. Channels that part and join again: see the section of that name. |
df2b8215 2026-10-10 Pavel Safronov | 237 | - A bare rock, as in the film. A drawing of the skater's own tracks on the ice, as in |
| 238 | the film: with loops now possible, they would show them. | |
| 239 | - Forks cannot be gone back through: a skater who turns back above a fork stays in the | |
| 240 | channel they chose, which is the right water but would matter if tracks were drawn. | |
e3bfc714 2026-10-10 Pavel Safronov | 241 | |
8b498d51 2026-10-10 Pavel Safronov | 242 | ### 5. Check the chirps against the film — tried, and the film cannot say |
e3bfc714 2026-10-10 Pavel Safronov | 243 | |
| 244 | **Pavel's request.** The falling "pew" of a distant crack is the one part of the sound | |
8b498d51 2026-10-10 Pavel Safronov | 245 | that comes from the model alone. |
| 246 | ||
| 247 | **What was tried** (2026-10-09), three ways, the last kept in `tools/analyse-video.mjs`: | |
| 248 | 1. Follow the loudest frequency down after each burst and fit it: 3 of 124 fitted. | |
| 249 | 2. Split each burst into bands from 1 to 7 kHz and time each band's arrival, to test | |
| 250 | the one thing about a chirp that does not depend on where the crack was: that | |
| 251 | arrival times fall as frequency to the power -0.6. 3 of 203 bursts had any spread. | |
| 252 | 3. The same in the band just above the note, where the chirps' sound is: 3 of 122, and | |
| 253 | those three disagree with each other. | |
| 254 | ||
| 255 | **Finding.** In nearly every burst every band arrives within 30 ms of every other. The | |
| 256 | likely reason is that the microphones were close to the skater: a sound from close by | |
| 257 | has had no distance to spread out over. The film gives the note (740 Hz, so 4.1 cm) and | |
| 258 | not the chirp. Not looked at: the reassigned spectrogram, which sharpens a ridge but | |
| 259 | cannot put spread into a sound that has none. | |
| 260 | ||
| 261 | **What would settle it**, if it matters: a recording made some hundreds of metres from | |
| 262 | the cracks, with the ice's thickness known. The paper's own data are of that kind. | |
e3bfc714 2026-10-10 Pavel Safronov | 263 | |
9f2e2509 2026-10-10 Pavel Safronov | 264 | ### 5a. Tilt to steer — built, not tried on a phone |
| 265 | ||
| 266 | Asked for by Pavel on 2026-10-10. A setting, off by default, shown only on phones and | |
| 267 | tablets: lean the phone like a wheel to steer, level to let the skater skate itself. | |
| 268 | Dragging still works with it on. | |
| 269 | ||
fe6b506c 2026-10-10 Pavel Safronov | 270 | Tried by Pavel on a phone, 2026-10-10: it works. Turning it on in Settings was |
df03cd8b 2026-10-10 Pavel Safronov | 271 | cumbersome, so there is now a Tilt button at the bottom left of the screen, hidden |
| 272 | where there is nothing to tilt, and the setting is gone. Tilt, the rotation lock and | |
| 273 | full screen in a browser tab all confirmed working by Pavel on a phone. | |
fe6b506c 2026-10-10 Pavel Safronov | 274 | |
| 275 | Also asked for: the screen should not turn with the phone while tilt is on. Built with | |
| 276 | the browser's own rotation lock, which Android gives to an installed app or a page in | |
| 277 | full screen (so a tab goes full screen while tilt is on) and an iPhone does not give to | |
| 278 | a web page at all. Not tried on a phone. | |
| 279 | ||
9f2e2509 2026-10-10 Pavel Safronov | 280 | Checked in a desktop browser pretending to be a phone, with made-up tilt: the setting |
| 281 | shows, is remembered, and leaning turns the skater. Not checked: a real phone, where | |
| 282 | the things to judge are whether 4° of rest and 28° for full steering are right, whether | |
| 283 | leaning is the right way round in each orientation, and whether an iPhone's request for | |
| 284 | leave appears and works. It needs HTTPS, so it can only be tried on the live site. | |
| 285 | ||
| 286 | **Open.** There is no way to set which lean counts as level: it is level. Someone lying | |
| 287 | on their side cannot use it. | |
| 288 | ||
e3bfc714 2026-10-10 Pavel Safronov | 289 | ### 6. Phone controls |
| 290 | ||
| 291 | **Waiting on Pavel**, who is still trying the touch steering and will send feedback. | |
| 292 | Nothing to do until then. Steering and choosing a fork have only been checked with the | |
| 293 | keyboard, never with a finger. Item 1 will change how steering feels, so feedback given | |
| 294 | before it lands may need giving again. | |
| 295 | ||
| 296 | ## Later | |
| 297 | ||
| 298 | ### Competitive mode | |
| 299 | ||
2f7e86b7 2026-10-10 Pavel Safronov | 300 | **Decided: low stakes for now.** The aim at present is something fun and relaxing: nobody |
| 301 | falls through and nothing is scored. Falling is written and switched off (`RULES` in | |
| 302 | `src/skater.ts`), and would be part of this mode. A competitive mode for people who want | |
e3bfc714 2026-10-10 Pavel Safronov | 303 | one is a maybe, as an option beside the relaxed one and never instead of it. Ideas: time |
| 304 | spent on singing ice, distance without falling, a set course against the clock. | |
| 305 | ||
94b3b29f 2026-10-10 Pavel Safronov | 306 | ### A figure, and a view from behind them |
| 307 | ||
| 308 | Asked about by Pavel on 2026-10-10: what would it take to add a figure and make this a | |
da5f527b 2026-10-10 Pavel Safronov | 309 | third-person game? **Not started, and not decided: Pavel is thinking it over.** In short: the lake needs nothing, the skater already |
94b3b29f 2026-10-10 Pavel Safronov | 310 | knows everything a figure would act out, and the work is the figure itself. |
| 311 | ||
| 312 | **What is there already.** The skater has a place, a direction, a speed, a rate of turn, | |
| 313 | and a stride with the moment of each push in it (`src/skater.ts`): everything a figure's | |
| 314 | pose is made from. The world is drawn round the skater and would be drawn round a camera | |
| 315 | a few metres behind them without change. | |
| 316 | ||
| 317 | **What it needs.** | |
| 318 | 1. **A camera that follows**: some metres behind and above, easing after the skater | |
| 319 | rather than bolted to them, and kept out of the banks, trees and islets, which in a | |
| 320 | pass 5 m to a side is most of the problem. And a way to choose the view. | |
| 321 | 2. **The figure.** There are no models in this project and no way of loading any. Either | |
| 322 | one is made here of simple shapes, in keeping with trees that are cones, and moved by | |
| 323 | rule from the stride (push leg out and back, the other gliding, arms swinging, a lean | |
| 324 | into turns); or a made model with made animations is brought in, which means a loader, | |
| 325 | a megabyte or more to download and keep offline, a licence to honour, and finding a | |
| 326 | skating animation, which are rare. The first is the recommendation. | |
| 327 | 3. **What a figure shows up.** A shadow under it, or it floats. Tracks from each skate in | |
| 328 | turn, not one line down the middle. Something to see it by at night. A faint | |
| 329 | reflection in black ice would be cheap and would look like the film. | |
| 330 | ||
| 331 | **The risk** is the figure's movement: an awkward skater is worse than none. The view | |
| 332 | from the eyes should stay, as a choice. | |
| 333 | ||
| 334 | **It is also most of multiplayer.** Other players have to be drawn as something, and | |
| 335 | this is the something. | |
| 336 | ||
da5f527b 2026-10-10 Pavel Safronov | 337 | **How it would be done, if it is**: in four passes, each something to look at. |
| 338 | 1. The camera that follows, a stand-in shape for the figure, and the choice of view. | |
| 339 | 2. The figure, and its stride. | |
| 340 | 3. Its shadow, its reflection, and tracks from each skate. | |
| 341 | 4. Tuning, which for the figure's movement will take some going back and forth. | |
| 342 | ||
| 343 | About as much work as the long islands and the tracks on the ice together. | |
| 344 | ||
| 345 | **To decide first.** | |
| 346 | - Made here of simple shapes (recommended), or a model brought in? | |
| 347 | - Which view the app opens in, and how the other is chosen: a button, a setting, both? | |
| 348 | - One figure, or a choice of them, which multiplayer would want anyway? | |
| 349 | ||
893cda77 2026-10-10 Pavel Safronov | 350 | ### Game controller — built, not tried with one |
e3bfc714 2026-10-10 Pavel Safronov | 351 | |
893cda77 2026-10-10 Pavel Safronov | 352 | Either stick or the direction buttons steer; Y or triangle goes to another lake; X or |
| 353 | square turns the sound on and off (2026-10-10). The stick's mapping is tested; no | |
| 354 | controller has been connected to it. To judge with one in hand: the 15% rest in the | |
| 355 | middle of the stick, and whether the buttons are the right ones. | |
e3bfc714 2026-10-10 Pavel Safronov | 356 | |
| 357 | ### Multiplayer | |
| 358 | ||
| 359 | Postponed. The lake is the same for everyone given the same seed, so players need only | |
| 360 | share a seed and send each other where they are. `~/code/touch` and | |
| 361 | `~/code/cat-playground` do this peer to peer with peerjs, with no server. | |
| 362 | ||
| 363 | ## Settled | |
| 364 | ||
| 365 | Raised, answered, and needing nothing more. | |
| 366 | ||
| 367 | | Item | Outcome | | |
| 368 | |---|---| | |
| 369 | | Repository was private, so the in-app links led to a sign-in page | Made public by Pavel, 2026-10-09 | | |
| 370 | | No licence | MIT, in `LICENSE` | | |
| 371 | | The credit for the paper the sound's physics is from was partly from memory | Checked against the journal's page on 2026-10-09: authors, title, volume, pages, DOI and CC BY 4.0 licence are all as the README has them | | |
| 372 | | Forks are two-way, not "multiple" | Fine as they are for now; more complex forks are part of item 4 | | |
| 373 | | Thick ice does not sound "bad"; the bad ice is the thin end | Fine as it is | | |
| 374 | | Frame rate on a phone, including at sea | Good, by Pavel's testing | | |
2f7e86b7 2026-10-10 Pavel Safronov | 375 | | Falling through has no cost and nothing is scored | Falling is switched off altogether for now (2026-10-09); see Competitive mode | |
| 376 | | Only the middle 3 m of a channel was guaranteed sound ice, and the autopilot was to wander | Gone with falling: the strip of sound ice was removed. Turning falling back on needs a safe line for the autopilot first | |