OpenSTP · The Spatio-Temporal ProtocolQuery space and time.
An open spec and SDK for asking questions of space and time, across any sensor and any app.
route · reachable · visible_from · what_changed
Test scene, not a live feed
Footage: me mani, CC BY 4.0, not our flight
Simulated RTK camera positions
In one sentence
OpenSTP, the Spatio-Temporal Protocol, is an open specification and SDK that lets any sensor, app or AI agent ask questions of space and time, such as routes, distances, line of sight and what changed, and get exact answers in metres and seconds.
- Status
- OpenSTP v0.1 spec in private preview; not yet published. There is no public repository or package yet.
- Last updated
The village above is only a test scene for the data model: Sogaon, Maharashtra, rebuilt from public drone footage (footage: me mani, CC BY 4.0, not our flight). STP itself is not tied to any one site, sensor or vendor.
The STP data model, exploded
- 01PlaceOne local frame, in metres. Here, a photo-real Gaussian splat trained on 267 frames of public drone footage, with simulated RTK camera positions.
- 02PriorsThe public maps the pipeline starts from. Here, 245 Google Open Buildings footprints with heights, and the OpenStreetMap roads.
- 03GraphWhere you can walk, as nodes and edges. Here, 119,038 walk nodes.
- 04QuestionsA typed call: route between two structures, 256 m, 3 min 24 s.
The data model
A place, in layers any sensor can add to.
The scene holds the geometry. Tracks are one append-only log. Time is an argument, not a second system.
Place
scene · frame
A site in one local frame, in metres: east, north, up. It can be anchored to latitude and longitude.
Surfaces
ground · structures · openings
The ground, every structure with its footprint and height, and the doors, gaps and gates between them.
Graph
walkable
Where a person can stand and move, as nodes and edges with lengths. Routes and reach run over it.
Sensors
sensors
Fixed, body-worn and drone cameras, each with a position, a field of view and a range. What each can see is computed.
Tracks
observations
An append-only log of positions, entries, exits and sensor status, each with a time. Track IDs are pseudonymous, never names.
Time slices
at · since · until
Every tool takes the same time arguments. Now, as of a moment, and between two times are slices of one log, not separate systems.
Questions
tools
Typed calls with typed answers: units in every field name, the evidence used, and a confidence where it applies.
Calls and answers
Ask in typed calls. Get typed answers.
Every answer carries its tool, its time scope, the evidence it used, and units in every field name.
Route
How far is st-826 from st-248 on foot, and how long does it take?
Sogaon test scene · measured result
→ route { "from": "st-826", "to": "st-248" }
← {
"tool": "route",
"time": { "kind": "live", … },
"reachable": true,
"length_m": 256.1,
"duration_s": 203.6,
"steps": [ … ],
"evidence": { … }
}Line of sight, as of a moment
Could this camera see that door at nine this morning?
Shape of the answer · values elided
→ visible_from {
"source": "cam-02",
"target": "door-01",
"at": "2026-01-15T09:00:00Z" }
← {
"tool": "visible_from",
"time": { "kind": "as_of", … },
"target_visible": …,
"target_distance_m": …,
"occluded_by": …,
"evidence": { … }
}Change over a window
What changed on this site in the last hour?
Shape of the answer · values elided
→ what_changed { "since": "now-1h" }
← {
"tool": "what_changed",
"time": { "kind": "window", … },
"changes": [ … ],
"summary": { … },
"evidence": { … }
}Also in v0.1: scene_info · distance · reachable · exits · coverage · blind_spots
Built for agents
Agents call it over MCP.
Every STP tool is an MCP tool of the same name. Models choose and chain the calls; geometry computes the answers.
- MCP
- Over stdio for local clients, over HTTP for remote ones.
- REST
- The same tools and validation, described in OpenAPI.
- CLI and Python
- For scripts, pipelines and tests.
- Traces
- Each question and its calls can be recorded, for evaluation and audit.
A private reference implementation · not published yet
Who it is for
For anyone who has to ask a place a question
- Integrators
- One query layer over every sensor on a site, instead of one dashboard per vendor. Ask once; the answer names the sensors it used.
- Drone and robotics makers
- Hand over poses and a point cloud in one capture format, and any STP app can ask about the place your machine mapped.
- Camera makers
- Declare each camera's position, field of view and range once. Coverage and line of sight are then computed, not drawn by hand.
- Researchers
- Deterministic, typed answers: the same scene, log and arguments give the same result, and every question can be traced for evaluation.
Built on STP
- OverwatchIndoorFixed cameras inside a building, designed to become one 3D picture of the site.Status: a prototype interface on simulated data, with the real camera pipeline in progress.
- Chakra ViewOutdoorDesigned so one flight over an outdoor site gives a measured 3D model you can ask about.Status: in research: tested in software on public drone footage and public map data; no field flights yet.
Status · v0.1 spec in private preview
Ask a place a question.
Nothing is published yet: no repository, no package, no download.
Ask about the preview · ops@fourthechelon.inQuestions
Questions about OpenSTP
What is OpenSTP?
OpenSTP, the Spatio-Temporal Protocol, is an open specification and SDK that lets any sensor, app or AI agent ask questions of space and time, such as routes, distances, line of sight and what changed, and get exact answers in metres and seconds.
Is OpenSTP open source?
It is planned to be published as an open protocol, with a specification and a reference implementation. Today the v0.1 spec is in private preview. Nothing is published yet: there is no public repository, package or download.
What is in the STP data model?
A place in one metric frame; its surfaces (ground, structures and the openings between them); a walkable graph; sensors with their fields of view; and tracks, an append-only log of observations over time. Questions are typed tools over all of it, and every tool takes the same time arguments.
How do AI agents use OpenSTP?
As a set of tools over MCP, the Model Context Protocol. Each STP tool is an MCP tool of the same name. The model chooses and chains the calls; geometry code computes each answer and returns it in metres and seconds.
Why not let a language model look at the 3D scene directly?
Language models are weak at exact spatial reasoning from pixels or point clouds. Asking a typed tool for a route or a line of sight gives an answer that can be checked, with its units and the evidence it came from.
How do Overwatch and Chakra View relate to OpenSTP?
They are Fourth Echelon products built on it. Overwatch is for the inside of buildings, built from fixed cameras. Chakra View is for outdoor sites, built from drone footage and public map data. Both ask their questions through STP.
Is OpenSTP related to the Spanning Tree Protocol?
No. STP here stands for the Spatio-Temporal Protocol, a protocol for querying places over space and time. It has nothing to do with network switching.
