Taxonomy of Computable Space for Spatial AI

We use the word "space" in many different ways, yet its complex semantics seem familiar to everyone. We say we "have enough space" to mean moments like comfortably fitting a sofa into our living rooms. We name sections of our homes by function, like "workspace." And we may call an experience "spatial" when something not intuitively so (like a movie screen) seems to overcome that limitation and surprise our senses.

For spacial AI though, we need models of space reducible to numeric values if we are to reason about them meaningfully, especially if we want to mirror the semantics of real world problems. We need a taxonomy of patterns so as we develop spatial AI methods, we are explicit about what operations we have at our disposal:

More specifically, this taxonomy serves to associate the challenges in conceptual types of space (e.g. "architectural" space) with particular modes of computation.

Imagine you're modeling layouts of offices. While coordinate spaces, our familiar xyz 3D modeling space, are fine for describing the positions of furniture on a floor plan, such coordinates don't make it easy to efficiently represent paths of daily and emergency egress. A connective space is better at modeling connections and flows by employing graphs and graph traversal algorithms.

Ultimately, we'll use such algorithms and AI to discovery and solve spatial problems more semantically, automatically, and intelligently.

In what ways might we describe space to make such descriptions pragmatic for computational design?

In what ways might we describe space to make such descriptions pragmatic for computational design?

To start, most computable notions of space often rely on notions of "location." Perhaps even a generalized definition of computable space could be an infinite set of locations paired with the logical mechanisms to traverse them.

For example, thanks to our smartphones and similar devices, the most common computable locations are GPS coordinates; even if we don't interact with the actual numbers, they underlie all our map and navigation apps. Above underlying map by Stamen Design.

Below is a preliminary taxonomy of definitions.

"Architectural" Space

Not strictly computable, but this one of the spaces we're trying to model through computation: The physical, temporal, and experiential expanse of opportunity around our embodied selves. This is our daily tangible experience, so perhaps it's more properly, "human space?"

I'm tempted to include urban space here technically, but urban spaces are also overlapping systems that each use different spatial models. Everything cataloged here could be combined several times over to represent urban space.

Coordinate Space

Locations in these spaces are represented by of mathematical values, called "ordinates," sometimes discrete, often continuous. The key to coordinate spaces is you can perform mathematical operations on ordinates to intuitively represent locations.

That is, I add 1 to an ordinate, and I get another location next to the original location, represented by the original ordinate. If I were to compute coordinates in the shape of a circle, the locations in space also form a circle, or at least something circle-like.

This seeming tautology is important, since in computational design we inevitably operate on mathematical values and data, but the outputs and outcomes we want are in a space. So it may be more accurate to say, if in a space I were to isolate locations forming a circle, their respective coordinates would embody consistent mathematical relationships that are circular.

In computational design, coordinate spaces are often our default, as 3D modeling software uses them (like Cartesian grids) as its primary medium. They come in different shapes, like circular and spherical coordinate spaces, and different scales, like a cutting mat on our desk or GPS coordinates for the entire globe.

Vector Spaces

These are analogous to coordinate spaces, but their locations include vectors, which can carry extra dimensionality. With these extras, we can model phenomena like magnetic fields, temperature gradients, wind, gravity, and more.

Indexed Space

Indexed spaces are those in which locations are uniquely referred to by some other system, an "index." Once built, these indices have their own affordances and semantics more efficient to use (or perhaps more relevant to the problem at hand) than the indexed space itself.

In a spatial context, you could index street intersections with their cross streets, like in Manhattan, where many locations are simply, "Corner of 8th Avenue and 42nd Street," and the like. If we get the index right, we can infer to places and the localities around them. Street addresses could serve as a similar index.

Behind the scenes, the "search index" for engines like Google and Bing make millions of related webpages available to us in milliseconds (with significant computing power to back it, of course). A book index is an indexed space, as terms are arranged in an alphabetical list, but the target space is that of lexical text. A bookmarking app is a managed index of the Internet we've personally traversed. A card catalog holds an index of a physical library. A contacts list indexes our social graph.

This relies on the concept of "mapping," associating one space with another.

Connective Space

Such spaces are defined by associations or connections among entities, but not necessarily those defined by physical positions. These are more abstract; locations can be places but also people or even ideas. With these, you can model street grids, supply chain networks, flights, or social networks.

Social networks are connective spaces among people, the "locations," and things like conversations or ideas traverse (and evolve) as they move from person to person.

Or we might model streets as connections between traffic intersections. Transit maps are graphic representations of connective spaces.

Connective spaces are effectively modeled by data structures like trees and graphs.

Topological Space

This is less a discrete type of space but rather a characteristic of spaces. Here, we refer to overall patterns of relations among entities. By thinking of architectural space in topologies, we may be able to describe the categorical similarities and differences of experiences and access. Court houses, for example, need to isolate the pathways of different personas (judges, defendants, general public).

More abstractly, a two-dimensional coordinate space is "toroidal" if traversing locations consistently in either dimension eventually leads back to an original locality.

This doesn't mean a toroidal space is necessarily shaped like a donut, but that the connectivity of the space mimics what would happen as if an ant were crawling on a donut.

So many more possibilities exist. Möbius strips of course fit into this typology. Slice a donut the right way, and you have a surface in a cylindrical space. And there's a rich area of exploration of topological relationships between surfaces and spaces.

Metric Space

In a metric spaces, "distance" is well defined, which is useful for problems involving quantities like time and cost.

For example, transit times between urban metro stops can serve us without a cartographic map. If you were to collect data from riders who were timing their morning and evening commutes, then you'd have a sampling of data from a metric space. Costs associated with shipping routes could be a metric space that fluctuates with volatile prices of resources, like fuel and personnel.

The Point

This taxonomy aims to give us a toolkit for picking the right pattern for the design problem at hand. With each type comes different modes of computation, each with its own affordances, which naturally serve some situations better than others. It's a foundational piece to spatial AI, enabling us eventually to reason with AI more effectively.

(It also complement a typology of conceptual space, pending another post.)