π Spatial Time Machine
Point your phone and look back in time. A phone-first augmented-reality app that overlays nearby places, history, weather, and more onto your camera view.
Install & availability
Available now. Install from the Companion Hub App Store. Verified on the test fleet: the published image pulls, starts, serves its web UI, and survives a container restart.
| Hub App Store | Search Spatial Time Machine β Install |
| Container image | ghcr.io/companionintelligence/ci-webxr-time-machine:latest (public) |
| Web UI port | 5173 |
| Architecture | linux/amd64 and linux/arm64 (multi-arch) |
| Stateless | History stored client-side in the browser (IndexedDB) |
Overview
Spatial Time Machine is a phone-first augmented-reality experience. Holding up your phone, it fuses the camera feed with your deviceβs compass and motion sensors to anchor information about your surroundings β nearby points of interest, historical context, current weather, terrain, and even overhead aircraft β onto the real world. WebXR is used opportunistically where the browser supports it, but a headset is not required.
Data comes from public open APIs. Your visit history stays on your device in IndexedDB, and you can export it as a GPX track.
Camera, GPS, and motion sensors require a secure context (HTTPS). Open Spatial Time Machine via the Hubβs Traefik HTTPS hostname (e.g. https://time-machine.<your-hub>.ci.computer) and AR works. Opening it directly over http://<hub-ip>:5173 shows βAR needs a secure connectionβ β this is browser security policy by design, not a bug.
Current capabilities
What Spatial Time Machine does today, as shipped:
- Phone AR via camera + compass/motion sensor fusion to place overlays on the world
- Opportunistic WebXR where the browser supports it (no headset required)
- Live data from public APIs: nearby POIs (OSM OverpassΒ ), articles (WikipediaΒ ), weather (Open-MeteoΒ ), elevation (OpenTopoDataΒ ), and aircraft (OpenSkyΒ )
- Local history in IndexedDB with GPX export
- iOS motion permission prompt on first tap
Desktop browsers render the UI but cannot start an AR session (no camera/motion fusion).
The OpenSky aircraft feed may be blocked by CORS depending on the network and the APIβs current policy. When that happens, aircraft overlays simply donβt appear β this is an upstream/API limitation, not a fault in your Hub.
Use Cases
- Hold up your phone outdoors and see nearby landmarks, their Wikipedia context, and the weather overlaid on the scene
- Identify terrain and elevation around you
- Spot aircraft passing overhead (network permitting)
- Build a local, private log of the places youβve explored and export it as GPX
Supported Platforms
| Platform | Mode | Notes |
|---|---|---|
| iOS / Android phone | AR (camera + sensors) | Requires HTTPS; iOS prompts for motion permission |
| Desktop browser | UI only | Renders the interface; cannot start AR |
| WebXR headset | Opportunistic | Used where supported, not required |
Setup
Install from Hub
Search for Spatial Time Machine in the Hub app store and install.
Open over HTTPS
On your phone, open the Hubβs HTTPS hostname for the app (the Traefik route, e.g. https://time-machine.<your-hub>.ci.computer). A secure context is required for camera, GPS, and motion access.
Grant permissions
Tap to start AR. On iOS youβll be prompted to allow motion access on first tap. Allow camera and location when asked.
Usage
Starting AR
Open the app over HTTPS on your phone and tap to begin. Point your phone at your surroundings; overlays anchor to real-world directions using the compass and motion sensors.
Exporting Your History
Your explored locations are saved locally in IndexedDB. Use the export option to download your history as a GPX track for use in mapping tools.
Troubleshooting
βAR needs a secure connectionβ You opened the app over plain HTTP. Camera, GPS, and motion require HTTPS β use the Hubβs Traefik HTTPS hostname for the app.
Desktop wonβt start AR Desktop browsers render the UI but canβt do camera/motion fusion. Use a phone.
iOS isnβt tracking motion iOS requires an explicit motion-permission grant on first tap. Reload and allow it when prompted.
No aircraft overlays The OpenSky feed may be CORS-blocked on your network or by the API. Other data sources are unaffected.