$CY works nicely. I shall go and make another effort at finding a list of those in the docs.
EDIT: So, I have created a line, rotated it using a Transform node, randomised rotation and length using Copy node and stamping. Now I am trying to find the mid spon point in a similar way it is done in the define_mid_spawn_point VOP SOP in the example above. But how can I get to the relevant points please (i.e. I need to use the ends of the lines)?
See attached.
This is a general question too: what are the procedures to operate on lists and lists of lists in Houdini. I see the Sort node but how do I cull a portion of the list, append to it or choose a desired point/primitive on a basis of a pattern? Say, in the case of the output provided by my Copy node.
Thank you.
Found 52 posts.
Search results Show results as topic list.
Houdini Indie and Apprentice » Generative modeling of wobbly sticks: workflow challenge
- anna_waldon
- 52 posts
- Offline
Technical Discussion » Rotate in VOP SOP
- anna_waldon
- 52 posts
- Offline
Houdini Indie and Apprentice » Generative modeling of wobbly sticks: workflow challenge
- anna_waldon
- 52 posts
- Offline
Thank you very much!
To be honest, this looks considerably more complex than I expected (and then what I had to do to build my equivalent). I cannot understand it without further digging, especially within the VOP SOPs. Just the thing to do during the break. Shall try and go through it. I wonder if you could be tempted to add some further comments to them.
The first point of difference is the distribution of the lines at the very beginning. I my Grasshopper setup I create one line from the origin and then rotate its copies. This allows me to fill only a portion of the circle and vary the distribution along its circumference. Scatter is not controllable in the same way. I was trying to do it via copy stamping in Houdini but got stuck with what variable to use for randomization as $PT and $F do not vary in this case…
I also notice that if displace origin is set to, say, -10 - the lines incline towards the center pas the vertical, which seems wrong.
Again: thank you.
To be honest, this looks considerably more complex than I expected (and then what I had to do to build my equivalent). I cannot understand it without further digging, especially within the VOP SOPs. Just the thing to do during the break. Shall try and go through it. I wonder if you could be tempted to add some further comments to them.
The first point of difference is the distribution of the lines at the very beginning. I my Grasshopper setup I create one line from the origin and then rotate its copies. This allows me to fill only a portion of the circle and vary the distribution along its circumference. Scatter is not controllable in the same way. I was trying to do it via copy stamping in Houdini but got stuck with what variable to use for randomization as $PT and $F do not vary in this case…
I also notice that if displace origin is set to, say, -10 - the lines incline towards the center pas the vertical, which seems wrong.
Again: thank you.
Technical Discussion » Rotate in VOP SOP
- anna_waldon
- 52 posts
- Offline
A basic question:
How can I use Rotate node in VOP SOP if I want to rotate a line around one of its ends?
I do not see how I can pass a matrix to the Rotate node.
Thank you
How can I use Rotate node in VOP SOP if I want to rotate a line around one of its ends?
I do not see how I can pass a matrix to the Rotate node.
Thank you
Houdini Indie and Apprentice » Generative modeling of wobbly sticks: workflow challenge
- anna_waldon
- 52 posts
- Offline
Please have a look at the attached image. I have quickly put this together in Grasshopper (a Rhino plugin). I now would like to repeat the process in Houdini but not sure about the best way to go about it.
Here is the step-by-step process:
1. Create a point at the world origin (E).
2. Create a set of lines (B) originating from this point. Their radial spread, and lengths are random within adjustable ranges. The ranges are similarly adjustable for all other randomised values.
3. Pick random points on these lines (C).
4. Create another point (D) offset vertically relative to E.
5. Draw lines of random lengths through from points C along vectors beginning at D and going through C.
6. Randomize the locations of points A.
7. Create tubes around the lines.
Thank you for the suggestions.
Here is the step-by-step process:
1. Create a point at the world origin (E).
2. Create a set of lines (B) originating from this point. Their radial spread, and lengths are random within adjustable ranges. The ranges are similarly adjustable for all other randomised values.
3. Pick random points on these lines (C).
4. Create another point (D) offset vertically relative to E.
5. Draw lines of random lengths through from points C along vectors beginning at D and going through C.
6. Randomize the locations of points A.
7. Create tubes around the lines.
Thank you for the suggestions.
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Glad it is useful to others…
I just started watching this video on Python in Houdini. Super useful. E.g., getting references to nodes or parameters is automated in the Python shell. Very nice…
http://vimeo.com/14612897 [vimeo.com]
I just started watching this video on Python in Houdini. Super useful. E.g., getting references to nodes or parameters is automated in the Python shell. Very nice…
http://vimeo.com/14612897 [vimeo.com]
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Thank you, it's been very educational. Probably cannot get to it properly till Monday/Tuesday but will do another push then.
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Thanks.
But the truncated line is something else. It is only short, as in the drawing, and comes out of both inputs and outputs. The node is not visible in the network or in the list, but it is there somewhere because if I create another node with the same name it gets renamed into blah1….
—
EDIT
Hm… I think I did the promotion of the attributes OK but I do not understand how to use PTDIST as in the above post. Create a color attribute color_volumepoints and calculate R G and B? Entering $PTDIST1 there does not work. I also do not understand how to get to (use in an expression) my detail or even where to see it. Middle click shows I have a detail but I cannot see its value in the detail View.
Thank you for the patience.
But the truncated line is something else. It is only short, as in the drawing, and comes out of both inputs and outputs. The node is not visible in the network or in the list, but it is there somewhere because if I create another node with the same name it gets renamed into blah1….
—
EDIT
Hm… I think I did the promotion of the attributes OK but I do not understand how to use PTDIST as in the above post. Create a color attribute color_volumepoints and calculate R G and B? Entering $PTDIST1 there does not work. I also do not understand how to get to (use in an expression) my detail or even where to see it. Middle click shows I have a detail but I cannot see its value in the detail View.
Thank you for the patience.
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Oh, and I missed the last post about color. Thank you Pagefan.
And while I am at it: what are those truncated lines? One of my null nodes have disappeared and the inputs/outputs got replaced by these lines. Did it get hidden or something…?
And while I am at it: what are those truncated lines? One of my null nodes have disappeared and the inputs/outputs got replaced by these lines. Did it get hidden or something…?
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Thanks once more. On the basis of what you have suggested, here is my effort to calculate the distances to attractors in another Python SOP. It works… I think.
geo = hou.pwd().geometry()
# target_pnt = hou.SopNode(“../PVOL”).geometry()
# this is my feeble attempt to get to the data in another node. How please?
input_geo = hou.pwd().inputs().geometry()
target_red = input_geo.points().position()
target_green = input_geo.points().position()
target_blue = input_geo.points().position()
dist_red_attr = geo.addAttrib(hou.attribType.Point, “dist_red”, (0.0), False, True)
dist_green_attr = geo.addAttrib(hou.attribType.Point, “dist_green”, (0.0), False, True)
dist_blue_attr = geo.addAttrib(hou.attribType.Point, “dist_blue”, (0.0), False, True)
for point in geo.points():
dist_red_value = point.position().distanceTo(target_red)
point.setAttribValue(dist_red_attr, dist_red_value)
dist_green_value = point.position().distanceTo(target_green)
point.setAttribValue(dist_green_attr, dist_green_value)
dist_blue_value = point.position().distanceTo(target_blue)
point.setAttribValue(dist_blue_attr, dist_blue_value)
Please see the question in the code above.
Also, when looking at Pagefan's code, I am not sure I understand correctly:
attribcreate_pointdistance creates one attribute and puts three floats into it referring to distances to each of the attractors, right?
Thank you
geo = hou.pwd().geometry()
# target_pnt = hou.SopNode(“../PVOL”).geometry()
# this is my feeble attempt to get to the data in another node. How please?
input_geo = hou.pwd().inputs().geometry()
target_red = input_geo.points().position()
target_green = input_geo.points().position()
target_blue = input_geo.points().position()
dist_red_attr = geo.addAttrib(hou.attribType.Point, “dist_red”, (0.0), False, True)
dist_green_attr = geo.addAttrib(hou.attribType.Point, “dist_green”, (0.0), False, True)
dist_blue_attr = geo.addAttrib(hou.attribType.Point, “dist_blue”, (0.0), False, True)
for point in geo.points():
dist_red_value = point.position().distanceTo(target_red)
point.setAttribValue(dist_red_attr, dist_red_value)
dist_green_value = point.position().distanceTo(target_green)
point.setAttribValue(dist_green_attr, dist_green_value)
dist_blue_value = point.position().distanceTo(target_blue)
point.setAttribValue(dist_blue_attr, dist_blue_value)
Please see the question in the code above.
Also, when looking at Pagefan's code, I am not sure I understand correctly:
attribcreate_pointdistance creates one attribute and puts three floats into it referring to distances to each of the attractors, right?
Thank you
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Thank you. Or I made explicit groups for them, works too. Clearer now.
Next I am trying to do this basic vector subtraction in a Python SOP too. I made a new Python SOP with two inputs. One to take some points and the other to take one point to orient the normals to.
But I am stuck at the very beginning.
geo = hou.pwd().geometry()
Will read in all of the geometry of this node, right? So, how do I distinguish between things incoming from my two inputs?
Thanks again.
Next I am trying to do this basic vector subtraction in a Python SOP too. I made a new Python SOP with two inputs. One to take some points and the other to take one point to orient the normals to.
But I am stuck at the very beginning.
geo = hou.pwd().geometry()
Will read in all of the geometry of this node, right? So, how do I distinguish between things incoming from my two inputs?
Thanks again.
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
My next question is again about color_point… nodes in Pagefan's setup.
I see that they add color to groups but do not see where the groups are defined and named. The merge node Help recommends using a Group node before which is missing. Rearranging Transform inputs within Merge changes colors. So, does the Merge node group by input and it is a reliable grouping to use elsewhere?
Thanks.
I see that they add color to groups but do not see where the groups are defined and named. The merge node Help recommends using a Group node before which is missing. Rearranging Transform inputs within Merge changes colors. So, does the Merge node group by input and it is a reliable grouping to use elsewhere?
Thanks.
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Thanks.
As for the roles of different languages, here is what point expression help page says:
“The old expression language is still available in Houdini for compatibility with older files and scripts. For new animations, we recommend you use the new HOM scripting architecture instead.”
Sounds quite unequivocal… Perhaps stronger than intended.
As for the roles of different languages, here is what point expression help page says:
“The old expression language is still available in Houdini for compatibility with older files and scripts. For new animations, we recommend you use the new HOM scripting architecture instead.”
Sounds quite unequivocal… Perhaps stronger than intended.
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Thanks for the Python version and for the warning about potential problems, looks more verbose too. I was interested because the docs on point expression already say it is being fazed out and recommend Python.
I have built the orientation part with expressions and with a VOP SOP. Had to lock the “orient to” point with a constant, otherwise the missing points we padded with zeros.
Not sure why the link to the VOP SOP is dashed - is it OK or something to worry about? I thought it meant to show improper type casting…
Also, do I need to output both Point Positions and Point Normals from my VOP SOP? Not always sure about he default behaviors.
Thanks once more.
I have built the orientation part with expressions and with a VOP SOP. Had to lock the “orient to” point with a constant, otherwise the missing points we padded with zeros.
Not sure why the link to the VOP SOP is dashed - is it OK or something to worry about? I thought it meant to show improper type casting…
Also, do I need to output both Point Positions and Point Normals from my VOP SOP? Not always sure about he default behaviors.
Thanks once more.
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Super. As I am working on this, can one write
point(“../FOCUS, 0, ”P", 0)-$TX
in the same place in Python and if so, how would that look like?
point(“../FOCUS, 0, ”P", 0)-$TX
in the same place in Python and if so, how would that look like?
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Thanks both. Much clearer. Have watched the VOP Color Scatter tutorial and shall now move to the one on expressions as recommended. I am moving along.
The thing that I find hard about Houdini at my ignorance level is how things are hidden within things. Instead of - I do not know - Analyse Values node, we have AttribPromote node, with its analytic capability unmanifested to the uninitiated. Or we have 4 identical-looking inputs to a VOP SOP (as discussed in that other thread) but one works differently to the other 3. Etc.
Well, I hope I shall see the light sooner rather than later.
On practicalities:
In your chart, how are:
a. The color_point… nodes relate to the spheres created earlier in the chain?
b. What is point_lookat node and how does that one connect to the Focus group (if it does)?
Thank you for the patience.
The thing that I find hard about Houdini at my ignorance level is how things are hidden within things. Instead of - I do not know - Analyse Values node, we have AttribPromote node, with its analytic capability unmanifested to the uninitiated. Or we have 4 identical-looking inputs to a VOP SOP (as discussed in that other thread) but one works differently to the other 3. Etc.
Well, I hope I shall see the light sooner rather than later.
On practicalities:
In your chart, how are:
a. The color_point… nodes relate to the spheres created earlier in the chain?
b. What is point_lookat node and how does that one connect to the Focus group (if it does)?
Thank you for the patience.
Houdini Indie and Apprentice » VOP SOP Inputs
- anna_waldon
- 52 posts
- Offline
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
I started building it. The thing is I am not familiar with the Houdini nodes and the manner in which they communicate…
So… If I may…
What are color_point… nodes in your graph?
Why do you need null_basevolume?
And - yes - the question about promoting the attributes is still there… I am yet to get to them.
So… If I may…
What are color_point… nodes in your graph?
Why do you need null_basevolume?
And - yes - the question about promoting the attributes is still there… I am yet to get to them.
Houdini Indie and Apprentice » Controlling with attractors (modeling challenge)
- anna_waldon
- 52 posts
- Offline
Thank you, very helpful. I shall try and build it. Shall report back.
Did you decide not to post the HIP file for pedagogical reasons?
Did you decide not to post the HIP file for pedagogical reasons?
Technical Discussion » Find minimum attribute value in vop
- anna_waldon
- 52 posts
- Offline
Thank you, I have done this. I am just not sure how to use the result of this promotion.
-
- Quick Links