Animated Pixels

Houdini on the Spot by Craig Zerouni

Someone asked a question  about  embedding a preset within a digital asset and I vaguely recalled having seen the answer somewhere. As it turned out it was in Houdini on the Spot, and I thought I might write a quick mini-review for the book since I've found it pretty useful.

Houdini on the Spot is not a tutorial based or a structured introduction to Houdini but  rather a collection of tips and techniques, which are at most about page long. So while it doesn't tell you how to use Houdini or  how to create an L-System forest, it will teach you a variety of techniques that you will find youself using daily. The applicability of the tips is the books greatest strength: on pretty much every pages there is something useful from calming down a simulation to creating dynamic menus on digital assets. Whilst some of the information is outdated (since the book was written for Houdini 9), an overwhelming majority is still relavant. Also being a collection of tips it's something you can dip into whilst waiting for simulations :)

More info here

John Carter

As you may have noticed blog posting had ground to a halt the last few months. The main reason for this is I got wrapped up in work, doing crowd simulation for John Carter at Double Negative. It was a great experience working at dneg as was working  with the lovely and talanted crowdSim team.

Looking forward to watching the finished film in the cinema. And if you haven't already seen it check out the trailer above :)

Filed under  //   work  

SOP Field Assets Test

While the pyro system is incredibly flexible and pretty awesome, one of the things I found myself doing fairly frequently is defining fields in SOPs and then bringing them into the DOPs and copying or adding them to the default fields using the gas calculate node. While all this is not terribly complex in itself, creating similar networks many times immediately lends itself to being automated in an asset.

At the moment I've created a couple of assets which allow you to plug in either a curve, points or geometry and then create a properly named field out of it along with the ability to add noise of animate the volume (using a carve on the curve or a multiplier on the points or geometry). Then in DOPs there are two nodes: the first allows with allow you to import the fields and second allows you to copy or add those fields to the relevant pre-existing field in the pyro solver.

The next round of assets look like they will be focusing on allowing more explicit control over the fields in the DOPs context. The obvious areas that would be useful to look at adding better divergence control and persuading the smoke to follow a curve rather than be influenced by it: at the moment the velocity field causes a bit of fighting between itself and buoyancy, with too higher buoyancy causing the smoke just to rise up whilst to higher velocity causing speed stretching and a lack of detail. I suspect the answer may lie in in the gas force field vop which looks pretty handy, but somewhat confusing. More fun to follow.

Filed under  //   DOPs   asset   houdini   test  

Houdini 12

Houdini 12

It’s very nearly time for a new version of Houdini, and there has been quite a bit of new information on what to expect of late. Judging from what I’ve seen from SIGGRAPH presentation, which is on the Side Effects site, Houdini 12 is going to be a pretty massive release with a ton of new features and improvements. Below of the list of things that I’m particularly looking forward to checking out once the open beta starts:

New Geometry Library

This is the basis for much of the improvements in Houdini 12: the new geometry library, from the information that sideFX have made available, will give a significant improvement modelling and manipulating geometry. Everyday operations such as adding groups, moving and deleting points and so on are an order of magnitude faster. This also applies to memory handling and efficiency gains: a FLIP fluid sim on a machine with 24gb ram could simulate 7 million particles before hitting memory limits. In Houdini 12 is can sim 77 million. While not everything will benefit equally from the new geometry library, overall this looks to be massive improvement. Personally I’ve always been a bit disappointed with handling large datasets in Houdini, particularly compared to XSI and Maya’s Viewport 2.0 (although Viewport 2 is only semi usable still), so the updated geometry library sounds awesome to me.

Bullet Solver

With constraints and support for most of the Houdini DOP tools, this is going to be really awesome. Sometimes you’re speed is more important than accuracy and the bullet solver is fast.

GPU Assisted Fluids

OpenCl based, and sounds really rather awesome. This combined with the the speedup to normal cpu (14x faster), means that upresing is no longer really necessary: apparently you can simulate a 300 x 300 voxel sim in near realtime on a macbook pro. The new viewport rendering of volumes looks awesome too.

