Max BGeo/Geo Cache Plug-in

This was my thesis project at Teesside University. The project was based on plug-in development using C++ and the 3Ds Max SDK.

The end result was a plug-in which could read and write Houdini's native cache file format (.bgeo and .geo). The project mainly explored pipeline development, plug-in development and the shift from scripting to programming. The final plug-in was a fully functional object based plug-in within 3D Max. I used the GPD library to read and write the data per frame in Max but ran out of time for optimization.

At the time Alembic was still in its alpha stage and was not supported by Houdini or 3DS Max. The plug-in works on both Max 2012 and 2013. My final thesis is available here:

Plug-in Development With C++ And The 3D's Max SDK Thesis (PDF)

Active Health IOS OpenGL Applications

For this project I created an in house IOS Application for Active Health Solutions. This was a large project which involved the creation of a graphics engine, programming the app interface as well as the art work for the app.

The app was a 3D visualization application which was used by sales representatives to sell products. Sales reps would use the app to visualize and create the final product in real time for the customers. This meant that customers could see exactly what they wanted and orders could then be sent directly after.

Everything was created using XCode and Blender and the 3D engine was written in ObjectiveC. The engine had multiple different functions which allowed for:
- Real time shadows.
- Importing geometry from blender.
- Importing geometry groups from Blender, this allowed only specific area of the mesh to be edited real time.
- Updating and animating geometry, this could be done from file or using an algorithm.
- Phong shading.
- Real time lighting.

The app had to work on the IPad 1 which meant a lot of optimization was done. For example instead of loading more geometry into memory, geometry had to be dynamically edited real time. As well as this Houdini was used to prototype how the geometry would be edited real time in the app.

Haddon Shallow Base Shadows Haddon Deep Base Shadows

Tyson Model & Rig

This character was created in 3Ds Max. The rig was done with custom maxscripts and a pose system was also created for the animators.

The character was used in a short animation created for a University project and the animators were happy with the rig. The reason we decided to script the rig was because we need to rig three different characters.

Forkman Model & Rig

This is an older Project done during my second year at Teesside University using Softimage. It was a short animation but I decided to rig the character myself and see what rigging tools are like in Softimage. The rig has multipul features such as:
- IK/FK switching arms.
- IK/FK switching legs with a spline IK offset.
- Spline IK spine with FK controls.
- Parameter based hand controls.

The rig was also fully scalable and was able to squash and stretch all the character limbs.

Python Space Colonisation

Houdini Space Colonisation Python SOP. This takes a set of input points, which will be referred to as leafs, then starting from a root point we add new branch points which grow towards the leafs. Once a branch point gets close enough to a leaf point then the leaf point is removed. Finally we loop over all the branch points and attach them together.

More info on my blog here.

Houdini VEX Infection Growth R&D

I used VEX and a SOP solver to create infection like growth. Basically I started with a set of points. Then I created an integer attribute which stated wether that point was infected or not. Finally using point clouds I found the closest point the was not infected and moved the infected point towards it which then infected that point. This process is then repeated.

More info on my blog here.

Houdini VEX Mass Spring Solver

This is some more R&D I'v been doing to learn more about physics and mass spring solvers. I made a mass spring solver using point wrangle nodes and a SOP Solver. Also using position based verlet integration and SDF volumes for collision.


a grey logo for backlit media