Skip to content

Instantly share code, notes, and snippets.

@iinfin
Last active March 12, 2024 09:20
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iinfin/2caf4e2ccb2545477670e88ddacee1e2 to your computer and use it in GitHub Desktop.
Save iinfin/2caf4e2ccb2545477670e88ddacee1e2 to your computer and use it in GitHub Desktop.
houdini attributes cheatsheet

https://mrkunz.com/blog/08_22_2018_VEX_Wrangle_Cheat_Sheet.html

f@Frame The current floating frame number, equivalent to the $FF Hscript variable
f@Time The current time in seconds, equivalent to the $T Hscript variable
i@SimFrame The integer simulation timestep number ($SF), only present in DOP contexts
f@SimTime The simulation time in seconds ($ST), only present in DOP contexts
f@TimeInc The timestep currently being used for simulation or playback
- -
Attribute Wrangle
v@P The position of the current element
i@ptnum The point number attached to the currently processed element
i@vtxnum The linear number of the currently processed vertex
i@primnum The primitive number attached to the currently processed element
i@elemnum The index number of the currently processed element
i@numpt The total number of points in the geometry
i@numvtx The number of vertices in the primitive of the currently processed element
i@numprim The total number of primitives in the geometry
i@numelem The total number of elements being processed
- -
Volume Wrangle
v@P The position of the current voxel
f@density The value of the density field at the current voxel location
v@center The center of the current volume
v@dPdx, v@dPdy, v@dPdz These vectors store the change in P that occurs in the x, y, and z voxel indices
i@ix, i@iy, i@iz Voxel indices For dense volumes (non-VDB) these range from 0 to resolution-1
i@resx, i@resy, i@resz The resolution of the current volume
- -
Common Geometry Attributes
i@id A unique indexing number that remains the same throughout time Used to match elements between frames
f@pscale Particle radius size Uniform scale Set display particles as 'Discs' to visualize
f@width Thickness of curves Enable 'Shade Open Curves In Viewport' on the object node to visualize
f@Alpha Alpha transparency override The viewport uses this to set the alpha of OpenGL geometry
f@Pw Spline weight Mostly depreciated at this point
v@P Point position Used this to lay out points in 3D space
v@Cd Diffuse color override The viewport uses this to color OpenGL geometry
v@N Surface or curve normal Houdini will compute the normal if this attribute does not exist
v@scale Vector scale Allows directional scaling or stretching (in one direction)
v@rest Used by procedural patterns and textures to stick on deforming and animated surfaces
v@up Up vector The up direction for local space, typically (0, 1, 0)
v@uv UV texture coordinates for this point/vertex
v@v Point velocity The direction and speed of movement in units per second
p@orient The local orientation of the point (represented as a quaternion)
p@rot Additional rotation to be applied after orient, N, and up attributes
s@name A unique name identifying which primitives belong to which piece Also used to label volumes
s@instance Path of an object node to be instanced at render time
- -
DOP Particle Attributes
f@age Time in seconds since the particle was born
f@life Time in seconds the particle is allowed to live When f@age>f@life, i@dead will be set to 1
f@nage Normalized age, f@age divided by f@life Implicit attribute, you cannot write to this
i@dead Whether a particle is living (0) or dead (1) A dead particle is deleted in the Reaping stage
i@id A unique id for the particle that remains the same throughout a single simulation
i@stopped Whether a particle is moving (0) or stopped (1)
i@stuck Whether a particle is free (0) or stuck (1)
i@sliding Whether a particle is free (0) or sliding along a surface (1)
f@cling Force applied to sliding paritcles inwards (according to the collision's surface normal)
s@pospath The path to the object that the particle is colliding with
i@posprim Which collision primitive in the path geometry whose position we wish to refer to
v@posuv Parametric uv on the collision primitive
i@hittotal The cumulative total of all hits for the particle (only incremented once per timestep)
i@has_pprevious This is set to 1 if v@pprevious contains valid values
v@pprevious Stores the position of the particle on the previous frame Used for collision detection
i@hitnum The number of times the particle collided in the last POP Collision Detect
s@hitpath The path to the object that was hit A path to a file on disk or an op: path
i@hitprim The primitive hit Could be -1 if it the collision detector couldn’t figure out which prim
v@hituv The parametric UV space on the primitive
v@hitpos Where the hit actually occurred Useful if the colliding object was moving
v@hitnml The normal of the surface at the time of the collision
v@hitv The velocity of the surface at the time of the collision
f@hittime When the collision occurred, that could be within a frame
f@hitimpulse Records how much of an impulse was needed for the collision resolution varies with timestep
f@bounce When particles bounce off another object, this controls how much energy they keep
f@bounceforward Controls how much energy they keep in the tangential direction
f@friction When particles bounce, they are slowed down proportional to how hard they hit
s@collisionignore Objects that match this pattern will not be collided
f@force Forces on the particle for this frame
f@mass Inertia of the particle
v@spinshape This is multiplied by f@pscale to determine the shape of the particle for rotational inertia
f@drag How much the particle is effected by any wind effects
f@dragexp Ranges from 1 to 2, default is set on the solver Used for both angular and linear drag
v@dragshape How much the particle is dragged in each of its local axes
v@dragcenter If specified, drag forces will also generate torques on the particle
v@targetv The local wind speed Thought of as the goal, or target, velocity for the particle
f@airresist How important it is to match the wind speed Thickness of the air
f@speedmin Minumum speed, in units per second, that a particle can move
f@speedmax Maximum speed, in units per second, that a particle can move
p@orient Orientation of the particle Used for figuring out 'local' forces
v@w Angular speed of the particle A vector giving the rotation axis
v@torque The equivalent of force for spins No inertial tensor (the equivalent of mass) is supported
v@targetw The goal spin direction and speed for this particle
f@spinresist How important it is to match the targetw
f@spinmin Minumum speed in radians per second that a particle can spin
f@spinmax Maximum speed in radians per second that a particle can spin
- -
DOP Grains Attributes
i@ispbd A value of 1 causes the particle to behave as grains
f@pscale Used to determine the radius of each particle
f@repulsionweight How much the particle collision forces are weighted
f@repulsionstiffness How strongly particles are kept apart Higher values result in less bouncy repulsion
f@attractionweight How much the particles will naturally stick together when close
f@attractionstiffness How strongly nearby particles stick to each other
v@targetP Particles are constrained to this location
f@targetweight The weight of the v@targetP constraints
f@targetstiffness The stiffness with which particles are fixed to their v@targetP attribute
f@restlength Particles connected by polylines will be forced to maintain this distance (prim attribute)
f@constraintweight Scale, on a per-particle basis of the constraint force
f@constraintstiffness This controls the stiffness on a per-particle basis
f@strain This primitive attribute records how much the constraint is stretched
f@strength If f@strain exceeds this primitive attribute, the constraint will be removed
- -
DOP Packed RBD Attributes
i@active Specifies whether the object is able to react to other objects
i@animated Specifies whether the transform should be updated from its SOP geometry at each timestep
i@deforming Specifies whether the collision shape should be rebuilt from its SOP geometry each timestep
f@bounce The elasticity of the object
i@bullet_add_impact Impacts that occur during the sim will be recorded in the Impacts or Feedback data
i@bullet_ignore Specifies whether the object should be completely ignored by the Bullet solver
f@bullet_angular_sleep_threshold The sleeping threshold for the object’s angular velocity
f@bullet_linear_sleep_threshold The sleeping threshold for the object’s linear velocity
i@bullet_want_deactivate Disables simulation of a non-moving object until the object moves again
i@computecom Specifies whether the center of mass should be computed from the collision shape
i@computemass Specifies whether the mass should be computedfrom the collision shape and density
f@creationtime Stores the simulation time at which the object was created
i@dead Specifies whether the object should be deleted during the next solve
f@density The mass of an object is its volume times its density
f@friction The coefficient of friction of the object
f@inertialtensorstiffness Rotational stiffness A scale factor applied to the inertial tensor
i@inheritvelocity v and w point attributes from the SOP geometry will override the initial velocity
f@mass The mass of the object
s@name A unique name for the object Used by Constraint Networks
p@orient The orientation of the object
v@P The current position of the object’s center of mass
v@pivot The pivot that the orientation applies to If i@computecom is non-zero, this is auto-computed
v@v Linear velocity of the object
v@w Angular velocity of the object, in radians per second
i@bullet_adjust_geometry Shrinks the collision geometry
i@bullet_autofit Use the bounds of the object for Box, Capsule, Cylinder, Sphere, or Plane
f@bullet_collision_margin Padding distance between collision shapes
s@bullet_georep Can be convexhull, concave, box, capsule, cylinder, compound, sphere, or plane
i@bullet_groupconnected Create convex hull per set of connected primitives
f@bullet_length The length of the Capsule or Cylinder collision shape in the Y direction
v@bullet_primR Orientation of the Box, Capsule, Cylinder, or Plane collision shape
v@bullet_primS Size of the Box collision shape
v@bullet_primT Position of the Box, Sphere, Capsule, Cylinder, or Plane collision shape
f@bullet_radius Radius of the Sphere, Capsule, or Cylinder collision shape
f@bullet_shrink_amount Specifies the amount of resizing done by Shrink Collision Geometry
s@activationignore Won't be activated by collisions with any objects that match this pattern
s@collisiongroup Specifies the name of a collision group that this object belongs to
s@collisionignore The object will not collide against any objects that match this pattern
f@min_activation_impulse Minimum impulse that will cause the object to switch from inactive to active
f@speedmin Minumum speed, in units per second, that a particle can move
f@speedmax Maximum speed, in units per second, that a particle can move
f@spinmin Minumum speed in radians per second that a particle can spin
f@spinmax Maximum speed in radians per second that a particle can spin
f@accelmax Limits the change in the object’s speed that is caused by enforcing constraints
f@angaccelmax Limits the change in the object’s angular speed that is caused by enforcing constraints
f@airresist Specifies how important it is to match the target velocity (v@targetv)
f@drag How much the the v@targetv and f@airresist attributes effect the object
f@dragexp Ranges from 1 to 2, default is set on the solver Used for both angular and linear drag
v@force Specifies a force that will be applied to the center of mass of the object
f@spinresist Specifies how important it is to match the target angular velocity (v@targetw)
v@targetv Target velocity for the object Used in combination with the f@airresist attribute
v@targetw Target angular velocity for the object Used in combination with the f@spinresist attribute
v@torque Specifies a torque that will be applied to the object
i@bullet_autofit_valid Stores whether the solver has already computed collision shape attributes
i@bullet_sleeping Tracks whether the object has been put to sleep by the solver
f@deactivation_time Amount of time the speed has been below the Linear Threshold or Angular Threshold
i@found_overlap Used by the solver to determine whether it has performed the overlap test
i@id A unique identifier for the object
i@nextid Stores the i@id the solver will assign to the next new object
- -
DOP Constraint Network Attributes
f@width Width of each edge
f@density Density of each point
p@orient Initial orientation of each point This value is stored as a quaternion
v@v Initial velocity of each point
v@w Initial angular velocity of each point measured in radians per second
f@friction Friction of each point
f@klinear Defines how strongly the wire resists stretching
f@damplinear Defines how strongly the wire resists oscillation due to stretching forces
f@kangular Defines how strongly the wire resists bending
f@dampangular Defines how strongly the wire resists oscillation due to bending forces
f@targetstiffness Defines how strongly the wire resists deforming from the animated position
f@targetdamping Defines how strongly the wire resists oscillation due to stretch forces
f@normaldrag The component of drag in the directions normal to the wire
f@tangentdrag The component of drag in the direction tangent to the wire
i@nocollide Collision detection for the edge is disabled (Only used if Collision Handling is SDF)
v@restP Rest position of each point
p@restorient Rest orientation of each point
i@gluetoanimation Causes a point’s position and orientation to be constrained to the input geometry
i@pintoanimation Causes a point’s position to be constrained to the input geometry
v@animationP Target position of each point
p@animationorient Target orientation of each point
v@animationv Target velocity of each point
v@animationw Target angular velocity of each point
i@independentcollisionallowed Toggle external collisions (Only non-SDF Geometric Collision)
i@independentcollisionresolved Unresolved external collisions (Only non-SDF Geometric Collision)
i@codependentcollisionallowed Toggle soft body collisions (Only non-SDF Geometric Collision)
i@codependentcollisionresolved Unresolved toggle soft body collisions (Only non-SDF Geometric Collision)
i@selfcollisionallowed Toggle self collisions (Only non-SDF Geometric Collision)
i@selfcollisionresolved Unresolved toggle self collisions (Only non-SDF Geometric Collision)
- -
DOP FLIP Attributes
f@pscale Particle scale
v@v Particle velocity
f@viscosity The "thickness" of a fluid
f@density The mass per unit volume
f@temperature The temperature of the fluid
f@vorticity Measures the amount of circulation in the fluid
f@divergence Positive values cause particles to spread out, negative cause them to clump together
v@rest Used to track the position of the fluid over time
v@rest2 Used for blending dual rest attributes, avoids stretching
f@droplet Identifies particles that separate from the main body of fluid
f@underresolved Particles that haven't fully resolved on the grid
i@ballistic Specifies particles which will be ignored by the fluid solve
v@Lx Angular momentum X axis
v@Ly Angular momentum Y axis
v@Lz Angular momentum Z axis
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment