Skip to content

Add tapered capsule as mesh and physics shape #12875

@fire

Description

@fire

Describe the project you are working on

V-Sekai development community focuses on providing social VR functionality for the open source Godot Engine.

We want to implement KHR_physics as some point as a glTF2 extension.

Describe the problem or limitation you are having in your project

Tapered capsule is a dependency of KHR_physics. Implementing KHR_physics allows us to have a path from blender to import physics and collision properties.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Recording.2025-07-26.161231.mp4

https://github.com/eoineoineoin/glTF_Physics/tree/master/extensions/2.0/Khronos/KHR_implicit_shapes#gltf-schema-updates

A capsule (cylinder with hemispherical ends) centered at the origin and defined by two "capping" spheres with potentially different radii, aligned along the Y axis in local space.

Add this type of tapered capsule to Godot Engine.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Jolt added tapered capsule jrouwe/JoltPhysics#1241 and we already use a release of that pull request on jolt.

My current plan is to make a new tapered capsule classes for shape (physics), mesh (mesh instance 3d).

I will test that CSGMesh3D will be able to import tapered capsule meshes as CSG.

We cannot reuse the height value of the existing capsule classes due to a different definition so for new developers it would be confusing to reuse the existing capsule classes.

We can handle the conversion internally I think for KHR_physics.

If this enhancement will not be used often, can it be worked around with a few lines of script?

Not a few lines of script.

Is there a reason why this should be core and not an add-on in the asset library?

If we want to have full support of KHR_physics, we'd need to have this in the engine source code rather than a gdscript or gdextension addon.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions