Welcome to CIS 4350: Virtual Reality and
Computer Games
Lecture:
Mo / Fr 12:30 -
1:50pm. Tuttleman 302
Lab: We 12:00 -
1:50. Wachman Hall cc 200
Instructor:
Rolf Lakaemper (lakamper@temple.edu)
Office Hours: after class, Mo/Fr 2pm - 3pm, or by appointment, or just come in,
room 1036 Wachman Hall.
Phone: 215 204 7996
TA:
Feipeng Zhao
E-Mail for homeworks: tue86437@temple.edu
Contact Hours :
[will be added]
TA-website: [will be added]
Textbook:
no tetxtbook! I recommend to buy
a Microsoft Kinect instead. I will point you to online resources during the
semester.
> Course Material
Week |
Class-Topics |
Lab-Topics |
Assignments |
JAVA Sources |
Slides |
1 |
Intro
to 3D Sensors, Kinect, Examples |
(no
lab) |
(no
assignment) |
|
|
2 |
OOP
basics: Abstract Classes, Interfaces, Polymorphism Multi-Threading,
Concurrency, Locks |
Working
with Kinect TCP |
(no
assignment) |
Project ThreadExample:
contains 2 example files: |
|
3 |
State
Machines, 2D Geometric Transformations, 3D Transformations, Vector Algebra
Basics |
Working
with threads/state machines using the robot simulator |
3D
Transformations Quaternions |
||
4 |
JMonkey: intro, scene graphs, Spatials,
Animation, Sound. Textures
and Lighting |
Working
with JMonkey |
JMonkey Example01:
Basic Coord System JMonkey Example02:
Shapes and Sunlight |
|
|
5 |
Transformations Textures
and Lighting Physics
Engine: basic physics The
math behind terrain generation: fractal heightfield
generation |
Motion
Capturing System: Combining 3D transformations with Kinect Skeleton JMonkey: Physics Engine |
JMonkey Example03: Coord Transform JMonkey Example04:
Lighting1-Ambient and Directed Light JMonkey Example05:
Lighting2-Point Light JMonkey Example07:
Physics Engine Basics Poor Man's Motion Caption System |
||
6 |
Fractals
in JMonkey Heightfields, Creating Meshes Working
with Point Clouds RANSAC
to find planes |
|
JMonkey
Example 08: HeightField, Dynamic TerrainPatch JMonkey
Example 09: PointCloud (new Kinect Version!) |
||
7 |
3D
transformations: Quaternions. |
|
|||
8 |
Project
Proposal Presentation |
|
|
|
|
9 |
Collision
Detection k-DOPs |
|
|
||
10 |
Working
with Sound: Fourier Analysis |
|
|
||
11 |
Blender |
|
|
|
|
12 |
Bezier
Splines ICP |
|
|||
13 |
ICP
cont’d, kD-Trees Intermediate
Project presentations |
|
JAVA
kD-Tree source (web resource) |
kD-Tree
slides (copied from UWashington website) |
|
14 |
Project
Presentations cont’d Particle
Filters in Robot Localization |
|
|
|
|
15 |
Final
Project Presentations |
|
|
|
|
> Quizzes
·
Quiz 1
·
Quiz 2
·
Quiz 3
·
Quiz 4
·
Quiz 5
·
Quiz 6
·
Quiz 7
·
Quiz 8
·
Quiz 9
·
Quiz 10
>Additional Material
·
Link to Kinect
Hacks (example Kinect projects)
>Grades
Your grade will be based on a combination of
quizzes, lab grades, and project work:
·
There will be quizzes. I
expect about 6-8 quizzes. In total, these will count 25% of your grade.
·
There will be extra points during class (bonus
points), counting as quiz points
·
Lab assignment
grades will count 25%
·
The Projects will
count 50% of your grade
CLASS ATTENDANCE is a
prerequisite to pass this class, independently of the Quiz/Lab/Project. If your
class attendance is insufficient (missing > 3 classes is critical), this
will result in an F.
>Syllabus and remarks
The course will focus on creation, modeling, analysis and
implementation of 3D applications in arts, entertainment, and scientific
simulations. These fields demand for robust knowledge in programming and
typically are applications for optimized sophisticated data structures and
algorithms. These fields offer exciting, serious programming projects. The
applications will handle 3D data. This will increase the experience with
advanced data structures (Octrees, bounding box
trees, r-trees), linear algebra (3D Vector algebra,
rotations, quaternions, projections) and the problems that occur with higher
dimensionality and higher volume of data.
The course will build on data gathered from the
Kinect using the" kinectTCP" module, which
makes the data available on a TCP port, freeing the students from any low level
kinect programming. The course can therefore
immediately concentrate on higher level tasks. Although kinectTCP
allows for language independence, the proposed language for this course is JAVA
in connection with a higher JAVA module, JMonkey. JMonkey is a 3D visualization kit, which also implements
basic physics simulations. It is written in JAVA, and therefore integrates
perfectly. The students will learn the advantages of object oriented thinking,
being able to create complex 3D environments by extending JMonkey
structures.
The proposed course will enhance the abilities of
the students in many fields important to computer science:
·
Creativity
·
Modeling
·
Software engineering, Program Analysis
·
Data Structures & Algorithms
·
Geometry / Linear Algebra
·
Programming
Topics:
·
Microsoft Kinect: Introduction to 3D vision and 3D
point clouds
·
What's out there? An overview over the current state
in computer gaming and virtual reality in Arts and Sciences
·
Describing 3D worlds, 3D mathematics: linear
algebra. Vectors, matrices and spaces to describe 3D Geometric transformations
(Euler angles, Quaternions,...)
·
Representing 3D worlds, Computer Graphics: basic
algorithms and representations (Meshes, geometric primitives). Advanced data
structures: different types of trees to store and handle 3D data.
·
Creating 3D worlds: Blender
·
Displaying 3D worlds: JMonkey
·
Manipulating 3D worlds: JMonkey's
physics engine
·
Interacting with 3D worlds: Kinect & JMonkey
>What is expected of the students:
·
You must attend class and
the scheduled laboratory section for this course and do assigned readings.
·
You must complete all of
the assigned laboratory projects in a timely fashion. All lab
assignments should be emailed to your lab instructor before lab on the day they
are due.
·
You must plan to spend time
outside of the scheduled laboratory working on your programs. Often,
students find they need 10 or more additional hours outside
of lab to complete the assignments. You should check the web site for this
course at least once a week to see any hints, instructions or updates to
assignments. I will update assignments or add hints due to feedback from you.
·
This is a seminar style class. There will be
projects, which you should come up with yourself. After the introductory
sections, you will have to present your project idea, progress, and final
project. Projects are GROUP projects.
>Group work
there are two different settings: individual assignments/homeworks
MUST be solved individually. Projects and group assignments are, obviously, to
be solved in a group. Copying of individual assignments leads to an immediate F
grade.
>Disability Disclosure
Any student who has a need for
accommodation based on the impact of a disability should contact me privately
to discuss the specific situation as soon as possible. Contact Disability
Resources and Services at 215-204-1280 in Room 100, Ritter Annex to coordinate
reasonable accommodations for students with documented disabilities.