Think about this: there is no app that replicates a deck of cards.
Go ahead and look on the app store, and you'll find a bunch of apps with bad reviews and extremely limited functionality.
Why is that? A deck of cards consists of so many objects, that can be used in so many ways, amongst so many players, that there are almost infinite ways to use them. It's so complicated to think about designing an app to replicate the full functionality of a deck of cards, that still, no one has done it.
You would need to be able to shuffle the deck. You would need to be able to cut the deck. To deal cards. To stack cards in any different number of piles. To reveal cards, to all the players or just to specific players. To lay the cards down in so many different arrangements for different games. Stacks of cards facing down. Stacks where only the top card is visible. Stacks of cards that you can draw from.
If you start designing a deck of cards app as a traditional 2D app the way we think about them today, with 2D panes and menus and buttons, it becomes painfully difficult to think about.
But what about in 3D? 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.
Historically, it has seemed obvious that displaying things in 2D, and therefore reducing dimensionality, makes them easier to understand. We design software as flat, 2D planes, rather than showing depth in space, because it is simpler and appears on 2D screens. 3D menus and forms would be a pain, so we reduce the dimensionality.
And if reducing the dimensionality of a concept to 2D doesn't lose any of the nature of the information you're transforming, that transformation simplifies it and creates order. We can see this in examples like galleries of images, menus with buttons, forms with columns of text inputs, etc. Most of the software we use today, in fact, is two-dimensional. 2D interfaces living on 2D screens.
It turns out that there are some applications where increasing the dimensionality to 3D (or leaving them in their original 3D form, like in the deck of cards example) can make the applications more intuitive. I think this is going to be a major force in the near future of software.
Why now? There are two main reasons.
First, we tend to associate these concepts with gaming, and gaming is growing extremely fast. A certain kind of UX is usually conflated with "gaming" in our minds: spatial environments, often in 3D, populated by 3D avatars that move, interact, and relate to each other in space. But this isn't just "gaming." This is actually a kind of user experience that can be used for non-game applications. The recent popularity of gaming and e-sports will make us start paying more and more attention to the power of this kind of UX, and we'll soon realize that we can take this kind of design outside of game applications.
Second, we're at a turning point with the ease of 3D programming, animation software, and the browser's ability to render 3D graphics. Creators now have a variety of tools at their disposal for making spatial software: WebGL, Three JS, Unity, Unreal, etc. This is something that software designers should seriously consider.
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.
In particular, some applications use spatial relationships to suggest how they should be used. Incarnations of this thinking are called spatial affordances.
This term has typically been applied to fields like wayfinding and mapping, but it can apply to many areas of software design as well. Spatial affordances in software use our intuitive understandings of spatial relationships to make sense of what UI elements do, and are just one way to use spatial thinking to design software.
A bike lane affords a place to ride a bike. A subway sign affords walking left or right. Empty space on the iOS home screen affords a place to put another app icon.
