I have a complex Bézier curve object (20k control points), with all points in the XY plane.
I have a complex terrain mesh (20M faces), which is (mostly) a grid in the XY plane, with varying heights on the vertices.
I want to edit the curve object, and move each control point down (-z only) until it is sitting on the mesh below. Like dropping wet spaghetti onto the ground. Draping the curve over the mesh. (Though, to be fair, I said "-z only", which means the lengths of these strands will change. That's desirable; I don't want a physically-accurate simulation that preserves strand length, or lets the noodles slide down the side of a mountain.)
Does Blender have a mechanism for doing this (other than a ~complex script and a lot of processing time)?