Inspiration

With rising technologies like Augmented Reality making headlines, the one drawback that prevents it from truly becoming revolutionary is the lack multi-user support. Right now, there are no easy, accurate ways to sync multiple users in the same real-space environment without hassles such as QR codes or manually aligning virtual objects with other users. We wanted to build something that would streamline the process. No dedicated servers, no QR codes, no hassle. Just something that works

What it does

As an MVP, our app creates a shared AR session with two users: a Host and a Client. The Host is seen as the "reference user", who presents a reference for the client to sync to, with the future potential to add as many clients as desired. Once the client aims their camera at the reference, they are synced to a shared origin and both phones begin tracking its partner, visualized by a white sphere.

How we built it

We segmented the project into 3 milestones: basic structure in swift, the establishment of a peer-to-peer network, and Augmented Reality tracking. We were both new to swift, ARKit, and Multipeer connectivity; however, we were quick to learn the foundations of each.

Challenges we ran into

Since we were not familiar with Multipeer, we found initial communication to be difficult. However, once we understood the logs we were receiving, it was easy to send data seamlessly. Later on, we had to figure out a way to encode complex data to send tracking information.

Accomplishments that we're proud of

We are very proud that, on Friday evening, we came in without any knowledge in iOS development, but we had an idea we stuck to and developed something we didn't expect to within a weekend

What we learned

We learned about an entirely new medium of software development, how peer to peer communication can be carried out, and a touch of quaternion math

What's next for multiplA.R.

Any future multiplayer game or collaborative experience that can be enhanced with AR can be implemented with this framework, allowing many people to experience the same virtual content in the same real space. We intend on testing these implementations soon as well as compressing this framework into a portable library for clients to easily incorporate in their applications

Built With

Share this project:

Updates