WARNING: This project is severely unoptimized, and is probably slower than other Bezier-Curve-Rendering projects on scratch. Instructions: Drag the points around Space to add another point Up and Down arrow keys/scroll wheel to increase/decrease resolution If line segments are visible increase the resolution. It's very likely that you don't understand my explanation so just refer to the internet, it's much easier to understand with visuals than with just words. If you don't know what Bezier Curves (or Bézier Curves) are they're the best and most common way of rendering curves (as of now), you'll find them in most vector editors, including the one in scratch. You can manipulate the line in almost any way you want, and is infinitely scalable, which means you can zoom into it as much as you want without any clarity loss, which isn't possible in raster images. For more information, you can refer to the internet. How these work: Basically there are multiple points on the screen, one of which is the start and one is the end. Say there are four, you can connect the first point to the second, second to the third and third to the fourth. Imagine a point on each of these lines. Now we can add a single variable for all these points, which as a range between 0 and 1, or 0% to 100%, and would tell the position of the point on the line. Note that there is only one variable that is applied to all the line segments. Imagine the lines we connected as a path, each line is a segment of that path. The variable tells us how far we are on the segment of the path (not the full path). So if the variable is 0.5, or 50%, the point is 50% on the line segment (Important: NOT the full path from the start to the end, just the segment that connect the two points), that is the point can be placed halfway on the line. 25% is closed to the first point and 75% is closer to the second point. Now when we do this to each of the line segments, we have 3 points, one less than the initial 4 that we took. We can connect each of these points, repeat the whole process again, and be left with 2 points. So we do everything until we just have 1 point. Now lets go back to the variable, we can interpolate between 0 and 1 to get different positions of the last remaining point. While interpolating, we can trace a line using the point, which is a smooth curve. By moving the first and the last point, we can change the place where the line starts and where it ends, and by moving the rest of the points, we can change the path of the line. If you didn't understand, just look up the internet. I referred to a few videos to understand it, cuz I barely had any idea about how it worked initially, but it was simple to understand later. Inspiration: - Bezier Curve Editor I don't recall the name of the person, but another guy made a similar project that supported infinite points. Initially I needed a blob animation for a project last month, but animating a blob was really hard without any code, so I thought of using Bezier curves. Use Turbowarp for higher performance: https://turbowarp.org/1263889499?hqpen&clones=Infinity