Credit: Mauricio Mutai, Angelina Risi, and Brian Tong |
CIS 460/560 - Interactive Computer Graphics Prerequisites: At least one year of programming experience prior. Knowledge of basic data structures, tree traversal algorithms, linear algebra, and C-like languages is useful, but not required. This course focuses on programming the essential mathematical and geometric concepts underlying modern computer graphics. Using 3D interactive implementations, it covers fundamental topics such as mesh data structures, transformation sequences, rendering algorithms, and curve interpolation for animation. Students are also introduced to two programming languages widely used in the computer graphics industry: C++ and GLSL. The curriculum is heavily project-based, and culminates in a group project focused on building an interactive first-person world exploration application using the various real-time interaction and rendering algorithms learned throughout the semester. Offered in fall.
|
Credit: Hanming Zhang |
CIS 461/561 - Advanced Computer Graphics Prerequisites: A working knowledge of C++ programming
is required (one year programming experience in general). Knowledge of vector geometry is
useful. Offered in spring.
|
Credit: Matt Jones |
CIS 462/562 - Computer Animation Prerequisite(s): Previous exposure to major concepts in linear algebra (i.e. vector matrix math), curves and surfaces, dynamical systems (e.g. 2nd order mass-spring-damper systems) and 3D computer graphics has also been assumed in the preparation of the course materials.
|
Credit: Kai Kai Wang |
CIS 497 - Senior Project (DMD Students only) Prerequisite(s): Senior standing or permission of instructor. The goal of this course is to provide an opportunity for seniors to define, design, and execute a project of their own choosing that demonstrates the technical skills and abilities that they have acquired during their 4 years as undergraduates. Evaluation is based on selecting an interesting topic, completing appropriate research on the state of the art in that area, communicating your objectives in writing and in presentations, accurately estimating what resources will be required to complete your chosen task, coding necessary functionality, and executing your plan.
|
Credit: Peter Kutz |
CIS 563 - Physically Based Animation Prerequisite(s): Students should have a good knowledge of object-oriented programming (C++) and basic familiarity with linear algebra and physics. Some background in computer graphics is helpful.
|
Credit: Daniel Garcia |
CIS 564 - Game Design and Development Prerequisites: Basic understanding of 3D graphics and animation principles, prior exposure to scripting and programming languages such as Python, C and C++.
|
Credit: Fan Deng |
CIS 565* - GPU Programming and Architecture Prerequisite: CIS 460 or CIS 560, and familiarity with computer hardware/systems. The hardware/systems requirement may be met by CIS 501; or CIT 593 and 595; or CIS 240 (with CIS 371 recommended); or equivalent coursework. This course examines the architecture and capabilities of modern GPUs. The graphics processing unit (GPU) has grown in power over recent years, to the point where many computations can be performed faster on the GPU than on a traditional CPU. GPUs have also become programmable, allowing them to be used for a diverse set of applications far removed from traditional graphics settings. Topics covered include architectural aspects of modern GPUs, with a special focus on their streaming parallel nature, writing programs on the GPU using high level languages like Cg and BrookGPU, and using the GPU for graphics and general purpose applications in the area of geometry modeling, physical simulation, scientific computing and games. Students are expected to have a basic understanding of computer architecture and graphics, and should be proficient in OpenGL and C/C++. This course is appropriate as an upper-level undergraduate CIS elective. Undergraduates who have satisfied the prerequisites are welcome to enroll. No permission from the instructor is needed. Offered Fall 2017 | Course Website
|
Credit: Nick Newberg |
CIS 566 -Procedural Graphics Prerequisite: CIS460/560
|
CIS 568 - Game Design Practicum Prerequisites: CIS462/562: Computer Animation, CIS277 or CIS460/560: Computer Graphics Co-requisites: CIS564: Computer Game Design and Development The objective of the game design practicum is to provide students with hands on experience designing and developing 3D computer games. Working in teams of three or four, students will brainstorm an original game concept, write a formal game design document then develop a fully functional prototype consisting of a playable level of the game. In addition to creation of original art and animation assets for the game, technical features to be designed and implemented include a novel game mechanic and/or user interaction model, game physics (i.e. particle systems and rigid body dynamics), character animation, game AI (i.e. movement control, path planning, decision making, etc.), sound effects and background music, 2D graphical user interface (GUI) design and optional multiplayer networking capabilities. Consistent with standard industry practices, game code and logic will be written using C++ and popular scripting languages such as Python and Lua. State-of-the-art game and physics engine middleware also will be used to expose students to commercial-grade software, production methodologies and art asset pipelines. As a result of their game development efforts, students will learn first hand about the creative process, design documentation, object-oriented software design and engineering, project management (including effective team collaboration and communication techniques), design iteration through user feedback and play-testing, and most importantly, what makes a game fun to play.
|
|
Credit: Vijay Shingala |
CIS 660 - Advanced Topics in Computer Graphics Prerequisites: CIS 560: Computer Graphics and CIS 562: Computer Animation The goal of the course is to review state-of-the art research in the fields of computer graphics and animation as well as provide students with working knowledge of how to convert theory to practice by developing an associated graphics/animation authoring tool. Working in teams of two, students will design and develop an authoring tool that that facilitates the creation of a new type of user interaction, animation/simulation capability or 3D graphics special effect. Research papers published in the SIGGRAPH Conference proceedings over the period 2005-2009 will provide the basis for the features/functionality/special effects that can be selected for implementation in the authoring tool. Each group will analyze the need and user requirements for the tool they plan to develop, prepare a formal software design document, construct a project work plan, develop the authoring tool functionality and user interface, test the design and demonstrate the authoring of associated content. A plug-in to standard authoring tools such as Maya or 3DSMax must also be developed to enable importing of appropriate assets and/or exporting of results.
|
Credit: Emiliya Al Yafei |
CIS 106/ANTH258 - Visualizing the Past/Peopling the Past Most people's information about the Past is drawn from coffee table picture books, popular movies, video games, documentaries about discoveries of "ancient, mysterious, and lost" civilizations, and tours often lead by guides of limited or even dubious credentials. How are these ideas presented, formed, and circulated? Who creates and selects the information presented in this diverse media? Are these presentations accurate? Do they promote or hurt scientific explanations? Can the artistic, aesthetic, and scientific realms be bridged to effectively promote and interpret the past? How can modern technologies be applied to do a better job at presenting what is difficult to experience firsthand? This class will focus on case studies, critiques, and methods of how archaeology and the past are created, presented and used in movies, museums, games, the internet, and art. Each year, the studio-seminar focuses on a project. In addition to exploring general concepts of archaeology and the media, students will work in teams to produce an interactive, digital media exhibit using the latest modeling visualization programs for presenting the sacred landscape of the Inca capital of Cuzco, Peru. Cuzco is one of the most important UNESCO World Heritage sites and visited by nearly a million tourists a year. Potential class projects include fly-throughs of architectural and landscape renderings, simulations of astronomy and cosmology, modeling of human behavior within architectural and landscape settings, and study artifacts in the Penn Museum. |