What is the difference between a channel and a parameter?

   1723   15   1
User Avatar
Member
8 posts
Joined: Jan. 2022
Offline
Hello all!
I'm nooby in Houdini.

I can't figure out what it is. Fields for entering values (marked in the picture).

In some tutorials this is called a parameter, in others it is called a channel, and in others it is called attribute components.

What is it really? If it is a channel, where does it exist before it appears in the channel list? And what then is the difference between a channel and a parameter?

I apologize for the awkward question and for my English..
Any help would be greatly appreciated!

Attachments:
parameter.jpg (93.6 KB)

User Avatar
Member
2537 posts
Joined: June 2008
Offline
Those are two words used to describe the same thing. Inside HOM, Houdini's python implementation, channels are referred to a "Parms" short for parameters.
Inside the VEX coding context, however, you access "channels" from the node by referencing their parameter names.
Why use one over the other?
Python is the only code that can write to a parameter. VEX can only read "channel" values.
Edited by Enivob - Oct. 3, 2023 11:29:19
Using Houdini Indie 20.0
Windows 11 64GB Ryzen 16 core.
nVidia 3050RTX 8BG RAM.
User Avatar
Member
8 posts
Joined: Jan. 2022
Offline
Enivob
Those are two words used to describe the same thing. Inside HOM, Houdini's python implementation, channels are referred to a "Parms" short for parameters....

Thank you very much for your answer and time! I appreciate it very much!

Let me try to describe the process as I understood from your answer. Please correct me if this is not the case.

A value input field (like the one in the picture above) can only be created by Python. And if on VEX we create a channel with the function ...ch(...), then VEX again turns to the internal Python shell so that it creates a parameter with an input field.

Further in this PARAMETER we can specify any data and Python creates attribute values from them.

The “channel” entity is needed only so that VEX can communicate with it.

And if I see “Delete Channel” in the context menu, then all information added through VEX (or simple expressions) will be deleted. Here I just don’t understand where exactly the information is being deleted from, apparently it’s some kind of data array that I don’t know anything about yet.

And if in the menu we see “Delete parameter...”, then a piece of Python code will be deleted and the input field will cease to exist. Accordingly, there cannot be any channels other than those that were created initially.
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
Hi,

Page 10 [media.sidefx.com]

Cheers!
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
8 posts
Joined: Jan. 2022
Offline
SWest
Hi,

Page 10 [media.sidefx.com]

Cheers!

Thank you! It was this guide that prompted my question about channels )

It says that the channel is created after we add animated frames (keys). But in fact, we can access the channel without having key frames (picture in attachment)

Enivob's answer brought some clarity. But I'm not sure I fully understand this logic. Because I have little technical knowledge.

Attachments:
Channel.jpg (43.1 KB)

User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
Hi!

You don't need to fully understand anything really (sais a teacher). For now you just do your own interpretation of what you can grasp about how this technology is made (by humans).

Software such as 3DS Max, Maya, Blender and Houdini are similar in this regard. We make a distinction between high level controls, such as parameters and channels, and low level data such as geometry components and attributes.

From the computer's perspective those parms/channels are just data types (string, integer, float, dict and more).

In Houdini those parms (or channels) are part of nodes. They are the interface for nodes just as a calculator has buttons. When developers or technical artists create new nodes they add an interface for them. This is intended for easy control by artists. Technical artists will want additional control at a lower level (more details) and Houdini has tools for that as well.

Other Panels (also called Pane Tabs, Editors and Views) such as the Geometry Spreadsheet provide a way to observe more detailed data about geometry and attributes. Here it is possible to see exactly how numbers and text are influenced by each node.

However, usually the artist want to see in the Scene View how nodes change geometry, because this is more natural.

To summarize, Houdini provide tools to create and modify geometry in many ways. What make it different from other similar software is its tools that provide precise low level control of nearly everything. This access and control has made Houdini especially suitable for dynamic simulation. What this mean is that once you learnt to import or create models you can easily add some motion to them. However, once you learnt the basics in computer graphics (depending on your interests) you will not be limited to that. Then you can move on to destruction, fire, wind, liquid and many more effects that can be highly advanced.
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
621 posts
Joined: Nov. 2013
Offline
I think a parameter is a UI widget, but a channel is underlying data. A channel can be a single value,animation or expression.
User Avatar
Member
2041 posts
Joined: Sept. 2015
Offline
Andomiroslaw
A value input field (like the one in the picture above) can only be created by Python.
If you mean that the user has to use python to create the new field itself, no. One can use the 'Edit Parameter Interface' of the node to add additional parameters with input fields.

Andomiroslaw
And if on VEX we create a channel with the function...ch(...)
Actually no, the function ch() and it's varients in vex do not create a channel at all.
It only ever 'grabs' the data from the specified parameter in it's argument.
It is the vex node itself when you press the button 'Create Spare Parameter' that it looks in your vex code for that node to see if any ch() functions exist without reference to an already existing parameter, and in those cases in which it is not, creates the new spare parameter. Now under the 'hood', I don't know if it's using Python or underlying C++ API; But again, any ch() function only ever returns the data of the specified parameter that contains the data.
Edited by BabaJ - Oct. 4, 2023 10:15:51
User Avatar
Member
8 posts
Joined: Jan. 2022
Offline
BabaJ
...any ch() function only ever returns the data of the specified parameter that contains the data.

Hello BabaJ!) And thank you!
I think I understand what you're talking about!

However, when I try to reproduce it makes my socks fly off

