Show the live campus pulse on the map and building signs #62

Open
opened 2026-10-19 21:41:34 +00:00 by sermuns · 1 comment
Owner

Follows #61. Once the server has per-building counts, they should be visible
where the player already looks:

  • Map mode (M): the RTS overview already draws footprints and follows the
    player. Shade each mapped building by its current share of its own 14-day peak
    (quiet → busy), and put the count on the building label. The map is where a
    campus-wide number belongs.
  • First person: a building's entrance or floating name is the natural place
    for a small bar and a number, e.g. A-huset 340. Labels already go through
    WorldLabel / project_to_uv, so this is a new label kind, not a new
    projection.
  • HUD: one line with the Linköping total and the age of the reading, e.g.
    Campus 4,850 · 2 min ago, so the number is never mistaken for live when the
    fetch has gone stale.

Do not sum the per-building rows: they are rounded individually and do not equal
the city total. Use linköping.csv for the total and the building rows for the
buildings.

Scale: absolute counts mean B-huset always looks busier than Zenit because it is
bigger. The feed can carry a per-building peak from the 14-day window, so the
bar means "busier than this building usually gets", not "more people than the
building next door". The raw number stays next to the bar.

At 03:00 nearly every building reports 10, so the display needs a "quiet" floor
rather than showing six identical busy-looking buildings. A stale feed should
read as unknown, not as empty.


Related

  • #61 the feed
  • #36 labels in map mode
  • #50 the same text treatment
  • #20 marker colours are the nearest existing palette
  • #38 a busy building is also a waypoint
Follows #61. Once the server has per-building counts, they should be visible where the player already looks: - **Map mode (`M`)**: the RTS overview already draws footprints and follows the player. Shade each mapped building by its current share of its own 14-day peak (quiet → busy), and put the count on the building label. The map is where a campus-wide number belongs. - **First person**: a building's entrance or floating name is the natural place for a small bar and a number, e.g. `A-huset 340`. Labels already go through `WorldLabel` / `project_to_uv`, so this is a new label kind, not a new projection. - **HUD**: one line with the Linköping total and the age of the reading, e.g. `Campus 4,850 · 2 min ago`, so the number is never mistaken for live when the fetch has gone stale. Do not sum the per-building rows: they are rounded individually and do not equal the city total. Use `linköping.csv` for the total and the building rows for the buildings. Scale: absolute counts mean B-huset always looks busier than Zenit because it is bigger. The feed can carry a per-building peak from the 14-day window, so the bar means "busier than this building usually gets", not "more people than the building next door". The raw number stays next to the bar. At 03:00 nearly every building reports `10`, so the display needs a "quiet" floor rather than showing six identical busy-looking buildings. A stale feed should read as unknown, not as empty. --- **Related** - #61 the feed - #36 labels in map mode - #50 the same text treatment - #20 marker colours are the nearest existing palette - #38 a busy building is also a waypoint
sermuns added this to the Living campus milestone 2026-10-19 22:18:50 +00:00
Author
Owner

Context update: the map label path this needs now exists (2116f66, #36): buildings are labelled at their footprint centroid and named POIs at their positions, through the same ortho projection. #62 can add the presence bar/count to those labels once #61 lands; no new projection work is needed.

Context update: the map label path this needs now exists (`2116f66`, #36): buildings are labelled at their footprint centroid and named POIs at their positions, through the same ortho projection. #62 can add the presence bar/count to those labels once #61 lands; no new projection work is needed.
Sign in to join this conversation.
No description provided.