Marc-André Belzile
mabelzile
About Me
Connect
LOCATION
Not Specified
WEBSITE
Houdini Skills
Availability
Not Specified
My Badges
SideFX Staff
Since Feb 2018
Recent Forum Posts
Python Handle - init vs onActivate concepts Jan. 15, 2026, 4 p.m.
__init__() is the Python handle constructor and is called when the state is entered and the handle is created.
onActivate() is called by Houdini to initialize an existing handle, either when the state is first entered or when it is resumed.
When the state exits, onDeactivate() is called and the handle is deleted. The next time the state is entered, a new handle is created and onActivate() is called again.
Interrupting a state does not delete the handle, but still triggers onDeactivate().
onActivate() is called by Houdini to initialize an existing handle, either when the state is first entered or when it is resumed.
When the state exits, onDeactivate() is called and the handle is deleted. The next time the state is entered, a new handle is created and onActivate() is called again.
Interrupting a state does not delete the handle, but still triggers onDeactivate().
How to correctly pre-orient Python state xform handles? Jan. 5, 2026, 11:26 a.m.
coccarolla
I hope I can get an answer because I've been experimenting for a long time without any results.
I am trying to orient a python handle based on incoming geometry normals. The way I am trying to accomplish this is by extracting the position and the normal and building transforms from them in onDrawSetup. Then I am trying to multiply these with the gadgets' xform but results are not stable. Is there a proper order or place for doing this? Or am I doing something fundamentally wrong?
Could you provide a working Python handle that demonstrates the issues you are encountering?
How to switch multiple viewer states in HDA? July 30, 2025, 2:04 p.m.
Take a look at this HDA. It contains multiple nodes, each using their specific state with a script for switching states. You always need to select the proper node to enter a state, unless your state is nodeless, which I don't think is the goal here.
Image Not Found