Houdini Ocean Toolkit for H12
Just ported my multithreaded version of the Houdini Ocean Toolkit to Houdini 12.
Just check the “Threaded” parameter of the SOP deformer to switch to multithreaded calculation. Got speedup up to 100% on larger oceans.
Had no time for in-depth testing…so please let me know if you have any problems.
Here you can find the source an win64 binaries:
(This version works for Windows. Did not try if this version works for other platforms)
Win64 binaries:
HOcean_HOT_H12.1.125_win_x64.zip
HOcean_HOT_H12.1.77_win_x64.zip
HOcean_HOT_H12.1.33_win_x64.zip
HOcean_HOT_H12.0.581_win_x64.zip
HOcean_HOT_H12.0.543.9_win_x64.zip
Sources for Houdini 12: HOcean_HOT_H12_src.zip
Training Video For Houdini Flocking Systems on cmiVFX
cmiVFX just releases my flocking tutorial:
store.cmivfx.com/tutorials/view/330/Houdini+Flocking+Systems
Check it out. I hope you’ll enjoy it!
This training focuses on a basic concept of flocking simulations: steering behaviors. The algorithms created by Craig Reynolds can be used to simulate the movements seen in flocks of birds or fish.
This step-by-step training video introduces how steering behaviors work and how one can create complex simulations just by combining simple behaviors. The viewer will learn the common behaviors like “separation” or “cohesion” and how they interact with the agent’s mind.
As a bonus this tutorial comes with a powerful library of a multi-agent system which you can use to create flocking and crowd simulations.
Houdini Closest Primitive VEX Function
This Houdini 11 plugin extends VEX with a function to retrieve the closest primitive to a given point.
Usage:
prim = csClosestPrimitive(file, pos, maxDistance, &closestPoint, &closestPrimNormal, &primU, &primV);
Parameter:
prim |
the primitive number of closest primitive. -1 if no primitive found |
file |
path to geometry in op:/ notation (e.g. op:/obj/box1 Currently no external File supported!!) |
maxDistance |
the maximum search distance. -1 for no limitation |
closestPoint |
contains the closest point on the primitive |
closestPrimNormal |
contains the normal of the primitive |
primU |
the primitive’s U coordinate of the closest point |
primV |
the primitive’s V coordinate of the closest point |
There is also a VOP node available:
Download source:
csVEXClosestPrimitive_src.zip
Binaries:
csVEXClosestPrimitive_H11_win_x64.zip
Thanks to Martin Matzeder for some great inputs.
Showreel 2011
We are a collaborative of independent media professionals working on asking questions and finding answers.
Coming from as many backgrounds as there are members to the group – ranging from graphic design to software development -we collaborate on projects deploying an interdisciplinary approach. While the majority of our work consists of visual effects projects for feature films and commercials we constantly try to widen our horizons and look for new challenges.
This showreel demonstrates a selection of our work.
Stefan Galleithner
Nils Engler
Martin Saechsinger
Christian Schnellhammer
Projects shown:
Feature Films:
2012, We are the Night, John Rabe, Krabat, Vicky the Viking, Dungeon Siege, Gaping Abyss A Christmoose Carol
Commercials:
Lamborghini Aventador, Skoda „Curriculum Vitae“, Piraeus Bank „Origami“, Continental „Stop the Ball“, T-Com „Rain of Flowers“, Aditya Birla Group „Let’s reach for the Sun“, Qatar Foundation, GNP „Click“, Illy „Beauty has a taste“
Paperworld for “Skoda – Curriculum Vitae”
Check out this spot we have worked on in collaboration with weareflink, Hamburg, Germany.
The Munich team consists of Martin Sächsinger, Nils Engler, Stefan Galleithner and me.
Check out the vimeo page to see full credits: http://vimeo.com/25073794
But how to create a Paperworld? One of the greatest challenge was to create animations where pages of paper should fold to different geometrical objects. So we developed some “PaperTools” in Softimage ICE, simplifying this task.
I want to show you some tools we made for this projekt:
The following video shows a tech demo of an ICE compound where you can bend/fold a paper on any arbitrary position:
The next video shows an extension of the paper bending compound. You can place a null and a compound for each folding. Connecting a single scalar value to each of the folding compounds let you animate the whole folding process with just one slider:
We developed a shape blender allowing us to blend between a set of geometry shapes via spline interpolation. It’s only necessary to create a group of geometry forming the key-deformation of the folding process. The compound is able to interpolate in-between shapes for a smooth animation. It uses a spline interpolation to get nearly “round” folding paths.
The video shows the interpolation between 13 geometry shapes:
Houdini Bird Flock
This video shows a bird flock simulation created in Houdini. It uses Craig Reynold’s steering behaviors technique.
I created a VOP POP node in Houdini implementing the flocking behavior. The general movement of the bird crowd can be controlled by one ore more leading birds.
This sample has two bird crowds with mutual interaction.
I copied a simple bird geometry on the simulations points and rendered with Mantra.
Visit my other page for more information regarding steering behaviors:
www.steeringbehaviors.de
Water Foam Generation Tests
Some years ago I implemented a watersurface toolset for Maya needed for a projekt I was working on. The toolsets consists of a tessendorf ocean deformer, a mentalray ocean displacement shader and and a IWave simulation solver for interactive water (See paper by Jerry Tessendorf on his website) . As base for the tessendorf ocean I used the HOT (Houdini Ocean Toolkit) by Drew Whitehouse. I just used this tool internally for projects. Now, at this time, there are also some public HOT ocean implementations for Maya available.
To create realistic water surfaces, I turned great attention on the foam generation of the water surfaces. Since I did not found any good solutions in the web, I started my own implementation. The main part of this foam tool is just a mentalray shader. The foam generation is based on the color per vertex attributes of Maya. No particles or fluid are needed. The foam is shaded with some different noise layers, combined and animated by the values of the CPV data. And I got a nice behaviour of the foam in the simulation.
I want to show you some tests I did with the foam shader. This videos only focuses the foam generation and simulation.
The first video shows a simple test of the ocean deformer combined with the Iwave solver and a interactive foam generation.
The second video shows the skills of my foam generation tool in combination with the tessendorf ocean.
By the way, my multithreading implementation of the Houdini Ocean Toolkit was born at the time I created this toolset for Maya in 2008. Later, I also created a Softimage ICE version of this toolset. For more details take a look at my other blog posts.
Steering Behaviors and Crowd Simulations
I just want to refer to an old and dusty website of mine describing “steering behaviors”. It was a diploma theses of my studies in computer science years ago. Together with a fellow student I did some research of the technique described by Craig Reynolds and Robin Greene. “Steering Behaviors” is the base idea of creating crowd simulations and since it is very fast it is often used in game development.
You can download a free GPL based implementation in Java. There is also a paper available describing the implementation.
Unfortunately the english version of the paper is not fully complete.
Just take a look: www.steeringbehaviors.de
Multithreading for Houdini Ocean Toolkit
With some small modifications, the Houdini Ocean Toolkit source code can be used in multithreaded environments.
I created OpenMP variant of the HOT ocean SOP node. On a multicore machine the HOT becomes appreciable faster.
To use the compiled binaries you need the OpenMP libraries (vcomp90.dll) shipped with the Microsoft Visual C++ 2008 Redistributable Package. You can download it from the Microsoft site.
Note: To compile the source with OpenMP enabled you have to turn on the /openmp compiler flag in Visual Studio. Use -fopenmp if you are compiling with the gnu compiler.
Downloads:
Win32 binaries hocean_bin_hot1.0rc8_win32_H10.0.554.zip
Win64 binaries hocean_bin_hot1.0rc8_win64_H10.0.528.zip
Sources hocean_src_hot1.0rc8_openMP.zip
XOcean – A XSI ICE Node using the Houdini Ocean Toolkit
Another project of mine was to create an ICE Node using the HOT (Houdini Ocean Toolkit). The HOT is a very stable implementation of the Tessendorf algorithm for ocean waves.
The Xocean node can be used as a deformer (by using a non-simulated ICETree on geometry objects) or for creating interesting particle simulations. The node outputs the displacement values as well as the eigenvectors and eigenvalues for each point in world space.
The advantage using an ICE Node is that the outputs can be combined and reused in the ICE Tree (e.g. colorize foam or emitting particles where foam occures)
Download the x64 build for Softimage 2012: xocean_XSI2012_x64.zip
The node outputs the displacement vectors as well as the eigenvalues and eigenvectors per point.
Here are some pictures of Xocean in action:






