Aline Normoyle
Home   Projects   Teaching   About  
Software Frameworks

Since coming to Penn, I've created several software frameworks for the Digital Media and Design (DMD) and Computer Graphics and Game Technology (CGGT) programs.

Cloth

CIS563: Physically-based Animation
C++/OpenGL/QT

This assignment was created for CIS563, Spring 2010. The purpose of this assignment is to get to know mass-spring particle systems, particle-based cloth, numeric integration, and collision detection and response. Students are given the code for a working skeletal animation playback system based on the framework written by Liming Zhao. The assignment design is based on an similar project from CMU.

Jello

CIS563: Physically-based Animation
C++/OpenGL

This assignment was created for CIS563, Spring 2011. This assignment is identical to the Cloth assignment, except that a mass-spring particle system is used to simulate a jello cube, rather than cloth.

Fluid

CIS563: Physically-based Animation
C++/OpenGL

This assignment was also created for CIS563. The purpose of this assignment is to experiment with incompressible fluid simulation implemented with a Semi-Lagrangian approach. It's based on my own smoke simulation framework (details here).

Behavioral Animation

CIS564: Game Design
C++/Gamebryo/QT/PhysX

This assignment was built for CIS564 in 2010. The purpose is to implement a suite of Reynold's Boid behaviors using a simple physically based controller. The students implement seek, flee, arrive, depart, avoid, wander, flocking, and leader following. The assignment design is based on one developed by Liming Zhao for CIS462: Animation.

A*

CIS564: Game Design
C++/Gamebryo/QT/PhysX

This assignment was built for CIS564 in 2010. The purpose of this assignment is to implement A* path planning.

LSystem Maya Plugin

CIS660: Advanced Graphics
C++/MEL/Maya Plugin API

This assignment was built for CIS660 in 2011. The goal of this assignment is to help students setup their Maya development environment and gain familiarity with the Maya Plugin API. Plugins allow developers to add new functionality to Maya. To illustrate this point, students add the ability to create plant models based on the L-Systems by implementing commands, custom nodes, and MEL GUIs.