🚀 Companion Spatial
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.
Open it on your phone. The address is HTTPS, which the camera and sensors need. The live site can be newer than the Hub store build this page describes.
Install & availability
Available now. Install from the Companion Hub App Store. The store lists it as Companion Spatial. Earlier versions of these docs called it Spatial Time Machine.
| Hub App Store | Search Companion Spatial → Install |
| Web UI port | 5173 inside the container, on the Hub’s own port for the app (the Hub app card shows it) |
| Minimum Hub version | 0.2.27 |
| Architecture | linux/amd64 and linux/arm64 (multi-arch) |
| Stateless | History stored client-side in the browser (IndexedDB) |
This page describes the build in the Hub store, published on 6 September 2026. The source has had sensor and map fixes since then that aren’t in the store build.
Overview
Companion Spatial 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. A headset is not required.
Data comes from public open APIs, and map tiles come from OpenStreetMap. Your visit history stays on your device in IndexedDB, and you can export it as a GPX track.
Each data source is a third-party public service, and the requests carry your current coordinates. Your Hub doesn’t proxy them. The Hub install form has one option, Share crash reports. It is on by default and sends crash reports to Companion Intelligence with credentials, file paths, request bodies, and coordinates removed. Turn it off to stop all reporting.

Camera, GPS, and motion sensors require a secure context (HTTPS). Open the app through an HTTPS address, such as an exposed app hostname or your Hub over Tailscale, and AR works. Opening it over plain http://<hub-ip>:<port> shows “AR needs a secure connection” — this is browser security policy by design, not a bug.
Current capabilities
What Companion Spatial does today, as shipped:
- Phone AR via camera + compass/motion sensor fusion to place overlays on the world
- Compass navigation — select a place, then Navigate, and follow a heading arrow with live distance. Select the compass button in the title bar to stop
- A spatial map and a list — a heading-up minimap that expands to a full map, and a distance-sorted list of what’s around you
- Category filters — turn Mountains, Lakes, Cities, Buildings, Airports, Parks, History, Medical, Wikipedia, and Aircraft on or off, and set a maximum distance (20 km by default)
- 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 (Settings → Export Data)
- iOS motion permission prompt on first tap
Everything the overlay shows comes from your phone’s sensors and public APIs; the only thing stored is your visit history, and that stays on the device.
The Save button on a place card, and the My Places and Favorites categories, don’t do anything in this build.

flowchart TD
CAM["Phone camera"] --> AR
SENS["Compass + motion sensors<br/>iOS asks for motion permission on first tap"] --> AR["AR view<br/>overlays anchored to real-world directions"]
APIS["Public services<br/>OSM Overpass POIs · Wikipedia<br/>Open-Meteo weather · OpenTopoData elevation<br/>OpenSky aircraft · OpenStreetMap map tiles"] -->|"live data"| AR
AR -->|"places you visit"| IDB[("IndexedDB<br/>on your device")]
IDB -->|"export"| GPX["GPX track"]Desktop browsers show the interface, but without a camera and motion sensors the overlays have no view direction to follow.
The OpenSky aircraft feed may be blocked by CORS depending on the network and the API’s current policy. When that happens, aircraft overlays don’t appear — this is an upstream/API limitation, not a fault in your Hub.

Select ☰ in the title bar to open the categories drawer, where you filter what appears:

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; no view direction to follow |
| WebXR headset | Not required | Not needed for any feature |
Setup
Install from Hub
Search for Companion Spatial in the Hub app store and install.
Open over HTTPS
On your phone, open an HTTPS address for the app: an exposed app hostname, or your Hub over Tailscale. A secure context is required for camera, GPS, and motion access. See Finding your app’s URL if the app card doesn’t show one.
Grant permissions
The first screen is dark with a spinner and Tap anywhere to start. 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. The title bar shows your altitude and, once it loads, the current weather.
Exporting your history
Your explored locations are saved locally in IndexedDB. Open Settings and select Export Data to download your history as a GPX track for use in mapping tools. Clear History erases it.
Troubleshooting
“AR needs a secure connection” You opened the app over plain HTTP. Camera, GPS, and motion require HTTPS — use an HTTPS address for the app, as described in Open over HTTPS.
Desktop won’t track a view direction Desktop browsers show the interface but have no camera or motion sensors to follow. Use a phone.
iOS isn’t tracking motion iOS requires an explicit motion-permission grant on first tap. Reload and allow it when prompted.
The overlays don’t follow my phone on Android This is a known problem in the store build. On Android browsers that offer WebXR AR, the app starts a WebXR session, and in that mode the overlays may not follow the phone’s movement. A later source change stops using WebXR and relies on the compass and motion sensors, but it isn’t in the store build yet.
No aircraft overlays The OpenSky feed may be CORS-blocked on your network or by the API. Other data sources are unaffected.
Few or no places appear The app needs internet access to Overpass and Wikipedia. Overpass can answer slowly or turn requests away when it is busy, so wait a minute and check again.