Seems like I'm always using the Labs Attribute Normalize node in my HDAs, but I'm not really fond of the idea of releasing them with a dependency on an external package, like the Labs Toolset in this case.
Does anyone else run into this?
Also, I'm curious which Labs Tools you guys think should make it into the main app?
cheers
Found 899 posts.
Search results Show results as topic list.
Houdini Lounge » Should some Labs Tools transition faster to Houdini?
-
- Andr
- 899 posts
- Offline
H20 Tech Art Challenge » Congratulations
-
- Andr
- 899 posts
- Offline
Congratulations to all the entrants! I've noticed many little gems being shared with the community
H20 Tech Art Challenge » Best Houdini Utility Entries
-
- Andr
- 899 posts
- Offline
UPDATE: Last-Minute Bug Alert, please check the footnote at the end
AUTO FIX INTERSECTIONS HDA
This node identifies self-intersecting areas in a geometry or a set of UVs, selectively applying a blur operation only to the problematic primitives to preserve the overall shape.
HOW IT WORKS:
The process operates iteratively within a feedback loop. If an iteration results in no improvement, the next one increases the blur intensity and expands the blurred area around the intersections, all based on user-defined parameters.
NOTABLE FEATURES:
DEPENDENCIES:
------------------------------------------------
Important Note: Last-Minute Bug Alert
Users of Hou 20.0.547 on Windows 11, please be aware of a potential issue when directly opening 'autofix_intersections_examples.hiplc' or any other project files containing the AutoFix Intersections HDA. You may encounter the following error, which results in the HDA loading without any parameters:
"oplib:/adn.H20TAC::Sop/auto_fix_intersections::0.03?adn.H20TAC::Sop/auto_fix_intersections::0.03 Error(11): error binding handle sidefx_hud_button because it doesn't exist."
WORKAROUND:
To avoid this problem, first launch a blank Houdini session. Then, open 'autofix_intersections_examples.hiplc' from the File Menu.
This method should allow you to use the HDA without encountering the error.
AUTO FIX INTERSECTIONS HDA
This node identifies self-intersecting areas in a geometry or a set of UVs, selectively applying a blur operation only to the problematic primitives to preserve the overall shape.
HOW IT WORKS:
The process operates iteratively within a feedback loop. If an iteration results in no improvement, the next one increases the blur intensity and expands the blurred area around the intersections, all based on user-defined parameters.
NOTABLE FEATURES:
- Faster Detection Mode: Offers a multithreaded and approximate approach for detecting intersections.
- Progressive Workflow with Custom Iteration Caching: A time saving feature, enhances the traditional Feedback Loop system in Houdini.
- Dynamic Report and UI: As depicted in the attached image, it provides visual feedback throughout the progressive workflow.
- Various Intersection Visualization Modes: Assists in identifying in the viewport even the smallest self-intersecting primitives.
DEPENDENCIES:
- Xpolys Fast Detection HDA - included in the zip file. Ensure its installation alongside the main HDA.
- SideFX Labs Attribute Normalize Float
------------------------------------------------
Important Note: Last-Minute Bug Alert
Users of Hou 20.0.547 on Windows 11, please be aware of a potential issue when directly opening 'autofix_intersections_examples.hiplc' or any other project files containing the AutoFix Intersections HDA. You may encounter the following error, which results in the HDA loading without any parameters:
"oplib:/adn.H20TAC::Sop/auto_fix_intersections::0.03?adn.H20TAC::Sop/auto_fix_intersections::0.03 Error(11): error binding handle sidefx_hud_button because it doesn't exist."
WORKAROUND:
To avoid this problem, first launch a blank Houdini session. Then, open 'autofix_intersections_examples.hiplc' from the File Menu.
This method should allow you to use the HDA without encountering the error.
Houdini Learning Materials » Houdini Shorts
-
- Andr
- 899 posts
- Offline
animatrix_
I'm not quite clear on this. Are you recommending splitting complex code into multiple wrangles for performance or readability?
Regarding performance: Splitting a block of code into multiple wrangles forces you to save data to attributes, which are then read by the following wrangle. Doesn't this approach cause overhead compared to keeping all data in memory in a single wrangle?
Houdini Indie and Apprentice » Bug Fix Notification
-
- Andr
- 899 posts
- Offline
jsmackTheNotepadShow
Hey All,
After a bug has been submitted, verified, logged to be fixed. Are we notified via email when it has made it into a daily/production build?
Thanks,
Todd
I think you have to have bug db access to get messages about updates to tickets.
I don't have access to the DB, but sometimes I receive email from SESI Support, even after years since the initial bug report, to notify me about the bug being finally fixed.
I don't feel it's an automatic process however.
Houdini Lounge » Why do multiparms waste so much screen space? Why so wide?
-
- Andr
- 899 posts
- Offline
A couple of tricks to reclaim some precious space in the parameter panel:
1) Nest the multiparm folder inside another folder. Set the multiparm folder to hidden. This way you get rid of the buttons for adding and clearing each instance.
2) If you need to force all way to the left any parameter, just insert a dummy parameter before (I usually use a label parm), set it to invisible and join it horizontally to the next parameter you want to move to the left.
1) Nest the multiparm folder inside another folder. Set the multiparm folder to hidden. This way you get rid of the buttons for adding and clearing each instance.
2) If you need to force all way to the left any parameter, just insert a dummy parameter before (I usually use a label parm), set it to invisible and join it horizontally to the next parameter you want to move to the left.
Houdini Engine for Unreal » PCG wrapper around a houdini HDA
-
- Andr
- 899 posts
- Offline
Technical Discussion » Any way to refactor this code? [ dynamic casting point() ]
-
- Andr
- 899 posts
- Offline
I made a Vex function that takes any float, vector2, vector, and vector4 attribute and unroll the value of each component into an array.
For example:
Here it's my attempt, with a messy but working function, and another simpler but not working function.
Do you have any idea how to refactor this code?
(I attach also the .hip file for your convenience)
For example:
if u@attrib1 = {0.1, 0.4}, the resulting array should be [0.1, 0.4]
Here it's my attempt, with a messy but working function, and another simpler but not working function.
Do you have any idea how to refactor this code?
(I attach also the .hip file for your convenience)
void unroll_OK(int ptnum; int attrib_size; string attrib_name; float attrib_values[]) { if (attrib_size == 1) { // Single float value attrib_values[0] = point(0, attrib_name, ptnum); } else if (attrib_size == 2) { // Vector2 value vector2 val = point(0, attrib_name, ptnum); for (int i = 0; i < attrib_size; i++) { attrib_values[i] = val[i]; } } else if (attrib_size == 3) { // Vector value vector val = point(0, attrib_name, ptnum); for (int i = 0; i < attrib_size; i++) { attrib_values[i] = val[i]; } } else if (attrib_size == 4) { // Vector4 value vector4 val = point(0, attrib_name, ptnum); for (int i = 0; i < attrib_size; i++) { attrib_values[i] = val[i]; } } } // Simpler, but not working void unroll_badRefactor(int ptnum; int attrib_size; string attrib_name; float attrib_values[]) { // Use the largest vector type (vector4) and then extract the needed components vector4 val = point(0, attrib_name, ptnum); // I don't know how to dynamically cast the attrib to its the correct data type for (int i = 0; i < attrib_size; i++) { attrib_values[i] = val[i]; } } string attrib_name = "attrib1"; int attrib_size = attribsize(0, "point", attrib_name); float unroll_OK[]; unroll_OK(@ptnum, attrib_size, attrib_name, unroll_OK); f[]@unroll_OK = unroll_OK; float unroll_badRefactor[]; unroll_badRefactor(@ptnum, attrib_size, attrib_name, unroll_badRefactor); f[]@unroll_badRefactor = unroll_badRefactor;
Edited by Andr - Dec. 1, 2023 21:59:08
Houdini Engine for Unreal » Creating a Blueprint Actor With a Houdini Generated Mesh
-
- Andr
- 899 posts
- Offline
Have you found a way to this eventually?
I also need to spawn an already existing blueprint and assign the baked mesh from Houdini to a static mesh component of the blueprint.
I also need to spawn an already existing blueprint and assign the baked mesh from Houdini to a static mesh component of the blueprint.
- I see that you can actually bake the digital asset to Blueprint instead of actor, but that simply creates a new blueprint from scratch. I don't see anywhere that you can specify an existing blueprint to bake to.
- Also, there is the HoudiniAssetBlueprint component that could potentially help, but I'm not having any luck, it just cook once, but doesn't let you manually recook or rebuild the asset.
Also it seems unreasonably slow compared to just using the digital asset. And
very very prone to crash Unreal.
Technical Discussion » ViewerHandleInstall error message : know of any fixes?
-
- Andr
- 899 posts
- Offline
Jonathan de Blok
Went down the same rabbit hole.. fix is simple
If you go to you're HDA's type properties -> Interactive -> State Script tab you need to press the 'clear' button in the bottom right part uit the dialog. Else you'll have a state without code. I fell in this trap when I simply ctrl-a deleted some stateviewer code I was experimenting with instead of using the that clear button.
Before you do that, right click on your HDA node and check on 'edit extra section source code', you'll see some state related files that cause the error, after using the clear button those files should be gone.
And you'll first need to add/remove a new state and handle script. Just press the 'new' button and create something, save the HDA and then press the 'clear' button in both tabs. That should clean it up properly.
omg thanks, it was annoying me so much.
Technical Discussion » How to identify Factory Nodes shipped with Houdini?
-
- Andr
- 899 posts
- Offline
Is there a Python method in Houdini to determine whether a node is built-in or external, such as a SideFX LABS tool, a custom HDA, or from another external toolset?
This information is crucial for communicating the required dependencies when releasing a digital asset to the public.
This information is crucial for communicating the required dependencies when releasing a digital asset to the public.
Houdini Lounge » Houdini 20 - Stability
-
- Andr
- 899 posts
- Offline
HelliIf you fill a bug report you make sure the devs actually read about your issue and you will be usually updated when they fix it.
Thought I mention it in case some houdini devs read it.
You might also receive some valuable information from the Support Staff (example: the issue is already addressed in the last production build)
https://www.sidefx.com/bugs/submit/ [www.sidefx.com]
Houdini Indie and Apprentice » Open CL Snippets (search for examples)
-
- Andr
- 899 posts
- Offline
As far as I understand (correct me if I'm wrong) the issue with this OpenCL Sop is that it's missing all the super useful vex functions and you have to implement the logic from scratch, which might be daunting.
Edited by Andr - Nov. 11, 2023 09:07:08
Houdini Lounge » How to convert my HDA/subnet to a verb?
-
- Andr
- 899 posts
- Offline
this might help you
https://www.sidefx.com/forum/topic/92093/ [www.sidefx.com]
(last post has an example file)
https://www.sidefx.com/forum/topic/92093/ [www.sidefx.com]
(last post has an example file)
Technical Discussion » Timeline Markers in Houdini
-
- Andr
- 899 posts
- Offline
What does "next month" mean?
I'm confused now, I thought hou20 was to be released in Nov..
I'm confused now, I thought hou20 was to be released in Nov..
Technical Discussion » Automatically frame object within a camera at an exact size?
-
- Andr
- 899 posts
- Offline
You could use the Match Size SOP to scale each object to the 0-1 range. Afterwards, manually adjust the camera to get the object's desired resolution. It might require some trial and error, but you should do it only once.
Or with an orthographic camera, set the orthowidth parameter for framing. Its value indicates the camera view size.
For instance, with an orthowidth of 2 and a camera resolution of 2000, you should adjust your object's size to 1.6 to achieve a width of 1600 pixels in the render.
Or with an orthographic camera, set the orthowidth parameter for framing. Its value indicates the camera view size.
For instance, with an orthowidth of 2 and a camera resolution of 2000, you should adjust your object's size to 1.6 to achieve a width of 1600 pixels in the render.
Edited by Andr - Oct. 31, 2023 06:04:11
Houdini Lounge » H20 question - to what degree is Vulkan viewport usable?
-
- Andr
- 899 posts
- Offline
Is Vulkan viewport more performant in visualizing string attributes?
The current GL viewport is exceptionally slow.
I made an example file
The current GL viewport is exceptionally slow.
I made an example file
Technical Discussion » Decoupling Scatter Density with Input Geo
-
- Andr
- 899 posts
- Offline
I assume that the point cloud should match the size of the base geometry?
In which case, why don't you scatter from the Point Cloud itself?
Similarly to what Kushdas proposed, you can use Point Generate Sop at your advantage, to generate points from the PC, based on a density attribute.
Then you have to jitter them around a bit because the new points are generated at PC positions.
And finally relax them.
In which case, why don't you scatter from the Point Cloud itself?
Similarly to what Kushdas proposed, you can use Point Generate Sop at your advantage, to generate points from the PC, based on a density attribute.
Then you have to jitter them around a bit because the new points are generated at PC positions.
And finally relax them.
Edited by Andr - Oct. 28, 2023 06:58:14
Technical Discussion » Locking and Unlocking Nodes with Python
-
- Andr
- 899 posts
- Offline
Houdini Lounge » Houdini 20 will be unveiled (not released) on October 26
-
- Andr
- 899 posts
- Offline
They are literally one the few (the only one, mb?) companies in the field making a "live" event to introduce a new release.
I wouldn't call it bad PR.
I wouldn't call it bad PR.

Edited by Andr - Oct. 26, 2023 17:12:30
-
- Quick Links