Something that may get you started:
The order of the steps and of the modifiers is important.
-
create a low-poly cylinder and add subdivision. Do not change the shape yet
-
use a mesh line (not a curve) with subdivision to create a single instance of the curvy structures, and make sure it is placed right in front of the cylinder
, but make sure the object origin is on the cylinder axis
-
add an empty and an array to the curvy structure using this empty to create a mirrored version of the mesh-curve. Make sure that the mirrored version is on the other side of the cylindrical surface. The mpty needs to have rotation of 180° around the z-axis
-
Add an empty on the axis of the cylinder and a second array with the empty as target, rotate the empty around the z-axis and choose a mathcing number (e.g. 12 with a rotation of 30°)
-
Add a surface deform modifier to the mesh-curve with the cylinder as a target. Press Bind.
-
change the cylinder shape however you want, as you see, the mesh-curves will deform with it, due to the surface deform modifier:
-
add a shrinkwrap modifier to the mesh-curves with the cylinder as target and adjust the offset:
-
add a geometry node modifier to convert the mesh-curve to an actual curve and add a profile:
If you want to adjust the overlap, unbind the surface deform modifier, return the cylinder to its original shape (maybe use shapekeys) leave the other modifiers on (make sure they are visible in edit mode) and edit the mesh in edit mode.
Be careful not to have the mesh or its mirror cross the cylindrical surface!
Final result after some tweaking:
For aligning the curve tilt, see this thread:
Edit: Blendfile (3.3.4)
wirey_vase_3.3.4_v01.blend (1.8 MB)