Skip to content

SoftBody3D's Position Influences its Physics in Jolt #112348

@ForgivenAutonomy

Description

@ForgivenAutonomy

Tested versions

Reproducible in: 4.5.1.stable and 4.4.1.stable

System information

Godot v4.5.1.stable - Windows 11 (build 26100) - Multi-window, 1 monitor - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3080 (NVIDIA; 32.0.15.8157) - 12th Gen Intel(R) Core(TM) i5-12600K (16 threads) - 31.79 GiB memory

Issue description

When moved away from the origin, a SoftBody3D's physics behaviors can change in Jolt Physics. Specifically, this behavior is either exclusive to or most easily visualized with pressurized soft bodies that have been moved a certain distance on all three axes.

For example, the soft body in this video is pressurized (20.0) and has been moved away from the origin (100, 26, -100).

soft_body_repro_video.mp4

The sphere seemingly cannot decide if it should compress or expand, resulting in strange physics.

Note that there are many different knobs to turn when it comes to SoftBody3D nodes, ranging from its own properties to the project's physics tics per second, to the mesh used. I've simply set some properties for the soft body that I felt showcased the issue well. The main thing to keep in mind is that, of all the things that can influence a soft body, position does not seem like it should be one of them at such relatively small distances. Also, while I have not tested exhaustively with double precision, it does not seem to fix the issue.

Steps to reproduce

Run the attached project to see the weird physics.

Optionally, you can move the objects in the scene to see that the behavior is different when nothing is changed except the position. The physics are much calmer at the origin. In fact, even if only the y axis is changed to zero, there is a very noticeable difference despite the distance to the origin not changing by very much.

Minimal reproduction project (MRP)

softbodypositionrepro.zip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    For team assessment

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions