Ride the future: the campus shuttle as a rideable bus #105

Merged
sermuns merged 1 commit from feature/ride-the-future into main 2026-10-20 22:03:20 +00:00
Owner

The campus has a real autonomous shuttle, and OSM maps it: the Ride the future network is a route_master over two route=bus relations, described as "Självkörande buss", running the Corson path and Olaus Magnus väg between Blå Havet, B-Huset, Studenthuset and Campushallen.

This is the first half of #28: the shuttle exists, you can ride it, and the data it needs to drive itself is already in the bake.

The bake reads relations

liuverse-fetch-map parses OSM relations now, and the campus's own shuttle network bakes into BakedWorld::routes: the line it drives and its stops, in route order. The extract is a box, so a route that leaves it comes back as two pieces of line rather than one false jump across the gap — which is what the next step needs to follow.

The shuttle is a vehicle

VehicleKind::Bus is a second kind alongside the scooter and the bicycle: slower, heavier, no drift, and with seats instead of a deck — a driver at the wheel and six behind, full at seven. It spawns waiting at the route's first stop, facing the way it drives, and rides like any other vehicle: E mounts, the throttle and the steering are the same inputs, and the server is authoritative over it as it is over the rest of the fleet.

It is a cabin, not a block

The mesh is panels around the passengers rather than a solid volume: a floor, seats meshed exactly where rider_position puts the riders, and windows that are one quad per side so the glass blends once instead of twice. That glass is the first translucent surface in the renderer, so the lit pass gets a blended twin that writes no depth and draws after everything opaque.

The livery is the real one: magenta shell, cyan roof, navy skirt, dark glass.

What this does not do yet

The bus does not drive itself. It waits at its stop like any other vehicle, and the autonomy — following the baked line, stopping at the stops, picking people up — is the next step. The route and the stops are in the data for exactly that.

Refs #28

The campus has a real autonomous shuttle, and OSM maps it: the `Ride the future` network is a `route_master` over two `route=bus` relations, described as *"Självkörande buss"*, running the Corson path and Olaus Magnus väg between **Blå Havet**, **B-Huset**, **Studenthuset** and **Campushallen**. This is the first half of #28: the shuttle exists, you can ride it, and the data it needs to drive itself is already in the bake. ### The bake reads relations `liuverse-fetch-map` parses OSM relations now, and the campus's own shuttle network bakes into `BakedWorld::routes`: the line it drives and its stops, in route order. The extract is a box, so a route that leaves it comes back as two pieces of line rather than one false jump across the gap — which is what the next step needs to follow. ### The shuttle is a vehicle `VehicleKind::Bus` is a second kind alongside the scooter and the bicycle: slower, heavier, no drift, and with seats instead of a deck — a driver at the wheel and six behind, full at seven. It spawns waiting at the route's first stop, facing the way it drives, and rides like any other vehicle: `E` mounts, the throttle and the steering are the same inputs, and the server is authoritative over it as it is over the rest of the fleet. ### It is a cabin, not a block The mesh is panels around the passengers rather than a solid volume: a floor, seats meshed exactly where `rider_position` puts the riders, and windows that are one quad per side so the glass blends once instead of twice. That glass is the first translucent surface in the renderer, so the lit pass gets a blended twin that writes no depth and draws after everything opaque. The livery is the real one: magenta shell, cyan roof, navy skirt, dark glass. ### What this does not do yet The bus does not drive itself. It waits at its stop like any other vehicle, and the autonomy — following the baked line, stopping at the stops, picking people up — is the next step. The route and the stops are in the data for exactly that. Refs #28
The campus has a real autonomous minibus service, mapped in OSM as the
`Ride the future` network: two `route=bus` relations with the line they
drive and their stops. The bake reads relations now and keeps those
routes, so the shuttle has somewhere to wait and, later, a line to
follow.

The bus is a second kind of vehicle: slower and heavier than a scooter,
with a driver at the wheel and six seats behind it. It spawns at the
route's first stop facing the way it drives, and rides like anything
else -- `E` mounts, the throttle and the steering are the same, and the
server is authoritative over it as it is over the rest of the fleet.

The mesh is a cabin rather than a block: panels around the passengers,
a floor, seats where `rider_position` puts the riders, and windows that
are one quad per side. The glass is the first translucent surface in the
renderer, so the lit pass gets a blended twin that writes no depth.

Refs #28
sermuns force-pushed feature/ride-the-future from dc0c424435 to 789e48b140 2026-10-20 22:03:14 +00:00 Compare
Sign in to join this conversation.
No description provided.