Project Overview
The purpose of the project is to give you the opportunity to explore some topic in 3D user interface software in more depth than in lecture. You are asked to propose a well grounded and motivated (and hopefully creative!) project, implement your idea, write up your work in the form of a conference-style paper, and give a final presentation/demo of your project. The project counts for 40% of the final grade, so it should represent a substantial effort, both in terms of creativity and implementation.
You have a lot of freedom to come up with a project idea. Given that is class is being taught remotely, I would strongly prefer that you do a web-based project in Babylon for the Oculus Quest so that it can be shared and demonstrated more easily. However, if you want to do something not possible with current web technologies, then I will consider requests to use a different hardware or software platforms on a case-by-case basis.
Whatever you choose to do, your project should represent a substantial implementation effort that’s motivated by, and grounded in, the principles we discuss in the class and in the book. Your idea should address a clear need, you should create an experience to demonstrate it, and your implementation of both should be polished. In other words, just doing a different an interaction technique that doesn’t meet some need, or that has sloppy mechanics or feedback, is not sufficient.
As a starting point to finding a topic, notice that the textbook uses the three major categories of 3D interaction: selection and manipulation, navigation and locomotion, and system control. Starting with one of those categories, you should search the literature, perhaps starting with recent conferences on VR and 3D interaction. See Project Ideas for more information about how to come up with a proposal. Feel free to run ideas by the instructor if you want early feedback.
What not to do: don’t come up with an idea that’s just about building some application, like an 3D game or a immersive experience, unless you’re using that application to demonstrate an interesting, creative, and substantial, contribution to 3D interface software, such as new interaction techniques, interfaces, toolkit capabilities, and so forth. Remember, this class is about creating compelling user interactions, not just app building or gluing together existing software components.
Projects may be done in teams of two or three, and must be on a topic approved by the instructor. Note that the expectations for the project's complexity and the depth of the written material will increase for a larger team. Individual projects may only be approved with instructor permission.
You are responsible for finding teammates. If you’re looking for a partner, using the #project channel on Slack may be a good way to match people and project ideas into teams. Please note that I expect all teams to behave professionally with each other, and to share in the obligations of the project equally. See the section on Teamwork Expectations at the end of this document for more details. In situations where work is not shared equitably, overall project grades for individual team members may be adjusted to reflect this.
Start right now! You should begin immediately looking for a project partner and discussing possible project ideas. I suggest reading carefully through this entire document so that you understand the requirements and grading criteria for all parts of the assignment before deciding on a project topic.
It should go without saying, but academic honesty and proper citations are essential with this assignment. Bulk copying from a published research paper (even if it is your own work), website, etc., is unacceptable, whether cited or not. Properly citing others’ work and acknowledging external references is required in all cases.
The breakdown of deliverables and grading for the project is given below.
Please see the online class schedule for due dates.
Milestone 0: Preliminary project proposal
Your team should begin brainstorming on possible project ideas early in the semester. Please look at the project ideas page and look ahead in the class topics and readings, as well as browse relevant conference proceedings. Other classes you’re currently taking, or have taken, might also provide inspiration. You’re welcome to send initial project ideas to the instructor for feedback.
By this milestone, you must deliver a brief writeup that describes the project you’re planning to do. This is a preliminary proposal, because the instructor and TA may give comments or feedback about how to modify your project. For example, we may suggest changes in direction to ensure that your project aligns better with the learning goals of the class, or may suggest increasing or decreasing the complexity of the project. Proposals that are out-of-scope for the class, or that represent an insufficient amount of work, will be disallowed.
The deliverable for this phase of the project is a brief one-page description in PDF format that outlines the motivation for the project (why it is a good idea, ideally grounded in what you’ve learned from the lectures, readings, or outside materials), and details on what exactly your project will do (a description of the system, or interaction technique, or whatever, as well as some details of how you think you’ll implement it). You can feel free to include a few citations if they help you motivate or describe your project, but these aren’t required. Images or figures may be useful in helping you communicate what exactly your proposed system will do.
This deliverable should be submitted by only one of the team members. Be sure to give your project a title and list the names of all partners on the team in your submission. This submission will not be graded, it’s just to give an early opportunity for you to get formal feedback on your project idea.
Milestone 1: Final project proposal
In this milestone you’ll submit your final project proposal. This written document should incorporate any feedback provided by the instructor or TA on the preliminary proposal, and should be a polished and detailed description of your motivation as well as what exactly you will deliver at the end of the semester.
In essence, this deliverable should look much like the first half of a conference paper: it should introduce your idea, provide the motivation and setup for your system, discussion of related work, and overview of what you plan to build. Illustrations may be helpful if you’re proposing some GUI-based interaction technique or other visual system.
As before, you’ll lay out the motivation and justification for your work—why it’s a good idea. For this deliverable, however, your project idea should be fully grounded in the relevant literature from the relevant 3DUI communities. This literature is expected to come from major scientific sources, including peer-reviewed conferences such as UIST, CHI, VR, 3DUI, ISMAR, SIGGRAPH, or others, and journals such as ACM TOCHI and IEEE TGVC. The University of Minnesota library website allows you access to all of these for free. However, you are likely to find that Google Scholar is a more useful search tool. I would expect most submissions to have 15-25 citations.
In well-justified cases, authoritative web sites and non-research articles may be accepted, especially when discussing techniques being explored in industry, but the large majority of your bibliography must be academic research publications. Remember: a good related work section isn’t just a list of papers. You should use it to motivate your project by using the papers to explain what the current state of the art and where the gaps are. Just throwing in a bunch of citations will not earn you a good score.
Your deliverable for this phase of the project is a 4-page (max) proposal in PDF format that includes the items listed above, in the IEEE VR conference paper format Links to an external site.. I suggest starting from the provided template, rather than trying to retrofit into it later. Again, only one team member should submit this in Canvas, but be sure you have both partners’ names on the submission.
This submission will count for 20% of the project grade. Grading will be based on the following criteria:
- Quality and clarity of motivation. Is the project idea well justified? Is it well grounded in principles from the class, and/or relevant literature?
- Quality and clarity of proposed project description. Is the proposed work sufficiently well described that I know precisely and in detail what you’re attempting?
- Coverage and relevance of citations. Does the discussion of related work provide good coverage of the fields from which this project draws? Are the selected references authoritative, well justified, and relevant to the project?
- Format. Does the submission follow the required formatting guidelines? (Please don’t ignore the formatting component of the grading! Following the correct format is important so that everyone is on a level playing field in terms of proposal length. My recommendation is to start writing from the template document.)
- Quality of writing. Is the submission well written and spell-checked? Note that I am sensitive to the challenges of technical writing for non-native English speakers. However, you should nonetheless do your best to improve the writing quality of your submission to the extent possible.
Milestone 2: Implementation
Milestone 2 is the completion of the implementation of your project. As noted above, while we prefer you use web technologies if your project can be done with them, you have complete freedom in choosing the development environment (language, platform, tools) if your project requires it. The only requirement is that you be able to fully describe that development environment and make sure you have some way to demonstrate your project at the end of the semester (see Milestone 4). Note that in most cases, if you don’t use web technology we won’t try to run your code, especially since it may depend on software libraries, platforms, or hardware that the instructor and TA do not have access to.
For this milestone you’ll submit the following deliverables:
- All source code and required libraries for your project.
- Detailed documentation in a readme markdown file, similar to the documentation provided with the assignments. This should include a description of the work you performed (what specifically you built), a clear description of your development environment, and links to any 3rd party libraries or code that you used. You may also include screenshots or pictures of your implementation working, where appropriate. If you use code written by others, be especially clear to indicate which code you actually wrote.
Only one person should submit, but be sure to include all team members’ names.
The implementation portion of the project will count for 40% of the overall project grade. This is the milestone in which we evaluate what your project actually does:
- UI contribution. How significant is the UI contribution of the project? Is the project simply an application, or does it have a substantial focus on new UI technology? How novel and creative is the system?
- Implementation complexity. Projects should represent a substantial implementation effort, more than half the course homework projects.
- Match with proposal. How closely does your finished implementation reflect the goals you set out in your project proposal? You don’t have to exactly match what you proposed, but deviations should be well justified (for example, simply not finishing a proposed feature because you ran out of time is not a good justification).
In some cases, we may award bonus points for extreme novelty or extra “polish” (such as great graphical design, or implementation of extra features that, while not contributing to the UI portion of the work, make it more useful or finished).
Milestone 3: Project Presentation and Demo
During the final exam period, students will be responsible for a presentation on their project. This will include an overview of your project’s motivation, design, and implementation.
This milestone will take two forms:
- You should also create a short presentation video of at most 4 minutes. The short video presentation should focus on what you did, how successful it was, what problems you faced, and so on. These videos will be assembled and shown to the class during the final exam period on Monday, December 21.
- You should create a presentation video between 10-15 minutes in length. This the main presentation described below, which should include more implementation details and greater discussion of motivation, related work, and lessons learned. These long videos will be embedded along with links to the deployed build within a virtual reality gallery that will be made accessible to the class for asynchronous viewing.
The presentation will count for 20 points in the overall project grade. In this milestone we are only grading for the quality of the presentation itself, not the overall quality of your system. Presentations will be graded on the following basis:
- Clarity. Are the concepts and ideas presented clearly and cogently? Are important details skipped? Are appropriate visual aids used?
- Organization. Is the presentation well structured? Does it jump all over the place? Is it repetitive?
- Pacing. Does the presentation fit well into the allotted time? Is it too rushed? Are the presenters "stretching" the material to fill time?
- Motivation. Presentations should be understandable by everyone in the class, not just your team members. Do you set up and motivate your work well? Do you explain why it’s a good idea?
You may want to do a practice talk or two before recording, to make sure your timing is right and that your presentation does a good job of conveying your project. You do not need to worry about everything being “perfect” (in terms of speaking, “umms” and pauses, etc …) but you should appear prepared and the pacing should be good. You also should not feel like you need to create the videos in “one shot." You can feel free to capture content, pause, do some more, and then piece the parts together.
Milestone 4: Project Writeup
The final project milestone is to do a complete writeup of your project that is in the form and style of a conference research paper. This will be an 8 page (max) paper in standard IEEE VR conference paper format, as in Milestone 1. If you wish, you can “reuse” your material from Milestone 1 in this deliverable, as appropriate (be sure to update it if your motivation, references, or other material have changed, and of course the deliverable should describe what you have done as opposed to what you plan to do). This deliverable should be submitted as a PDF document by one of the project members; be sure to list both members’ names.
Look at some of the proceedings of conferences mentioned above to see the form and style of these papers. The typical paper will have an introduction section that motivates the work, a discussion of related work, a system description (including implementation details as necessary), sometimes an evaluation, discussion section, conclusions or future work, and references. Many of these sections will be new for this deliverable. The actual sections that you might have can vary, of course, but should be plausible as a research conference paper. I suggest looking for papers that are on topics that are at least superficially similar to your project and using them as templates.
The Author’s Guides for various conferences provide details on how to write an effective research paper. As an example you can check out one example of conference Review Criteria Links to an external site. for the UIST conference. This document details the set of criteria for how the reviewers (in our case, the instructor and TA) will evaluate your paper.
For a project of the appropriate scope, I would expect the final writeup will likely take the entire 8 pages to provide sufficient detail, coverage of related work, and so forth.
This portion of the submission is worth 20% of the project grade. The grading criteria are as follows:
- Quality/clarity of intro, motivation, related work discussion, references, etc. (i.e., material previously covered in Milestone 1). The sections of your paper you submitted in Milestone 1 will be reevaluated here; you can update these as you see fit, to improve the quality of presentation, or to reflect new findings or related work. This portion of the grade will reflect the overall quality and clarity of this portion of the paper.
- Quality/clarity of system description and other new material for this deliverable. Are the system and its implementation well described? Are caveats or weaknesses of the chosen approach fairly and honestly described?
- Format. Does the submission follow the required formatting guidelines? (Please don’t ignore the formatting component of the grading! Following the correct format is important so that everyone is on a level playing field in terms of proposal length. My recommendation is to start writing from the template document.)
- Quality of writing. Is the submission well written, spell-checked, etc.
Teamwork Expectations
It should go without saying that in a team project, I expect everyone to contribute equally. This doesn’t mean that everyone has to do the same job: some may take on more responsibility for the writing, others for the coding, and so forth. But it does mean that I expect each teammate to exhibit an appropriate level of professionalism, responsiveness to their teammates, and overall sharing of the obligations of the project.
The first step toward a successful project is setting expectations appropriately. Talk to your partner early about workload and division of responsibilities. If you will be out attending a conference, let your partner know beforehand so that he or she can plan appropriately.
If you feel that a member of your project team isn’t carrying his or her weight, then the first step is to speak to that person directly. I strongly prefer to rely on teammates working through these problems themselves. However, if you feel that you’ve exhausted these options, please make an appointment for your team to speak to me directly.