Visual Positioning Systems

So I'm building an Augmented Reality app on the ATProto platform, and I thought very little about the AR part until recently. I assumed it would be easy, it’s 2025 and we probably have all kinds of great SDKs and tools to use, right?

Nope!

Google, Apple, and Niantic are the only players in town that seem to have a solution for what I need and I hate it.

Let me back up a little and explain. I want people to leave silly little message to each other, and I want those messages to show up at locations, kind of like digital graffiti. I assumed you grab some GPS coordinates and slap the messages on the ground when you view them in AR. The issue is that GPS sucks, and so does AR without a better positioning system. Without a shared agreement on what the digital space is that the messages are anchored to, it’s really impossible to have a functional shared experience. The messages float around within a 20m radius and a lot of the context that makes the messages fun is lost.

This is where Visual Positioning Systems come in. You still use GPS, but it’s really just a way to look up some more detailed positional data that lets you anchor things in 3D space with centimetre accuracy. It requires people (us) to scan our surroundings and submit data from our cameras, and a lot of us have been doing that unknowingly for a while now (Pokemon Go!, Google Maps, etc). Once you have that data though, AR experiences can be really cool!

So, solutions exist for developing shared AR experiences, but they are behind paywalls, they are proprietary, and theres no promise they will exist in the future. Google has a mass graveyard of dead projects, and Niantic is… Niantic. It’s not something I want to integrate into a decentralized ATProto lexicon.

What would be great is an open source solution. A standardized definition of what the Visual Position System data should be, and some open source libraries for developers to use when rendering AR stuff. And of course the anchors would be saved in ATProto repos!

As for what I’m going to do for my app… I have no idea. I might bite the bullet and start using a proprietary service, or just settle for what I can get out of GPS positioning. If folks know about other tech I should look into I’m all ears!