Product Requirements Document

April 14, 2016

Summary

The purpose of HoloPaint is to give users an interactive whiteboarding experience, allowing them to work together and share ideas with others using the Microsoft Hololens. We want to allow users to be able to have a real time collaborative experience, where multiple users can interact with a single whiteboard in order to sketch out and discuss their ideas without the need of a huge space or having to crowd around a single writing surface. We want this application to be relatively simple for the casual user, so that any individual would be able to pick up a Hololens and begin contributing ideas. This will be implemented as a Hololens Shared Experience and many users will be able to see and work on a single canvas.

With many diverse applications such as drafting ideas in meetings, drawing examples while teaching, and giving users an outlet to play games like Tic Tac Toe, Hangman, and Pictionary, HoloPaint allows Hololens users to enhance their AR experience and also communicate their ideas clearly and effectively.

Deliverables

Our project is a collaborative painting application on the Hololens device. This application will have a shareable workspace(e.g. A canvas hologram) for multiple users to draw and sketch using hand movements. The user can create their drawings in this workspace. The workspace is a hologram of a whiteboard with available drawing tools (brush, eraser, etc). It is moveable in the actual real space, thus it can be put on the wall, on the table without physical limitations. The workspace is shareable for multiple users in the same room and people can use it to collaborate and work together in real time. Once users are done with sketching, they can also save the results of the sketching.

Critical Features

  1. Drawing on a virtual whiteboard with hand movement and gestures
  2. Options for drawing (color and width of cursor)
  3. Options for whiteboard (multiple whiteboards, placement, color, size)
  4. Simultaneously editable by multiple Hololens users in the same room
  5. Creation exportable as an image

Performance Metrics

  1. Usability of the application. We want our application to be usable without any tutorials, similar to Paint.
  2. Accuracy of synchronization between multiple Hololens devices. Anything one user creates should be identical for the other users and any conflicts must be handled gracefully.
  3. Precision of painting. What the user creates on our application must be what the users actually did and expect (which is something we also have to manage if the painting is not 1 to 1 to hand movements).
  4. Performance of the application. We are aiming for the application to be able to run at a refresh rate of 60 Hz or more.

Milestones

Weeks 4 - 5 Basic Elements of the applications
  1. Be able to track user’s hand gestures and have a cursor follow the focus point
  2. Display one basic whiteboard hologram in space
  3. Allow user to draw on whiteboard using simple hand gestures
Weeks 4 - 6 Server and Networking implementation
* Start when basic elements are mostly finished
  1. Establish what data to transfer between multiple instances of application
  2. Setup server for communication between Hololens devices (decide between lab machine server or AWS server)
  3. Implement collaborative painting on whiteboard (changes made to whiteboard appear on all other instances of the whiteboard)
Weeks 6 - 8 Whiteboard features
  1. Whiteboard background manipulation (Transparency and Color)
  2. Change whiteboard position and orientation within space using gaze and hand movement
  3. Extend/Zoom whiteboard
  4. Export/Import whiteboard as image
Weeks 7 - 9 Advanced UI Elements
* Start work as core Whiteboard features are finished
  1. Shape presets that can be dragged onto whiteboard
  2. Change color and size of painting tool
  3. Eraser for deleting drawn items
  4. Undo/Redo for deleting/restoring previously drawn items
Weeks 9 - 10 Debugging, Finishing touches, Final paper and Demo
  1. Debug application
  2. Polish features and user experience
  3. Start writing final paper
  4. Planning for presentation and demo

Responsibilities

  • Borui Andy Li   Application and UI design
  • Panji Wisesa     Networking and Painting functionalities
  • Radu Cracut     Whiteboard and Painting functionalities
  • Thomas Yi         Painting functionalities and UI design

Materials and outside help needed

We need access to a server to facilitate communication between Hololens devices. And we also may need assistance with networking portion of the application, though this should be resolvable through participating in the Hololens App Development Forum.

Budget

  1. UI Assets $250
  2. UI Sounds $150
  3. Background Music $50
  4. AWS/Azure credit for server $300

Risks and how risks will be addressed

  1. Hand tracking may be too coarse for user purposes (fine detailed drawing). Allow zoomable whiteboards so users can draw fine details on an enlarged portion of the whiteboard then shrink the whiteboard back down to make imperfections unoticeable.
  2. Latency between devices might negatively affect user experience.
  3. Optimize network code, use local machine as server as backup if connection over third party server is too unresponsive for normal use.

Google docs for PRD