From BlenderWiki
< Dev:Source | GameEngine
[edit] Bullet Soft Bodies in the Blender Game Engine
[edit] Overview
From Blender 2.48 onwards, the game engine features Bullet soft body simulation. Here is some information about features and how to use them.
[edit] Soft Body Features
- Flat cloth or volumetric soft bodies
- Control over mass, friction, stiffness, shape matching and collision detection settings
- Collision detection beween soft bodies as well as rigid bodies and static collision bounds of all types.
- Attaching soft bodies against rigid bodies or using fixed pinning
- Physics Debug Visualization of the dynamic soft body structures
- Dynamically create new soft bodies using the Add Object Actuator
[edit] Sample files and feedback
- Download some example .blend files for soft bodies (1.5Mb)
- Download the bathroom .blend file, (14Mb)
- You can discuss/provide feedback at this BlenderArtists topic.
- More information about Bullet soft body simulation at http://bulletphysics.com
[edit] Creating a Bullet soft body
- Game Buttons: choose between static, dynamic, rigid body or soft body
- Choosing collision shape bounds for soft bodies
- The bounds type for soft bodies are automatically restricted to convex hull or triangle mesh bounds.
[edit] Basic Soft Body Setting
- Linear Stiffness: lower values create very flexible soft bodies, and larger value (1) more stiff. Note that the shape matching feature and bending constraints will still keep extreme flexible bodies in shape.
- Shape matching: If this option is enabled, Bullet will remember the original shape of each soft body, and tries to match the shape of a soft body, no matter how large the deformation has been.
- kMT Shape mathing coefficient: how strong the soft body will return to its original shape. This only appear when the Shape Matching option is enabled.
- Friction allows to control the dynamic friction for soft bodies, in the range [0..1]. 0 means no friction, soft bodies will slide.
[edit] Advanced Settings
- Use Clusters: collision clusters can improve the collision detection, and it can avoid soft bodies passing through triangle meshes. Instead of colliding between individual vertices/nodes and faces, deformable convex clusters can be used. You can choose to use clusters between soft bodies, or between soft body and rigid body.
- Cluster Iterations: Higher values will create more detailed collision clusters. If you choose 1 it will use a single cluster using all vertices. This setting is only used if Clusters RB / SS is enabled.
- Position Iter: position solver iterations. Use a higher value to improve the quality of position correction for soft bodies.
[edit] Pinning or attaching soft bodies
- You can use the Rigid Body Joint to attach a rigid body against a soft body. Similar to rigid body constraints, you can also pin/fix a soft body to make a vertex non-movable: just don't provide a second attachment object, or attach to a static object.
- Right now, vertex groups are not supported, so you have to use Rigid Body Joint constraints.
- Select a single soft body, or both a soft body and rigid body, using the Rigid Body Joint button:
- Enable the Show Pivot to see where the soft body will be pinned (px/py/pz frame). Bullet will automatically take the closest vertex/node to this pivot point.
- You can use multiple constraints to pin/attach multiple parts of the soft body.
- Use No Col button to disable collision detection between bodies connected by constraints. This might avoid instability and jitter between connected bodies.
- Python constraints can be used to create soft body constraints while the game is running. However, currently you cannot remove those constraints on-the-fly.
[edit] General soft body tips and some known issues
- Add Object Actuator can be used to dynamically add new soft bodies.
- Only the applyForce in the motion actuator is enabled. setPosition, constraint actuator and other logic doesn't work with soft bodies.
- Soft body option will draw objects as 'smooth', because it always updates both vertices and vertex normals.
- Subdivide the soft body triangle mesh to allow some deformation: go into edit more, select all vertices (A) and hit subdivide.
- UV Sphere meshes are not compatible with soft bodies, so use a Ico sphere instead.
- If the mesh is too detailed, simplify the mesh using mesh decimation:
- Blender 2.48 performs no collisions between soft bodies that have Clusters enabled, and soft bodies that have Clusters disabled. This will be fixed in future versions.
- Use Show Physics Visualization to debug issues with soft bodies, collision shapes etc. Enable the setting in the game menu:
- When running the game with Show Physics Visualization enabled, you will notice the complex dynamic structures for soft bodies.
- Self-collision is not currently supported.
- There are no python bindings to control soft bodies, and no logic brick support, except for apply force and add object actuator.
- Soft body / cloth objects don't support the collision/near/radar sensor.
- There is currently a large gap/margin between cloth and collision objects. There is no control over this gap right now, it might improve in later/future Blender versions.
- Don't use scaled meshes. Instead, use the Apply Scaling feature, or Apply Scale and Rotation by selecting the soft body object and pressing <CTRL> A:
















![[]](/skins/blender/open.png)
