A free and open multi-university campus navigation dataset: auditable building identity, footprints, source-classified entrances, pedestrian routes, provenance, schemas, and open contribution tooling across Canadian universities.
React · Vite · GeoJSON · JSON Schema · SHA-256 · Vercel
data is the canonical repository for campus facts and geometry used by Gapwise. It contains campus-scoped building registries, source-classified entrances, and source-backed map geometry across 14 universities and 16 campus models:
- University of Toronto: Mississauga, St. George, and Scarborough
- Carleton University: Main Campus
- Toronto Metropolitan University: Downtown Campus
- Queen's University: Kingston Campus
- Wilfrid Laurier University: Waterloo Campus
- York University: Keele Campus
- McMaster University: Hamilton Campus
- Western University: London Campus
- University of Guelph: Guelph Campus
- University of Ottawa: Downtown Campus
- Brock University: St. Catharines Campus
- University of British Columbia: Vancouver Campus
- University of Waterloo: Main Campus
- McGill University: Downtown Campus
The validated snapshots under universities/ and data/ include source registers, schemas, footprints, and validation tests. Each campus model represents pedestrian networks, building geometries, entrance coordinates, and routing topologies tailored to that campus, with explicit representation of route uncertainty and entrance verification state.
The main gapwise repository remains authoritative for deterministic product behavior: timetable semantics, route calculation, gap planning, public API orchestration, SDK contracts, and map/product presentation. It vendors a checked-in snapshot of this repository's campus data so production routing never depends on data.gapwise.ca or GitHub being reachable at request time.
dataowns campus facts.gapwiseowns product behavior.
- campus-scoped building and facility identities across all 14 modeled universities;
- campus geometry and building footprints;
- mapped, inferred, and evidence-only entrances;
- outdoor routing nodes and edges;
- available indoor graph data;
- routing coverage and route-evidence states;
- accessibility evidence and explicit uncertainty;
- provenance and source identifiers;
- generated routing/access audits;
- validation and dataset-integrity checks;
- attribution and reuse requirements;
- versioned privacy-safe public data.
The canonical campus models cover 14 universities and 16 campuses. A canonical data model does not by itself declare a university edition fully supported; product support is released only after its timetable, UI, API, documentation, monitoring, and deployment checks pass.
- One canonical source. Public campus facts and geometry are changed here first; downstream repositories consume snapshots or contracts.
- Explain transformations. Published data should make clear where it came from and how it changed.
- Separate fact from inference. Derived navigation data must not masquerade as direct observation.
- Prefer stable identifiers. Codes and source IDs make downstream integrations more durable.
- Preserve uncertainty. Unknown or unverified facts stay visible as unknown or unverified.
- Preserve provenance. Source information belongs with the dataset, not in somebody's memory.
- No runtime coupling. Consumer applications vendor or build against a pinned snapshot; a data-site or GitHub outage must not break campus routing.
Production builds publish the complete validated data/utm tree from a first-party Gapwise domain:
https://data.gapwise.ca/datasets/utm/latest/
Machine-readable integrity manifest:
https://data.gapwise.ca/datasets/utm/latest/manifest.json
Each manifest entry records the artifact path, byte size, SHA-256 digest, canonical first-party URL, and canonical organization-owned repository. The manifest schema is published at:
https://data.gapwise.ca/schemas/dataset-manifest.schema.json
latest is a current channel. Reproducibility-sensitive consumers should pin checksums or an immutable versioned release when one is available.
Applications that want stable Gapwise semantics should normally prefer the API/SDK. Raw distribution is appropriate for provenance inspection, research, visualization, validation, or custom derivation pipelines.
The core application intentionally keeps a compatibility mirror at gapwise/src/data/utm because the web app, public API, routing engine, tests, and build tooling already import those paths. That mirror is not an independent source of truth.
The core repository provides synchronization commands:
bun run campus-data:check
bun run campus-data:sync
bun run campus-data:publishData-writing routing/survey maintenance commands still synchronize from this repository before running and publish resulting canonical artifacts back afterward. That generator layer remains a transitional dependency while validation/routing types are decoupled from core.
Normal production requests do not perform cross-repository or data.gapwise.ca fetches.
New universities use universities/<id>/campus.json with one institution and campus identity, source records, buildings with native codes and aliases, GeoJSON footprints, entrances with explicit access status, pedestrian graph nodes and edges, and record-level provenance. Optional academic.json stores permitted terms, courses, sections, and meeting records. The schemas in schemas/universities and npm run data:validate enforce record shape, identity, source permission, references, geometry, and graph coherence.
gapwise data osm <id> --bbox=west,south,east,north writes an unreviewed OSM candidate file. It does not silently promote buildings, door associations, or path links. Review and validate before moving any candidate into the canonical snapshot.
The repository's MIT license applies to original code and documentation. It does not relicense OSM or university source material. The Carleton dataset retains OSM contributor attribution, ODbL source terms, and native element provenance. Keep source-specific rights and attribution with any redistribution.
Source-adjacent maintenance notes live under docs/maintenance, including source/provider boundaries, geometry and identity rules, field-survey rules, and access-audit ownership.
Public developer-facing explanations belong at https://docs.gapwise.ca/data/. The Data repository intentionally does not become a second developer-documentation site.
Run the integrity validator with:
npm run data:validateIt verifies, among other things:
- canonical ownership metadata;
- required building/entrance/routing graph files;
- JSON and GeoJSON parseability;
- the 30-building public snapshot and unique building codes;
- SHA-256 integrity for every checked-in canonical campus file.
npm run build validates the dataset, verifies the public distribution contract, builds the portal, and publishes the raw distribution tree into the deployment output.
| Repository | Role | Primary surface |
|---|---|---|
gapwise |
Core web/PWA, canonical timetable/gap/routing semantics, public API, OpenAPI, and SDK source | gapwise.ca / api.gapwise.ca |
android |
Native Kotlin + Jetpack Compose Android client | Android app |
ios |
Native Swift + SwiftUI iOS client | iOS app |
ai |
OAuth/MCP layer for explicitly delegated student context and bounded actions | ai.gapwise.ca |
data |
Canonical public multi-university campus data, provenance, schemas, validation, and distribution across 13 Canadian universities | data.gapwise.ca |
docs |
Canonical public developer documentation | docs.gapwise.ca |
status |
Independent service-health monitoring and incident communication | status.gapwise.ca |
No consumer repository should recreate or silently fork campus facts. Native clients and product surfaces may adapt presentation and platform integration, but source campus facts belong here and deterministic product calculations belong to gapwise.
- GitHub organization: https://github.com/GapwiseHQ
- Developer hub: https://gapwise.ca/developers
- Developer docs: https://docs.gapwise.ca
- Data docs: https://docs.gapwise.ca/data/
- Data portal: https://data.gapwise.ca
- Dataset manifest: https://data.gapwise.ca/datasets/utm/latest/manifest.json
- API: https://api.gapwise.ca/v1
- OpenAPI 3.1: https://api.gapwise.ca/openapi.json
- JavaScript / TypeScript SDK:
@gapwise/sdk@0.1.2on npm and JSR - Python SDK:
gapwise==0.1.1on PyPI
npm install @gapwise/sdk@0.1.2
python -m pip install gapwise==0.1.1Original repository code and documentation are MIT licensed, but upstream datasets retain their own terms. OpenStreetMap-derived records require appropriate OpenStreetMap attribution and ODbL compliance; the MIT license does not override upstream data obligations. Review DATA_DISTRIBUTION.md and source metadata before reusing a dataset.
git clone https://github.com/GapwiseHQ/data.git
cd data
npm ci
npm run data:preflight
npm run devFor a production build:
npm run build
npm run previewUse Node.js 24, matching CI. The committed lockfile pins the complete build dependency graph.
data:preflight checks canonical data, entrance coherence, public distribution, and isolated
pipeline regression tests. Tests never rewrite the working dataset.
For an entrance edit, change data/utm/entrances.geojson, run npm run entrances:derive,
then npm run data:preflight. Derivation rejects ambiguous identities, missing graph
connections, or incomplete non-OSM provenance before writing generated files. Removing
an entrance that is still a graph entrance requires an explicit topology review; the tool
does not invent a replacement node role or connection. Keep the visual review at
https://data.gapwise.ca/review/map?pr=<PR_NUMBER> in the review workflow.
After Data merges, run bun run campus-data:sync and bun run campus-data:check in the
sibling core checkout. The Data compatibility job exercises this same complete sync,
including the public snapshot, before running core's campus contract tests.
Gapwise is an independent student software project created by Andrew Muratov. It is not affiliated with, endorsed by, or an official service of the University of Toronto, Carleton University, Toronto Metropolitan University, Queen's University, Wilfrid Laurier University, York University, or McMaster University.
Open campus data is more useful when its uncertainty is visible.