Website powered by

Wilmington University Augmented Reality App (Unity, Vuforia, C#, JSON, SQL, PHP)

From January to April 2022, during my final year at Wilmington University, I created a working alpha of an upcoming augmented reality (AR) app for Wilmington University's crime scene investigation (CSI) course.
In this project, I:
• Integrated Vuforia augmented reality (AR) with C#, JSON, and PHP/MySQLi
• Harnessed PHP/MySQLi to send and retrieve JSON data, so that AR objects instantiated by one user can be loaded from the database into another user’s gaming experience
• Implemented C# alongside PHP/MySQLi to capture a screenshot of the AR scene, convert the screenshot to bytes of binary data, and send the bytes to a file location where they can be accessed by another user
• Spearheaded the creation of UI/UX for the app, iterating from a Figma design to a Unity wireframe
Take a look at the evolution of the UI/UX here: https://www.artstation.com/artwork/lDqbXo

* Thanks to:
Hunter Carpenter, who developed the original code for the JSON saving/loading system;
Billy Watkins, Logan Fluharty, and Matthew Heintzen, who modeled/textured/UV-mapped 3D models for the project;
Jimmy Doherty, who sourced the audio files utilized in the project;
Clifford Bruno, who created 2D art for the objects;
and Scott Shaw, awesome instructor;
as well as:
Cooper Maddocks, for creating a JSON explanation video (not shown in the screenshots above);
Ryan Grogan, for scripting the 3D object viewer program (not shown in the screenshots above)
Jared Moseley and Michaela Kennedy, for feedback and other invaluable assistance.

The working build of the ARCSI app in action: Instructor view, in action, detecting Vuforia's ground test plane

Object selection menu in the ARCSI app

Object selection menu in the ARCSI app

Screenshot of the ARCSI app, Instructor view, in action, detecting Vuforia's ground test plane

Screenshot of the ARCSI app, Instructor view, in action, detecting Vuforia's ground test plane

Screenshot of the ARCSI app, Instructor view, in action, as the user selects an object to instantiate from the menu

Screenshot of the ARCSI app, Instructor view, in action, as the user selects an object to instantiate from the menu

Screenshot of the ARCSI app, Instructor view, in action, instantiating the 3D objects in augmented reality space

Screenshot of the ARCSI app, Instructor view, in action, instantiating the 3D objects in augmented reality space

Screenshot of the ARCSI app in action, exporting object position data as a JSON file

Screenshot of the ARCSI app in action, exporting object position data as a JSON file

Screenshot of the ARCSI app, Instructor view, in action, instantiating more 3D objects in augmented reality space (books and short bottles)

Screenshot of the ARCSI app, Instructor view, in action, instantiating more 3D objects in augmented reality space (books and short bottles)

Screenshot of the ARCSI app, Student view, in action, showing the Student's feedback menu, in which the student can upload screenshots of the augmented reality scene

Screenshot of the ARCSI app, Student view, in action, showing the Student's feedback menu, in which the student can upload screenshots of the augmented reality scene

Screenshot of the ARCSI app, Student view, in which the student can upload pictures from their device to the app and upload the images to the server

Screenshot of the ARCSI app, Student view, in which the student can upload pictures from their device to the app and upload the images to the server

In the Student version of the ARCSI app, the users' passwords are stored as encrypted keys to protect the security of the users' accounts.
The accounts shown here are stubs: fake data used as placeholders. No student's real data was used in this alpha.

In the Student version of the ARCSI app, the users' passwords are stored as encrypted keys to protect the security of the users' accounts.
The accounts shown here are stubs: fake data used as placeholders. No student's real data was used in this alpha.

In this screenshot of the phpMyAdmin page, a table in the MySQL database is populated with JSON data

In this screenshot of the phpMyAdmin page, a table in the MySQL database is populated with JSON data

Early UI design in Figma. Originally, I envisioned a dramatic red/brown aesthetic, which I later changed. However, I kept my original idea of having overlapping isometric tiles.

Early UI design in Figma. Originally, I envisioned a dramatic red/brown aesthetic, which I later changed. However, I kept my original idea of having overlapping isometric tiles.

Early UI design in Figma. I eventually changed the dramatic red/brown aesthetic to a cool, more corporate blue theme, but I maintained the tiled look from the original.

Early UI design in Figma. I eventually changed the dramatic red/brown aesthetic to a cool, more corporate blue theme, but I maintained the tiled look from the original.

While iteratively developing a UI design in Figma, I scrapped some ideas early on. This was one of them.

While iteratively developing a UI design in Figma, I scrapped some ideas early on. This was one of them.