Project curve on animated mesh

Hello Hello,

I am trying to project a bunch of curves I made from grasshopper, to a mesh animated through marvelous designer using node geometry.
This in order to create flat meshes that I will be able to texture as threads.
For that, I duplicated the animated mesh and freezed it on first keyframe. This is because my curves are designed according to the first keyframe.

Question : How to project/ hook a curve on a mesh?
While using proximity node and set position, the curve is fluid and behave like shrink warped. BUT then i can’t use the information from this node to project the curve on the animated mesh (the curve is still but the mesh moves). Cf first image joined

I tried with nearest geometry to then transfer the attributes through nearest index (the freezed and animated meshes have same topology) BUT of course is snaps to the nearest vertex (or face) and then curve becomes “toothed” and non fluid.

  1. I thought of finding for each point of the curve, the 3 closest vertices to “hook” each points to a plane defined by each group of 3 vertices using a distance range. And then transfer the position to the animated mesh. I feel I am very far from finding the workflow.

3.I also thought of using UV sampler to transfer the ‘geometry proximity’ / position, to the animated mesh. But I can’t figure a workflow for this.
Maybe someone has an idea ? thank you !!

1 Like

The curves are basically sets of edges from the deformed mesh?

I would reference the deformed object in GN and mesh-to-curve.

Hey,

Thank you for your answer.
The curves are not from mesh edges. They are separate Géométries I made on another software (rhino/grasshopper) . They correspond to a pattern of 2d curves projected on the freeze mesh. I imported the set of curve seperarly as an obj file.
In the image joined you see that the curve was modified to fit the mesh edges. Because of the node I used (nearest). But originally they are kind of bezier like.

Well, then I’d say surface deform. You can’t surface deform directly onto a curve object, for whatever reason, but you can surface deform on a mesh string that’s the same shape, and then use GN to turn that string into a curve. Depending on what you want the handles to do.

Not sure I understand wha you are saying.
I created a file with a simplified version of what I am trying to achieve
Here is the link if u have time.

  1. Duplicate your curve, convert to mesh, give it a surface deform modifier targeting the appropriate mesh, bind:

  1. Make a curve object, give it a GN modifier like so:

  1. We see that the curve object follows the mesh string (since it’s created from it) and the mesh string follows the animated surface (via its surface deform modifier):

  1. Do whatever you want to do with your curve object.
1 Like

Thank you very much !! that’s awesome ! The thing with this method is I don’t have control over the definition of the curve because i transformed it as mesh before. But for my purpose now it’s perfect!

Only issue now is in order to get some uv’s and apply a texture to it, I converted mesh to curve as you suggested and then curve to mesh with circle base. When I apply this last modifier (to work on uvs), I loose the binding.

There are two different objects. One is a mesh object. The other is an object that echoes the mesh object as a curve.