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 March 4, 2026, 8:31 a.m.
Houdini deletes handles automatically when the state exits, so this is handled for you. `onDeactivate()` can be used if you need to perform additional cleanup or manage handle settings, etc.
I
I
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?