Table of Contents
Fetching ...

An Architecture for Spatial Networking

Josh Millar, Ryan Gibb, Roy Ang, Hamed Haddadi, Anil Madhavapeddy

TL;DR

An Architecture for Spatial Networking introduces Bifröst, a spatial programming model based on bigraphs that treats physical spaces as primary network boundaries. It enables policies and services to be scoped by containment, supports just-in-time ephemeral services, and uses spatial naming to provide stable identities across hardware changes. The paper presents a practical OCaml runtime with Cap'n Proto delegation, Python bindings, and an evaluation showing fast local reactions with manageable delegated-overhead, demonstrating viability for locality-aware coordination. Overall, the approach reimagines networking around physical space, offering low-latency, private, and composable cross-space coordination while enabling selective global collaboration.

Abstract

Physical spaces are increasingly dense with networked devices, promising seamless coordination and ambient intelligence. Yet today, cloud-first architectures force all communication through wide-area networks regardless of physical proximity. We lack an abstraction for spatial networking: using physical spaces to create boundaries for private, robust, and low-latency communication. We introduce $\textit{Bifröst}$, a programming model that realizes spatial networking using bigraphs to express both containment and connectivity, enabling policies to be scoped by physical boundaries, devices to be named by location, the instantiation of spatial services, and the composition of spaces while maintaining local autonomy. Bifröst enables a new class of spatially-aware applications, where co-located devices communicate directly, physical barriers require explicit gateways, and local control bridges to global coordination.

An Architecture for Spatial Networking

TL;DR

An Architecture for Spatial Networking introduces Bifröst, a spatial programming model based on bigraphs that treats physical spaces as primary network boundaries. It enables policies and services to be scoped by containment, supports just-in-time ephemeral services, and uses spatial naming to provide stable identities across hardware changes. The paper presents a practical OCaml runtime with Cap'n Proto delegation, Python bindings, and an evaluation showing fast local reactions with manageable delegated-overhead, demonstrating viability for locality-aware coordination. Overall, the approach reimagines networking around physical space, offering low-latency, private, and composable cross-space coordination while enabling selective global collaboration.

Abstract

Physical spaces are increasingly dense with networked devices, promising seamless coordination and ambient intelligence. Yet today, cloud-first architectures force all communication through wide-area networks regardless of physical proximity. We lack an abstraction for spatial networking: using physical spaces to create boundaries for private, robust, and low-latency communication. We introduce , a programming model that realizes spatial networking using bigraphs to express both containment and connectivity, enabling policies to be scoped by physical boundaries, devices to be named by location, the instantiation of spatial services, and the composition of spaces while maintaining local autonomy. Bifröst enables a new class of spatially-aware applications, where co-located devices communicate directly, physical barriers require explicit gateways, and local control bridges to global coordination.

Paper Structure

This paper contains 41 sections, 8 figures, 1 table.

Figures (8)

  • Figure 1: A bigraph, constructed from its underlying place and link graphs.
  • Figure 2: Compiling OpenStreetMap (OSM) and ancillary data into a bigraph. (1) OSM building relation/way becomes the root of the place graph, with tags (e.g., way_id, name) stored as properties; levels ($n=6$) form the next layer. (2) A specific room (e.g., room{ref="6.008", type="office"}) is compiled as a node with its OSM tags as properties. (3) Each node is assigned a stable name for addressing (e.g., 6.008, corridor L1). (4) The link graph captures connectivity, e.g., AV_LAN(display.300)$\leftrightarrow$net.AV. (5) We export select links as outer names to form controlled apertures across boundaries, e.g., net.AV$\to$building_AV.
  • Figure 3: A small 3D office map, generated on iPhone using Apple's RoomPlan API, with its corresponding JSON parsing.
  • Figure 4: R-tree spatial indexing enables efficient geometric queries. Spatial objects (R6--R14) are grouped hierarchically by minimum bounding rectangles, allowing logarithmic-time lookups.
  • Figure 5: Spatial guards mask time-to-ready latency. At $t_0$ the user enters a parent region (e.g., building). On location update (1), Bifröst reparents the user, applies newly matching rules, and enqueues effects. These effects run while the user moves: the container/service is spawned on the host (2); a local name is advertised via mDNS (3); an external name is provisioned (4); and the gateway is configured to buffer traffic (5), then completes ACME validation and certificate issuance (6). By the time the user reaches the target space at $t_1$ (e.g., their office or a meeting room), the route is live with TLS and any early connects can be replayed, so the service is immediately available (7).
  • ...and 3 more figures