This is an attempt to generate procedural noodles that does not overlap with itself.
The noodle’s algorithm uses a repeat zone to scale a curve by length, using the last endpoint that is raycasted down onto a plate to spawn a collision mesh for each iteration so that each subsequent iteration also takes the collision meshes into consideration when they are
raycasted down. Once the entire length of the curve has been completed, the instanced collision meshs’ are converted back into points, and then back into curves for the spaghetti generation. The self collision is about 90% accurate with the exception happening where curves converges at the same time which may spawn collision meshes incorrectly. One of the challenges is to keep the system optimized and performant when generating the noodles. Admittedly, it gets laggy as the amount of noodles increases. The next step/challenge is to create algorithms for differently shaped noodles (that are not round) such as fettucine and have them able to mix and work together.
The other elements are also procedurally generated along with their materials (except for the Parsley leaves).
Of course, the application of this algorithm is not limited to noodles but can be used on assets such as cables/wires/hoses/vines/etc.
Made in Blender 4.1 and rendered with Eevee.
Please visit artstation link for more video insights on how the algorithm works!