Objective: |
THIS PROJECT MAY BE DONE IN GROUPS OF TWO!
In this project, you will implement an application using Augmented Reality (AR) technologies
that allows people to collaboratively carry out a task.
|
|
Application Details: |
The project objectives are for you to:
- familiarize yourself with programming using an AR toolkit,
- learn how to add markers for specific objects or actions,
- get experience designing collaborative tools, and
- learn the strengths and limitations of AR.
The goal of your project is to allow two or more people to manipulate AR markers to complete a task.
The description of the project is deliberately left vague to allow you some freedom to explore an application
of your choice.
For this project, you are encouraged to use ARToolKit, as it
is open source and cross platform. However, you are free to use another AR package/technology if you have a compelling
reason to do so, e.g., you want to use a mobile device, like Android, for the project.
Every project must fullfill the following requirements:
- The task you choose must require multiple people to collaborate (see examples below).
- The primary method of input should be through the use of AR markers.
Here are some sample ideas for your project.
- A collaborative animation/modeling tool, where each marker has a model on it, and moving the markers near each
other makes the models "interact", so a witch model moved near a broom model might make the which fly away on the
broom.
- An interactive physics simulation, where some markers represnt emitters, which produce items like pebbles, and other
markers are colliders, which influence the movement of the objects. Tilting an emitter causes its objects to "spill"
off of them according to gravity. Other markers may introduce more energy into the system by, for example, propelling
objects that collide with them, or a wind marker may blow other objects.
- A collaborative music-creation tool, where an overhead camera captures markers and marker movement to control
audio-sample manipulation. For example, rotating a marker on the table might change the tempo of the associated clip,
while raising it up closer to the camera might increase the volume. Once a nice rhythm is found, a special marker might
be used to store the current state (i.e., the music).
- In an AR mystery game, a mobile AR application might use markers mounted on walls to reveal hidden information about
something that happened in the space. Multiple players need to search through the space and collaborate to solve the
mystery.
|
|
What to do: |
For this project, you are going to give a status update after a week, and present the final product a week after that.
To help you succeed, you should plan to get as much done as soon as possible. Use the status deadline to motivate you.
-
Part 1: Infrastructure in Place
In this part, you will make a simple application that detects all of the markers you will be using, with the camera(s)
in the place(s) where they will be in the final application. For example, if you plan to use an overhead camera, you should
demonstrate a working prototype with the camera fixed above the workspace, or for a mobile application, you should show the
code running on the mobile device, and the markers and their movement being accurately tracked.
Build this part of the program knowing that you will be growing it into your final application.
The best way to start is for each person on the team to download, install, build, and run the code samples
from the ARToolKit Code Rpository.
LOTS of start-up help and information can be found on the ARToolKit community support pages. I know these pages are old, but the code is still in good working order.
Also, you should start on the "guts" of the system. If you are doing audio manipulation, which software will you use?
If you are animating things, how will you do this? Where will you get your graphical models from (if you have any)?
Since time is short, split up the workload so that you can make progress in parallel.
-
Part 2: Final Application
In this part, you will add the "guts and back-end" of the applicatoin. If you are doing a physical simulation, then
this is where that code goes. If you are doing audio, you need to connect the AR with the audio here.
Again, there is nothing like getting started early!
|
|
Attacking the Problem: |
Start early! I am a firm believer in front-loading as much work as possible on projects. The more you get done now, the
fewer unknowns you will have about the project, and the sooner you'll start making significant progress.
Remember to start small. As I've done above, break down the individual parts into smaller, more-manageable pieces; don't try
to solve the whole problem from the start.
|
|
What to Submit: |
All documents are to be submitted electronically via turnin by 6:00 pm
on the day the assignment is due. Also, you will demonstrate your projects in class as well, so come prepared!
The following items should be submitted for this project:
- The code for the final application
- A brief description of your project. How do I run it? What do I do?
- A brief listing of what each teammember contributed to the project.
- URL(s) to one or more YouTube videos showing your application in action.
Name each file something that makes sense.
When you are ready to submit, zip up all your files into a single archive file.
Name the file Lastname1_Lastname2_proj2.zip, with the Lastnames being those of the teammembers.
You will use the Web-based "Turnin" facility to submit your work. Information
about submitting can be found here:
http://web.cs.wpi.edu/~kfisler/turnin.html.
Your WPI user ID should be used to login, and you were emailed a password.
The Turnin assignment ID is proj2.
|
|
Academic Honesty: |
Remember the policy on Academic Honesty: You may discuss the
project with others, but you are to do your own work. The official WPI statement
for Academic Honesty can be accessed
HERE.
|
|
Videos of Projects: |
Below are YouTube videos of the submissions for his project.
|