Skip to main content

Venue model

Waylocate maps use a layered architecture so university, mall, airport, and other venue types share one rendering core.

Layers​

1. Data plane​

  • FloorBundle: geometry, cells, portals, semantics
  • Public campus CDN/API provider chain
  • Indoor pathfinding (pure, no React)
  • Blended indoor + outdoor routing

2. Map host (rendering plane)​

  • MapLibre + Three.js custom layer
  • Scene graph, visibility, navigation ribbons
  • Must not import from application-specific code

3. Venue profile (configuration plane)​

  • VenueType, VenueProfile: terminology, visualization preset, theme overrides
  • Theme merge chain: default ← profile ← campus extras ← building extras
  • Venue differences flow through profile config + small adapters, not page branches

4. Application shell​

One route wires composable hooks and a presentational layout. Venue-specific behavior is driven by profile configuration, not if (venueType === 'mall') branches in the map renderer.

Bundle fields​

Campus and building extras can override venue type, preview shell colors, and theme tokens without changing the core schema.

See campus schema for the underlying document structure.