Product Requirements Document
PrezVR
Aroosh, Simona, Hitesh, Kenny arkumar, zliao, hiteshb, kwyma 1/20/23
Summary
PrezVR supports entrepreneurs to create immersive pitches in VR through seamless scene transitions, animations, and more. With a provided asset library and an effective UI, users can easily build presentations and bring audiences into their vision for the future.
Project Description
Every time an entrepreneur pitches an idea to Venture Capitalists, they start with the phrase, “imagine a world”. However, the fact that the VCs have to imagine a world introduces communication gaps simply because the entrepreneur and the VCs are different people. Entrepreneurs want to eliminate any communication gap as any misunderstanding can result in the failure to secure funding. However, entrepreneurs tend to accept this communication gap since the cost to present a high-fidelity visual model that accurately portrays their idea has always been too high and non-adaptable to the fast changes that occur in any entrepreneurial endeavor. Our product solves these problems by allowing entrepreneurs to quickly create immersive presentation-style experiences in a VR environment, while also providing a seamless presentation experience that adds quality and concreteness to a pitch.
We will build our product with a specific emphasis on the user experience. This means that we will spend the majority of our development time refining how objects behave when manipulated by the user. We aim to make the experience far more intuitive than creating a scene in the Unity editor. We achieve this by ensuring that a presentation remains consistent between the time that a user creates the environment in our editor and when they use it to show to an audience. Our product will make the process for a VC to join as an audience member seamless in order to reduce the initial burden presented by using a VR environment as much as possible. Once we perfect the product to work for the specific use case for entrepreneurs pitching to VCs, we will broaden our market by creating features that are useful for all presenters. By creating a product that is at least as effective at conveying ideas when compared to an in-person pitch, we allow all users to share their ideas with a higher level of understanding from their audience.
User Experience
Our users, or entrepreneurs who want to pitch in VR, can use our tool to easily create an immersive VR experience to convey their idea with supportive transition and animation tools, and a user-friendly UI. Let’s say the entrepreneurs want to pitch a food delivery service (Doordash). Our tool will enable them to build scenes collaboratively using assets from our provided libraries or import their own. In multiple scenes, they could present what a delivery process is like: a user places an order at home, the restaurant receives it through the point-of-sale system app on their iPad, and drivers pick it up from the restaurant and deliver it to the user’s home. The VR scenes seamlessly transition from one to another, from the user’s home to the restaurant to driving on the street, and demonstrate the founders’ vision vividly. Another important element that makes a pitch successful is to present the numbers and charts to show that ideas can grow and be profitable long-term. To make it more vivid, our tool will enable simple animations to show the increasing trendline in a chart or numbers growing to emphasize the growth.
After preparing the scenes, users can save their presentation and invite the audience to hear their pitch. When the user is presenting and mentioning the delivery process, they can simply pull up the pre-built scenes and transition from one scene to another. Our tool will enable saving and live editing, which means users can practice this presentation with their teammates and make live adjustments to the scene as needed.
Deliverables
Minimum Viable Product:
We split our project into 4 main verticals which all make up the main value proposition
- Animation - adds immersiveness
- Object manipulation - can we move, rotate, and scale objects in the scene?
- UI
- Before selecting an object to animate
- Animate mode button
- After selecting an object to animate
- Preview Animation
- Loop Animation? (checkbox)
- Animation duration (fixed for MVP)
- Edit Animation
- When animating
- Current Transform
- Save keyframe (object transform)
- Save animation
- Animation - being able to playback the animation during presentation time
- Transitions - prevents immersion being broken
- Depends on UI: need scene switching UI for testing transitions
- Scene transitions - being able to transition scenes from user input
- Start by hiding all of scene 1 and unhiding scene 2
- Multi-user functionality - delivers immersion to audience
- Saving scenes - save scene data in a space efficient format that can be shared between users
- Multi-user positioning + view
- Consistent positioning of multiple users in a shared space
- All users see the same objects in the same positions
- Demo - communicates main value prop to class
- Design a presentation using our presentation-app to showcase our MVP:
- An example presentation scenario
- Creating/finding scene prefabs
- Choreograph presentation
- Record video of the above
- Design a presentation using our presentation-app to showcase our MVP:
Target Product:
- Timeline UI - greatly improves editing experience
- Display all transitions and animations in an editable timeline to allow users to get a high-level view of their presentation and switch back and forth
- Multi-user audio - enables Q&A (key part of current presentation solutions)
- Support spatial audio for everyone, not just the presenter
- Voice object controls - main Q&A value prop
- Users can summon objects from an imported asset library using just their voice (e.g. for the Q/A after the presentation).
- Start by mapping predefined keywords to specific assets
Stretch Goals:
- Object generation - new tech, and greatly reduces presentation creation time and improves creativity
- Use existing machine learning models to not just search but generate objects based on user voice input. Link voice-to-text and text-to-asset models.
- Importing objects - completes UX, allows app to be used by customers and not just developers
- UI improvements to streamline importing custom assets (e.g. through a web portal)
Performance Metrics
72 FPS
For the Oculus quest 2, the required frame rate for published titles is 72 fps. We will aim for this metric to make sure that our product is comfortable to use, and does not detract from the presentation experience.
API Latency
We will aim to minimize latency for any of our API calls, especially the blocking API calls to the program flow. This will likely be the function that downloads the scene information that must be displayed. 100ms latency is perceived as instantaneous and will be our stretch goal; however, since we have no grasp on the difficulty of this goal, we’ll start by shooting for under 1 second (which is another common benchmark).
Transition Latency and FPS
Our metric for scene transitions will also be 1 second, as instantaneous transitions involving the simultaneous appearance/disappearance of many objects can be jarring. Since transitions are likely to be the most compute-intensive part of our application, we will pay special attention here for maintaining the 72 FPS standard.
Milestones
[1/22-1/28] Week 4: Complete foundational features and back-end data representation, and start implementing core features
- Aroosh - Design and implement data format for sharing scene data between users
- Simona - Research and begin implementing multi-user positioning and viewing a shared scene
- Hitesh - Design data schema for handling scene transitions and begin implementing hand UI
- Kenny - Implement basic in-app object manipulation and work with Hitesh on the hand UI
[1/29-2/4] Week 5: Parallelize work, complete MVP features, and create the demo
- Aroosh - Finish scene data format, then work on multi-user features with Simona
- Simona - Work on multi-user positioning with Aroosh
- Hitesh - Complete scene transitions, then work on object animations with Kenny
- Kenny - Complete object animations
[2/5-2/11] Week 6: Finishing touches for demo on Feb 6.
- Simona - focus on creating presentable demo UIs in Figma
- Aroosh, Hitesh, Kenny - design and implement demo, source demo prefabs
After MVP Demo
[2/12-2/18] Week 7: Asset Library
- Asset UI - UI for selecting/placing new objects into the scene
- Timeline UI - UI for moving between scenes, allowing some notion of switching from scene to scene non-sequentially
[2/19-2/25] Week 8:
- Importing objects - Web UI for users to import their custom assets
- Multi-user audio - implement spatial audio for users to be able to talk to each other
[2/26-3/4] Week 9:
- Voice object controls - Use voice to place assets from a predefined asset library
[3/5-3/11] Week 10:
- Staff recommends using this week to plan the final demo.
- Stretch: Generation - combine pre-trained voice-to-text and text-to-asset ML models to allow users to speak objects into existence.
We will reevaluate our progress after the MVP and create a new set of milestones that lead us to the end of class product.
Materials and any external help needed
We will need some external help with adding multi-user support, as that is one of the most important parts of our product relies on allowing multiple users to exist in the same virtual space. We will first turn to John and ask for help if any first issues occur.
Since we will be starting with an asset library in our MVP, we will need to purchase some 3D models to start off with. We plan to make an initial scene depicting a new airport design, which will require us to purchase assets to help with the visualization. We will be purchasing 3D models of airplanes, trees, and a basic airport model.
Budget
3D Assets ~ $145
We would like to construct an example airport design as a showcase of our MVP. In order to create this showcase, we will need to buy airplane models ($15), a model for an airport ($50), and low poly foliage for the scenery ($80)
Cloud computing and storage costs ~ $47
We will use Azure blob storage on the premium tier to have priority access to our data storage, which costs $0.15 per GB. Assuming a ceiling of 100 GB of cloud storage we will have a total cost of $15 on Azure.
We will also want to eventually use Azure’s Cognitive Speech Services to add our speech to text features past our MVP. We will want to use the neural real-time recognition feature, which costs $16 per million characters. Assuming a ceiling of 2 million characters over the lifetime of the project, we will allocate $32 to the service.
Risks
Multi-User Collaboration (High Risk)
Implementing multi-user collaboration in VR (including interaction, live edits on scenes, shared audio) is likely to be the hardest part of our project. We plan to learn more about this in the next lecture, and get familiar with any existing support and frameworks. To mitigate this, we will start researching this issue immediately and have allocated the entire 2 weeks of our MVP development time to this. We’ve assigned 2 team members to work together on this task and will reach out to the course staff as technical questions emerge.
Scope Creep (Medium Risk)
Because we envision our product to have many kinds of functionality, such as an asset library, transitions, animations, user friendly UI, and later on, voice-to-object generation, we are prone to scope creep and ending up with nothing working at all. To mitigate this, we’ve clearly defined milestones on a Trello board to very intentionally prioritize specific features, which we’ve scheduled week-by-week. For example, though we came into the class specifically intending to implement the voice-to-object feature, we decided it was not critical to the target use case and thus excluded it from our MVP.
User-Friendly UI (Low Risk)
As mentioned in “Project Description” and “User Experience”, one of the main value propositions is to create a user-friendly and effective UI to build scene transitions and animations. In our milestones, we’ve budgeted about 1 week’s time to start working on a presentable UI for the demo. Simona will lead us in this area, given her design background. We will also reach out to the course staff for feedback.