Yes Arctor….actually I meant “Add” sop not point sop, as I am creating the location of the points that I desire with the Add sop; led me to think of it in terms of a point sop.
So this combination of - Add Sop > Fit Node > Polyspline
Is “exactly” what I was looking for in terms of implementation.
What I wanted is the ability for me to be able to establish bezier curves with “breakpoints” that I could move dynamically with scripting and the separate option of being able alter the shape of the curve while the “breakpoints” remain on the curve and their position not become altered as a result of the curve reshaping.
This can be accomplished with the cv tension “attribute” of the polyspline.
The net result is that it imitates ( gets close, and good enough for now ) the likeness in capacity to create my paths as if I was using Illustrators pen and anchor tool. Like I am able to create single or groups of bezier curves/paths with controlling handles.
Until this thread topic came up I was thinking that I was going to have to teach myself the math behind bezier curves and write a Python script to implement it; Something that would take me a fair bit of time to say the least.
So thanks everyone for contributing to this topic and thread. Has saved me much work.
Found 2040 posts.
Search results Show results as topic list.
Houdini Indie and Apprentice » Create Bezier/NURBS curve from points?
- BabaJ
- 2042 posts
- Offline
Houdini Indie and Apprentice » Create Bezier/NURBS curve from points?
- BabaJ
- 2042 posts
- Offline
Ok…still very much a beginer…spoke too soon.
So in the point sop, selecting by group tab with all points set gives me my curve I want.
so thanks so much for the original poster in asking the question and digitalysanes answer
So in the point sop, selecting by group tab with all points set gives me my curve I want.
so thanks so much for the original poster in asking the question and digitalysanes answer
Houdini Indie and Apprentice » Create Bezier/NURBS curve from points?
- BabaJ
- 2042 posts
- Offline
Sorry to “Hi-Jack” this thread, but this solution seems to be what I was looking for in regards to similar question I have asked elsewhere a couple times.
So I put down an add sop and created 3 points and defined them each with their respective locations. Turned on point numbering, so indeed I can see them.
Then I put down a polyspline with the add sop going into it.
Set to cardinal and played around with adjusting First/Last CV count….and other settings too because no matter what I do there doesn't seem to be any line/curve that gets formed. The points just remain points.
I guess I need to lay down another node after that polyspline?
So I put down an add sop and created 3 points and defined them each with their respective locations. Turned on point numbering, so indeed I can see them.
Then I put down a polyspline with the add sop going into it.
Set to cardinal and played around with adjusting First/Last CV count….and other settings too because no matter what I do there doesn't seem to be any line/curve that gets formed. The points just remain points.
I guess I need to lay down another node after that polyspline?
Technical Discussion » Handles for controlling curve shape
- BabaJ
- 2042 posts
- Offline
I've been trying to figure out a way to plot breakpoints of a nurbs/bezier curve line that also have handles.
The idea is to be able to keep the breakpoints at a fixed point while using the handles attached to them adjust the nature of the curve shape that lies between the next fixed breakpoint.
This would be similar to the pen and anchor tool in illustrator or even better like the spline tool in Solidworks in which the handle itself can be constrained to specific values.
Oddly enough in Houdini it seems this capacity is in reach as it can be seen utilized in the Animation Editor and I have see it used in reference to a compositing tutorial.
Yet it does not seem available with the curve tool.
The only option I see is to make the “tool” myself….after all this is the big part of Houdini to make the tools yourself to do what you want.
So my next step will likely be to research the math behind bezier curves as I have seen through math sites that by changing certain elements of the curve formula I will be able to get the desired effect of “handles”.
I only ask if there is another way instead of doing all this work by chance I may just have missed something in Houdini and am simply re-inventing the wheel.
The idea is to be able to keep the breakpoints at a fixed point while using the handles attached to them adjust the nature of the curve shape that lies between the next fixed breakpoint.
This would be similar to the pen and anchor tool in illustrator or even better like the spline tool in Solidworks in which the handle itself can be constrained to specific values.
Oddly enough in Houdini it seems this capacity is in reach as it can be seen utilized in the Animation Editor and I have see it used in reference to a compositing tutorial.
Yet it does not seem available with the curve tool.
The only option I see is to make the “tool” myself….after all this is the big part of Houdini to make the tools yourself to do what you want.
So my next step will likely be to research the math behind bezier curves as I have seen through math sites that by changing certain elements of the curve formula I will be able to get the desired effect of “handles”.
I only ask if there is another way instead of doing all this work by chance I may just have missed something in Houdini and am simply re-inventing the wheel.
Houdini Learning Materials » Changes to parameters in Python/Houdini functions?
- BabaJ
- 2042 posts
- Offline
Houdini Learning Materials » Changes to parameters in Python/Houdini functions?
- BabaJ
- 2042 posts
- Offline
In this case the network editor is in the right context…because it shows the outline of the node that I am about to place down…also there are already other box and sphere node objects in the Network Editor that this attempt is being made on.
i.e. I can drop down a box node as per the usual way with the TAB menu.
i.e. I can drop down a box node as per the usual way with the TAB menu.
Houdini Learning Materials » Changes to parameters in Python/Houdini functions?
- BabaJ
- 2042 posts
- Offline
I was following a tutorial on using python in Houdini and the one example shows how to make a shelf tool that lets you drop a box node in the Network Editor.
But I get an error message once I click in the Network editor to lay it down.
Here's the code from the tutorial:
p = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor)
position = p.selectPosition()
new_node = p.pwd().createNode(“box”)
new_node.setPosition(position)
Here's the error message I get:
Traceback (most recent call last):
File “create_box_node”, line 3, in <module>
File “CPROGRA~1/SIDEEF~1/HOUDIN~1.16/houdini/python2.7libs\hou.py”, line 5279, in createNode
return _hou.Node_createNode(*args, **kwargs)
OperationFailed: The attempted operation failed.
Invalid node type name
From this I gather the “box” in parenthesis is creating the problem and something has changed since the tutorial has been made in how the parameter is passed/referenced for this function?
Any comments are appreciated - Thanks
But I get an error message once I click in the Network editor to lay it down.
Here's the code from the tutorial:
p = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor)
position = p.selectPosition()
new_node = p.pwd().createNode(“box”)
new_node.setPosition(position)
Here's the error message I get:
Traceback (most recent call last):
File “create_box_node”, line 3, in <module>
File “CPROGRA~1/SIDEEF~1/HOUDIN~1.16/houdini/python2.7libs\hou.py”, line 5279, in createNode
return _hou.Node_createNode(*args, **kwargs)
OperationFailed: The attempted operation failed.
Invalid node type name
From this I gather the “box” in parenthesis is creating the problem and something has changed since the tutorial has been made in how the parameter is passed/referenced for this function?
Any comments are appreciated - Thanks
Houdini Indie and Apprentice » Accessing Two Tone node
- BabaJ
- 2042 posts
- Offline
Houdini Learning Materials » Referencing velocity of popnet source node
- BabaJ
- 2042 posts
- Offline
Hi WhoDjini,
Thanks for taking the time to answer.
So yeah like you suggested I had already tried that, but the object moves much more faster than the particles.
So I made a new file and reduced the components to the minimum.
So I have 2 objects.
One is a line which is emitting two streams of particles with its velocity parameter set at 0.25 in the x axis.
The second object is a sphere whose x translation is set to :
$FF * ch(“../Point_Emitter/popnet1/source1/velx”)
Thanks again for taking the time on this.
And just to clarify, I'm not necessarily looking for a solution to a particular setup I have.
I was just trying a tutorial when this idea of velocity in the popnet source node was introduced to set the particles speed.
And I was simply wondering if it was possible to set up a scene whereby a single or many separate objects could be moving about at the same rate that these particles being emitted were.
Thanks for taking the time to answer.
So yeah like you suggested I had already tried that, but the object moves much more faster than the particles.
So I made a new file and reduced the components to the minimum.
So I have 2 objects.
One is a line which is emitting two streams of particles with its velocity parameter set at 0.25 in the x axis.
The second object is a sphere whose x translation is set to :
$FF * ch(“../Point_Emitter/popnet1/source1/velx”)
Thanks again for taking the time on this.
And just to clarify, I'm not necessarily looking for a solution to a particular setup I have.
I was just trying a tutorial when this idea of velocity in the popnet source node was introduced to set the particles speed.
And I was simply wondering if it was possible to set up a scene whereby a single or many separate objects could be moving about at the same rate that these particles being emitted were.
Houdini Learning Materials » Referencing velocity of popnet source node
- BabaJ
- 2042 posts
- Offline
In the popnet source node you can set the initial velocity of your particles under the attributes tab.
What I am trying to figure out is how to use that same velocity elsewhere like in another objects transform node so its movement is at the same rate as the particles velocity.
I've tried using a channel reference by dragging and dropping the velocity channel to the desired transform box eg. ch(“../../Tail_2/popnet/source_first_input/vely”).
Houdini doesn't complain ( no error messages ) when I do this but the object doesn't move.
I've looked in the Help file and there is much info about the pop velocity, however my level of Houdini knowledge is not yet high enough to make use of it in order to make an expression that works.
At the moment I've been guessing through trial and error using different values of $F * x to get it close to the particle velocity. I've tried using $F * x in the velocity entry but that seems to create a “mess”.
Any help is appreciated - thanks.
What I am trying to figure out is how to use that same velocity elsewhere like in another objects transform node so its movement is at the same rate as the particles velocity.
I've tried using a channel reference by dragging and dropping the velocity channel to the desired transform box eg. ch(“../../Tail_2/popnet/source_first_input/vely”).
Houdini doesn't complain ( no error messages ) when I do this but the object doesn't move.
I've looked in the Help file and there is much info about the pop velocity, however my level of Houdini knowledge is not yet high enough to make use of it in order to make an expression that works.
At the moment I've been guessing through trial and error using different values of $F * x to get it close to the particle velocity. I've tried using $F * x in the velocity entry but that seems to create a “mess”.
Any help is appreciated - thanks.
Houdini Indie and Apprentice » Accessing Two Tone node
- BabaJ
- 2042 posts
- Offline
Houdini Indie and Apprentice » Accessing Two Tone node
- BabaJ
- 2042 posts
- Offline
Hi,
I'm working through examples in the Ari Danesh next step tutorials - this one M12 video.
In it he goes to the shop network and drops down a Material Shader Builder node then goes into that node.
Up to this point I have no problem doing the same.
But then while in the shader builder he drops down a Two Tone “node” through the TAB menu.
The problem is that in my TAB menu there is no Two Tone “node” available.
I think he is using Houdini 12 and I am using Houdini 15.
I went to my help menu and apparently it's still there because it gives a description of it ( Two Tone ).
So I'm not sure how to get a two tone node or an equivalent in order follow along with the tutorial any further.
Any help is appreciated.
I'm working through examples in the Ari Danesh next step tutorials - this one M12 video.
In it he goes to the shop network and drops down a Material Shader Builder node then goes into that node.
Up to this point I have no problem doing the same.
But then while in the shader builder he drops down a Two Tone “node” through the TAB menu.
The problem is that in my TAB menu there is no Two Tone “node” available.
I think he is using Houdini 12 and I am using Houdini 15.
I went to my help menu and apparently it's still there because it gives a description of it ( Two Tone ).
So I'm not sure how to get a two tone node or an equivalent in order follow along with the tutorial any further.
Any help is appreciated.
Houdini Learning Materials » Syntax for expressions using loops
- BabaJ
- 2042 posts
- Offline
Ok…so its called hscript…so far in the videos I've seen the simple entries referred to as expressions….
So I googled houdini hscript and found the perfect link I think I should sink my teeth into.
Hopefully any other new users like myself might find it useful.
I don't think its currently listed under the current tutorials. (unless I somehow missed it ).
It's dated 2009 but I suspect most of it still applies.
http://www.sidefx.com/index.php?option=com_content&task=view&id=1500&Itemid=254 [sidefx.com]
So I googled houdini hscript and found the perfect link I think I should sink my teeth into.
Hopefully any other new users like myself might find it useful.
I don't think its currently listed under the current tutorials. (unless I somehow missed it ).
It's dated 2009 but I suspect most of it still applies.
http://www.sidefx.com/index.php?option=com_content&task=view&id=1500&Itemid=254 [sidefx.com]
Houdini Learning Materials » Syntax for expressions using loops
- BabaJ
- 2042 posts
- Offline
Houdini Learning Materials » Syntax for expressions using loops
- BabaJ
- 2042 posts
- Offline
Great - had a chance to play with this loop and it works like a charm.
Thanks much tamte.
I was even able to put in channel references to get the results I was looking for.
This is what attracted me to Houdini.
So I'm really looking forward to researching more in depth the ins and outs of using expressions in this manner.
I like this because I am familiar with writing small programs in c, so the familiar syntax makes it easy.
On that loop though I did try out of curiosity to define the `i` used in the for loop as an int just after the float is declared.
{
float out = 0;
int i;
for(i=0;i<10;i++)
{
out += i;
}
return out;
}
But Houdini complained with a syntax error; So I guess it may be like c but not quite exactly.
Would be nice to have a compact syntax reference that explains these little nuances; Something like a K&R book but tailored to Houdini.
Maybe someday when I am more experienced with Houdini I'll write one.
Thanks much tamte.
I was even able to put in channel references to get the results I was looking for.
This is what attracted me to Houdini.
So I'm really looking forward to researching more in depth the ins and outs of using expressions in this manner.
I like this because I am familiar with writing small programs in c, so the familiar syntax makes it easy.
On that loop though I did try out of curiosity to define the `i` used in the for loop as an int just after the float is declared.
{
float out = 0;
int i;
for(i=0;i<10;i++)
{
out += i;
}
return out;
}
But Houdini complained with a syntax error; So I guess it may be like c but not quite exactly.
Would be nice to have a compact syntax reference that explains these little nuances; Something like a K&R book but tailored to Houdini.
Maybe someday when I am more experienced with Houdini I'll write one.
Houdini Learning Materials » Syntax for expressions using loops
- BabaJ
- 2042 posts
- Offline
Ok great tamte,
Thanks very much for that, I will play with it, unfortunately have to run out the door and I just saw your post.
Just wanted to say thanks to give me something to work with.
Thanks very much for that, I will play with it, unfortunately have to run out the door and I just saw your post.
Just wanted to say thanks to give me something to work with.
Houdini Learning Materials » Syntax for expressions using loops
- BabaJ
- 2042 posts
- Offline
I left out a part in my post.
It's been while since I've coded in c but I think I remember `i` I reference in the above example would need to of been declared before as an int.
So maybe that's the issue with the syntax here? The hasn't yet been declared?
Then I guess the question is how to declare the variables in houdini.
I've seen examples of something getting close like use the stamp feature of the copy node. But this can make the code a bit lengthy, eg. stamp(“../copy1”, “i”, 0) when `i' would suffice if possible with it being declared elsewhere with a simple `int i;'
It's been while since I've coded in c but I think I remember `i` I reference in the above example would need to of been declared before as an int.
So maybe that's the issue with the syntax here? The hasn't yet been declared?
Then I guess the question is how to declare the variables in houdini.
I've seen examples of something getting close like use the stamp feature of the copy node. But this can make the code a bit lengthy, eg. stamp(“../copy1”, “i”, 0) when `i' would suffice if possible with it being declared elsewhere with a simple `int i;'
Houdini Learning Materials » Syntax for expressions using loops
- BabaJ
- 2042 posts
- Offline
Is it possible to use a loop within an expression?
One of the tutorials I saw used an `if` statement which worked,
but I haven't found any reference to loops.
I've tried doing a search and saw reference to an old houdini forum post where the guy basically says just use c style syntax:
for (i=0;i<2;i++) {…}
so I gave this a try,
for (i=0;i<2;i++) {$F}
The $F within the curly braces is not actually what I want to do but was put there simply as a placeholder until I can sort out the syntax of using loops.
But my Houdini complains about this syntax and I haven't found any tutorials that go more into depth about using scripting to drive elements of whatever I may build.
Perhaps I'll have to dive into using Python? I'm trying to hold off on that for the time being and try to learn how to get the most out of using expressions ( entering code into the textboxes ).
Any feedback is appreciated
One of the tutorials I saw used an `if` statement which worked,
but I haven't found any reference to loops.
I've tried doing a search and saw reference to an old houdini forum post where the guy basically says just use c style syntax:
for (i=0;i<2;i++) {…}
so I gave this a try,
for (i=0;i<2;i++) {$F}
The $F within the curly braces is not actually what I want to do but was put there simply as a placeholder until I can sort out the syntax of using loops.
But my Houdini complains about this syntax and I haven't found any tutorials that go more into depth about using scripting to drive elements of whatever I may build.
Perhaps I'll have to dive into using Python? I'm trying to hold off on that for the time being and try to learn how to get the most out of using expressions ( entering code into the textboxes ).
Any feedback is appreciated
Houdini Learning Materials » Not understanding velocity expression with keyframe
- BabaJ
- 2042 posts
- Offline
I was doing the first step tutorial ( M10 ) and Ari is showing an example of using $LIFE and $AGE to scale an object with each successive keyframe.
I decided to play around with some of the nodes, and in this case the Source node that lies within the PoPnet( old version ).
In the example he uses a value of 3 for the x axis in velocity under the attributes tab of the source node.
This works fine as expected, so you see the sphere ( that was created to show the example ) increase in size as it advances along the x-axis with each successive keyframe.
So I tried adding to the Y value velocity the expression: sin($F)
With this expression I get something that is not expected.
The attached photo is a superimposed screenshot layered upon another screen shot to show the differences of results from different keyframe advances; in this case one as it looked at keyframe 45, the other 90.
What is happening that each previous ‘instance’ of the sphere gets re-created and re-plotted?
Is there something in the expression that can be changed so that only each new ‘instance’ is calculated while previous plots left alone?.
Thanks.
I decided to play around with some of the nodes, and in this case the Source node that lies within the PoPnet( old version ).
In the example he uses a value of 3 for the x axis in velocity under the attributes tab of the source node.
This works fine as expected, so you see the sphere ( that was created to show the example ) increase in size as it advances along the x-axis with each successive keyframe.
So I tried adding to the Y value velocity the expression: sin($F)
With this expression I get something that is not expected.
The attached photo is a superimposed screenshot layered upon another screen shot to show the differences of results from different keyframe advances; in this case one as it looked at keyframe 45, the other 90.
What is happening that each previous ‘instance’ of the sphere gets re-created and re-plotted?
Is there something in the expression that can be changed so that only each new ‘instance’ is calculated while previous plots left alone?.
Thanks.
Houdini Learning Materials » Next Steps Tutorial M10 - different particle results.
- BabaJ
- 2042 posts
- Offline
So I'm doing the Ari Danesh Next Steps tutorial ( M10 ),
In this tutorial he is basically showing different configurations possible between point, particle, metaball and force “nodes”.
To save time after having gone through one example of laying down each node, he starts to refer to a file that is available with the video that can be downloaded.
So I downloaded the file and simply turn on and off the relevant “geo” objects for each object ( that has the point, particle, etc. nodes within them ) that relates to the part of the tutorial he discusses.
Problem is, although I didn't build the objects he refers too, he does go through most of each node showing the settings of each node and comparing what I have in my opened file seems to be exactly what he has in the video.
Except I don't get the same results when running the animation.
The one in question is a particle dispersion example, where a “bed” of particles is made and an object runs through them dispersing points.
In his video as his object goes through the points it leaves a clear path showing the dispersed particles as well.
When I run it, although I can see the particles being displaced, my path doesn't get cleared. It's as if in each frame the “bed” of particles are recreated.
In the particle node he uses an expression for the “birth” of particles input:
if($FF ==1,npoints(“../point1”)*30,0)
Supposedly this statement is supposed to have the effect that these particles will only get created if its the first frame.
I have tried doing a “delete” channel to make sure it's clear while on the first key frame and entering this formula again, just in case there was something inadvertently put in while the file was created.
This is the only place I can think of that might make a difference, namely because of how he talked about the purpose of this expression. I went through the other nodes to look for settings or hints that might suggest why there is a difference but I can't seem to find anything due mostly to my inexperience.
Any comments or suggestions of where to look that might offer insight into understanding why there is a difference is much appreciated.
Thank you
In this tutorial he is basically showing different configurations possible between point, particle, metaball and force “nodes”.
To save time after having gone through one example of laying down each node, he starts to refer to a file that is available with the video that can be downloaded.
So I downloaded the file and simply turn on and off the relevant “geo” objects for each object ( that has the point, particle, etc. nodes within them ) that relates to the part of the tutorial he discusses.
Problem is, although I didn't build the objects he refers too, he does go through most of each node showing the settings of each node and comparing what I have in my opened file seems to be exactly what he has in the video.
Except I don't get the same results when running the animation.
The one in question is a particle dispersion example, where a “bed” of particles is made and an object runs through them dispersing points.
In his video as his object goes through the points it leaves a clear path showing the dispersed particles as well.
When I run it, although I can see the particles being displaced, my path doesn't get cleared. It's as if in each frame the “bed” of particles are recreated.
In the particle node he uses an expression for the “birth” of particles input:
if($FF ==1,npoints(“../point1”)*30,0)
Supposedly this statement is supposed to have the effect that these particles will only get created if its the first frame.
I have tried doing a “delete” channel to make sure it's clear while on the first key frame and entering this formula again, just in case there was something inadvertently put in while the file was created.
This is the only place I can think of that might make a difference, namely because of how he talked about the purpose of this expression. I went through the other nodes to look for settings or hints that might suggest why there is a difference but I can't seem to find anything due mostly to my inexperience.
Any comments or suggestions of where to look that might offer insight into understanding why there is a difference is much appreciated.
Thank you
-
- Quick Links