Week 7 Update

May 12, 2016

Intro

This week’s work was mainly concentrated on better painting functionality, more sharing between devices, and preparing for the presentation as well as revising our project according to the feedback we received.

Progress

In terms of painting functionality, the application is now able to adjust the brush sizes and have more precise hand gesture control. Brush sizes can now be adjusted smaller or larger and painted sprites are now sent to other users with a specific size to reflect the sprite size on other user instances. For the gesture control, with the help of Aditya, we found that the Manipulation event is much more precise for drawing when compared to the Navigation Event since Navigation has acceleration built in which corresponds to the user’s hand movement speed. With these 2 features, the user is now able to draw much more precisely.

The most important progress of this week is the change in our application direction. After reflecting on our demo feedback, we decided to change our application to enable painting on 3D holograms rather than just on a 3D board. This was inspired by our initial thoughts of adding templates to the whiteboard in which users can color in, similar to a coloring book. Though since our board was already 3D, we thought that it might be even better to just use a 3D template in the form of a hologram and do away with the whiteboard. Steven and Ira approved of this idea during our 1:1 and we will send out revisions to the PRD once we figure out what features we should trim and include (likely before next week’s 1:1).

Currently, our work is split up as such.

Radu is working on a better UI buttons, sound and animations for the menu

Panji is working on making holograms paintable by the painting module and an undo/redo button

Andy is working on smoother gesture manipulation and sharing textures for users joining an existing session

Thomas is working on clearing drawn items, displaying all users’ cursors, and menu state transition

Difficulties we encountered

Manipulation and Navigation. When changing from using the Navigation event for tracking hand movement to Manipulation event, we encountered errors regarding “Access Violation” that caused the Application to crash every 2 minutes or so. We posted on the Microsoft Hololens forums and were able to get a fast reply. Luckily, a new update for Unity released on 5/5 fixed this error which was a big relief for us. We will continue running the application with the Manipulation event enabled for the gesture recognizer in order to prevent any unforeseen issues during the final demo.

When painting holograms, we noticed that many holograms incorporate a lot of different parts and meshes. However, our painting module is locked to a single mesh and will not interact with other meshes. For example, there was a race car module with body and wheels parts, with the body and wheels having separate meshes. When attempting to paint, the painting module will only apply color to the body mesh but not to the wheel mesh. A solution that we came up with is to basically combine all the parts together then apply a single mesh to the entire part. This works since we only need to allow painting on what the user can see, and the user will only able to see the car’s surface, allowing the ability to just use a single mesh for the entire hologram. We have currently found an application on the Unity store that allows combining parts and meshes and will likely use it to create different holograms for our application.

Plan for next week

Our plan for next week is to do the following things:

  • Create a sufficient amount of paintable holograms for our application
  • Have a stylish menu which follows the paintable hologram
  • Make sure that Manipulation Event for gesture recognizer works smoothly & fine tune parameters
  • Able to clear all drawn items and reflect that across all instances of a hologram
  • Share existing paint to new users joining an existing session

Visual Progress

Most of our work is already reflected in the video for our demo below