Difference between revisions of "Homework3W14"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
(Grading)
(Application (100 Points))
Line 24: Line 24:
  
 
* The playing field should be a plane of unlimited extent (<tt>btStaticPlaneShape</tt>).
 
* The playing field should be a plane of unlimited extent (<tt>btStaticPlaneShape</tt>).
* The user needs to be able to create building blocks of three different shapes, using at least two different Bullet shape classes. For instance: cubes, rectangular blocks and cylinders would satisfy this requirement (<tt>using btBoxShape</tt> and <tt>btCylinderShape</tt>).
+
* The user needs to be able to create building blocks of three different shapes, using at least two different Bullet shape classes. For instance: cubes, rectangular blocks and cylinders would satisfy this requirement (using <tt>btBoxShape</tt> and <tt>btCylinderShape</tt>).
 
* The building blocks need to have a user selectable color. There needs to be a choice of at least four colors, for instance: red, green, blue, yellow. There is extra credit for a color mixer (see below).
 
* The building blocks need to have a user selectable color. There needs to be a choice of at least four colors, for instance: red, green, blue, yellow. There is extra credit for a color mixer (see below).
 
* The building blocks need to be freely positionable, both location and orientation. There should not be any snapping to locations or angles.
 
* The building blocks need to be freely positionable, both location and orientation. There should not be any snapping to locations or angles.
 
* Once placed or dropped, the building blocks must follow the laws of physics, as applied by your physics engine. This means that dropping multiple blocks on top of one another will eventually make the tower tumble and fall over.
 
* Once placed or dropped, the building blocks must follow the laws of physics, as applied by your physics engine. This means that dropping multiple blocks on top of one another will eventually make the tower tumble and fall over.
 
* There needs to be a way to select previously placed blocks and move them to a new position and orientation.
 
* There needs to be a way to select previously placed blocks and move them to a new position and orientation.
 +
 +
'''Tip:'''
 +
 +
In the lecture on Tuesday, February 11th the istructor will go over various examples of selection, manipulation and menu implementations for the Leap.
  
 
==Grading==
 
==Grading==

Revision as of 23:48, 7 February 2014

Contents

Homework Assignment 3: Leap Motion

For this assignment you can obtain 100 points, plus up to 10 points for extra credit.

This homework assignment is due on February 21st, 2014 at 1:30pm. Thinh is going to do a Q&A session on Wednesday, February 12th at 4pm in lab 260.

The goal of this project is to use the Leap as the only input device for a building block application.

Leap

This homework assignment requires the use of a Leap Motion input device. Everyone in class is going to get to borrow one from the instructor until the end of the quarter.

To use the Leap, you will need to first download the driver. If you use the lab computers the driver is already installed on the even-numbered PCs in lab 260.

You will find the official Leap documentation with sample code at this link.

Bullet Engine

This project requires the use of a physics engine. You are welcome to use any such engine of your choosing, including a simple one that you write on your own, but we recommend the Bullet Engine. It has even been integrated into OpenSceneGraph through the osgBullet project. There is excellent sample C++ code for the engine, as well as an inspirational video.

Application (100 Points)

The idea of this project is to create a 3D application, in which the user can place an arbitrary number of building blocks on a playing field and move them around. The application needs to have the following features:

  • The playing field should be a plane of unlimited extent (btStaticPlaneShape).
  • The user needs to be able to create building blocks of three different shapes, using at least two different Bullet shape classes. For instance: cubes, rectangular blocks and cylinders would satisfy this requirement (using btBoxShape and btCylinderShape).
  • The building blocks need to have a user selectable color. There needs to be a choice of at least four colors, for instance: red, green, blue, yellow. There is extra credit for a color mixer (see below).
  • The building blocks need to be freely positionable, both location and orientation. There should not be any snapping to locations or angles.
  • Once placed or dropped, the building blocks must follow the laws of physics, as applied by your physics engine. This means that dropping multiple blocks on top of one another will eventually make the tower tumble and fall over.
  • There needs to be a way to select previously placed blocks and move them to a new position and orientation.

Tip:

In the lecture on Tuesday, February 11th the istructor will go over various examples of selection, manipulation and menu implementations for the Leap.

Grading

On the due date, you will need to demonstrate your application with a Leap in the lab on a lab computer or your own laptop.

You will be asked to build a simple representation of the engineering courtyard with the CSE, Bioengineering and Calit2 buildings. Those three buildings need to be built out of multiple blocks each, with enough detail that others are able to unambiguously tell which building is which.

Extra Credit (10 Points)

In addition to the four colors the user can choose from, offer a 3D color picker: this color picker should allow the user to mix any color the computer can represent out of the three base colors red, green and blue. Feel free to use the following image for inspiration, but don't let it constrain your creativity: [1]