Hello,
What is the best way to edit the Base.rig graph directly, but also non-destructively? If I have a autorig component, I can plug an apex graph node into the auto rig component's second input, the set the component source to "use second input". From there, I can procedurally use the extract character graph/update character graph to make changes to the Base.rig graph. This is great for procedural edits, but a very tedious way to work. I want to directly edit the Base.rig since my rig is fairly small and it's faster to work that way (in this scenario).
The direct way of editing the Base.rig graph is to use unpack folder, unpack the Base.rig and use that as the input to a apex graph node. The issue is that the apex graph node stashes the input, so it feels like it is destructive. If I make any changes before the graph sop the only option (I see)to fetch the new results is to hit reset, which loses my edits. Is there a better way to directly edit the Base.rig graph without stashing the input graph, or is that not possible?
Thanks
Directly Editing Graphs non-destructively in APEX
376 5 1-
- evanrudefx
- Member
- 293 posts
- Joined: 2月 2016
- Offline
-
- raincole
- Member
- 728 posts
- Joined: 8月 2019
- Offline
Edit Graph has to stash the input. I don't think it even stores 'diff'.
To diff two arbitrary graphs is actually a very difficult problem to solve in computer science. One simple implementation might be just assuming that the nodes with the same id are the same one, like how Houdini usually treats meshes. That would handle some very limited scenarios. But I don't think Edit Graph has this feature, so unless SideFX decides to add that you'll have to write your own diff algorithm...
If your edit is rather trivial, I think LLM should be able to translate the edit into an APEX script for you so you can just go the procedural route. I haven't tried that though.
To diff two arbitrary graphs is actually a very difficult problem to solve in computer science. One simple implementation might be just assuming that the nodes with the same id are the same one, like how Houdini usually treats meshes. That would handle some very limited scenarios. But I don't think Edit Graph has this feature, so unless SideFX decides to add that you'll have to write your own diff algorithm...
If your edit is rather trivial, I think LLM should be able to translate the edit into an APEX script for you so you can just go the procedural route. I haven't tried that though.
Edited by raincole - 2026年6月23日 03:23:34
-
- evanrudefx
- Member
- 293 posts
- Joined: 2月 2016
- Offline
raincole
Edit Graph has to stash the input. I don't think it even stores 'diff'.
To diff two arbitrary graphs is actually a very difficult problem to solve in computer science. One simple implementation might be just assuming that the nodes with the same id are the same one, like how Houdini usually treats meshes. That would handle some very limited scenarios. But I don't think Edit Graph has this feature, so unless SideFX decides to add that you'll have to write your own diff algorithm...
If your edit is rather trivial, I think LLM should be able to translate the edit into an APEX script for you so you can just go the procedural route. I haven't tried that though.
Thanks. I don't understand the technical aspects of how they work, just trying to see if there is a better/faster way to work. It takes a lot of effort to perform basic tasks when going the component script route. For example, to multiply three floats,the simple task of connecting 3 float nodes into a multiply node becomes multiple graph add nodes, find ports, graph connect inputs, etc. After performing a few simple tasks I have already an insanely large network, I was just wondering if there was a better way to directly edit the graph because it can be way faster to prototype/test things or even build all the rig logic that method.
Thanks,
Evan
Evan
-
- esttri
- スタッフ
- 137 posts
- Joined: 5月 2021
- Offline
You can use the fuse graph workflow this is designed exactly for that. It allows manual graphs edits that then get procedurally fused into the main rig graph.
Go to the Fuse Graph Section in this Tutorial section here:
https://www.sidefx.com/tutorials/intro-to-rig-builder/ [www.sidefx.com]
And here is also a walk through from the docs:
https://www.sidefx.com/docs/houdini/character/kinefx/customrigs.html [www.sidefx.com]
Go to the Fuse Graph Section in this Tutorial section here:
https://www.sidefx.com/tutorials/intro-to-rig-builder/ [www.sidefx.com]
And here is also a walk through from the docs:
https://www.sidefx.com/docs/houdini/character/kinefx/customrigs.html [www.sidefx.com]
-
- evanrudefx
- Member
- 293 posts
- Joined: 2月 2016
- Offline
esttri
You can use the fuse graph workflow this is designed exactly for that. It allows manual graphs edits that then get procedurally fused into the main rig graph.
Go to the Fuse Graph Section in this Tutorial section here:
https://www.sidefx.com/tutorials/intro-to-rig-builder/ [www.sidefx.com]
And here is also a walk through from the docs:
https://www.sidefx.com/docs/houdini/character/kinefx/customrigs.html [www.sidefx.com]
Thanks, this is exactly what I was missing. BTW great presentation for h22! all the new APEX stuff looks amazing.
Thanks,
Evan
Evan
-
- evanrudefx
- Member
- 293 posts
- Joined: 2月 2016
- Offline
esttri
You can use the fuse graph workflow this is designed exactly for that. It allows manual graphs edits that then get procedurally fused into the main rig graph.
I took a look at it. I don't think this avoids the issue I was referring to. The issue I had was the apex graph node stashes the input graph, so it doesn't get any changes made to the incoming graph. The docs say this about the input on the apex graph sop:
"The APEX graph geometry used as the initial graph to edit. After the graph is edited, the input is ignored. This input can also be a packed folder structure."
The incoming Base.rig graph is still stashed in apex graph sop, so if I make changes before the apex graph sop (like adding a new joint), they do not propagate into the apex graph. I have to reset the graph to fetch new updates, which then results in losing everything I did in the apex graph node.
Edited by evanrudefx - 2026年6月25日 10:23:36
Thanks,
Evan
Evan
-
- Quick Links