Cloth That Works

I like Houdini cloth. That is to say I like the logic of setting it up and the options that it gives you. But let’s face it, it’s not exactly fast. Apparently the new cloth is a lot faster (up to 140x!) and a lot more stable.

Alembic Support

If you’ve ever tried to get geometry between packages, you know it sucks. If the geometry has a changing point count it really sucks. Well apparenlty alembic solves all that. Not only is incredibly fast in terms of read/write speed, allowing near realtime playback of heavy scenes, but it is supported by pretty much everyone from Maxon to Autodesk. If I can simply save out a file from Houdini and open it in Maya it will be a good day. It’s about damn time there was interoperability between all the major apps (let’s face fbx never really worked out).

Other Things

There were many other improvements that look pretty awesome. Things I particularly like are:

  • Instancing. Instancing is now really fast. Between this and the new geometry engine I’m finally going to get that LED asset rendered.
  • PBR Hair. A shiny new shader with better light transport for hair. That works fast in PBR. Oh yes.
  • Viewport Interaction: The OpenGL display has got a much needed overhaul and is now much faster with much better support and options for displaying information such as attributes and normals in the Viewport.

There is, of course, many many more new features and updates. If you are interested in learning more check out the [presentation] (http://www.sidefx.com/index.php?option=com_content&task=view&id=2010&...) Side Effects gave at SIGGRAPH on some of the new features. Looking forward to October and getting my hands on the shiny new version.

Filed under  //   rambling  

Some Useful Bits and Pieces

Have been pretty busy with work of late, hence the total lack of updates. Hopefully will get around to updating with some more interesting stuff soon, but in the meantime, and to prove this blog is not quite dead yet, here are some miscellaneous bits and pieces that I’ve found useful. If you’ve been using Houdini a while you probably know most of these, but hopefully there’ll be something useful you haven’t come across before. Feel free to share anything you think useful in the comments below.

Misc Shortcuts

  • Pressing the r key swaps the inputs of a selected node in the Network Pane. For ages I’ve wanted something like the shift+x shortcut in Nuke and it was there all along.
  • Pressing Ctrl when you click on the jump to operator button (e.g. next to the path on the object merge node, the parameters for the referenced node will pop up in a floating parameter window.
  • The alt+left and alt+right keys cycle forward and backward in the Network Pane.
  • The backtick key allows you to remake a selection. So for example if you have beveled some edges using the poly bevel sop, but then want to add some edges to the selection, you can simply select the poly bevel node and in the viewport press the backtick key, select some more edges and then press enter. If you look in the network pane you can see that it disconnects the node temporarily and then reconnects it when done.
  • In the network pane alt+lmb clicking on a node automatically picks up that nodes output and then lmb on the node you want to connect it to it’s input. This allows you to connect nodes when zoomed out a fair bit in the network pane.

Useful Expressions

opinfo

This allows you to print the full output of a node (that is what you see when you mmb on a node). This is handy if you have a lot of attributes on a node and it’s erroring out and you cant see the error message, or if you want to see the complete syntax of an L-System or the node has a really long comment. The syntax is:

opinfo -v <*path to node*>

So for example:

opinfo -v /obj/lsystem1

echo

You can use the echo command to return the output of an expression in the textport. Simply enclose the command that you want to evaluate in backticks. For example:

echo `point("/obj/node/ref", $PT, "Cd", 2)`

This can be handy to see if your expression is returning the value that you think it should be.

op:

Recently discovered this while watching the HOM Masterclass.

So if you have a digital asset and you want to promote the parameters from one the contained nodes. You can do it two ways: either manually construct the interface you want by dragging the parameters from the node onto the parameters pane in the Type Properties dialogue, which is tedious or use the awesome op: command to grab the parameters from the node.

So to do this create edit the parameter interface for the asset and:

  1. Create a folder parameter on your node.
  2. On the options for the folder turn Import Settings on.
  3. Source is the name of the node.
  4. Token is the folder that you want to import.
  5. Mask is the parameters you want to import.
  6. Having entered the information you want to get you’ll need to refresh the folder to import the settings. Simply right click on the folder icon in the parameter list and choose “Refresh Imports” to update the parameters.

So if we wanted to import the translate and rotate parameters from a regular transform node. The settings would look like this:

  • Source: op: xform1
  • Token:
  • Mask : t r

Apart from allowing you to grab existing parms and promote them, this is a relatively elegant way of connecting assets together, particularly since it preserves the layout of the parameters.

Filed under  //   Houdini   Tips  

Some Shiny New Renders

I realised I had some exciting videos on my sitting around on my vimeo channel that I hadn't yet posted (I was going to write about some cloth stuff I'd been looking at but never managed to get around to it. Anyways so here are the videos.

Shiny PBR Car

I dug up an old cad model I had lying around and decided to put it through mantra's pbr render just to see how it goes. PBR happily rendered the car without any problem on my home computer (not so fast), however motion blur proved difficult: the motion vectors for the wheel kept on coming out all wrong when I loaded the renders into Nuke. In the end I rendered the motion blur in camera, which wasn't as slow as I'd feared.

Dust

More fun with custom fields and the smoke solver. It 's really nice to be able to take data from SOPs and use it to influence the velocity and shape of a smoke simulation. When I get time I definitely want to look at the new volume tools specifically, but also how the smoke tools work, particularly in regards to shaping the simulation. Also had a bit of fun doing camera tracking in Nuke on this one.

Cloth / Pyro Test   

Unfortunately vimeo has done something with the gamma on this one (or more likely I broke something somewhere). This started off as a quick look at how the Houdini cloth solver works (if I ever get around to it I'll post the article on this sometime), and then moved on to having a play with they pyro tools. To be honest, rendering needs work (tried too many new things at the same time on the rendering front and ended up with a mess), but was an interesting experiment. On a related note, if anyone knows how to get the scatter pass from the pyro shader out let me know: I had luck with this a while back, but now aren't getting anythings. I've tried escatt and csatt in the image planes without much joy. 

Filed under  //   Houdini   Rendering   VFX  
Posted June 26, 2011

Juice Simulation Render & Breakdown

 Actually got around to rendering one of my personal projects to a moderately finished state. This was largely me fiddling about with the flip solver (again) and testing out some of the new pbr render settings (mainly the variance antialiasing and caustic/gi lights). Along the way I even mangled some keyframe animation. The horror.  Anyways, by way of breakdown, the basic fluid simulation started off looking something like this:

This is fairly close to the default settings for the flip solver, with some tweaking to arrive at a decent trade off between particle separation and speed. Unfortunately I can't remember how long the simulation took, but the time wasn't too bad. The hardest thing in setting up the simulation was getting the emission to stop at the right time. As increasing the particle separation changed the how quickly the container filled up a fair bit of guesswork was involved.

Above is the meshed surface. Used Houdini's particle fluid surface tool in order to mesh the surface. Once again the process was relatively quick. The render above was to test how the fluid would look and what kind of render time I'd be looking at. It being liquid I went with Mantra's pbr renderer, but output a motion vector pass for Nuke rather then rendering  motion blur in. This worked surprisingly well and meant that render times were around 5 min a frame at longest for this test and between 5 and 10 min a frame for the final render. Finally the carton was created and rigged in Houdini using a basic spline ik. 

As every if anyone has any comments or anything feel free leave them in the appropriately named section below :-). And of course high resolution versions  of all the clips on my vimeo channel.

Filed under  //   Houdini   dynamics   flip   render  
Posted March 7, 2011

Houdini Ocean Toolkit Test

A quick test of putting together a shader to use with the Houdini Ocean Toolkit. Not entirely happy with the foam yet.

Filed under  //   houdini dynamics   render   test  

Particle Fluid Advection Part 2

Another test of using a velocity field created in SOPs to drive a fluid simulation, this time using the resulting simulation to advect particles. While testing this out I put together a quick asset. You can download the asset and an example scene in the previous post. If anyone should try it out the asset is (I hope) straight forward, but let me know in the comments if any aspect of it is unclear.

Filed under  //   asset   dynamics   houdini   test