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.
Skin Smoothing
Each vertex is pinned to its own region's bone at 0. Above it, nearby bones pull too, fading with distance, so the surface bends smoothly across region borders instead of kinking at each one; 1 is the softest. Baked into the weights at generation. Tears still open: when a joint breaks, each side's vertices drop the other side's bone.
How a patch rotates
The bodies rotate freely and that rotation is not used. Each bone is instead rotated to the best rigid fit of its own neighbourhood onto its rest layout, so adjacent patches agree on how the surface bends. Nothing to configure.
Debug draw
The Debug Draw flags on the node draw on top of the texture, in the editor and in game:
- Joints: coloured by load, blue slack to red at the break threshold (or the peak seen so far when nothing breaks). Reaction force with Rapier, stretch otherwise. Interior joints are drawn against their own higher threshold.
- Shapes: the collision shapes, green normally and orange once their body has left the softbody.
A CollisionShape2D only draws itself when the scene tree's collision debug is on, which it never is in a running game; these flags work everywhere.