An explainable accessibility route-planning engine and WebAssembly demo.
npm run generate:data
npm run check
npm test
npm run demonpm run buildnpm run serve| Path | Purpose |
|---|---|
| routeable.mbt | Public MoonBit domain model, constraints, planner and explanation API |
| campus_network.mbt | Generated, deterministic demonstration graph |
| cmd/main | Runnable CLI demonstration |
| web/ | Dependency-free interactive UI for the demo scenario |
| tools/generate_demo_network.mjs | Reproducibly generates the checked-in sample map |
| .github/workflows/ci.yml | Checks, tests and Wasm build |
moon login
moon publishpub(all) struct Node {
id : Int
label : String
zone : String
x : Double
y : Double
has_rest_area : Bool
has_tactile_paving : Bool
} derive(Debug)pub(all) struct ProfileComparison {
profile : MobilityProfile
reachable : Bool
distance_meters : Int
friction_score : Double
grade : String
message : String
} derive(Debug)pub(all) struct ProfileConfig {
max_slope : Int
max_steps : Int
minimum_lighting : Int
minimum_width_cm : Int
avoid_crossings : Bool
avoid_gravel : Bool
rest_bonus : Double
} derive(Debug)pub(all) struct Route {
profile : MobilityProfile
node_ids : Array[Int]
segments : Array[RouteSegment]
total_meters : Int
total_score : Double
accessible : Bool
summary : String
warnings : Array[String]
} derive(Debug)pub(all) struct RouteMetrics {
distance_meters : Int
average_slope : Double
total_crossings : Int
low_light_segments : Int
covered_segments : Int
rest_stops : Int
warning_count : Int
estimated_minutes : Int
} derive(Debug)An explainable accessibility route-planning engine and WebAssembly demo.