Applications
HoudiniUnreal EngineUnity 3DNukeMayaBlenderZBrushPythonMixed RealityMachine LearningGraphic DesignExtrasAboutGeometry
Create in Context v. Object Level
For instances where the intent is to add new geometry to an existing object, enable Tool Options
> Create in Context
. By default, this is set to Create at Object Level
, which creates new objects for each new geometry added via the Scene View
.
Enable Object Pivot Transform
Enable object pivot transform (INS
) which allows pivot to be transformed independently of object.
Snap Object To Object
Snap object to other object face/point using semicolon (;
).
Split Line Into Separate Prims
Using a PolyCut
SOP, set the following parameters:
Strategy
:Cut
Cut Points
:*
(split at all pts)
Fuse Polylines
There are a probably a few different ways to approach this and may vary on the specific conditions, but here are some strategies I've used.
For superimposed polylines by themselves, I basically merge the lines, isolate the points, and then rebuild the polyline. To keep all of the merged points sorted along the line, Edge Transport can generate a point attribute that maps its location consistently.
For geometry with coincident edges, I've used Poly Bridge to have it build the geometry to reconcile the differences in the point locations between 2 different edges.
Edge Divide w Fuse to essentially build the matching points to fuse them together.
Hip File
Ray Onto Surface With Gaps
Stabilize Scattered Points on Deforming Geo
Enable the Prim Num
and Prim UVW Attributes
on the Scatter
SOP to allow the Attribute Interpolate
to match the moving scattered points to their corresponding position on the deforming geometry.
Source: https://www.sidefx.com/docs/houdini/nodes/sop/scatter.html#stick
UV Layout To Attribute From Map On Box
The following uses a UV Unwrap
followed by a UV Layout
node (with Stack Identical Islands
enabled) before the Attribute From Map
. For a cube, it should stack all the sides on top of each other so they share the same texture.
Separate Polygons
Facet SOP
> Unique Points
Delete Random Prims
One strategy is to use a Group Expression
and trying out the available options in the VEXpression
field drop-down menu, like the 30% chance
option.
An enhancement would be to input the following into the VEXpression
field and add the channel sliders to interactively modify the group and random seed.
rand(@elemnum + chf("seed")) < chf("percentage")
Blend Shape Using Packed Geo
In the Blend Shapes
, enable Treat Packed Primitives as Shapes
.
Applying a weight (primitive float) attribute to each packed geo and a point id (point integer) attribute allows for multiple packed primitives to be managed through a blend shape.
Preserve Group With Animated Bounding Object
Implement a Group Create
within a Solver
and set the Initial Merge
parameter of the Group Create
to Union with Existing
as it reads in the updated geometry from the previous frame and an animated bounding object from Input 2
.
Noise Types
Simplex Noise
Very fast processing.
Anti Alias Flow Noise
Generates noise with a swirly effect.
Unified Noise
Equipped with a fractal setting.
Parameters
Frequency: Used to change size of noise across geometry.
Amplitude: Affects the contrast of the noise.
Roughness: Refines detail and features of the noise pattern.
Simulations
Visualizations
Multiple Flipbooks In MPlay
The following process is to have multiple flipbooks shown in MPlay for comparisons.
Select the following: View
> Layout
> 2 Columns
Disable the following: View
> Layout
> Hide Blank Viewports
It is enabled by default. But it needs to be disabled to allow for a blank viewports to appear.
Once the blank viewport is visible, click on it and the green outline around it notifies that it is the active viewport and ready for a new flipbook to be processed in that specific viewport.
Processing Optimization
Viscosity
Caution: Enabling this property utilizes the CPU heavily.
OpenCL Optimization
Enable Use OpenCL
option when available to capitalize on GPU. This can be found in nodes like the Pyro Solver
and in its Advanced
tab.
Particles
Pscale Visualization
Enable point clarity in Scene View with disc representations. These help to visualize attributes such as @Cd
and @pscale
much clearer than the default points or pixels.
Volumes
Bounding Box Visibility
In Scene View
panel, set visibility to Smooth Shaded
.
Visualize Volume
The following can visualize a volume's field/s:
Volume Slice
- Set the
Attribute
parameter to the attribute in the volume intended to be visualized. - This creates a plane through the volume and expresses the data on the plane using the defined
Visualization Ramp
setting.
Volume Trail
- Disable the
Detect Range
option and adjust theMaximum
parameter to hone in on the min/max range to the specific data in the volume.
Rename/Duplicate Volume
Since a volume is categorized as a primitive, the Name
SOP can be used to rename or duplicate an existing volume.
Heightfield
Extrude via Height Map @Cd
Extrude using height map @Cd prim attribute as extrusion scale.
Dynamics
Accessing Dynamics Data
Dynamics data from a DOPnet can be referenced, but uses the following syntax to access the data within the dynamics object. The colon (:) is used to separate the network path from the object and data located within. For example, accessing the Geometry data within an RBD Packed Object would be denoted as:
network path:rbdpackedobject/Geometry
Resources:
Vellum
Parameters
Stiffness
The lower the number, the more it stretches before it returns to the rest length.
Crowds
Case Study: Crowd Simulation for Social Distancing Planning
As an architect, I've explored a few tools used in the industry for crowd simulation and studies, and have noticed their use recently for designing spaces and managing facilities, specifically regarding social distancing due to the Covid-19 pandemic. So in my continuing exploration of Houdini, this is a quick test of its crowd simulation tools as a potential strategy in addressing the social distancing planning in lieu of other industry tools for these types of planning studies.
This quick test setup includes individuals walking through a walkway like that of an airport or mall with obstacles like kiosks which are to be navigated around. The crowd agents' points are used as a point cloud to define proximity and trigger a color change when any 2 or more individuals reach a threshold distance (such as 6 feet) between or among them. The changing color gradient on the floor follows the dynamic crowd agents as they navigate the walkway and obstacles. The gradient aims to highlight potential proximity densities as individuals start to get too close to each other and the color intensifies to red as areas of density form and increase. At the same time, the gradient also showcases areas along the walkway where the placement of the obstacles may be the cause of individuals moving into dense crowds, which could then be used in the planning and positioning of such obstacles to mitigate high density crowds.
This has shown me the potential of Houdini's crowd simulation tools for strategic designing and planning of architecture projects of all sorts, including airports, stadiums, which I aim to continue exploring with test BIM data. And it is yet another instance in which Houdini has shown itself to be quite a versatile tool.
TOP
Case Study: Contact Sheets With TOPs and PDG
Using TOPs and PDG within Houdini, numerous iterations can be generated for evaluating design concepts specifically for architectural design applications. Ultimately, the output of contact sheets with these iterations can help a design team evaluate ideas without having to process and render each individually after each parameter value change.
Source
Test & Analysis
Source:
On This Page
- Geometry
- Create in Context v. Object Level
- Enable Object Pivot Transform
- Snap Object To Object
- Split Line Into Separate Prims
- Fuse Polylines
- Ray Onto Surface With Gaps
- Stabilize Scattered Points on Deforming Geo
- UV Layout To Attribute From Map On Box
- Separate Polygons
- Delete Random Prims
- Blend Shape Using Packed Geo
- Preserve Group With Animated Bounding Object
- Noise Types
- Simplex Noise
- Anti Alias Flow Noise
- Unified Noise
- Parameters
- Simulations
- Visualizations
- Multiple Flipbooks In MPlay
- Processing Optimization
- Viscosity
- OpenCL Optimization
- Particles
- Pscale Visualization
- Volumes
- Bounding Box Visibility
- Visualize Volume
- Rename/Duplicate Volume
- Heightfield
- Extrude via Height Map @Cd
- Dynamics
- Accessing Dynamics Data
- Vellum
- Parameters
- Stiffness
- Crowds
- Case Study: Crowd Simulation for Social Distancing Planning
- TOP
- Case Study: Contact Sheets With TOPs and PDG
- Source
- Test & Analysis