XPBD implementation / haptics - Printable Version +- Obi Official Forum (https://obi.virtualmethodstudio.com/forum) +-- Forum: Obi Users Category (https://obi.virtualmethodstudio.com/forum/forum-1.html) +--- Forum: Obi Softbody (https://obi.virtualmethodstudio.com/forum/forum-12.html) +--- Thread: XPBD implementation / haptics (/thread-2990.html) |
XPBD implementation / haptics - donfre - 24-06-2021 Hi, I just bought the Obi Softbody and started to play with it. It was a more extensive library that I expected, it looks well done at a first glance. I want to try to use this package with haptic devices. I read another thread in this forum about haptics, where it is mentioned that the collision data can be subscribed to, like the depentration impulse, and friction impulses. This is mentioned also in the online manual. It looks good so far. What I'm trying to find out now are some details about the implementation and how close it is to the XPBD original paper (Muller, Macklin ...). More specifically, I wonder if the mentioned "collision impulses" are in Newton-seconds or in Newtons, or even something non-physical? Thanks, DonFre RE: XPBD implementation / haptics - josemendez - 25-06-2021 (24-06-2021, 07:24 PM)donfre Wrote: What I'm trying to find out now are some details about the implementation and how close it is to the XPBD original paper (Muller, Macklin ...). More specifically, I wonder if the mentioned "collision impulses" are in Newton-seconds or in Newtons, or even something non-physical? Hi, Obi is a full XPBD implementation. In our webpage you can see a comprehensive list of all research articles implemented by Obi: http://obi.virtualmethodstudio.com/references.html The XPBD formulation for contact constraints simplifies to regular PBD though, as contacts are non-compliant (meaning they are perfectly stiff). All quantities in Obi are expressed using SI units: distances in meters, masses in kilograms, forces in Newtons, time in seconds, etc. The normal impulse is expressed as a lagrange multiplier. Frictional impulses are regular impulses though. To get both in the same units, you need to multiply tangent and bitangent by the timestep size (or, divide the normal by the timestep size). Impulse != force. Impulse = Force x Time. To convert an impulse to a force you need to divide by the time delta. Similarly, a lagrange multiplier (also known as "lambda"): Lambda = Impulse x Time. So, Lambda = Force x Time x Time. To convert a lagrange multiplier to a force, you divide by time squared. Force = Lambda / (Time x Time). Let me know if I can be of further help. Kind regards, RE: XPBD implementation / haptics - donfre - 27-06-2021 (25-06-2021, 08:10 AM)josemendez Wrote: Hi, Thank you for your comprehensive answers, Jose! They answer all questions I have for the moment, and the implementation is made in the way I was hoping for. This should be useful for the haptics implementation. Great, thanks! Best Regards, DonFre |