godotengine / godotengine/godot

RigidBody3D can trivially clip through StaticBody3D with trimesh collision shape.

Open
#116,257 7 comments 0 reactions 0 assignees View on GitHub
discussion documentation topic:3d topic:physics
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

v4.6.stable.official [89cea1439]

### System information

Godot v4.6.stable - Manjaro Linux #1 SMP PREEMPT_DYNAMIC Sat Jan 31 00:26:06 UTC 2026 on X11 - X11 display driver, Multi-window, 3 monitors - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 (nvidia; 590.48.01) - 11th Gen Intel(R) Core(TM) i5-11600K @ 3.90GHz (12 threads) - 15.48 GiB memory

### Issue description

A RigidBody3D being pushed into a StaticBody3D with a trimesh collision shape will easily and consistently clip through as long as it has a little bit of angular velocity. It can clip at lower linear velocities with higher angular velocities. Enabling Continuous CD does not prevent this.

Tested mainly on Jolt but it happens even more easily on GodotPhysics as well.

My use case might seem a little weird since I am setting the velocities directly in `_integrate_forces()` instead of applying forces.

### Steps to reproduce

1. Open MRP
2. Press Space

### Minimal reproduction project (MRP)

[trimesh-clipping-mrp.zip](https://github.com/user-attachments/files/25297924/trimesh-clipping-mrp.zip)

Contributor guide

Open the contributing guide

Research direction

Open the linked minimal reproduction project and press Space to reproduce the clipping. Compare the behavior with Jolt and GodotPhysics, focusing on the RigidBody3D `_integrate_forces()` velocity updates, trimesh collision, and Continuous CD setting. Done means the reproduction no longer lets the body clip through the StaticBody3D.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.