Transforming a lissajous curve along a given input curve

   1115   12   1
User Avatar
Member
6 posts
Joined: Jan. 2021
Offline
Hello everyone,
I want to create braids in Houdini and found this paper from Pixar (https://graphics.pixar.com/library/Cornrows/paper.pdf) in wich they shared a formular to create the braids.
I managed to get the x and y coordinates working as I basically had to copy the function into VEX but now I struggle with getting the z coordinate. I tried several things but I am either a math nor a VEX expert so every help would be gratly appreciated!
As I mentioned I have the lissajous curve but with my solution the rotation along the input curve seems off and everything is still two dimensional.

Attachments:
Screenshot (119).png (315.1 KB)

User Avatar
Member
477 posts
Joined: July 2005
Offline
You are probably looking for pathdeformation.

Attachments:
braid_pathdeform.hipnc (224.9 KB)

User Avatar
Member
181 posts
Joined: Aug. 2018
Offline
This might also be of interest: https://patar3d.gumroad.com/l/NRegC [patar3d.gumroad.com]
User Avatar
Member
6 posts
Joined: Jan. 2021
Offline
First of all thank you very much for your replies!
I tried it with the curve deform but it is not working. I think it is because of the lassajous curve still being two dimensional and not already extruded along a line which than can be deformed by the path deform.
Maybe there is a way to do this in VEX with quaternions probabily because everything is dependant on the input parameters and even if the path deform would work somehow I guess it would not hold up in the long run.
Anyways thank you for investing your time in my problem!
Here is what I did and where I am at:

Attachments:
Screenshot (120).png (300.0 KB)

User Avatar
Member
477 posts
Joined: July 2005
Offline
In your wrangle v@P.z is always zero. Maybe you set v@P.z to @curveu and make sure, that the path deformer has forward direction Z.
User Avatar
Member
6 posts
Joined: Jan. 2021
Offline
Yeah that made the curve deformer working as it should. Thank you for that!
But again now I have one strand (all three n strands in one) and not seperated as it shpuld in a braid...
User Avatar
Member
477 posts
Joined: July 2005
Offline
try float cast on i@copynum (like float(i@copynum + 1) / n) and make sure, that copynum attribute exists.
User Avatar
Member
6 posts
Joined: Jan. 2021
Offline
Hey everyone,
so I have been working on this for the last days and I managed to deform the lissajous curve along the input curve via orthonormal frames (all in VEX) but now I ran into another problem.
It seems like the input curve is devided into segments resulting from its control points (although the curve has been resampled) which leads to seemingly different frequencies.
If anyone could help it would be gratly appreciated I am running against a wall here.

Attachments:
braids.hipnc (174.9 KB)
braid_segment_error.png (1.3 MB)

User Avatar
Member
4523 posts
Joined: Feb. 2012
Online
Your curveu is not computed correctly by the Resample SOP. Add another Resample node after the first one without resampling but to compute curveu only:

Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
User Avatar
Member
6 posts
Joined: Jan. 2021
Offline
Oh wow that was an easy fix.
Thank you so much!
Small question how did you overlay your viewport over your nodes seems very efficient in terms of space usage?
User Avatar
Member
4523 posts
Joined: Feb. 2012
Online
createdbybenm
Oh wow that was an easy fix.
Thank you so much!
Small question how did you overlay your viewport over your nodes seems very efficient in terms of space usage?

It's a custom Python Qt extension:


You can see it in more detail here (around 30 min mark):


If you like to see this added to Houdini, please submit an RFE to SESI and reference RFE ID #101685.
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
User Avatar
Member
6 posts
Joined: Jan. 2021
Offline
I would love to see this in vanilla Houdini but I'm sorry I dond't know what you mean with rfe and sesi?
User Avatar
Member
4523 posts
Joined: Feb. 2012
Online
createdbybenm
I would love to see this in vanilla Houdini but I'm sorry I dond't know what you mean with rfe and sesi?

I meant submitting a feature request here:
https://www.sidefx.com/bugs/#/create/ [www.sidefx.com]

That's how SideFX (SESI) collects bugs and requests for enhancements (RFEs).
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | pragmaticvfx.gumroad.com
  • Quick Links