Navigable N-Dimensional Space with the Shape Display

Overview

We often use an n-dimensional space in computer algorithms to represent a database of information and also we use this same space to find a specific piece of information within that database. We could use the Tangible Interface Group’s Shape Display to both specify a location within a n-dimensional space and display nearby items to that location.

Search in N-Dimensions (Background)

Consider the simpler case of a 1-dimensional space. Say that I lay out on the floor of my room all of my music CDs. On the left side of the room I place my least favorite CDs, on the right side of the room I place my most favorite CDs, and I place CDs anywhere in between the left and right according to how much I like or dislike them. If I want to find my favorite CDs I just have to walk closer to the right side of the room and pick a CD up.

Usually when deciding what CD to listen to, how much I like the CD, is not a sufficient criteria to choose a CD. Lets say we also want to differentiate music based on how recently the album was released. Continuing to use my floor as a database lets place newer CDs (2015) near the top of the floor and older CDs near the bottom. We have now mapped my CDs onto a 2-dimensional space. Recent CD that I like would be near the top-right hand corner of my room. Old CD that I like would near the bottom-right hand corner of my room, and every other combination of these 2 features would be mapped to my floor.

We could categorize our music according to a 3rd feature (say number of band members) and map that to height of the CD. So CDs with more band members could be propped up on stools, or suspended from the ceiling on strings. But as we add more and more features we wish to categorize our music by it becomes difficult to map these to real world dimensions. This is where using a concept like an n-dimensional becomes useful.

In software we could create a database of all of my CDs. I could categorize each CD according to numerous attributes including likability, release date, number of band numbers, repetitiveness, dance-ability, BPM, etc… We could even place this in a spreadsheet, but how do I use this database to actually find a CD. If we have a spreadsheet I could sort by a column, perhaps repetitiveness, bringing all my trance music to the top. We could also filter by category, say we only wanted danceable music released after 2011. But, another way to consider finding a CD is to consider my database as an n-dimensional space (see feature vectors, feature spaces).

When I placed CDs on the floor of my room every CD had a fixed location in space according to values I gave its attributes: like-ability & release date. Similarly if each CD has say 25 attributes we can consider each CD as a having a fixed location in a 25-dimensional space! Now, say I am in the mood for CDs that are highly repetitive, were released around 1983 and have a lot of industrial noises, I can use those properties to specify a location in my n-dimensional space and then look to see what CDs are near me (see k-nearest neighbors search and euclidean distance in n-dimensions).

Search with Shape Display (Project Idea)

We could use the Tangible Interface Group’s Shape Display to find music within our CD collection. We could use the left shape display to specify a location in n-dimensional space (well, where n is limited to the maximum number of pins). If we use the height of each pin to represent a number between 0 and 1 then by pushing in a particular pin we set the value for that dimension (attribute) thus fully specifying a fixed location in n-dimensional space. As we change our location, the middle shape display would adjust his pins to show the nearest CD, additionally AR could be used to project the album cover onto the shape display, and the album could start playing immediately.

It would probably not be a great experience to only show a single CD. Instead of using the entire 2D grid to display a single CD we could just show the 10 most important (or however many columns the shape display has) of each CD. Thus we could show the 10 nearest CDs, one per CD per row of the shape display. We could play all 10 CDs simultaneously and then make a CD louder if the user clicks on his row.

shape display input output sketch