Understanding/Debugging the Nodes... ?

   9305   12   2
User Avatar
Member
23 posts
Joined: March 2009
Offline
More basics… as usual, I'm so grateful for any guidance. I'm comfortable with node- and graph-methodology. Love it, actually. But I'm not yet fluent in Houdini's nodes, specifically or in-general. So.

SOP nodes have some inputs on top, and outputs on the bottom. The ?-button help describes them, usually, pretty well, including what the inputs are.

Q1. In the graph view, is there any way to see the names of the inputs? Eventually you learn them all, but til then.

Q2. Is there a rigorous definition of what “solid line” versus “dotted line” means? Solid seems to be the main geometry, whereas dotted is a guide or modifier…

Q3. Is there any “debug view” for the output of a node? In a SOP you can set it to Display&Render, which helps. But is there some way to view the full data-slug coming out of it, maybe as a bulk text dump?

Q4. Do subnets always have precisely four inputs?

Q5. Do any nodes have multiple outputs?

Q6. Do all the x-OP node kinds carry the same kind of data? If not… what are the “stream types” for the various OP's?

Ok, sorry, that's kind-of a bunch of questions. But I havent found this kind of “Introduction to the Architecture” anywhere else yet.

Thanks!
User Avatar
Member
4140 posts
Joined: July 2005
Offline
Q1. In the graph view, is there any way to see the names of the inputs? Eventually you learn them all, but til then.

Sorry, I'm not following ‘graph view’. List mode perhaps? hit ‘d’, and you can display ‘inputs’ under visible columns. Network nodes? - names are toggled with the hotkey ‘n’.


Q2. Is there a rigorous definition of what “solid line” versus “dotted line” means? Solid seems to be the main geometry, whereas dotted is a guide or modifier…

I honestly can't speak to ‘rigorous’, but certainly dotted line tends to indicate a template, solid line the direct input.


Q3. Is there any “debug view” for the output of a node? In a SOP you can set it to Display&Render, which helps. But is there some way to view the full data-slug coming out of it, maybe as a bulk text dump?

Right click on the SOP, Spreadsheet.


Q4. Do subnets always have precisely four inputs?

Yes.


Q5. Do any nodes have multiple outputs?


Don't think so, but you can source that one output to many sources.

Q6. Do all the x-OP node kinds carry the same kind of data? If not… what are the “stream types” for the various OP's?

There, you lost me. On the assumption you're talking SOPs vs POPs vs DOPs, yes, in a way they carry different ‘streams’. You can pipe the data from one type into another in various ways depending on which way you're going and what you want to do. I think the docs explain this fairly well, perhaps not in one all-encompassing single list, but then I'm not sure that's strictly necessary.

Cheers,

J.C.
John Coldrick
User Avatar
Member
89 posts
Joined: April 2008
Offline
If you havent already, you might want to follow all the links at the bottom of this page:

http://www.sidefx.com/docs/houdini9.5/network/ [sidefx.com]
User Avatar
Member
23 posts
Joined: March 2009
Offline
Thanks, gents, these are both great helps.

Pardon my mangling of the nomenclature. I meant “network view”, and ability to see the names of the input nubs on top of a node. I know, usually, leftmost is geometry input, and the others are modifiers, but seeing the text name would be handy.

