• Home
  • Publications
  • CV
  • Contact
  • Kress Enterprise, LLC
  • ARCHIVE
James Kress

 Graphics in Python ~ Winter 2015

This class was completely projects based, and gave great freedom in terms of implementation. I took a lot of time creating the best projects that I could in this class so that I would develop the best Maya, modeling, python, and combination thereof, of skills. Take a look at all of the individual projects I created and enjoy the awesome images!

Project 1: Modeling with maya

LEGOsRendering example of all my brick assets.
The first project for this class was to become familiar with the Maya interface, and become proficient at basic object creation, manipulation, and modeling. 


The project (prompt available for download) involved the creation of some basic LEGO brick assets in Maya, and then to create a simple scene out of the assets. All of these assets were created out of basic shapes. We as students were encouraged to choose our assets to create, and final scene to compose. I decided to make a series of the most common LEGO bricks (1x1, 1x2, 1x4, 1x6, 1x8, 2x4) in four different colors (red, blue, green, yellow), a LEGO base plate (32x32), and a LEGO flower.


My final scene consisted of a LEGO base plate as a representation of a yard, fenced in with a blue fence. Inside of the fence was a house built out of the brick assets, and a flower garden in the front. The LEGO person in the door was provided by the instructor. To create the renderings of the scene I created two different light sources for the scene. One ambient light source to bring up the light everywhere slightly, and a point light source to shine down on the roof of the house to create great shadow effects around the house, fence, and garden. Finally, I created a camera on a spline to animate the camera movement around the house in 500 steps. I used the Mental Ray renderer included with Maya, and rendered the images in either 720p or 1080p. All of the items in this scene were generated with PhongE material properties. Each of the different brick types were assigned different reflective and emittance properties. One great effect of this is that the word LEGO emits on the baseplate when in shadow. 

Check out the rendered images in the gallery, download them under downloads, or watch the video!


Downloads

assignment_1_prompt.pdf
File Size: 82 kb
File Type: pdf
Download File

finalwriteup.pdf
File Size: 7360 kb
File Type: pdf
Download File

images_1.zip
File Size: 7100 kb
File Type: zip
Download File

Project 2: Animation in maya

Assignment two was a stepping stone to Assignment 3, which was procedural generation of objects and animation in Maya. Thus, we started off with a small idea, and tried to create a series of steps that we could then procedurally generate in the next assignment. 


The small step was the creation of a single bubble rising in water. This bubble was to start off at the bottom of a column of "water", and then rise to the surface. There are a lot of different ways that this project could be taken, simulating actual water for the bubble to rise through with emitters or nParticles, completely disregarding the water and just have a bubble rise though an object, or use a soft body and have the bubble collide with it as it rises, just to name a few. 
For part one of the assignment, I took on nParticles. This was a major job, and in the end I came out with something that I am relatively happy with.  The hardest part of using nParticles was getting them transparent enough to see the bubble rising in the container. In the video you will see a beaker I created along with a single bubble at the bottom that jitters and grows as it rises, interacting with the particles along the way. 

Downloads

assignment_2.pdf
File Size: 108 kb
File Type: pdf
Download File

For part two of the assignment, I moved away from nParticles, and went towards a soft body approach. In this approach I created a transparent box to be the tub of water, and created a plane across the top of the box that would be able to interact with the bubble when it hit. This interaction was achieved by creating springs on the soft body surface, which when hit by the rising bubble, would cause a little ripple effect.  The movement of the bubble was achieved through the use of a lattice deformer and keyframing its assent. I added in both jitter and rotation to the lattice deformer to make the bubble look more realistic. 


Coming up in the next assignment, I took the ideas learned here, and created a procedurally generated boiling water effect. 

Project 3: Automating animation in maya

Assignment 3 focused on Python scripting for Maya. This can be accomplished with the built in Maya Python interpreter , or you can go the longer and more complicated route of connecting Maya to your favorite Python editor. We went the longer route, and connected PyCharm to Maya through a Nimble bridge. This is a convenient way to code in a comfortable environment, and then send the commands to Maya via the bridge. 
The first step in the assignment, was to create a single bubble procedurally via Python. I created the script, and generated a 40 frame keyframe animation. The background is the Maya Mental Ray sky, and the water surface and bubbles use the Ocean Shader. 


The final video was generated at HD1080p playing at 12 frames per second (slowed down to better watch the bubble).

Downloads

assignment_3.pdf
File Size: 296 kb
File Type: pdf
Download File

The second step of the assignment was to extend the original script to create a series of bubbles. I adapted the script and created a 200 frame animation. The bubbles are rising from the bottom at a rate of 45 bubbles per second, and are being generated at random positions with random scales and shapes. 


The final video was generated at HD720p.

Final Project: Tokamak reactor visualization

The final projects for this course were completely open, the students were to pick something that was of interest to them in the wide world of Python and graphics. I chose to create a multi-part video on the ITER Tokamak Rector with some particle visualizations from the XGC Physics simulation code that I worked with at Oak Ridge National Laboratory.

The first step to my project was in acquiring and converting the existing ITER geometry files that were acquired from Dave Pugmire at Oak Ridge National Laboratory.


Many of the files were sent with '.cgr' extensions and had to be converted to a format that was usable in Maya. I used MeshLab to do many of the conversions to get the meshes seen here. These meshes were then used in the creation of the different scenes of my visualization video. 
Scene I in my project was an overview of the ITER complex mesh. This overview was just designed to show the extensive mesh and to get a feel for how large it really is. 

The lighting is a combination of scene based hdr lighting, ambient, and point. This fills out the scene and gives good shadows across the mesh. 

This overview was keyframed using a custom QT interface that enabled me to essentially drive the camera around the scene to get the angles and shots I wanted. Once the keyframing was done, the project was rendered at 1080p using Mental Ray, producing 915 frames. 
Scene II in my project was an overview of the ITER reactor core, followed by a set of particles in the reactor. 

These particles were added to the scene through the Python-Nimble-Maya bridge, and are based on data from the XGC tokamak simulation code. The particles are all keyframed at each step of their journey around the reactor.


This scene really taught me some of the limitations of working with Maya and scientific data, chiefly, that it is very slow and cumbersome when working with large data sets. This means that it is best used for exactly what we were using it for, impressively rendered images and video!
A video of my final project consisting of both scenes is available below. Best viewed at 1080p!
Powered by Create your own unique website with customizable templates.