Experiential Design - Task 3 : Project MVP Prototype 2
03.06.2025 - 06.07.2025
Michael Chan Henn Loong / 0363611
Experiential Design / BA of Design (HONS) in Creative Media / Taylor's
University
Task 3: Project MVP Prototype
Task 3: Project MVP Prototype
INSTRUCTIONS
<iframe
src="https://drive.google.com/file/d/1NlmiGLTVEt-aZ1HcWis5wnyquBrK9mCv/preview"
width="640" height="480" allow="autoplay"></iframe>
PROJECT OVERVIEW
The idea behind this app is simple to provide users the chance to try on
sneakers virtually using their phone camera, without needing any physical
marker. To achieve this, we chose ARKit for our final product instead of
Vuforia, so that we could go fully markerless and provide a smoother user
experience. The core feature is built using Unity’s AR Foundation, which
automatically runs on ARKit when build and run on iOS devices. This enables
plane detection, raycasting, and real world tracking for the AR sneaker
placement and interaction features
The full flow of this MVP prototype is actually divided between me and Ian
Choo. Ian worked on the welcoming pages, onboarding, and home UI/UX, while I
focused fully on building the core AR features the sneaker placement,
scaling, and rotation using basic gesture.
We decided to separate our part like this way early on after discussing our
strengths as Ian’s background is more visual and design oriented, and as
ARkit only works on Mac device so I'm working on the core features.
DEVELOPMENT PROCESS
So heres a quick breakdown of what I worked on:
1. Setting Up the AR Scene in Unity
- Created a new ARKit compatible project using Unity’s Universal Render Pipeline.
- Set up the AR Session and AR Session Origin with AR Camera and Plane Manager.
- Resolved camera permission issues on iOS devices.
Fig 1.0, Project Hierarchy
2. Purple Plane Bug
- The detected plane was showing up with a purple tint.
- It was due to a missing or broken URP Shader.
- Reassigned the ARPlaneMeshVisualizer material to a valid URP-compatible one.
Fig 1.1, AR Feathered Plane Inspector (Solution for purple plane)
3. Spawning the Sneaker with Tap
- Implemented tap to place functionality using ARRaycastManager.
- Fine-tuned the logic so the sneaker would spawn exactly when a plane is detected and tapped.
- Debugged issues where the shoe keep spawning randomly in location and numbers
Fig 1.2, Foot Shoes Manager script
4. Adding Touch Gestures
- Implemented drag to rotate and pinch to scale function.
- Tuned the sensitivity abit so that rotation isn’t too fast.
- Fixed the issue where scaling caused the sneaker to fly off position (Still alot of polish to do).
Fig 1.3, Shoes Gesture Controller script
5. Asset Integration
- Imported a sneaker 3D model (FBX) and made sure it was upright and scaled correctly.
- Linked the shoe prefab to the FootShoesManager script.
Fig 1.4, Shoe Prefab
6. Asset Progress
- Shoe model (FBX) imported and prefab configured.
- AR Plane materials configured using URP shaders.
- Scripts built:
- FootShoesManager.cs (for spawn logic)
- ShoeGestureController.cs (for drag + pinch gestures)
Fig, 1.5, Project - Asset - Script
Fig 1.6, Project - Asset
Fig 1.7, Project - Asset - Material
7. Tools Used
- Unity 6000.1.1f1
- AR Foundation
- ARKit XR Plugin
- iPhone for testing (built with Xcode)
Video Presentation:
Fig 1.8, MVP Recording Pt 1
Fig 1.9, MVP Recording Pt 2
Whats done:
- Single tap to place working and stable.
- Rotation via two finger drag implemented.
- Scaling via pinch gesture mostly functional.
- Works on real iPhone device (tested via Build & Run).
What’s Still Pending:
- Fine tuning the scaling to prevent shoe from shifting upward during pinch.
- Making the rotation feel more natural and less floaty.
- Material of the shoe
- Scales based on the size of the foot
- Foot tracking (If possible)
REFLECTION
This was my first time working hands on with ARKit in Unity, and honestly, it was a bit of a rollercoaster. From figuring out why the camera feed was yellow, to fixing double spawns and rotation glitches, I’ve learned a lot about debugging, prefab setup, and Unity touch gesture logic.
This project involved multiple rounds of debugging and experimentation. Major challenges included:
1. Shoe not spawning at the tapped location
2. Multiple auto-spawning sneakers
3. Unstable gesture controls
4. Shoe prefab issues
5. Long build times and Unity errors
Every time I built the app to test it on my iPhone, it took time. On top of that, Unity would sometimes throw confusing errors especially when I deleted the Library folder or tried to fix duplicate script issues. At one point, everything in my hierarchy disappeared, which nearly caused panic until I recovered the scene. Lesson learned: always back up the project before cleaning!
So after this experience I think I should start working on the final submission from now on theres too much to do and polish for the final submission.
Comments
Post a Comment