Instructor: | Robert Bruce |
Office Location: | Engineering, ENGR-246 |
Telephone: | |
Email: | |
Office Hours: | Tuesdays 4pm-6pm, or by appointment |
Class Days/Time: | Thursdays, 2pm-4pm |
Classroom: | ENGR-246 |
Prerequisites: | At least junior standing as computer science major. GPA of 3.5 or higher in the major and department chair consent. |
Senior project on advanced topics in computer science as determined by the instructor. Written paper or oral presentation of the project required. Intended for students graduating with departmental honors.
Real-time motion capture applied to 3D virtual model
In this project, the student will develop a markerless motion capture system to project facial expressions onto a virtual 3D animated avatar in real-time. This project requires knowledge of systems programming, 2D and 3D computer graphics, Maya animation/modelling software, and computer vision.
Upon successful completion of this course, students will be able to:
Complete Maya Programming (Volume I) by David A. D. Gould. ISBN: 978-1558608351. A copy of this book is available in Lab-246 (ENGR-246).
Complete Maya Programming (Volume II): An In-depth Guide to 3D Fundamentals, Geometry, and Modeling by David Gould. ISBN: 978-0120884827. A copy of this book is available in Lab-246 (ENGR-246).
Advanced programming in the UNIX environment by W. Richard Stevens and Stephen A. Rago. A copy of this book is available in Lab-246 (ENGR-246).
SJSU classes are designed such that in order to be successful, it is expected that students will spend a minimum of forty-five hours for each unit of credit (normally three hours per unit per week), including preparing for class, participating in course activities, completing assignments, and so on. More details about student workload can be found in University Policy S12-3 at http://www.sjsu.edu/senate/docs/S12-3.pdf.
Note that University policy F69-24 at http://www.sjsu.edu/senate/docs/F69-24.pdf states that "Students should attend all meetings of their classes, not only because they are responsible for material discussed therein, but because active participation is frequently essential to insure maximum benefit for all members of the class. Attendance per se shall not be used as a criterion for grading."
Foundation OpenFace / Maya relationship |
|
Stage 2 Rigging in Maya |
|
Stage 3 Maya plugin core |
|
Stage 4 User Interface |
|
This class is graded credit / no credit.
Deliverable | 10 points | 18 points | 25 points |
---|---|---|---|
Foundation |
|
|
|
Stage 2 |
|
|
|
Stage 3 |
|
|
|
Stage 4 |
|
|
|
Total possible points for this project is 100. To receive credit for this class one needs to score 70 points or above.
Regular class attendance is highly recommended. Students are responsible for knowing all materials covered through in-class lectures and assigned readings. Please be mindful of fellow students and the instructor by not talking on mobile phones during instruction. Students are expected to leave the class quietly in the event they must use their mobile phones.
Per University Policy S16-9, university-wide policy information relevant to all courses, such as academic integrity, accommodations, etc. will be available on Office of Graduate and Undergraduate Programs' Syllabus Information web page at http://www.sjsu.edu/gup/syllabusinfo/
Week | Date | Topics, Readings, Assignments, Deadlines |
---|---|---|
1 | Thursday, January 26 |
Lecture: Overview for building a real-time motion capture pipeline |
1 | Thursday, February 2 |
Lecture: Shared memory, Semaphores, and Inter-process communication |
2 | Thursday, February 9 |
Lecture: Introduction to Pthreads (multi-threading for speed) |
2 | Thursday, February 16 |
Lecture: Mapping 2D shapes onto a 3D avatar |
3 | Thursday, February 23 |
Lecture: Introduction (overview) of the Maya C++ API |
3 | Thursday, March 2 |
Lecture: Dissection of a boilerplate (minimal code) for a Maya C++ plugin. |
4 | Thursday, March 9 |
Lecture: Mesh manipulation (vertices) in the Maya C++ API |
4 | Thursday, March 16 |
Lecture: Introduction to rigging in Maya |
5 | Thursday, March 23 |
Lecture: Lip segmentation and tracking - rigging tips and tricks. |
5 | Thursday, March 30 |
SPRING BREAK: NO CLASS TODAY |
6 | Thursday, April 6 |
Lecture: Mesh deformation C++ API: Manipulating vertices in Maya. |
6 | Thursday, April 13 |
Lecture: Writing multi-threaded C++ Maya plugins |
7 | Thursday, April 20 |
Lecture: Developing Maya user interfaces plugins in QT. |
7 | Thursday, April 27 |
Lecture: Maya plugin File I/O. |
8 | Thursday, May 4 |
Lecture: Introduction to Directed Acyclic Graphs (DAG) for Maya scene descriptions. |
8 | Thursday, May 11 |
Project demonstration. DUE: Final Project. |
Spring 2017, CS-180H:
Greensheet
Lectures: