chandlerprall / GoblinPhysics

Collision Detection & Response in JavaScript
http://www.goblinphysics.com
Other
147 stars 18 forks source link

PointConstraint object_b jacobian fix #61

Closed denisjarus closed 8 years ago

denisjarus commented 8 years ago

PointConstraint object_b jacobian fix

chandlerprall commented 8 years ago

Nice! Curious how you caught that?

denisjarus commented 8 years ago

Well, I just need a javascript physics engine, so I was looking for any that I could like. Hate using things without understanding how they work inside. Hate needlessly overcomplicated architecture or unreadable code, I'm kinda hard to please. This is why I often end up creating my own solutions and I certainly hate myself for that. But because of that, I know how graphics engines and physics engines do, or at least, should do their job. So I was inspecting PointConstraint class, checking if all the math and logic is alright and found that little typo. Thought it was my duty as a programmer to fix it and fire a pull request, because it was somewhat unlikely someone else would ever notice such a bug any time soon. Happy to help, the engine is great and is the only one I've seen which handles concave mesh / primitive collision the right way, through gjk with bvh acceleration. Still thinking if I should just use GoblinPhysics or does the dropped dependency for glMatrix bothers me too much (see, I do trust those guys and I've even dropped my own oop-style math solution for theirs in my 3D graphics engine recently)

chandlerprall commented 8 years ago

Well, thanks again for catching it and submitting the PR. I ended up moving away from glMatrix as the OOP math approach became faster in v8 / SpiderMonkey and people are more familiar using the .xyz format over [012]. Hope you find something you like, and Goblin code is zlib license so you can pull any bits of if you like into another project.

denisjarus commented 8 years ago

It's just too bad you have to use two math solutions in a project with graphics and physics engines. One might lack something the other has, and additional processing time is spent converting data between them.