Click the flag to generate a new curve. Use WASD to move the camera, SPACE and C to move the camera up and down, and the arrow keys to rotate it. Purple dots show the control points. It's still pretty janky, so bear with me lol Any jiggling you see in the line is a result of the how I limited the quality of the rendered curve based on time intervals, so if the curve has to draw at a lower quality to maintain performance it may flicker but keep to a shape similar to the actual curve. Higher values of n, the number of control points, will cause lower performance as there are more points to compute.
I have this crazy idea for textures where a raster is computed from 2 2D bezier curves that define depth across a normal plane, in order to give textures better depth and lighting than what bump maps and normal maps can provide. It'll probably never come to Scratch if I manage to make it work, but I got an algorithm for 1 curve here that supports n-points!