Summary of Achievements
Requirement Targets
Requirements | Priority | State | Contributors |
---|---|---|---|
Mapping 2D images into 3D object | Must have | ✔ | César, Diana |
Hand gesture recognition to view next clothing item | Must have | ✔ | César, Thom |
The ability to pull any clothing image from the YNAP clothing APIs based on Product ID. | Must have | ✔ | Diana, Thom |
Live preference updating in app | Should have | ✔ | Thom |
Intuitive structure and flow of the application to facilitate user navigation. | Should have | ✔ | Thom, César |
The ability to view all liked outfits in a list after adding them to your preferences. | Should have | ✔ | Thom |
Integration of voice commands as an additional navigation | Could have | ✔ | Thom |
Integrating haptics using the GloveOne to allow to users to feel the texture of the products. | Would like to have | x | N/A |
Challenges
One of the main challenges that we faced was to project 2D images into custom 3D models in order to achieve a 3D effect. We spent a significant amount of time building generic models for 'Tops' and 'Bottoms' with Blender. Unfortunately the JPEG images did not render on the models in the expected manner. Firstly most of the items have different contours and we were not able to map all of them onto the same two models. Also due to the fact that the 3D models were having hundreds of vectors the mapping was not possible and we had to relinquish the models for a simpler solution.
Thus, we solved this problem by overlaying the newly generated transparent texture on a 3D cylinder-shaped object.
Another challenge appeared while implementing the shader. Due to the fact that all the images were .jpeg we needed to make the white background transparent in order to map them on the models. Thus, in the first stages, the shader also partially removed pixels inside the clothing images that had the same white tone as the background. Fortunately we were able to improve the shader in order to remove all the white space from the background without affecting the clothes.
Incomplete Features and Bugs
During the development stage our team encountered a number of bugs. The "ray casting" technique used for gaze recognition produced bugs when used for selecting items. The gaze fell on two pieces of clothing at once, so the tap motion triggered the OnSelect function on multiple items. This problem was later overcome by defining the OnSelect function to activate only on the first collision of a gaze, as opposed to all items intersecting a gaze. Another bug resulted from the API calling. It appeared when an outfit was added to Favourites. The app would retrieve the similar outfits from the API but sometimes, unexpectedly, the API would return more items than we expected, resulting in NullPointerExceptions warning messages.
Work Package Contribution
Work Package | Category | Contributors |
---|---|---|
Client Meeting: Demo of app | Client Liaison | Thom, Diana |
Client Emails | Client Liaison | Cesar |
Bi-Weekly Reports | Report Writing | All |
Slide Preparation | Presentations | All |
Testing: UAT, Unit, Integration | Testing | Thom |
Website Editing | Final Deliverables | All |
Poster Editing | Final Deliverables | Cesar |
Video Editing | Final Deliverables | Cesar |