Spatial computing could be the next big thing
scientificamerican.com
scientificamerican.com
A question I ask when doing due diligence on "spatial computing" technology is what computer science problems did you solve to create the technology? The common answer is "none" and most people dabbling in the space aren't even aware hard computer science problems exist as prerequisites to building such technology unless they've been banging their head against it for a while. That's the state of the spatial computing market today. We also know that it is (currently) impossible to build such a thing by sprinkling some magic spatial computing dust on open source technology stacks -- they can't express the necessary mechanics. You'll be writing a lot of code from first principles, it isn't a business execution problem.
We've had petabytes of this type of sensor data for decades, and the vision and desire to build digital twins with that data, that part isn't new. There are hardcore technical reasons this doesn't exist as a real thing, it isn't that no one has ever thought of spatial computing before. To make matters worse, most of the companies with the expertise and desire to use such a platform lack the expertise and execution to create it. Creating such a platform has to come from somewhere else.
It is possible to build a spatial computing platform today that actually works, the computer science challenges have solutions, but the combination of domain expertise and computer science skillset to execute it is extremely rare at the moment. That said, spatial computing will be a trillion dollar platform business once someone pulls it off.
Three of the above are notoriously difficult to scale individually. For spatial computing we need to scale all three simultaneously in a single computational construct. And if that wasn't enough, these are real-time systems that need to support extremely high write throughput while all of those operations are happening -- offline batch reorganization isn't an option. These are petabyte scale systems in the trivial case (tens of TB in the most minimalist data models), so you aren't going to be building a bunch of indexes or similar.
It is a vexing computer science and architecture problem. And even if you solved that elementary computing infrastructure problem, there are several more hard/interesting computer science problems related to topological types and conflict resolution that you'll likely need to solve before you have a useful system. It is headaches all the way down.
Personally I don’t see a need to this “maximizing efficiency” paradigm for spatial computing, which seems to be mostly driven by industry (the potential for making billions of dollars) not as an inborn desire to better this world. It’s not that I decline it, but the need seems somewhat artificial in a way.
Spatial Sieve Tree (Inventor J. Andrew Rogers) https://patents.google.com/patent/US7734714B2/en
https://www.jandrewrogers.com/2015/03/02/geospatial-database...
https://www.jandrewrogers.com/2015/10/08/spacecurve/
These might give a hint at why cs101 might not be enough for the scale and kind of systems he is talking about.
Back then, it was a bit of a “blind men and the elephant” case with some really interesting computer science constructs. Now we have a pretty pure theoretical model of the elephant, and so an elegant implementation is not the sum of what the blind men would have described. Much more capability, far fewer lines of code, albeit completely opaque to someone that doesn’t understand what they are looking at.
(space (longitude, latitude), time, DATA)
is readily addressed by the ideas in that patent:
- hierarchical partitioning of space, each node storing the data for the regions represented by a number of leaves. shard per leaf and adaptive rebalancing (merge,split, move shard) as necessary.
- within each shard, partition by time
With this you can gang together any number of nodes that you need to hit the aggregate ingestion rate requirement.
The query
"give me all the data that occurred in this region of space in this time period"
is readily supported as well. Applications (shard aware or hitting some stub proxy aware of the sharding) sitting on top of this datastore can use this repeatedly to build arbitrary logic (though you would have to query all the nodes if you don't have a space region, which is fine if your query rate is low).
Likely my mental model of applications consuming spatial data is too simple, but what other innovation would be required beyond this for ingestion and querying? What kind of interface does the datastore provide to the application?
Would also love to hear more about the comment you made above
"there are several more hard/interesting computer science problems related to topological types and conflict resolution that you'll likely need to solve before you have a useful system"
Eventually, things you ordinarily assume you can cache in memory don’t actually fit in memory. It forces changes in the computer science strategy.
The problem already exists at scale today in many, many companies that everyone has heard of. Mitigating and working around this has been a large part of what I do for many years. If such a platform came into existence today, dozens of companies would each happily spend tens of millions per year to use it tomorrow; they are all ready lighting similar amounts of money on fire in this area on infrastructure that doesn't work.
The business challenge is that the engineering effort required to build such a platform is simply too large to easily fund, even inside large tech companies. There is no appetite for that scale of investment in infrastructure software anymore, everyone kind of waits around for something to show up in open source that they can re-purpose. Less risk and less cost. In this particular case, that is unlikely to happen for the foreseeable future, someone will need to make a real investment.
Adoption of spatial computing will not be binary "once someone pulls it off". It's going to be gradually, step after step.
You might be considering a lot broader things to be spatial computing that are short of the sense being considered here.
Yes, representing objects and annotating trivial scenes is interesting and is starting to happen today.
But free-form automated representation of the environment in ways that the spatial shortcuts we rely upon ("inside", "on top of", etc) can be used, (non-graph) paths of different types can be solved, and actuator kinematics can find and interact with things, etc: it's really hard.
AR and VR and being able to interact with object meshes and geometry is a start. But computational geometry and encoding world constraints in a useful way is really hard. We'll snatch some incremental parts from AR and vision research, but we'll need some breakthroughs in the space, too, to do the really cool stuff.
At its core, spatial computing is about queryable reality. 3D scanning of objects, AR/VR, etc are all adjuncts to this. They are ways of consuming the data model or synthesizing non-real parts, not creating the base model of reality. The latter is the hard part, the rest doesn’t matter in the big picture.
What you describe is a broad vision that may or may not happen at some point in the future. I agree about the queryable reality part but disagree that AR/VR, 3D scanning etc. "don't matter". Because in a lot of real-life use-cases you don't need the "real-time 3D mirror" but instead can get 80% of the value with something 10% as complex.
I'm skeptical. Seems like a solution in search of a problem. Who is willing to pay money for this?
It happens to be called something a bit different: https://en.m.wikipedia.org/wiki/Geographic_information_scien...
What's the name of that story where everyone lives in their own automated room and the central computer won't let them above ground? Solving for that world is a crime against society, not technological progress.
The Machine Stops. https://en.wikipedia.org/wiki/The_Machine_Stops
If my phone moved from downstairs to upstairs or vice versa, the movie would rewind 10 seconds and would be played on the tv upstairs or downstairs. This gave me the ability to move between my two rooms with TVs and the show would follow me. For antenna tv, the hdhomerun app would be loaded and set to the correct channel. I wanted to expand this to my zwave lights using motion sensors but never got around to it because I was fixated on my garage.
My garage has a camera that can stream rtsp. I had recently played with opencv and got it to detect our cars with pretty good accuracy but our cars are generic cars that half of america drives. So I spent almost 2 years trying to figure a way to get the system to identify our cars. I went so far down the path of using a raspberry pi in the car to authenticate with the house which would trigger the garage door to open as we pull up the driveway. Then my buddy recommended two colored stickers on our windshield. So simple and it worked! (Edit: a lot of this can be resolved today with a high resolution camera that can make out our license plate from a far enough distance... but I just lowered my car and ripped off the front license plate so back to square one)
I’ve been fighting small bugs for the last year or so that makes it hard to use (dog may set off the motion sensor, or you forget your phone and lights and tv turns off thinking no one is around). Plus we got a new tv which replaced the buggy fire tv last Christmas which has a completely different api and less interaction. I’ve considered using Bluetooth so smart wristbands could replace our phones but other projects have creeped into scope.
I would love to solve it but have a very hard time selling the system to friends and family who think nothing of flipping a light switch or picking up a remote. Maybe this is a tech too early for its time?
(EDIT: changed "the words" to "most words".)
What's in the space, how would people in the space understand/describe it, how can actuators interact with it, how can people and devices find paths, what does a person moving along this path mean, how can a device assist in this abstract goal... It's a lot more than a mesh of geometry and a set of probable robot locations to do something useful. It's a whole lot of data and a whole lot of things that are poorly understood.
We didn't think through the implications of benign failure cases the first time we tried IoT, let alone determined malicious attackers, and things went to shit. I'm not convinced that we'll do any better once "spatial computing" goes commercial.
The Internet of Things crowd hasn't even been able to do affordable power windows for houses yet. Even basic heating duct dampers don't integrate well, much to the annoyance of Nest owners. Let alone an outside air intake.
I once went to an "Internet of Things" meeting in SF. It was in a converted factory space near the shipyard, with big windows looking out on the bay, and skylights in the roof. The big windows had a manual endless chain which could be used to crank them open, as did the skylights. There were also ceiling fans and a conventional HVAC system.
None of this was integrated into an automatic climate control system, which was amusing to see while being pitched on IoT. It would be nice to see the windows, skylights, and fans coordinated to provide a good environment without consuming fuel unnecessarily, but no. It got too stuffy when there were too many people inside, despite all that access to the outside.
When I saw "Spatial computing", I thought this was going to be about Spatial OS, from Improbable. They built a system intended to be a back end for big-world MMOs. They burned through several hundred million dollars (from Softbank, who else?) and produced a back end nobody can afford to use. You have to host on Google and pay for every in-game event. Several games shipped using it and they all went bust within months.
The most common use cases today would be AR/VR.Spatial computing could be embedded into something as small as a room, a city, or even a country. Spatial computing within an operating room is a clear value prop.
Spatial computing companies like Magic Leap have shown that the infrastructure is bulky and expensive. Most importantly, consumers aren't willing to pay for it just yet. Expect to see enterprise and government applications before smart furniture.
The newer devices coming with Lidar... imagine integration with that and "upload your living room" to a furniture store then shows your living room with random combinations of products -- like that scene in Fight Club.
I'm coming from web interface/api work so trying to get into this space(3d slam) is kind of hard... the stuff I'm working on is pathetic computation wise eg. single core pi. But the idea of getting a running state in real time with real measurements paired with imu data is pretty cool to me.
Then, after an initialisation process, that spatial automat is ready. It can now detect things in an environment it has automatically detected (indoor flat, hospital, ect).
Then the programming development will only be to : - link between 'spatial events' like a dog barka, a lying grandma seems inconscient,ect..
- and fonctional processes like 'call ambulance', 'put alarm on', ect...
Source, examples?
What ever happened to graphene? I remember reading a bunch of articles in 2015 that it would revolutionize society by 2020.
It's almost like the future needs multiple kinds of progress and breakthroughs.
Quantum computing looks like it's going to be very useful for some unusual, top-end problems before too, too long (let's say, 7 years).
Spatial computing might enable lots of small benefits in many sectors.
> What ever happened to graphene? I remember reading a bunch of articles in 2015 that it would revolutionize society by 2020.
Quietly growing at a 30-60% CAGR in dollars (and by a ridiculous factor in usage, since prices are coming down rapidly), finding dozens of high-end, simple (early) applications (with prospects for many new uses on the horizon).