Interesting Friday puzzle that seems like it should be easier than I was making it
Anyway a couple of options in the attached file. Probably more elegant solutions, but they seem to work.
Found 133 posts.
Search results Show results as topic list.
Technical Discussion » Procedural Selection
- Hatchery
- 139 posts
- Offline
Houdini Indie and Apprentice » Thread and nail image
- Hatchery
- 139 posts
- Offline
I've not seen that tutorial but looks interesting...
You might also want to approach this from a more programitc angle using Vex.
Maybe have a watch of this https://entagma.com/creating-geometry-with-vex/ [entagma.com]
And see if you can translate some of the concepts to what you want to do. Essentially it's just points and then connecting them up.
The interaction between the threads so they dont go through each other could be tricky but depending on how you view it you may not notice.
Probably have a crack at both options see what works what doesnt is the best advice
You might also want to approach this from a more programitc angle using Vex.
Maybe have a watch of this https://entagma.com/creating-geometry-with-vex/ [entagma.com]
And see if you can translate some of the concepts to what you want to do. Essentially it's just points and then connecting them up.
The interaction between the threads so they dont go through each other could be tricky but depending on how you view it you may not notice.
Probably have a crack at both options see what works what doesnt is the best advice
Technical Discussion » How to measure distances between two points?
- Hatchery
- 139 posts
- Offline
Drop down an attribute wrangle and wire the merg node into the first slot
then use this code:
replace the 'point-number' with the number of the points you want to mesure the distance between.
Then view the results in the geo spreadsheet
then use this code:
vector one = point(0,'P', point-number); vector two = point(0,'P', point-number); f@distance = distance(one, two);
replace the 'point-number' with the number of the points you want to mesure the distance between.
Then view the results in the geo spreadsheet
Edited by Hatchery - 2021年5月10日 12:02:47
Technical Discussion » Slow down/keyframe @Frame driven movements
- Hatchery
- 139 posts
- Offline
Not sure I've understood exactly what you are after and I'm sure there's a more elegant way to do it, but you could try this
(BTW timeframe is in Frames)
(BTW timeframe is in Frames)
Edited by Hatchery - 2021年3月8日 09:11:08
Technical Discussion » Endocytosis - xyzdist & prim uv
- Hatchery
- 139 posts
- Offline
Oh nice! will have a play with that, not used volumesample before -
In the second example these lines don't seem to be doing anything?
Also attached bit of a rough and ready version of what I'd been looking at re XYZ and PrimUV
In the second example these lines don't seem to be doing anything?
i@npt = nearpoint(1,@P); vector npos = point(1,"P",i@npt); vector off = set(0,chf("yoffset"),0);
Also attached bit of a rough and ready version of what I'd been looking at re XYZ and PrimUV
Technical Discussion » Endocytosis - xyzdist & prim uv
- Hatchery
- 139 posts
- Offline
Hello - As part of learning vex and Houdini in general, I've become slightly obsessed with trying to do an endocytosis setup. (amazing example: https://www.instagram.com/p/CBjdW1WjYmB/?utm_source=ig_web_copy_link)
Tried various things, from nearpoints() to point clouds, and all have worked to an extent. However my latest attempt has been using xyzdist and prim uv, which seems to have the most potential. The problem I'm having is getting the points to wrap under the full sphere. I guess I could overcome this by pushing the points toward the centre as the sphere moves through the cell wall (grid) so the edge points find the base of the sphere?
The second issue is that during endocytosis, the points that are transferred to the sphere are replaced by points moving in from the rest of the cell wall (grid). Any thoughts on how best to achieve this?
I've attached a simplified version of where I've got, to better illustrate.
Any thoughts would be greatly received and indeed if there's a completely different approach i could look at that might work better?
Tried various things, from nearpoints() to point clouds, and all have worked to an extent. However my latest attempt has been using xyzdist and prim uv, which seems to have the most potential. The problem I'm having is getting the points to wrap under the full sphere. I guess I could overcome this by pushing the points toward the centre as the sphere moves through the cell wall (grid) so the edge points find the base of the sphere?
The second issue is that during endocytosis, the points that are transferred to the sphere are replaced by points moving in from the rest of the cell wall (grid). Any thoughts on how best to achieve this?
I've attached a simplified version of where I've got, to better illustrate.
Any thoughts would be greatly received and indeed if there's a completely different approach i could look at that might work better?
Image Not Found
Edited by Hatchery - 2021年3月6日 05:22:38
Technical Discussion » Viewport point redraw ghosting
- Hatchery
- 139 posts
- Offline
Hello
I've been suffering a bit with points not redrawing correctly in the viewport.
They'll quite often leave a ghost point behind or occasionally just not update their position, but if you look in the geo spreadsheet can see them moving.
A scene reload fixes it. Not sure but seems like it might more common with a sop solver
Are there any settings that I might need to adjust to avoid this?
I’m running a RTX30 series card 460.89 studio drivers, 18.5.408, win10
Any thoughts appreciated
I've been suffering a bit with points not redrawing correctly in the viewport.
They'll quite often leave a ghost point behind or occasionally just not update their position, but if you look in the geo spreadsheet can see them moving.
A scene reload fixes it. Not sure but seems like it might more common with a sop solver
Are there any settings that I might need to adjust to avoid this?
I’m running a RTX30 series card 460.89 studio drivers, 18.5.408, win10
Any thoughts appreciated
Edited by Hatchery - 2021年1月25日 07:08:16
Technical Discussion » From wrangle, get point list from a group sop?
- Hatchery
- 139 posts
- Offline
Is this what you were thinking - see attached?
Detail wrangle 1
Detail wrangle 2
Detail wrangle 1
i[]@pointnumbers; for(int i = 0; i < npoints(0); i++){ if(inpointgroup(0,"pick_3_points",i)){ append(i[]@pointnumbers,i); } } int firstindex = i[]@pointnumbers[0]; push(i[]@pointnumbers, firstindex);
Detail wrangle 2
addprim(0,"polyline",i[]@pointnumbers);
Houdini Indie and Apprentice » Eye art using boolean
- Hatchery
- 139 posts
- Offline
Hello - I’m pretty new to Houdini but been creating this image (attached)
I've managed to put it together pretty easily copying a number of slightly deformed tubes to the points of circle with its normals facing outwards.
There is then a voronoifracure object used to create the segments and this is all brought together and Boolean to create the cell like gaps –
Now the trouble is, although this works and actually maintains some level of proceduralism, the nature of the detail and the Boolean means it's pretty slow and it feels like there might be a more efficient way of doing this? Just wondered if someone might be able to point me in the right direction of some possible ways to have another crack at it.
Just have to say, coming from 3DS Max for the past 10+ years, that fact that you actually can use a boolean on this and update the tube and it still feedback through to the render is jaw dropping
Thank you
I've managed to put it together pretty easily copying a number of slightly deformed tubes to the points of circle with its normals facing outwards.
There is then a voronoifracure object used to create the segments and this is all brought together and Boolean to create the cell like gaps –
Now the trouble is, although this works and actually maintains some level of proceduralism, the nature of the detail and the Boolean means it's pretty slow and it feels like there might be a more efficient way of doing this? Just wondered if someone might be able to point me in the right direction of some possible ways to have another crack at it.
Just have to say, coming from 3DS Max for the past 10+ years, that fact that you actually can use a boolean on this and update the tube and it still feedback through to the render is jaw dropping
Thank you
Edited by Hatchery - 2020年6月19日 13:10:43
Technical Discussion » Vex and solver
- Hatchery
- 139 posts
- Offline
Hello
As part of learning Houdini and vex, i've been adapting some stuff from Daniel Shiffmans excellent Nature of Code book, in this case a pretty basic random walker.
To make it my own I've used a Solver followed by a trail node and metaballs to create a fairly cool organic mitosis setup.
It's all working okay but im just really conscious that by trying to teach myself i might not be doing things in the most efficent way possible and was hoping someone could offer any tip/suggestion on ways they might condense/optimize the code
In the solver ive setup two Attribute Wrangles (that's all there is in the sop), the first is set to run over a single point in the first frame and then multiple points as frames progress.
The second wrangle is a set to detail to create new points.
Wrangle 1
Wrangle 2 linked to Wrangle 1
Any comments much appreciated
Also should this type of thing actually be posted in the Indie/Apprentice channel?
As part of learning Houdini and vex, i've been adapting some stuff from Daniel Shiffmans excellent Nature of Code book, in this case a pretty basic random walker.
To make it my own I've used a Solver followed by a trail node and metaballs to create a fairly cool organic mitosis setup.
It's all working okay but im just really conscious that by trying to teach myself i might not be doing things in the most efficent way possible and was hoping someone could offer any tip/suggestion on ways they might condense/optimize the code
In the solver ive setup two Attribute Wrangles (that's all there is in the sop), the first is set to run over a single point in the first frame and then multiple points as frames progress.
The second wrangle is a set to detail to create new points.
Wrangle 1
string RandDir = "none"; float ranLoc = fit01(rand(@ptnum),-0.01,0.01); float ranNum = rand(@ptnum+@numpt); if (ranNum > 0 && ranNum < 0.2){ RandDir = "up"; i@Age = i@Age +1; @P.z = @P.z +ranLoc; } else if (ranNum > 0.2 && ranNum < 0.4) { RandDir = "down"; i@Age = i@Age +1; @P.z = @P.z -ranLoc; } else if (ranNum > 0.4 && ranNum < 0.6){ RandDir = "left"; i@Age = i@Age +1; @P.x = @P.x -ranLoc; } else { RandDir = "right"; i@Age = i@Age +1; @P.x = @P.x +ranLoc; }
Wrangle 2 linked to Wrangle 1
i@Age = point(0,'Age',0); vector pos = point(0,'P',i@numberOfPoints); //Adds a new point from the last point every XX frames if (i@Age == 10){ addpoint(0,pos); setpointattrib(0,'Age',0,0,"set"); i@numberOfPoints++; }
Any comments much appreciated
Also should this type of thing actually be posted in the Indie/Apprentice channel?
Edited by Hatchery - 2020年6月8日 07:37:41
Technical Discussion » Push a value to an array if it's not already in the array
- Hatchery
- 139 posts
- Offline
Technical Discussion » Push a value to an array if it's not already in the array
- Hatchery
- 139 posts
- Offline
Hello - since posting this i actually figured i could do like the below - please do let me know if there's any better approach:
i[]@pointsArray1 = {0,2,7,8,10}; i[]@pointsArray2 = {0,3,5,7,8,11,15,16,10}; for (int i=0; i<len(i[]@pointsArray2);i++){ if (!(find(i[]@pointsArray1, i[]@pointsArray2[i])>=0)) { push(i[]@pointsArray1,i[]@pointsArray2[i]); } }
Technical Discussion » Push a value to an array if it's not already in the array
- Hatchery
- 139 posts
- Offline
Hello
New to VEX and i have a question on arrays.
Is there a way to take the values from Array2 and push()them into Array1, but only if the value in Array2 doesn't already exist in Array1, preventing duplicates? (Ill be using in a solver, finding more and more points as it progresses)
I've figured out a way to do the reverse (see below)- Comparing Array1 and Array2, pushing the duplicates to a separate array and then using this to remove the values from a combined Array1&2 - but this seem a but long winded or inefficient?
Any thoughts much appreciated
New to VEX and i have a question on arrays.
Is there a way to take the values from Array2 and push()them into Array1, but only if the value in Array2 doesn't already exist in Array1, preventing duplicates? (Ill be using in a solver, finding more and more points as it progresses)
I've figured out a way to do the reverse (see below)- Comparing Array1 and Array2, pushing the duplicates to a separate array and then using this to remove the values from a combined Array1&2 - but this seem a but long winded or inefficient?
i[]@pointsArray1 = {0,2,7,8,10}; i[]@pointsArray2 = {0,3,5,7,8,11,15,16,10}; i[]@newArray; //Compare both arrays and extract the duplicate values foreach (int num; i[]@pointsArray1){ for(int i = 0; i<len(i[]@pointsArray2);i++){ if(num == i[]@pointsArray2[i]){ push(i[]@newArray,i[]@pointsArray2[i]); } } } //Combine both arrays into one push(i[]@pointsArray1,i[]@pointsArray2); //Take the know duplicates and remove from the combined array for(int i = 0; i<len(i[]@newArray);i++){ removevalue(i[]@pointsArray1,i[]@newArray[i]); }
Any thoughts much appreciated
-
- Quick Links