VFX Animation
WEEK 1
Introduction To Houdini
Basic Controls I — jump in U — jump up O — node overview in Network view D — scene display options C — colour palette in Network view (for organisation only) Node Rings — provide info options for node whilst hovering by default (can be disabled in; View>Display options) P — Properties in Network view H — Home view G — Focus on selected object Spacebar + 1> Perspective view Spacebar + 2> Top/Bottom view Spacebar + 3> Front/Back View Spacebar + 4> Left/Right View Esc Key>View mode
Basic Nodes (SOPs) used in creation shown below.
Node FLAGS;
Display/Render Flag (blue)
Template flag (pink flag)
Bypass flag (yellow) (select flag)
Lock flag (red)
COMMIN HOUDINI ATTRIBUTES pscale > different sizes N > normal Cd > colour Orient rot > rotation
Create “Geo” node in OBJ level, rename geo node and dive in.
Place a Box Node , specify dimensions in the parameters tab as needed for the cheese.
Apply colour node to give it colour.
Scatter node to distribute points on the surface of the box.
Then create a sphere, give it dimensions if needed.
CopyToPoints node to connect both sphere and box, distributing spheres on scattered points on box surface.
AttributeRandomise node using Pscale to randomise sizes of spheres.
Boolean node to connect both randomised spheres with box, with a subtract operation in the parameters to cut out the spheres from the box.
Createbox to represent cheese board, give dimensions in parameters as needed.
UVunwrap node to apply UV to object.
UVquickshade to apply quick textures using file path.

Above is a puzzle where the nodes were incorrectly placed and we had to figure out where they are to be connected corrected to create the “S” shape shown above.
_______________________________________________________________________________
WEEK 2
Rigid Body (RBD) > Domino Knockdown

Create a box and specify dimensions in parameters tab for the Domino.
MATCHSIZE node to level the Domino to ground level so it doesnt get trapped inside floor.

TRANSFORM NODe to resize domino.
COPYTOPOINTS to place domino on points along the curve lines.
Attach RigidBodyBulletSolver node for collision. However dominos fall without any collusion.
AttributeDelete node to remove velocity so objects don’t move without being collided into first.
Create a box to act as colliding object and insert into RBDbulletSolver node to collide with placed dominos
RBDbullet solver enables interaction between rigid bodies.

You can also enable Ground plane in the RBDbulletSolver settings, or create a ground plane using GRID Node.
Animation shown below.
_________________________________________________________________________________
WEEK 3
Ducks on Water

Create a Grid to act as water surface.
OceanSpectrum Node for converting grid surface to water-Like surface.
Create a separate GEO node.
Insert OBJECT MERGE node to refer to oceansurface created as refernce for placement of ducks.

