The advent of widespread publicly available AR solutions though the Apple AR kit presents the opportunity for a new public AR market.
What it does
Welcome to m(ar)ketplace: a new, virtual collaboration space for building AR scenes. Employing Swift, ARKit, and IBM Cloud APIs, m(ar)ketplace allows users to choose from a global selection of user-generated AR scenes and edit them in real-time.
Now, all you need to get started with AR is an iPhone and some empty space! First, you get started building a scene in the AR view. The range of AR scenes you can build with m(ar)ketplace is always growing. From teaching to gameplay, m(ar)ketplace promises to establish a fun and easy-to-use AR building environment.
The two currently supported building styles are:
Chemistry: Use various atomic particles to create molecular models, which can be used by teachers across the globe to bring AR to the chemistry lab.
Block: Use a variety of multicolored cubes to create a virtual world right in the comfort of your home! m(ar)ketplace users can utilize wood planks, dirt blocks, and other cubes to build exciting virtual worlds and share them with their friends!
After building the AR Scene to your liking, simply press the save button and name your virtual creation! It's as simple as that. Your AR world has now been saved to a global market for AR creations just like yours. With the seamless upload and access capabilities provided by IBM Cloud APIs, m(ar)ketplace promises low latency and high speed throughout the user experience.
How we built it
Swift: We coded the app’s UI and AR features entirely in Swift 5.
ARKit: the ARKit package was used to make the AR editor.
socket.io: Implemented socket.io into the node.js server and app client. The idea is when a user opens art, they are added to a socket room with the id of the art. When the user places a shape, the client emits a message to the server, indicating the server to send a message to all clients in the same room as the art should place the same block the original sender placed.
express.js: Built the server using node.js and express.js.
IBM Cloud: Used IBM Cloud to start up a PostgreSQL database instance to store all our art and shapes.
Figma: The design of this application was carried out in Figma where we collaboratively built a look for the UI, decided on color swatches, and created the AR builder layout.
Challenges we ran into
Working over different time zones was quite difficult as we were quite spread out. However, we got past this and found times that allowed us to get the most productivity and collaboration despite this hurdle.
Building in ARKit was surely a challenge. All the team members had slim prior knowledge of ARKit so getting to know the package better was a big concern.
Web socket set up was an unfamiliar topic before this hackathon. Getting socket.io to work properly was also a major hurdle.
Accomplishments that I'm proud of
We're very proud that the web socket is running as expected and allows users to seamlessly upload their creations to the IBM cloud servers.
What I learned
We all gained valuable experience in working with different technologies! Using IBM Cloud API and ARKit both gave all of us ample opportunities to expand our skillset.
What's next for m(ar)ketplace
In order to live up to its name, the next step for m(ar)ketplace would be establishing a way for AR creators to profit from their art. As such, we hope to establish a micropurchase feature so creators can assign a price to their scenes in order to support m(ar)ketplace creators.