Now that we have new points growing into the curve smoothly, instead of adding one point, let’s add a bunch!

Continued from Rope Physics, growth v2

017-rope-solver-grow-v3.png

Let’s try doubling the length of the curve.

Every 48 frames, subdivide the curve and add give the new points a small radius.

There isn’t a built-in way to get the new points created by a subdivide. Curve point attributes are interpolated, which is useful for some things, be we want these new ones to start small, so they can grow and nudge their way in without making everything pop away.

image.png

The workaround to find new points was to add a float attribute “original_index” set to the index at the start. Then when those are interpolated, the original points are whole numbers. This doesn’t work between the last and first index, in the screenshot you can see 56, 28, 0.

Hints?

Oh, the new points are odd. This is simpler:

image.png

Subdivide the curve, and set the odd points to have a small radius (1/20th).

Set up my Blender Stack Exchange, since I have found some helpful answers there through this process. https://blender.stackexchange.com/questions/330020/subdivide-curve-then-select-the-new-points

So the whole “growth” logic, which only grows the curve when combined with the physics simulation, looks like this.

image.png

Every 48th frame, take a subdivided version of the curve. Every frame, grow all point radius that are smaller than their other_radius.


Here’s how it shakes out!

017-rope-solver-grow-v3.mp4