Mark Fickett: Demo Reel Shot Breakdown
mfickett@seas.upenn.edu
naib.webhop.org
Family Tree
- Spring 2008 (continuing)
- C++ / OpenGL
- FLTK for GUI
- Data stored as XML using the Apache Xerces-c library
- Physics-based layout
- This is my Senior Project; for the most part it is independent work, with suggestions from various people, and particular early data structure influence from Matthew Fickett (my brother). The intent is to provide an application for viewing and editing ancestry data, geared towards people.
- The movie shows the tree being built, which continuously runs the physics simulation as new elements are added.
GPGPU Continuum Crowd Simulation
- C / C++ / Cg, on NVIDIA hardware
- Based on a paper titled "Continuum Crowds" by Treuille, Cooper, and Popovic; the paper presents an approach to crowd simulation which (as opposed to being agent-based) calculates the optimal paths for all crowd members as one potential field.
- This was a partner project; I wrote most of the crowd-behavior code, and the other student (Luke Zarko) wrote the solver for the potential field.
- We implemented a reference CPU version first, and then a GPU version; the GPU version ran at about 10fps with a 64x64 grid and 80 crowd members, as opposed to the CPU version at about 3.5fps.
- We implemented dynamic map discovery and associated goal assignment, not in the Continuum Crowds paper.
- First image: (a) shows the potential field for the crowd on the left (the direction the members of the left crowd want to go), (b) shows the area discovered by crowd members, (c) is the input walls, (d) is the 'discomfort' projected by crowd members (so members avoid each other), and (e) is the final discomfort map (walls within discovered areas, and projected discomfort).
- Second set of images: these show the potential field (left, with known walls visible in red) and the goals (right, initially at borders of the known region, and then once discovered at a predetermined location), at three stages during map discovery. Note the dramatic change in potential field once the end goals are discovered.
- Final report (PDF)
Ray Tracer
- C++
- Features include:
- Reflections and refractions, translucency
- Soft-shadowing
- Spheres, cubes, and polygons
(read from OBJ files) supported
- Bounding boxes for polygons
- Environmental and image maps
- Anti-aliasing
- Matrix caching, to prevent repeatedly calculating the
inverse of the same matrix
- First image: demonstrating all types; about 9 minutes for 500x500 pixels, four samples per pixel for anti-aliasing.
- Second image: Reflection and refraction in spheres
- Third image: Reflection and image/environment maps on spheres
- Final image: Reflection on polygons
Java Graphics
The following are examples of Java Graphics systems, one including a full Graphical User Interface (GUI). The graphics code is AWT/Swing/Java2D; the design is object-oriented; and the overall architecture follows the Model-View-Controller (MVC) archetype.
More code, including applets of some of the following
Mechanicals
- Summer 2006
- This is a Java GUI for simple mechanical systems, which served as an introductory programming assignment: students implemented simple classes to model the mechanical objects, and were given a full GUI to exercise and intuitively test their code. I designed, coded, documented, and designed assignments for this project, with input from others involved in running the course. For fun, I added a command to trace the movement of the mechanicals.
BotWorld
- Spring 2005 - Spring 2006
- Inspired by PacMan and Karel J. Robot, this is a system for introducing students to object-oriented design in an intuitive and fun way. I designed, coded, and documented most of the code, and wrote multiple assignments for the system, with input, some code, and other assignments using BotWorld by the professor and other TAs. The system is usable from DrJava, allowing interactivity. The code was also the basis for an implementation of Frogger, used in another assignment.
MEL GUIs
- Summer 2007
- These are GUIs for tools I wrote while interning Vanguard Animation.
- SyMan Batcher: part of a larger tool, this creates and runs batch jobs to test ranges of settings for SyFlex cloth simulation.
- Tweak-Layers: like Photoshop layers for animation, this allows animators to non-destructively add revisions on top of existing animation, and vary the intensity of the 'tweaks' added.
Box Animation
- Spring 2007
- Maya, rendered using Mental Ray
- I did all of this project; created the story/characters, modeled, shaded, and animated; and created the sound track (though I didn't record all the audio, and used some pre-made wood textures).
Ball Bounce
- Spring 2007
- Maya
- I did everything, with emphasis on the motion; I decided the weight, size, texture, and interaction for the balls, animated them, set up an environment for them, and shaded and lit the scene.
Figure Sculpture
- Fall 2006 and Spring 2008
- Reclining figure: Clay, roughly 1.5' long, sculpted over one three-hour studio session
- Seated figure (similar)
- Prostrate figure (similar scale): sculpted over three studio sessions
- Head: Clay over armature, life size, also three studio sessions
- More figure sculpture
Drawings
- Spring 2005
- Pedals in cloth cave: Charcoal and ink, 38" x 32"
- Abstract: Pastel, charcoal, marker, acrylic, 22" x 10"
- More drawing