{
  "schema": "ugrad-map-live-version-v1",
  "product": "map.ugrad.ai + tools.ugrad.ai + drone.ugrad.ai + blender.ugrad.ai",
  "stamp_utc": "20260807T170549Z",
  "version": "1.32.0-battery-capture-missions",
  "build": "clean-letters",
  "channel": "live",
  "status": "full-battery-capture-sprints",
  "pointer": {
    "canonical": "https://map.ugrad.ai",
    "tools": "https://tools.ugrad.ai",
    "gov": "https://gov.ugrad.ai",
    "drone": "https://drone.ugrad.ai",
    "drone_viewer": "https://drone.ugrad.ai/",
    "drone_tunnel": "https://drone.ugrad.ai/tunnel",
    "drone_fly": "https://drone.ugrad.ai/fly",
    "pages_dev": "https://ugrad-map.pages.dev",
    "cname": "ugrad-map.pages.dev",
    "health": "https://map.ugrad.ai/health.json",
    "sitemap": "https://map.ugrad.ai/sitemap.xml",
    "r2": null,
    "note": "CNAME map/tools/gov/drone/blender.ugrad.ai \u2192 ugrad-map.pages.dev (or tunnel for full live API)",
    "particle_earth": "https://map.ugrad.ai/tools/particle-earth.html",
    "geo_desk": "https://map.ugrad.ai/tools/geo-desk.html",
    "drone_default_demo": "drive",
    "drone_static": "https://drone.ugrad.ai/?media=mixed&demo=alts&sim=0",
    "drone_note": "full battery RT missions \u00b7 street lidar sprint/hurdle \u00b7 building/car/person 3D \u00b7 mini teams \u00b7 rows race",
    "lissajous": "fly lis a:b \u00b7 lissajous table \u00b7 pattern 2:3",
    "scan": "https://drone.ugrad.ai/scan",
    "scan_demo": "https://drone.ugrad.ai/?media=mixed&demo=scan",
    "racex": "https://drone.ugrad.ai/racex",
    "blender": "https://blender.ugrad.ai",
    "blender_hub": "https://blender.ugrad.ai/tools/blender-hub.html",
    "blender_tunnel": "https://blender.ugrad.ai/tunnel",
    "blender_fly": "https://blender.ugrad.ai/fly",
    "blender_alts": "https://blender.ugrad.ai/alts",
    "blender_local": "http://127.0.0.1:9876/ugrad-map/tools/blender-hub.html",
    "blender_viewport": "http://127.0.0.1:9876/api/blender/viewport.png",
    "blender_note": "host \u2192 /tools/blender-hub.html \u00b7 ?session= rooms \u00b7 tunnel to :9876 for full live API/MCP",
    "freya": "https://freya.qbitos.ai/freya-units.html",
    "design_lab": "http://127.0.0.1:9876/ugrad-map/tools/design-lab.html",
    "drone_design": "https://drone.ugrad.ai/design",
    "drone_track": "https://drone.ugrad.ai/track",
    "drone_alphabet": "https://drone.ugrad.ai/alphabet",
    "drone_letters": "https://drone.ugrad.ai/letters",
    "drone_rows": "https://drone.ugrad.ai/rows",
    "drone_webgrid": "https://drone.ugrad.ai/webgrid",
    "drone_sprints": "https://drone.ugrad.ai/sprints",
    "drone_capture": "https://drone.ugrad.ai/capture"
  },
  "public_hosts": {
    "tools.ugrad.ai": "/tools/geo-desk.html \u00b7 auto IP map \u00b7 gov hops \u00b7 timeouts \u00b7 demo fallback",
    "map.ugrad.ai": "/ (index) \u00b7 /map-hub.html \u00b7 lite default on public",
    "gov.ugrad.ai": "/gov-tree-hub.html \u00b7 demo hops when no :9876",
    "drone.ugrad.ai": "/viewer/viewer.html?media=mixed&demo=alts \u00b7 fly fleet + RC + wind washes",
    "blender.ugrad.ai": "/tools/blender-hub.html \u00b7 sessions \u00b7 live builds \u00b7 collab \u00b7 clean tunnel/fly/alts",
    "ugrad-map.pages.dev": "Pages origin"
  },
  "local": {
    "map_hub": "http://127.0.0.1:9876/map-hub.html",
    "gov_split": "http://127.0.0.1:9876/gov-tree-hub.html?mode=split&maplite=1",
    "lane": "http://127.0.0.1:9876/lane-line-tree.html",
    "recon": "http://127.0.0.1:8877/reconstruct.html?scene=paths/funeral-scene",
    "glyph": "http://127.0.0.1:8790/ugrad-arena.html?mode=glyph",
    "supersplat": "http://127.0.0.1:9876/ugrad-map/viewer/viewer.html?media=supersplat",
    "live_stream": "http://127.0.0.1:9876/ugrad-map/tools/live-stream/",
    "earthquake": "http://127.0.0.1:9876/ugrad-map/tools/earthquake/",
    "tools": "http://127.0.0.1:9876/ugrad-map/tools/dashboard.html",
    "locate": "http://127.0.0.1:9876/ugrad-map/tools/locate.html",
    "particle_earth": "http://127.0.0.1:8760/tools/particle-earth.html",
    "health": "http://127.0.0.1:9876/api/health",
    "public_health": "/health.json",
    "stream_api": "http://127.0.0.1:9876/api/stream",
    "design_viewer": "http://127.0.0.1:9876/ugrad-map/viewer/viewer.html?media=mixed&demo=1",
    "viewer": "http://127.0.0.1:9876/ugrad-map/viewer/viewer.html?media=mixed",
    "blender_hub": "http://127.0.0.1:9876/ugrad-map/tools/blender-hub.html",
    "blender_viewport": "http://127.0.0.1:9876/api/blender/viewport.png",
    "design_lab": "http://127.0.0.1:9876/ugrad-map/tools/design-lab.html"
  },
  "hotpipe": {
    "for_ai": "GET /VERSION.json \u00b7 GET /for-ai.md \u00b7 GET /llms.txt \u00b7 GET /health.json",
    "collab_bus": "~/.panda/fleet/hands-note.txt",
    "live_stream_bus": "GET/POST http://127.0.0.1:9876/api/stream \u00b7 tools/live-stream/",
    "align_api": "window.__align on recon :8877",
    "moves": "POST http://127.0.0.1:9876/api/moves",
    "design_cad": "window.__ugradDesign.exec / BroadcastChannel ugrad-design-v1",
    "blender_hub": "GET/POST /api/blender-hub \u00b7 viewport.png \u00b7 versions undo",
    "design_lab": "GET/POST /api/design-lab \u00b7 freya \u00b7 webgrid cal \u00b7 spline \u00b7 locks"
  },
  "house_origin": {
    "address": "3116 SE 21ST AVE",
    "rno": "R585600350",
    "lat": 45.500299,
    "lon": -122.644375,
    "not": "3115 across-street plant context only"
  },
  "planes": [
    "LOCAL",
    "GOV",
    "MAIN",
    "EDU",
    "STKS",
    "SPACE",
    "TERRAIN"
  ],
  "media_modes": [
    "pointcloud",
    "mesh",
    "gsplat",
    "supersplat",
    "voxel",
    "animation",
    "mixed",
    "design"
  ],
  "public_samples": [
    "/data/public-samples/cables-demo.json",
    "/data/public-samples/hops-demo.json",
    "/data/public-samples/signal-demo.json",
    "/data/public-samples/h3-demo.json"
  ],
  "subdomains": {
    "map.ugrad.ai": "map hub + shell \u00b7 this product",
    "tools.ugrad.ai": "tools dashboard \u00b7 gov \u00b7 IP \u00b7 CDN \u00b7 fleet boards",
    "gov.ugrad.ai": "gov-tree-hub super hub",
    "drone.ugrad.ai": "alts fly + RC + multi-sim \u00b7 demo=alts default",
    "code.ugrad.ai": "lane/tree + tools#code",
    "ip.ugrad.ai": "IP/CDN/traceroute tools",
    "games.ugrad.ai": "lite arena / webgrid placeholders"
  },
  "robustness": {
    "target": "portlandmaps.com-class public map UX",
    "lite_default": true,
    "public_lite_default": true,
    "progressive_layers": true,
    "demo_layers_always_on": true,
    "geo_timeout_ms": 7000,
    "locate_budget_ms": 14000,
    "tests": "/tests/smoke.html",
    "never_ports": [
      8765,
      8766
    ]
  },
  "privacy": "no SSN DOB FOIA PDF bodies paystubs",
  "search_keys": [
    "map.ugrad.ai",
    "tools.ugrad.ai",
    "gov.ugrad.ai",
    "drone.ugrad.ai",
    "ugrad-map",
    "hotpipe",
    "VERSION.json",
    "health.json",
    "sitemap.xml",
    "BLOCK0",
    "3116",
    "plane rails",
    "TERRAIN",
    "particle-earth",
    "live-stream",
    "GrokYtalkY",
    "jawta",
    "/watch",
    "/cam",
    "design-cad",
    "wireframe",
    "ugrad-design-v1",
    "viewer mixed",
    "demo=alts",
    "loadAlternateSims",
    "fly",
    "rc craft",
    "wind tunnel"
  ],
  "notes": "base /tools/ + absolute imports + WebGL retry + alias 302 \u2014 fix blank main viewer | viewer-boot-fix: base /tools/ absolute imports WebGL retry alias 302",
  "changes": [
    {
      "v": "1.32.0-battery-capture-missions",
      "stamp": "20260807T170549Z",
      "note": "Full-battery to/from capture missions: street lidar sprint+hurdle, building/car/person 3D scans, mini teams; harden path load (cap/sanitize/fallback); demo=sprints|/sprints|/capture; rows race includes missions"
    },
    {
      "v": "1.31.3-clean-letter-ink",
      "stamp": "20260807T094151Z",
      "note": "Alphabet: snap to path + ideal ink (no lag spaghetti); 1 writer per font line; arc-length pace fair vs short tac; smoothness from track not raw jerk"
    },
    {
      "v": "1.31.2-mobile-chrome",
      "stamp": "20260807T093243Z",
      "note": "Phone layout: sticky header/tools, stage min 48vh, code-progress collapsed behind Code load toggle, START strip scrolls"
    },
    {
      "v": "1.31.0-train-vertical-tactical",
      "stamp": "20260807T092838Z",
      "note": "Cleaner letter paths; 5 font + 8 tactical/vertical train lines; low-poly fillers; denser densify; continuous stencil"
    },
    {
      "v": "1.30.2-draw-skew-webgrid-meter",
      "stamp": "20260807T091922Z",
      "note": "Fix LIVE DRAW transfer skew (aspect + frozen plane); isolate draw layers; WebGrid meter = FPS/CPU/GPU/POST + race"
    },
    {
      "v": "1.30.1-start-alpha-race",
      "stamp": "20260807T091343Z",
      "note": "Alpha race as main START strip + footer option (gold pin)"
    },
    {
      "v": "1.30.0-alpha-race-tensor",
      "stamp": "20260807T090859Z",
      "note": "Five alphabet rows (blackletter/copperplate/slab/stencil/script) compete; WebGrid-style ability tensor trains smoothness+skill online"
    },
    {
      "v": "1.29.1-alphabet-contrails",
      "stamp": "20260807T085824Z",
      "note": "Persistent skywriting contrails; A\u2013Z banner from other-fleet bbox all the way back (+Z); train of writers"
    },
    {
      "v": "1.29.0-alphabet-flight",
      "stamp": "20260807T085200Z",
      "note": "Alphabet flight: blackletter/copperplate A\u2013Z long banner + per-letter fleet paths \u00b7 demo=alphabet|letters \u00b7 /alphabet"
    },
    {
      "v": "1.28.2-chrome-no-overlap",
      "stamp": "20260807T084237Z",
      "note": "Freya compact host overflow:hidden \u00b7 shrink max-width \u00b7 MFG solid bg z-index \u00b7 no paint-over CNC chips"
    },
    {
      "v": "1.28.1-zoom-free",
      "stamp": "20260807T084010Z",
      "note": "drive start: followCam off, soft follow preserves wheel distance, armPilot skips re-fit, maxDistance 2e6"
    }
  ]
}
