Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for Anisotropic Friction #1216

Open
nordstream3 opened this issue Aug 13, 2024 · 1 comment
Open

Request for Anisotropic Friction #1216

nordstream3 opened this issue Aug 13, 2024 · 1 comment

Comments

@nordstream3
Copy link

nordstream3 commented Aug 13, 2024

In Bullet Physics you can do Anisotropic Friction - meaning that friction e.g. is less when you slide forwards, and more when you slide sidewards. That is, friction has both a X and a Y component.

This is very nice if you simulate a skater skating on ice, but also has its application in e.g. mobile robots.

You can simulate/fake an Omni-directional wheel and a Mechanum wheel by using Anisotropic Friction.

@jrouwe
Copy link
Owner

jrouwe commented Aug 13, 2024

I have looked into this in the several times in the past. It would require storing 2 direction vectors per contact constraint, which would cost quite a bit of memory given that there are a lot of contacts and we allocate for the worst case to avoid runtime allocations. A big refactor is needed to make it so that we would only incur this cost if the feature actually gets used. Personally, I have never needed it, so I feel it is a relatively rare use case.

The best thing you can do for now is to implement your own ContactListener as in the FrictionPerTriangleTest. You could modulate the friction based on the velocity of the object. I realize that this is not quite the same.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants