Industrial AR
Year of Work | 2020
Tools Used | Unity, AR Foundation, AR Core, Android Phone, LogoMakr
Features | Augmented Reality, Whiteboxing, Object Creation, Object Interaction, UI Creation, 360 Video/Picture, Plane Detection, Scripting
For my online class, we were tasked to make an application for industrial visualization. We were given a prompt from a fictional client, asking for an application that can show & explain the parts of an industrial product with certain requirements that included letting the user spawn the object in the location of their choosing, an interactive UI and using 360 video and picture. This was done in Unity using AR Foundation and AR Core.
To tackle this project, I decided to use an airplane as my primary industrial object as it could be an industrial product to explore and if the user needs to be able to see something in 360, then having a plane as the idea to take you to another place would make sense.
Looking at the requirements sheet, I used draw.io to whiteboard my project to understand what I need to show, what I want to do and how it will all work together. In the first photo, I wrote down what the pages of my UI were going to be and what I generally wanted to be on each page. In the second and third pages, I went more in depth from the first picture below to describe what I wanted each page to do and how I wanted the page to be laid out.



With my plan laid out, I turned to Unity to make all of the UI pages to establish the structure and flow of the application and to test it on a mobile phone. The video below shows my white box version of the app to lay the foundation to build the other features.
After I was satisfied with the general UI, I went to work on the other features of spawning planes & portals, adding text, and making the splash page logo and testing all of the features as I went along. I went back periodically to my plan to change it after testing on my Android.

While trying to put my mind in the mind of an average Android user persona, I realized I forgot certain UI features like a back button and realized that some things that were being viewed on one page were also being shown on other pages because only the UI was changing and not the objects spawned from that UI. This presented a problem for the user because the user could potentially spawn multiple models of different planes all on top of each other without a way to erase all the models or a way to only see one plane at one time ever. I dived into the Unity Documentation and explored the Unity Editor for an idea that didn't cause more buttons for the user to press (for simplicity) or complicated scripting to accomplish. I ended up scripting a scene manager because most of the scripts I was already using for other features were built to spawn one object at a time and looked like it would be the fastest and the most efficient option to get the effect I wanted without causing the user to do any more work on the front end.
The scene manager worked well- in retrospect, I wish I had foreseen this problem so I could incorporate it into my UI plan and not have to go back into multiple scenes to change a singular item that I noticed was wrong in a different scene. This issue only amplified my appreciation for the up front planning and designing of projects since it is definitely much easier to make changes to products in the beginning stages of their development rather than in the later, time consuming/intensive and costly stages. In addition to the scene manager, the parts controller had to be reconfigured from the original to work with my project. A view of the code is below.


In the videos below are the final product of the application. In one video, you can see models are spawned on the detected plane and have an animation on spawning. Another video explores five parts of a commercial airplane. The last video shows the user spawning a portal to view the Swiss Alps or a whale in its natural habitat.
In addition to those main features seen in the videos below, the app has UI feedback such as sprite swapping (on the home button) animation (on the back button) and color tinting (on all the main buttons). All spawned objects can be spawned from detected horizontal or vertical plans and spawned in a location of the user's choosing and a size of the user's choosing using a ghost model of the plane the user wants to see.