hierarchy
Excursus: Homage to the Square^3
The problem with trees
Many systems are organized hierarchically. The CERNDOC documentation system is an example, as is the Unix file system, and the VMS/HELP system. A tree has the practical advantage of giving every node a unique name. However, it does not allow the system to model the real world. For example, in a hierarchical HELP system such as VMS/HELP, one often gets to a lead on a tree such as:
HELP COMPILER SOURCE_FORMAT PRAGMAS DEFAULTS
only to find a reference to another leaf: Please see
HELP COMPILER COMMAND OPTIONS DEFAULTS PRAGMAS
and it is necessary to leave the system and re-enter it. What was needed was a link from one node to another, because in this case the information was not naturally organized into a tree.
The brilliance of notion
This, I think, is the brilliance of Notion, and what makes it one of the best examples of “fidelity to digital information” that I’ve come across. The structure of the app reflects the structure of the web itself: digital content is purposefully formatted, like semantic HTML elements, and exists in a hierarchical structure (directories on the web, nested pages in Notion), yet can be linked and referenced to create a complex network of information. And pages in Notion reveal the structure of the information: when nesting a page within a page, the child page always displays on the parent page. There’s no way to create a child page that doesn’t display on a parent page, no way to obscure the structure of the information. The semantic structure of Notion reflects the semantic structure of the web itself.
Separation and connection in all things
Truchet's approach was more topological than geometric, and the qualitative aspects of pattern take priority over the metric ones. His principles provide a kind of metaphor for the hierarchy of separation and connection in all things.
Spatial Interfaces
Software applications can utilize spatial interfaces to afford users powerful ways of thinking and interacting. Though often associated with gaming, spatial interfaces can be useful in any kind of software, even in less obvious domains like productivity tools or work applications. We will see spatial interfaces move into all verticals, starting with game-like interfaces for all kinds of social use-cases.
There is no app that replicates a deck of cards
It seems that the only way to build an app that replicates the full functionality a deck of cards is to build a 3D simulation or game. Model the cards in 3D and put them on a 3D table. As long as you have controls for reaching out and picking up the cards, and moving them in space, you can do anything you can do in real life.
Preserving the higher dimensionality makes it simpler and more intuitive, not less.
Humans are spatial creatures
Humans are spatial creatures. We experience most of life in relation to space. We sit in a circle with our family. We drive down the left side of the road in Ireland and try to stay in our lane. We ride scooters down a path along the water. We sculpt a human body out of stone. We follow signs to our train. We walk, through arches, or on crosswalks beside bike lanes, or to follow our brother across a bridge. We position our camera to frame the shot while our friend leans out over a balcony. We sense ourselves in space in relation to all of the other objects in our environment.
And this is powerful knowledge that we've left out of lots of software. In fact, while most obvious in 3D, this thinking does work outside of just three-dimensional software. Almost any software can use spatial concepts to become easier to understand.
Web trails
There's more room for spatial concepts to become part of our web browsing experience.
One example is an idea I call "trails." It's based on the story of Hansel and Gretel walking through the forest and leaving a trail of breadcrumbs behind them, so that they could find their way back later. What if you could do this on the web?
A breadcrumb in this case is a single pixel that you can place in a precise location on a webpage. Placing a breadcrumb could be as simple as Option + click. While navigating the web, you could leave breadcrumbs on different pages you find interesting over the course of a browsing session. When you're done, that sequential "trail of breadcrumbs" would be saved. You could then jump back into the trail and navigate "forward" and "backward" through the things you found interesting in that browsing session. Or share the trail with a friend, and they could step through your spatial path of navigating the web.