ATTENTION! If this project lags, go here: https://turbowarp.org/607913778/ Part 2 has been released: https://turbowarp.org/858024125/ Normies: Click and drag to throw the squishy square. Change the air friction, ground friction, and gravity. Remixers: Use the "add dot" and "add stick" blocks to make your own shapes. Look inside the project for more details. Also, when specifying the startPoint and endPoint for a stick, use the index of the dot in the lists such as "dot x" and "dot y".
It's not too hard to comprehend, basically the dots use something called "Verlet Integration" (pronounced ver-ley) to update their positions. The sticks, well, they use a lot of math, but they do their job. For anyone wondering about simulating rigid bodies, it is impossible (like in real life), but if you update the sticks enough in between frames then you can get pretty close. UPDATES: 11/28/21: Added ground friction for the ceiling