Repository navigation
Home
This is the workshop for the project's writing. Each page here is an article about one problem in outdoor browser AR — why it is hard, what was tried, and what the code actually does today. The polished copies are published at gps.csutil.com/blog; the source of truth for the text is here, editable in the browser, with full revision history.
These pages are drafts. They have been fact-checked against the code twice, but none has been signed off for publication yet. Expect rough edges in the prose, not in the facts. An article reaches the blog only once its own
statusis flipped topublished.
Four ways in, depending on what brought you here:
- "Does this actually work?" → Why outdoor WebXR drifts, and which layer is actually to blame — the objection everyone raises first, answered by separating the layer that drifts from the layer that fixes it.
- "Show me the smallest thing that runs." → From zero to a GPS-anchored cube — the tutorial, from empty page to an object that stays where you put it.
- "I'm building on this and don't want to get it wrong." → The scene-graph convention — the one decision that breaks everything downstream if you get it backwards, followed by Session-local or GPS-anchored? for choosing per object.
- "How do I test outdoor AR without going outdoors?" → Testing a sensor-fusion app without going outside — record a real walk once, then replay it on a desktop forever.
The sidebar groups the rest by theme, and GitHub's own page list (with its search box) has every page in it.
- gps.csutil.com — the live demos. Bring an AR-capable phone; most of them want to be outdoors.
- github.com/cs-util-com/location-based-webxr — the source. An Apache-2.0 framework and the seven apps behind the link above, one of which is the session recorder that makes outdoor behaviour testable indoors.
Editing is restricted to collaborators, because anything written here flows into the blog build — an edit is an edit to a published article, not to a scratchpad. Corrections are genuinely wanted: if something here is wrong, open an issue and quote the sentence. Each page carries a comment block at the top holding its slug, description, tags and publication status; that block is what the site reads, and it is invisible when the page is rendered.
Start here
Building with it
How the alignment works
Testing & debugging
Perception
Shipping it
12 more pages — see the page list above.