AttributBlur node to smooth curves of water surface.
Normal node to have the duck properly orientated to sit on water surface following the curves as it animated.
Timeshift node, using “$ff” to hold object in position in single, a.k.a Rest Point Lattice. This should be frame 1.
Scatter node to distribute points over surface of water.
PointDeform node to connect the scattered poins, the Timeshift rest point(which keeps duck stable and in position), and the surface of the water referred to in object merge node.
Bring in Duck fbx, transform using thr=e transform node to required direction if otherwise.
CopytoPoints node to place ducks on points on water surface.
Go back to object level to see both Duck Geo and Ocean Geo at the same time to to view motion. (Below)
LEGO TOY
__________________________________________________________________________________
WEEK 4
Clothing > VellumCloth
__________________________________________________________________________________________
WEEK 5
Noodles & Plate
______________________________________________________________________________________
WEEK 6
Character Animation
______________________________________________________________________________________
WEEK 7
Cragg + RBD Material Fracture
_____________________________________________________________________________________
WEEK 8
Truck Animation
_________________________________________________________________________________________
WEEK 9
Building Destruction
____________________________________________________________________________________
WEEK 10
Flamethrower
____________________________________________________________________________________
WEEK 11
Rain Spawn Test
____________________________________________________________________________________
WEEK 12
Dolphin Path
___________________________________________________________________________________________
ASSIGNMENT / ASSESSMENT PERIOD
___________________________________________________________________________________________
ANIMATION ASSESSMENT >> Disaster Animation << NODES WORKFLOW Overview of OBJECT Level (Below), separated into sections for convenience. TEST NODES- To try out simulations and make us of ones that work as required. Test & Ideas/SCRAPS- Like the name, is a collection of failed tests, and nodes no longer required or didnt fit the simulation idea(s). MAIN NODES- Nodes used in my assessment project.Closer view (Below)
![]()
GROUND_Destruction (Simulation)Created the Meteor using a sphere with a mountain node to give uneven surfaces like a meteor. Duplicated it 5 times and adjusted their individual parameters for variations. Created a ground plane (SMALL GROUND Above) using a Grid node and used an Attribute top instead of a mountain node this as I wasnt getting the surface i wanted for my ground plane. Extruded the Grid, and used the Polysplit node to more divisions around the side walls. Then duplicated it and created a second ground plane purely for visuals (BIG GROUND) and enlarged it using the transform node to cover a wider area, covering the small ground plane.
I gave both the SMALL GROUND and METEORS a RIGID BODY, so that they can collide. Then used a RIGIDBULLETSOLVER to simulate the collision. After the RigidBulletSolver, I use a Split Node to separate the Ground from the Meteors using Groups. Then placed an "_OUT Null" to be able to refer to it in other parts of the project and Simultions.
I Cached the Final combination of BIG GROUND, SMALL GROUND and METEORS to help playback faster and Render quicker after Merging them with a MERGE Node. This Simulation is the backbone for all other simulations created for this project. Ground_Destruction Nodes Full Connection Overview
![]()
METEOR_PYRO_SimulationI used an OBJECT MERGE Node to bring in the METEORS i created. Then Unpacked and used the V attribute to fix Velocity issues, so that the simutions behaves as intended. Added Point Velocity Node to improve veloctiy of volume simulation. Added PYRO SOURCE to bring in BURN, TEMPERATURE and DENSITY for the volume. Added TRAIL Node to close gaps between the simulated motion. Duplicated POINT Velocity and VOLUME RASTERIZE ATTRIBUTE(v) Node to give the smoke and fire more detail.
Used a PYROSOLVER Node to simulate the smoke and fire emitted from the Meteor Object I created and brought in with the Object Merge Node. Blast Node to remove unwanted Attributes. VOLUME Compress Node to Reduce size and weight of volume simulation. PYROBAKE VOLUME Node to give it colour using the Ramp. Messed around till I got settings I liked (see Video in "TEST SIMULATION & RENDERS" section down below). I then cached the final result and attached a NULL Node at the end. METEOR_PYRO_Simulation Nodes Full Connection Overview
DEBRIS_Simulation Nodes Full Connection OverviewI used the OBJECT MERGE Node to bring in the Proxy Geometry out which had both Meteor and Small Ground simulated together. This became the basis for the Dust Debris. I unpacked, and applied the V Attribute to enable accurate Velocity of the the broken flying pieces of Small ground. Added a DEBRIS SOURCE Node to source where the particles emanate from. POPNET Node for the debris dust particles. Inside the Popnet Node, I : - added a ground plane for the particles to interact with. - set the age of the particles, so they stay active forever. - set the distance of dispersion from collision. - added gravity to make then fall and stay on the ground. Then Attribue Delete to remove V as the collsion objects already had velocity which is transfered. Wrangle Node to set Density to 1. VolumeRasterise for the container of the volume simulation. Pyro solver for smoke. Then I Cached the final simulation and placed a Null at the end.
STAGE LEVELIn the STAGE LEVEL, I brought in all my Simulations and inserted them into a MERGE Node. Then created a MATERIALLIBRARY for the materials for Rendering. Added a DOMELIGHT and used an EXR HDRi image as a textured background lighting my scene. Added a Camera and animated it to capture angles I wanted to view. Then used a KARMA Node to render my Image sequences. MaterialLibrary (Below)
Inside the MaterialLibrary, I created 6 materials for objects and simulations. METEOR_mtlxmaterial for the Meteor. INSIDE_GROUND_mtlxmaterial for the inside faces of SMALL GROUND. OUTSIDE_GROUND_mtlxmaterial for the surface of SMALL GROUND. OUTSIDE_GROUND_BOUNDARY_mtlxmaterial for the surface of BIG GROUND. Fire_Mat for my Meteor's fire simulation. Dust_Mat for the DEBRIS created. Whilst HoudiniGL recognises its native settings and colours, Karma doesnt render all of it. As such I had to create an XPU PYRO PREVIEW node and include in the materials fp both Fire_Mat and Dust_Mat. (See Below) Inside Fire_Mat (Below)
![]()
TEST SIMULATIONS & RENDERS BELOW
Lower Quality Renders
High Quality Render