Release of Fake Planets

Ryan Gibson

After a year of design planning and rework, I am delighted to finally globally publish “Fake Planets”, an Augmented Reality application accesible from any Android phone & any PC.

This app is accesible from this link (the ssl certificate if still being worked on, but I can guarantee it’s safe)

This project underwent many different changes before it got to the current release build.

Prototype 1: Android Studio
We coded our first prototype in Android Studio and we used one of their starter templates to get a basic user interface up and running. At this point our understanding of Android Studio was sparse at best and we had difficulties managing to implement features. ARCore is an Augmented Reality SDK freely available from Google that is written in Google’s own Kotlin language. It offers multiple features including motion tracking, and AR anchors. Knowing this, we focused on ARCore as our base template. Using a similar template provided within ARCore, we added in our chosen Earth model which we got from NASA’s own site, and were able to implement it into the template we had up and running, and it correctly checked the device to make sure that AR was supported and would run. While this seemed like a perfect solution at the start, we later started to run into issues largely based on our inexperience with the language and Android Studio as an IDE. We realised that while we could argue that we had a working template, we didn’t understand how to make our planned changes implemented correctly. We weren’t sure about what provided classes did what, and after a few weeks of stagnation and struggling we decided to rethink our chosen solution entirely.

The original app design, running natively

Prototype 2: Node.js and Googles <model-viewer>
The next attempt was coded in Javascript as one of my lecturers, Kyle Goslin, suggested it would be the most efficient and easiest way to approach our problems. We tested the idea out by making a small template website and implemented an AR script. This was considerably more efficient compared to our previous prototypes and it still had the same functionality. We also learned the ability to turn our app into a website was also a great benefit to us as we could now use Javascript and Css to make the user interface and the rest of our app look modern and easy to navigate in. Because of our conclusions and realisations of how considerably more intuitive this idea was we decided to use it for our final solution. The main library that we used for this final prototype was based largely in Node.Js, and the available supporting libraries that were offered within the language. NPM installs became a major feature of the commands that we ended up using, from building a base project, helping with server side requests to database, all the way to allowing a background of streaming stars streaking across the night sky. On implementation of this design, we were able to see immediate results from the marker base approach. With a camera view, and a specifically designed pattern, we were able to produce a result like this:

Each planet shown is an overlay from the patterns displayed here:

After this, I personally researched the way to display models in a markerless fashion. This allowed me to display any models that we have uploaded with the ability to place it literally anywhere around the users physical environment.

Interface: The interface is intended to be minimalistic and user-friendly in its design. The home page has an easy to access layout with a few key essential options to choose from. Users can view the list of planets and enter the AR zone. If they navigate to the list of planets they will be greeted by the planets we provide in our app which they will be able to press on in order to show their respective model in augmented reality.

Leave a Reply

Your email address will not be published. Required fields are marked *