How 4D-ID is built, and what we considered
Ten decisions, each against real alternatives, plus the questions we have deliberately left open.
The essays make the case for a shared name. This is the other half: how you actually put one to work, whether you start from a database record, a robot, a scan, or an AI agent that needs to reason about the real world.
The whole adoption path rests on one move, and it is deliberately small: translate once, at the edge, to attach a name. You do not rebuild your system around 4D-ID. You add a thin step that stamps an identity onto the things you already produce, registers the identifiers you already have, and then everything downstream, other systems, other vendors, and AI, can refer to those things by a name they all resolve the same way.
A client that holds a 4D-ID needs a small, fixed set of operations, and their meaning is the same over any transport, REST, an agent protocol like MCP, a robotics service, or an engine plugin. The first afternoon is four of them:
resolve(registry, id) -> 4did:… # look up an existing identity context(4did) -> envelope # a compact, agent-ready description get_representations(4did) -> asset refs # client selects and renders watch(4did) -> changes # what changed, as it happens
That is enough to build against. Note that resolve is a lookup, not a mint: it finds an identity that was already registered. Creating identities is the edge step below.
For each row, first attempt to resolve an existing entity using identifiers, geometry, spatial context, and other evidence. Mint a new 4D-ID only when no acceptable match exists under an authorized naming policy. Attach the row's existing identifiers as identified_as relations and preserve its supplied grounding; 4D-ID does not infer location.
Keep ROS frames and tf2 native. An adapter can associate an already-grounded object, such as ROS object_47, with a persistent 4D-ID. Detections and tracks remain observations; external grounding and re-identification determine whether they refer to an existing entity.
Once an upstream registration or grounding process establishes what a capture depicts, it can attach through a represents relation carrying kind, capture date, accuracy, and license. A re-scan can resolve to the same building identity; 4D-ID stores continuity and history but does not register scans or perform change detection.
External identifiers, geometry, spatial context, and re-identification evidence can help a grounding or matching service propose that two records refer to the same entity. 4D-ID records that candidate and its evidence; an authorized action promotes a merge, after which aliases and historical references resolve to the survivor.
Once observations are grounded and named, an AI agent can retrieve a persistent subject together with the representations and evidence it is authorized to inspect. 4D-ID complements raw geometry and perception; it does not replace them.
context(4did) returns a bounded envelope of producer-supplied class, labels, pose, affordances, relations, and provenance. It retrieves identity context; it does not perform perception or localization.And a safety rule sits underneath all of it: automation proposes, authority promotes. An agent can suggest that a thing exists or propose a change, but that becomes authoritative state only through an authorized promotion. An AI can enrich the world; it cannot silently turn a guess into ground truth.
The current proposal, reference resolver, and SDK are open and Apache-2.0. You can evaluate identity creation and resolution without an account or fee. The published schemas currently have 15 schema-level checks passing; functional conformance work continues.
Do not boil the ocean. Pick one area, one fleet, or one facility where you already have data. Stamp identities on it, prove the four calls against it, and show an agent reasoning over it. It is useful with an audience of one, because it makes your own systems agree with each other, before asking anyone else to adopt it. Everyone else arriving later is upside.
Translate once at the edge to attach a name, and the rest, interoperability, history, and AI that can actually reason about your world, follows from the name.
Two tools make this concrete today: an implemented IFC importer that maps BIM objects into 4D-ID entity records, and a conformance CLI that checks a resolver against the published schemas and fixtures. The current suite has 15 schema-level checks passing; functional conformance work continues.
Mint your first identity on the globe →
← All writing