Deborah R. Fowler
Houdini Tips and Tricks related
to modeling / procedural modeling / procedural animation:
Posted 2013
Updated on Nov 5 2024
Files created by Deborah R. Fowler unless
otherwise noted. Click on
Picture for sample hipnc file
See also modeling
overview section
TIP:
- add node can be used for many purposes. A better roof
example uses the add node as well (For other roofs see
below)
- add node for deleting all but points
- add node for following geometry
(we will use this extensively with animation).
- alembic files - when exporting from
Houdini - use an rop alembic node to export - when
reading back into houdini use an import and be sure to grab
the correct path. More information about alembics here
- animation misc - curve movement
- attribute paint and the bend node H18 - following Jeff Lait's Masterclass on Attribute Paint - quick sample file - more info here
- bend with variation in a for-each pigFlower.hipnc (H18.5)
- boolean
booleanExampleH19.hipnc
- box
(Polygon) geometry: If your corners look soft - like this you can check off the consolidate
corner points to get a more normal looking render like this. there of course are other ways
to deal with this - the Houdini theme - there is more than
one right way - it depends on what you are trying to do.
You can turn off consolidate points or you can use an
edgecusp. See hipnc for multiple solutions
- bbox function
- like the point function, the bounding box function
can give you access to information you may need (see also
intersection analysis)
- callback scripts - very simple example in
hscript and python of a callback script. A more advanced
python version exists on my python page here (see
Adding callback scripts). Another example DoorPlacementWithCallback.zip
- callback to reset
parameters in the GUI (also included: how to make a
parameter disappear based on another)
- cull geometry points by camera frustrum (several videos exist on youtube, but here is a sample file - see also Complex Scene Tips
- table legs example using ch reference or add
- CHOPS hints. The
limit node can come in handy (thank Ian), however there
usually is a mathematical way to achieve the same purpose
(both included in the hipnc file) - the goal was to flatten
the peak of a sine curve).
- In
addition, you can use chops and take the information
to create a curve to build geometry (updated with pointwrangle
and op: format)
- Here is a simple wing animation using chops compared with expressions (updated using for each in place of copy stamp)
- chops
combine for pause effect on sine function
- chramp color function additional file now in 19.5
- chramp
float function in both hscript and vex now in 19.5
- clip node
- color node with Attribute Create can also be used for similar control to the chramp example above
- color
variation using for-each (see also looping overview) exampleOptionsColorVariation.hipnc
(H18.5)
- color
variation using for-each tint texture (see also looping overview) colorVariation.hipnc
(H18.5)
- [Tips for] Complex Scenes (Includes brief Render Description)
- copy node - simple examples (remember to use packed primitives or instancing - see instancing)
- copy node overview for
beginners (version 19.5) at Overview-CopyNodes.html
- copy node variation without stamping
- copy by for each with differing floor sizes - similar to the snowman/building pointwrangle example
- copy by for each with differing width
(similar to above but perhaps buildings)
- copy
increase/decrease - now with for-each forEachIncreaseDecrease19.5.hipnc
- creep sop (hint - inside this
file is a link to a forum post where they create a chain). More on creep here.
- delete attributes (or
Attribute rename)
- delete
or blast You can delete
or blast including
the second input for a bounding geometry object
- edgecusp - see entry under Box above. Edgecusp, facet and vertex can all be used to "sharpens edges by uniquing their points and recomputing point normals". Also from sidefx documentation stairsFromSidefxDocumentation.hipnc
- labs grab an edge
- if you have SideFXLabs loaded use edge group to curve,
you can create geometry from an edge labsGrabACurve.hiplc
- font node - should you ever need to randomize alphabetical characters here are some expressions you may find useful
- for-each nodes page containing multiple example files see Overview-Looping.html
- also loopForEachVaryStacks.hipnc
- simple example of randLineLength.hiplc and with sweep/polyspline nodes randLineLength.hiplc
- fuse node can be very useful to get rid of duplicate points - note H18 - fuse behavior has changed - See below
- fuse node H18 turn off everything
except Fuse Snapped Points
- gears
- example using polyextrude, boolean, groups
- glass - dealing
with glass? check out
the troubleshooting page
- groups can be very useful
- FOR HEIGHTFIELD example files see here
- Hscript
- including multi-line, comments and the for loop in a
parameter expression. There is a very useful forum post here
as well.
- Hscript - example
above extended to a modular version
- Hscript - introducing some examples using C++ like hscript as well as introducing pointWrangle (lecture example)
- Hscript versus python
- intersection analysis
- intersection analysis for procedural animation
- intersection
analysis for procedural animation
- object merge is very useful to have tidy networks and reference geometry without bringing all the nodes into the current container
- Orient objects or profiles to a curve? copy to curves is not the only option
- orient PolyFrame from above video
- orient PointWrangle from above video
- polyframe or pointwrangle works, below are polyframe and for pointwrangle click here
- also now we have copy to curves node polyframeVSpointwrangleNCopyToCurve.hipnc (H18 and up)
- if you need meta data, instead of copy to curves, use orientAlongCurve.hipnc
(H19 and up) and copy to points
- polyframe is your friend (sometimes)
- also orienting along a circle
- tube geometry
- copy
onto curves configured in any "tube" shape
- this works too - center of each
face (facet node used)
- in more detail using lines or
expressions - (measure node used)
- this works for
angled tubes as well (facet node, tube node)
- you can also use the sweep node
- (for H18 see attribute paint above) paint node can be used for layout - it is a very powerful technique, especially when combined with the scatter node. See attributePaintLayout.hiplc.
- point function is an extremely useful function that you should be aware of to get even more information
- polyextrude - more info here
- points from volume -
more
info here
-
polyfill (polycap) roundedFace.hiplc
(H19)
- polyspline
- post placement Building - simple examples of placing posts on a platform both from an edge or from the center
- python versus hscript expressions
- PYTHON IN HOUDINI
- rand
- (H19 file) seed can vary
(point wrangle, create attribute, attribute randomize)
- roof -
fancy and also roofsFancyMore.hipnc
with a reamp controled version of a roof
- sample windows Building (see
also building video) - windows using expressions and
lines and **pointwrangles** see also Building
Overview
- sample side windows Building - side window (on depth) example
- using expressions and lines - two
solutions (in H13)
- sample side door Building - side door using
lines (in H18) Click here for more on the point wrangle
version
- sample door (based on copynum) or a fancier one using callbacksDoorPlacementWithCallback.zip
- scatter node can be very useful for layout. Particularly when combined with the paint node (see above under paint) [scatter node has changed in H14 ... or the nearest neighbor information to control clumping/intersections (see scatterSolution.hipnc under instancing examples).] You can also scatter in a volume (using isooffset with scatter or pointsfromvolume)
- scatter (new in H15 behavior and ocean) - NewScatterAndOceanH15.hipnc uses attribute interpolate node to ensure points follow surface
- sample side justify sideJustify.hiplc
- timeshift
- stairs
- switch node switchNodeExample.hipnc
- transformation order matters (and remember to model at the origin, not off in space). See transformOrderMatters.hipnc.
- transform teapots (order matters)
TeapotTransforms.hipnc
(H18.5)
- trim versus cookie. Nurbs are your friend. Here is an example file using project, trim, bridge and skin. A simple example is given as well as one I made for a student to show the differences between cookies and trim. (Cookies are fine but can sometimes create poor topology.) Here is a simple example of using trim trimCurves.hipnc and a bit more complex one trimmedNurbVersusCookie.hipnc (as pictured)
- visualize an attribute see here
and here
- wire example using a lattice node (thanks to Nate and Zak) and my version springTest.hipnc using a wiredeform node