In the Attribute Wrangle i create a parameter with any value that Houdini "doesn't know". And this action already causes the channel and parameter to exist (I marked this in the picture).
Maybe I'm thinking in the wrong direction...
Edited by Mirsildin - Oct. 4, 2023 11:47:34

Attachments:
Channel-2.jpg (43.5 KB)

User Avatar
Member
8 posts
Joined: Jan. 2022
Offline
SWest
You don't need to fully understand anything really (sais a teacher). For now you just do your own interpretation of what you can grasp about how this technology is made (by humans)

I tried really hard to stick to that philosophy. But this splinter doesn't let me sleep at night
User Avatar
Member
2041 posts
Joined: Sept. 2015
Offline
Mirsildin
In the Attribute Wrangle i create a parameter with any value that Houdini "doesn't know"

Ok, yes.

Mirsildin
And this action already causes the channel and parameter to exist (I marked this in the picture).

What do you mean by 'already'? You created the parameter and also used the parameter to hold a value that you want. Neither the parameter or value held by the parameter could not have already existed before you created it, let alone hold a value.

If you mean you wrote in the wrangle the function itself, i.e. any form of a ch() function; Without also creating a parameter by pressing the button to do so, or creating it through the Edit Parameter Interface, or somewhere else with a Python...then that ch() function within the wrangle code window will just by default always return a value of 0 - If it doesn't see/find an actual parameter that the function is referring to( from which to 'grab' data from ). That is aside from the fact that a typical newly created parameter, like your example, without any overriding input targeting it's field or specific user defined default - will also start with a default value of 0; save too with something like a string parameter which basically starts with a 'null', and so on with all the other specific contexts of other types of parameters.

So, I don't know what your 'issue' is, i.e., what you are struggling with except maybe the relationship of the ch() function/s and the parameters they reference and the data they can contain.

Perhaps it may help to know that the behavior of the ch() function is such that it could have been written in that instead of returning a default value of 0 even if the parameter it is referring too still doesn't exist; Create a warning pop up window notifying you that you are referring to a non-existant parameter and as such cannot proceed until you 'rectify' the matter and create a parameter with said name given to the function.
Edited by BabaJ - Oct. 4, 2023 13:51:31
User Avatar
Member
8 posts
Joined: Jan. 2022
Offline
BabaJ
Perhaps it may help to know that the behavior of the ch() function is such that it could have been written in that instead of returning a default value of 0 even if the parameter it is referring too still doesn't exist
BabaJ, thank you! And special thanks for your patience!


Thanks to all the guys from this topic for throwing me a lifeline.

I really have very little programming knowledge. I will be studying all your answers under a microscope for a long time until I fully understand. This was a good starting point for me!

Good luck and creative success to everyone!
User Avatar
Member
311 posts
Joined: Oct. 2016
Offline
Mirsildin
under a microscope for a long time until I fully understand

I suggest you don't do that literally. An advice is that you rather walk away from your computer and start reflecting on the topic. Try to describe what you have understood so far.

Knowledge is not in the letters, but what happens in your brain as you interpret a multitude of sources. We are not and will never be like computers that are like Rainman [en.wikipedia.org] focusing on exact details. We use abstractions to describe a complex world. This is what language is as well much of the thinking process (called tools by Vygotskij [en.wikipedia.org]).

Much of computer systems and technology is problem oriented. The target group for Houdini is usually artists (non coders) and technicians (with at least scripting knowledge). So the developers provided tools for them. The software itself is a solution, and the Panels and various areas of the GUI are solutions to specific problems. However, once the solutions are in place those problems are solved.

So when you try to understand why a panel or a tool exist in a software you can ask, is this for an artist, a technician or both? What technique was it designed for? This I write, because when frustration occurs it is often because we try to use a tool for something it was not originally designed. Sometimes, we need additional tools in combination with a proper tool. This can be to use documentation, tutorials or other sources of information. An improper response would be to say that the error is in the user. However, prerequisites will usually be some knowledge. To do things quicker some repetition is usually required, and that comes naturally.

Understanding does not come with meditation or too much focusing. It is a result of when you free the intelligence you were born with and have it listen to different perspectives, as well as experience, and then talk to your inner self with your internal reasoning.

If you try too hard you can not learn much more than basically memorizing things, which is not actually understanding, because you will hinder your own intelligence.

Rather give it time and your intelligence some room to breath, and you might see wonders.
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
2041 posts
Joined: Sept. 2015
Offline
Mirsildin
I will be studying all your answers under a microscope for a long time until I fully understand.
I would suggest you just start 'trying' to do something in Houdini-- just keep working on projects first - Instead of trying to understand things conceptually first.

The experience of using Houdini will help congeal your understanding faster, imo.
User Avatar
Member
8 posts
Joined: Jan. 2022
Offline
SWest
I suggest you don't do that literally. An advice is that you rather walk away from your computer and start reflecting on the topic. Try to describe what you have understood so far.

Everything you said sounds really great! Thank you!
Edited by Mirsildin - Oct. 5, 2023 11:10:09
User Avatar
Member
8 posts
Joined: Jan. 2022
Offline
BabaJ
I would suggest you just start 'trying' to do something in Houdini-- just keep working on projects first - Instead of trying to understand things conceptually first...

Yes, of course, I will definitely continue my projects.
But it’s just the way my mind works, when I press a button that I don’t understand the meaning of, it gives me a little pain

Thanks again for your help!
  • Quick Links