Mesh picking doesn't support skinned meshes
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 16h
- Merged PRs (30d)
- 171
Description
## Bevy version and features
`0.18.1`
## What you did
Try to use mesh picking on a skinned mesh (animated character).
## What went wrong
The results of picking don't align with the mesh as seen by the camera.
You can see the result of picking using the mesh picking debug tool below.
https://github.com/user-attachments/assets/8e550c74-c36c-4fa1-bb33-386b5ae82ff9
## Additional information
The mesh skinning issue was suggested by Greeble [on discord](https://discord.com/channels/691052431525675048/885021580353237032/1482315753125445692).
> `Greeble` — 14/03/2026, 20:53
> Is it just the character that's wrong? And the character is a skinned mesh? Mesh picking doesn't account for skinning, so it wrongly uses the bind pose of the mesh.
>
> `Greeble` — 14/03/2026, 21:01
> In case it's useful, I have some [example code](https://github.com/greeble-dev/bevy_mod_skinned_aabb/blob/9e4556114df9ab528c2c9ebc1358dc20266d655a/dev/dev.rs#L696) for creating a Mesh from the skinned pose of a mesh. You might be able to use that to do manual picking, or plumb it into the regular picking.
Contributor guide
Research direction
Start with Bevy's regular mesh-picking implementation and the mesh-picking debug tool, then compare their geometry handling with the skinned-pose example in dev/dev.rs around line 696. Done means picking results align with the animated skinned mesh rather than its bind pose.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100