ExtrudeGeometry bevel fails with high negative bevelOffset (shape with a hole)


As the title says I have problems bevelling with a high bevelOffset. So far it seems that this problem only occurs with shapes that contain holes.

Here’s an example: https://jsfiddle.net/yxcskwdz/14/
The inner radius is 32, the outer radius is 40 and the bevelSize and bevelOffset are 3 and -3 respectively (the offset is needed to counter the bevelSize so the shape does not become bigger).
Now since the width of the ring is 8, a bevel of 3 should not cause a problem. However as you can see in the example, the resulting geometry is a mess.

I also tried doing a simillar example but instead of setting the bevelOffset I lowered the initial radii of the two shapes. I changed the inner radius to 35 and the outer radius to 37. That way when the bevel of 3 is added, the resulting geometry has the desired size. https://jsfiddle.net/0cujsvtf/26/

This example works flawlessly which leads me to the conclusion that it is a problem with bevelOffset. I don’t know whether this is a bug or whether I am just using something incorrectly.

Not every bevel parameter combination makes sense with a given geometry. Do you mind sharing a screenshot of how the result should look like?

Both of the examples should result in the same geometry (if we don’t consider the depth). The first one has higher difference in the radii (40, 32). The second example has a smaller difference (37, 35) but is then expanded by the bevel (since the negative bevelOffset is not present).

EDIT: Added a screenshot of the second example just in case:

There is indeed a problem with negative bevel offset however there is already an issue at GitHub tracking it:

Interesting. It seems that there hasn’t been any new information about the issue for almost a year. Are there any plans on resolving it?

I’m afraid this issue does not have a high priority. Especially since there are workarounds.

What workarounds do you suggest? I know that in the example above the workaround is pretty simple but for more complex shapes with holes this kind of workaround is not an option.

True, the workarounds do not apply to all use cases.