The spreadsheet view is good! I hadn't tried it before. It will prove mighty useful. But it's incomplete… it shows coordinates and uv, but not groups or materials. (They must be there, since they affect downstream nodes, we just can't see them.)

I think it would be interesting to see truly *all* the data coming out of a node, even if unwieldy. It would help make the user-architecture more transparent. It would be neat if the same right-click, “Show Too Much Info About the Output Of This Node”, worked on SOP, SHOP, CHOP, &c &c. At least… I think it'd be neat!

Anyway, end-of-ramble, thanks again, any other tips on “seeing inside the network” is most welcome!
User Avatar
Member
4140 posts
Joined: July 2005
Offline
Dig through the docs, pretty well everything you're talking about is described.

You wouldn't want those input connectors with text on them, networks of many hundred nodes aren't uncommon, you need to keep the clutter down. For the most part, yes, the left is the primary input, the right is either a guide or a modifier.

Cheers,

J.C.
John Coldrick
User Avatar
Member
1145 posts
Joined: July 2005
Offline
polyomino
Thanks, gents, these are both great helps.

Pardon my mangling of the nomenclature. I meant “network view”, and ability to see the names of the input nubs on top of a node. I know, usually, leftmost is geometry input, and the others are modifiers, but seeing the text name would be handy.

MMB on the inputs to see what they are expecting.

polyomino
The spreadsheet view is good! I hadn't tried it before. It will prove mighty useful. But it's incomplete… it shows coordinates and uv, but not groups or materials. (They must be there, since they affect downstream nodes, we just can't see them.)

MMB on the center of a node and it will give you the current information held in the node.

In addition, you can create a Tab and assign it to show Details, which is a live view of the “spreadsheet”.
The Details view is particularly useful for understanding Dops.

polyomino
I think it would be interesting to see truly *all* the data coming out of a node, even if unwieldy. It would help make the user-architecture more transparent. It would be neat if the same right-click, “Show Too Much Info About the Output Of This Node”, worked on SOP, SHOP, CHOP, &c &c. At least… I think it'd be neat!

Anyway, end-of-ramble, thanks again, any other tips on “seeing inside the network” is most welcome!
“gravity is not a force, it is a boundary layer”
“everything is coincident”
“Love; the state of suspended anticipation.”
User Avatar
Member
23 posts
Joined: March 2009
Offline
!

I am such a cave man. I never thought to try *middle* mouse button on stuff. This is brilliant. In the flashlight sense.

Thanks.
User Avatar
Member
321 posts
Joined: July 2005
Offline
polyomino
Q3. Is there any “debug view” for the output of a node? In a SOP you can set it to Display&Render, which helps. But is there some way to view the full data-slug coming out of it, maybe as a bulk text dump?
There's RMB ‘extended info’, but for SOPs, the ‘full data slug’ is RMB->save_geometry and then write that to a .geo file and examine it with a text editor. That has 100% of the data that is being output by the current SOP. In fact, if you do this, you'll notice a pretty direct correlation between what's in the .geo file header and what MMB'ing on the SOP shows you.

– Antoine
Antoine Durr
Floq FX
antoine@floqfx.com
_________________
User Avatar
Member
696 posts
Joined: March 2006
Offline
polyomino
!

I am such a cave man. I never thought to try *middle* mouse button on stuff. This is brilliant. In the flashlight sense.

Thanks.


You can MMB on the inputs as well to see specifically what an input is looking for
Stephen Tucker
VFXTD
User Avatar
Member
1145 posts
Joined: July 2005
Offline
Antoine Durr
polyomino
Q3. Is there any “debug view” for the output of a node? In a SOP you can set it to Display&Render, which helps. But is there some way to view the full data-slug coming out of it, maybe as a bulk text dump?
There's RMB ‘extended info’, but for SOPs, the ‘full data slug’ is RMB->save_geometry and then write that to a .geo file and examine it with a text editor. That has 100% of the data that is being output by the current SOP. In fact, if you do this, you'll notice a pretty direct correlation between what's in the .geo file header and what MMB'ing on the SOP shows you.

– Antoine

OR, if you can work with a shell, you can fire up Spy and dive down directly into that information :twisted:
“gravity is not a force, it is a boundary layer”
“everything is coincident”
“Love; the state of suspended anticipation.”
User Avatar
Member
98 posts
Joined: Sept. 2008
Offline
hi,

Sorry to re-take this thread, but it is the newest one I could find with this specific topic. I'm mostly concerned with “Q5. Do any nodes have multiple outputs?”…

The answer was that probably not, but I've seen in the documentation for hou.Node.outputConnections(self) and for hou.Node.outputConnectors(self) that some nodes seem to need/accept more than one output. In fact, in the latter method, in the documentation there is the following example

>>> split = hou.node(“/obj”).createNode(“dopnet”).createNode(“split”)
>>> split.parent().createNode(“rbdsolver”).setFirstInput(split)
>>> split.parent().createNode(“gravity”).setFirstInput(split, 1)
>>> split.parent().createNode(“merge”).setFirstInput(split, 1)
>>> split.outputConnectors()

with the resulting

((<hou.NodeConnection from split1 output 0 to rbdsolver1 input 0>,), (<hou.NodeConnection from split1 output 1 to gravity2 input 0>, <hou.NodeConnection from split1 output 1 to merge1 input 0>), (), ())

so I think that feature is now available, isn't it? Or this possibility is only available to the split node and not for a user-created asset?
Then, how can I select which nodes inside my multiple-output-asset are going to which output? are there anything like hou.SubnetIndirectOutput to connect to? I guess “visible” is not enough any more…

thanks a lot for your answers!!!

regards

dagush.-
————————-
* skylineEngine project coordinator
* buildingEngine module developer
http//ggg.udg.edu/skylineEngine
User Avatar
Member
7773 posts
Joined: July 2005
Offline
dagush
so I think that feature is now available, isn't it? Or this possibility is only available to the split node and not for a user-created asset?

Multiple outputs are only available certain node contexts (and types) such as VOPs (VEX Builder) or DOPs (Dynamics - eg. Split Object Stream node).

For creating HDAs, it is NOT possible to create multiple outputs in general except for the cases I mentioned. Unfortunately, their convention for wiring outside is rather weird. If you created a VOP HDA, you have a special “Subnet Outputs” node for connecting to the outside world so that you can infer those connections. If you created a DOP HDA, then the output node is the displayNode() of the subnet.
User Avatar
Member
98 posts
Joined: Sept. 2008
Offline
oh! I see…

Ok, that means I'll keep on working with my combinations of delete “selected” + delete “non selected”… ;-)

thank you very much for clarifying me this issue!!

dagush.-
————————-
* skylineEngine project coordinator
* buildingEngine module developer
http//ggg.udg.edu/skylineEngine
  • Quick Links