Week 2 : Personal Project – Research & Experimentation

My aims for this week:

  • Attempt a simply sphere extrusion animation.

Cheat Sheets:

Common Houdini Surface operators (SOPs)

Box, Sphere, Grid, Tube, Circle, Line, Torus, CurveSome basic operators that give you geometry primitives
FileLoads a mesh (obj, bgeo, etc)
TraceUses a threshold to generate geometry from an image
AddCreates individual points and/or polygons
MergeCombines multiple pieces of geometry
PointManipulates point properties and attributes. The second input allows operations between two sets of points from different sources providing they have the same number.
PrimitiveManipulates primitive (usually polygons) properties and attributes
TransformMoves, rotates, and scales geometry
FacetMost commonly used to calculate normals, but does a few other things too.
GroupAllows you to assign a group to a set of vertices, points, or primitives. (A bit like XSI’s Clusters)
CopyCopies input geometry. The second input allows you to copy the geometry from the first input, onto each point of the second input. This operator allows loop-style processing by using the Copy/Stamp feature.
DeleteDeletes geometry. Can be used with a Copy operator to perform loop-style processing.
AttribCreateAllows you to store custom information at each vertex, point, primitive, or object
AttribTransferCopies attributes from one piece of geometry to another. The geometry does not have to match (just like XSI’s GATOR).
AttribPromoteAllows you to do various statistics on an attribute (e.g. average, minimum, maximum, mode, sum of squares, etc.) and transfer it to the corresponding vertex, point, or primitive.
MeasureAllows you to calculate polygon area, perimeter or mesh curvature.
CacheStores geometry in memory to allow for faster previews.
TrailCan calculate per a point velocity, or generate trails of points from animated geometry.
SkinPerforms a “loft” style operation
ResampleRedistributes points along a curve
RayDoes ray tracing based on point nomal. Can be used to shrink wrap one mesh onto another.
Cookie, BooleanDifferent types of Boolean style operations
SortCan sort point order based on various things.
PeakTransforms points based on their normals
ConnectivityCreates an attribute with a value based on connectivity information. Works well with Partition operator
PartitionAssigns geometry to a group based on an attribute value. Often used with the Connectivity operator

Common Houdini Expressions

You can find the full list of expressions here:
http://www.sidefx.com/docs/houdini11.0/expressions/

ch(<parameter path>)Gets the current value of the parameter
chf(<parameter path>,<frame> )Gets the value of the parameter at a particular frame
stamp(<Copy SOP path>, <stamp variable>, <default value>)Retrieves the current value of the specified stamp variable (See Houdini docs for more info on the copy-stamping process)
point(<SOP path>, <point number>, <attribute name>, <index>)Retrieves a point attribute value. If attribute is a vector (e.g. position), then index specifies vector component (e.g., 0=”x”, 1=”y”, 2=”z”)
prim(<SOP path>, <point number>, <attribute name>, <index>)Same as point, but for primitives
clamp(<value>,<min>,<max>)Keeps the value within the minimum and maximum values
fit(<value>,<min>,<max>,<newmin>,<newmax>)Remaps the value from the old range to the new range and clamps it.
fit01(<value>,<newmin>,<newmax>)Just like fit() but assumes value is already in the range 0 to 1.
smooth(<value>,<min>,<max>)Outputs a smoothed value between 0 and 1 as value goes from minimum to maximum.
noise(<x>, <y>, <z>)Returns a noise value for a given position in space.
rand(<seed>)Gives a random number based on the seed value. The returned value will always be the same for a particular seed.
length(<x>, <y>, <z>)Returns the length of the vector
distance(<x1>, <y1>, <z1>,<x2>, <y2>, <z2>)Returns the distance between two points
if(<expr>, <value if true>, <value if false>)Gives a choice of two values depending on the expression evaluating to true or false
opinput(<operator path>, <input index>)Returns the path of the operator connected to the input specified by the input index.
bbox(<SOP path>, <dimension type>)Returns the required measurement of the bounding box of some geometry. “dimension type” can be one of these:D_XMIN, D_YMIN, D_ZMIN, D_XMAX, D_YMAX, D_ZMAX, D_XSIZE, D_YSIZE, D_ZSIZE
centroid(<SOP path>, <dimension type>)Returns the X, Y, or Z position of the center of the bounding box. “dimension type” can be one of these:D_X, D_Y, D_Z
pic(<COP path>, <u>, <v>, <color type>)Returns the interpolated pixel color from a compositing operator at the specified UV. “color type” can be one of these:D_CR, D_CG, D_CB, D_CA, D_CHUE, D_CSAT, D_CVAL, D_CLUM

Common Houdini Expression Local Variables

Important: The following variables are NOT available in every operator. Each operator has its own local variables, and you can find which ones in Houdini’s help documentation. The ones listed here are the ones you’ll most commonly encounter.

$PTPoint number. Used in most SOPs that manipulate points
$PRPrimitive number. Used in most SOPs that manipulate primitives
$CYUsed by the Copy SOP to identify the current copy being made. Unlessthe second Copy input is being used, in which case $PT will be used instead.
$TX, $TY, $TZPosition of a point
$NX, $NY, $NZNormal of a point/primitive
$CR, $CG, $CB, $CAColor of a point/primitive
$VX, $VY, $VZVelocity of a point
$BBX, $BBY, $BBZThe normalised (0 to 1) position of the point in the bounding box
$CEX, $CEY, $CEZCentroid of the geometry
$AGENumber of seconds a particle has been alive
$LIFENormalised age (0 to 1) of a particle
$XMIN, $XMAX, etc.Extents of the bounding box
$SIZEX, $SIZEY, $SIZEZSize of the bounding box
$TX2, $TY2, $TZ2Used to identify the position of a point coming from the second input of a Point SOP. Similarly for other attributes, e.g. Normals, $NX2, etc.

Animation Scene Mood board

Mood board key words:

  • Fun
  • Colourful
  • Experimental materials
  • 3D art
  • Lucid dream style

Aims for next week:

  • Make little illustrations to draw up scene
  • Research soft materials I want to use

Spherical Audio Test

Icosahedron – 20 sides
Frequency – 1
Pitch divisions – 20 channels

song choice – If only I could remix

I choose this song as I wanted to use it for my BLM protest flag and thought that having this moving animation to go next it would kind of be nice to link my experimentations to my other projects/tests I have done. The original song is also really lovely, and I think fits nicely with what my flag project was suppose to be proud to be asian and black not distressed from all the terrible things happening. Could be used for either though.

I split the song into 20 pitch divisions which I would assign to a face of the sphere to move outwards.

This entry was posted in Advanced Unit, Personal Project. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *