Ski the Rydskogen trails and sled the lit slopes #66

Closed
opened 2026-10-19 21:41:37 +00:00 by sermuns · 4 comments
Owner

The extract has a real winter trail network:

  2  route=piste, piste:type=nordic   (relations named 2,5km and 5km)
  2  piste:type=sled                  (ways, incline=down, piste:lit=yes)
  1  leisure=nature_reserve           (Vallaskogen)

The Nordic loops are tagged operator=Rydskogen and run through the forest
north of campus; their member ways carry lit=yes in places. The two sled slopes
are lit and point downhill near Valla gård. Both are real, mapped, and currently
draw as nothing.

Proposal: make winter a way to move, not just a colour.

  • Skis: a movement mode with glide, poles and a slow turn, usable on the
    Nordic loops. The loops are route=piste relations, so this needs the relation
    parser from #8; draw them as groomed ribbons once parsed.
  • Sled: a VehicleKind with no motor, gravity down the slope, steering and a
    low eye height. The two piste:type=sled ways give the start and direction;
    spawn a few sledges at the top so the slope is a thing you can find.
  • The slopes are already tagged piste:lit=yes, so they belong in the night
    lighting work (#39) as well as the snow work (#48).

This depends on #48 for lying snow. A debug toggle for "winter" is enough to
build and test the movement before the weather lands.


Related

  • #48 rain and snow
  • #8 the route=piste relations
  • #29 the same relation data for drawn routes
  • #39 the lit slopes
  • #40 the bicycle-kind precedent for a new vehicle
  • #28 the server-authoritative vehicle path
The extract has a real winter trail network: ``` 2 route=piste, piste:type=nordic (relations named 2,5km and 5km) 2 piste:type=sled (ways, incline=down, piste:lit=yes) 1 leisure=nature_reserve (Vallaskogen) ``` The Nordic loops are tagged `operator=Rydskogen` and run through the forest north of campus; their member ways carry `lit=yes` in places. The two sled slopes are lit and point downhill near Valla gård. Both are real, mapped, and currently draw as nothing. Proposal: make winter a way to move, not just a colour. - **Skis**: a movement mode with glide, poles and a slow turn, usable on the Nordic loops. The loops are `route=piste` relations, so this needs the relation parser from #8; draw them as groomed ribbons once parsed. - **Sled**: a `VehicleKind` with no motor, gravity down the slope, steering and a low eye height. The two `piste:type=sled` ways give the start and direction; spawn a few sledges at the top so the slope is a thing you can find. - The slopes are already tagged `piste:lit=yes`, so they belong in the night lighting work (#39) as well as the snow work (#48). This depends on #48 for lying snow. A debug toggle for "winter" is enough to build and test the movement before the weather lands. --- **Related** - #48 rain and snow - #8 the `route=piste` relations - #29 the same relation data for drawn routes - #39 the lit slopes - #40 the bicycle-kind precedent for a new vehicle - #28 the server-authoritative vehicle path
sermuns added this to the Living campus milestone 2026-10-19 22:18:51 +00:00
Author
Owner

This is three features — relation parsing for pistes, a snow surface, and two locomotion modes (ski glide/poles, sled steering) — for a seasonal activity. The sled is plausible as a VehicleKind; skiing is a new movement model and #48 is not there yet. I'd split the bake (draw the piste/sled ways; useful even in summer as trails) from the movement, and leave the modes until snow exists. A debug-only winter toggle for months is not a good home for a hard issue.

This is three features — relation parsing for pistes, a snow surface, and two locomotion modes (ski glide/poles, sled steering) — for a seasonal activity. The sled is plausible as a `VehicleKind`; skiing is a new movement model and #48 is not there yet. I'd split the bake (draw the piste/sled ways; useful even in summer as trails) from the movement, and leave the modes until snow exists. A debug-only winter toggle for months is not a good home for a hard issue.
Author
Owner

The sled gets a good deal better with a physics engine, and the skis get
considerably harder.

Sled. "A VehicleKind with no motor, gravity down the slope, steering and
a low eye height" is a vehicle with the engine force left at zero, and a
ray-cast vehicle controller is exactly that: a chassis, wheels that find the
ground, suspension, and tyre forces with no throttle on top. The sled then
gets the things the scooter has and should have. It follows the slope because
the wheels are on it, it does not float over a bump, and it can tip over on a
sidehill that is too steep to hold it. The two piste:type=sled ways still
give the start and the direction, and the spawn points are unchanged.

Skis. A ski is a long thin body with a low friction along its length and
a high one across it, and a physics engine has no anisotropic friction on a
collider. So a ski is either a body with isotropic friction and a steering
torque, or a body on a rail, and both are worse than what is planned here:
the glide, the poles and the slow turn are all kinematics, and they are
already written down. The physics engine does not earn its keep on the skis.

The Nordic loops still need the relation parser, and the winter still needs
the lying snow.

Related: #110 the physics engine, #111 the vehicles on real wheels.

The sled gets a good deal better with a physics engine, and the skis get considerably harder. **Sled.** "A `VehicleKind` with no motor, gravity down the slope, steering and a low eye height" is a vehicle with the engine force left at zero, and a ray-cast vehicle controller is exactly that: a chassis, wheels that find the ground, suspension, and tyre forces with no throttle on top. The sled then gets the things the scooter has and should have. It follows the slope because the wheels are on it, it does not float over a bump, and it can tip over on a sidehill that is too steep to hold it. The two `piste:type=sled` ways still give the start and the direction, and the spawn points are unchanged. **Skis.** A ski is a long thin body with a low friction along its length and a high one across it, and a physics engine has no anisotropic friction on a collider. So a ski is either a body with isotropic friction and a steering torque, or a body on a rail, and both are worse than what is planned here: the glide, the poles and the slow turn are all kinematics, and they are already written down. The physics engine does not earn its keep on the skis. The Nordic loops still need the relation parser, and the winter still needs the lying snow. Related: #110 the physics engine, #111 the vehicles on real wheels.
Author
Owner

The sled landed. The skis did not.

VehicleKind::IceSled is a rideable vehicle with runners, and spawn_ice_sleds puts three of them around the Isovalen, halfway across the ice between the oval's outer edge and its hole. The ground under a vehicle is a real surface now: surface_class reads the area kinds and returns ice for the track, soft for grass, forest, pitches, gravel and the minigolf, and paved for everything else, and each kind answers with its own speed and grip. The sled's runners slide and nothing rolls, so it runs on the ice and stops on the grass.

What is still open:

  • The sleds are on the Isovalen, not on the two lit piste:type=sled ways near Valla gård. Those ways are not baked, and the Nordic loops still need the relation parser.
  • The skis are still a movement model nobody has written: the glide, the poles and the slow turn.
  • The lit slopes remain #39's business.
The sled landed. The skis did not. `VehicleKind::IceSled` is a rideable vehicle with runners, and `spawn_ice_sleds` puts three of them around the Isovalen, halfway across the ice between the oval's outer edge and its hole. The ground under a vehicle is a real surface now: `surface_class` reads the area kinds and returns ice for the track, soft for grass, forest, pitches, gravel and the minigolf, and paved for everything else, and each kind answers with its own speed and grip. The sled's runners slide and nothing rolls, so it runs on the ice and stops on the grass. What is still open: - The sleds are on the Isovalen, not on the two lit `piste:type=sled` ways near Valla gård. Those ways are not baked, and the Nordic loops still need the relation parser. - The skis are still a movement model nobody has written: the glide, the poles and the slow turn. - The lit slopes remain #39's business.
Author
Owner

Closing as out of scope. The sled half landed (VehicleKind::IceSled and its spawns). The skis are a new movement model that needs lying snow first, and the Nordic loops need the relation parser; refile when the weather work exists.

Closing as out of scope. The sled half landed (`VehicleKind::IceSled` and its spawns). The skis are a new movement model that needs lying snow first, and the Nordic loops need the relation parser; refile when the weather work exists.
Sign in to join this conversation.
No description provided.