st-tech / st-tech/ppf-contact-solver
[Bug] Capture Deformation on SOLID object with character rig causes inconsistent pin behavior
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.5k
- Forks
- 334
- PR merge metrics
- No merged PRs in 30d
Description
Summary
Hi,
I'm trying to use a rigged character as a SOLID object. The character is animated through an Armature, and I use Capture Deformation so that the pins follow the motion.
However, I'm seeing inconsistent behavior:
When I create a pin and use Capture Deformation, sometimes the pin does not react to the rig animation at all.
If I select multiple pins and run Capture Deformation, some pins follow the rig correctly, while others remain fixed in their original position.
During simulation, the mesh stretches because only part of the pins are moving.
The object is deforming correctly in Blender, and a deformation cache is created (for example, "Pin cache: 45 frames"), but the captured motion is not applied consistently to all pins.
My setup is:
Character driven by an Armature.
Character assigned as a SOLID object.
Pins created on the mesh.
Capture Deformation used to record the animation.
Is this expected behavior, or am I missing an additional step? Are there any known limitations when using multiple pins with deformation captured from an Armature-driven mesh?
Thank you.
Steps to Reproduce
Create or import a character mesh driven by an Armature
Assign the character as a SOLID object.
Create multiple pins on different areas of the mesh.
Select the pins and click Capture Deformation.
Move the timeline or run the simulation.
Expected Behavior
All pins should consistently follow the deformation produced by the Armature animation. During simulation, the pinned regions should move together with the rig without stretching the mesh.
Actual Behavior
Only some pins react to the captured deformation. Other pins remain fixed in their original position. As a result, the mesh stretches during simulation because some pinned regions move while others stay static.
In some cases, a single pin does not react to the captured deformation at all.
A deformation cache is generated (for example, "Pin cache: 45 frame(s)") and the operation [Embedded] Move (Captured) appears, but the captured motion is applied inconsistently.
Environment
OS: Windows 11
Blender Version: 5.1.2
Solver Version: ppf-contact-solver-2026-06-01-13-25-win64
Animation Source: Armature
Object Type: SOLID
Contribution Agreement
- I confirm that any code, patches, scripts, attachments, or other copyrightable material I include in this issue may be used, reproduced, modified, and distributed by this project under the Apache License 2.0 or as otherwise described in CONTRIBUTING.md.
- This is a bug report from the community (please provide a reference below).
Community Reference
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with an Armature-driven mesh assigned as a SOLID object, multiple pins, and Capture Deformation. Inspect the Capture Deformation operation and the '[Embedded] Move (Captured)' result alongside the pin cache, then verify that every selected pin follows the animation without stretching during simulation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- blender, python
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100