📄️ Regions
A softbody is formed out of multiple regions. In order to view the regions, enable the Draw Regions checkbox:
📄️ Shapes
Each region of the softbody has one collision shape, on its rigidbody. To see them, turn on Shapes in Debug Draw, which works in the editor and in game:
📄️ Rigidbodies
Each region of the softbody is a rigidbody. The actual hierarchy inside the node is as follows:
📄️ Joints
The bodies of the softbody are held together by joints. Every body is jointed to its neighbours in the region grid (six of them inside a hexagon softbody), and by default also to the bodies two hops away. Together the joints decide how squishy the softbody is, how well it keeps its overall shape, and where it can tear.
📄️ Breaking and cutting
A softbody tears when its joints break. Every physics step each joint is checked against the selected criterion, at most Max Breaks Per Step breaking per step. The texture splits along a broken joint, so the tear is visible.
📄️ Skin and debug draw
The SoftBody2D node is a Polygon2D deformed by a Skeleton2D with one Bone2D per region. A RemoteTransform2D moves each bone to its rigidbody, and vertices on the border between regions are weighted to both bones, which is what keeps the surface continuous.
📄️ Physics engines
SoftBody2D builds ordinary Godot nodes, so it runs on Godot Physics and on Godot Rapier Physics alike. What differs:
📄️ Scripting
Everything a SoftBody2D generates is ordinary Godot nodes, so you can reach in and use them directly. The full list is in the Class Reference.