Beta 19. Lots of cool stuff.
- multithreading
- crazy performance difference from 1.53, even with a single thread
- ray cast, convex cast, and multi-body vehicles
- extremely powerful custom joints (you can do pretty much anything with these, not just your classic constraints)
- hundreds of bug fixes from 1.53
- improved contact processing (single callback takes care of all contacts)
- separation of collision utilities from dynamics, Newton can be used as a separate collision engine with no dynamics
- boxes, spheres with non-uniform scaling, cones, capsules, cylinders, chamfer cylinders, convex hulls (any # of vertices), 'concave hulls' (any # of separate convex pieces), non-dynamic (but not necessarily static) tree collision ('trimesh' as others call it), non-dynamic custom user collision, non-dynamic terrain collision
- 'kinematic' bodies - currently requires some slight manual work, but any non-dynamic body with 0 mass (including tree, terrain, etc.) may have a velocity and accurately push stuff around (useful for elevators, trains, etc.)
- dynamic non-uniform scaling of any dynamic collisions (including the 'concave hulls')
- 32 and 64 bit Windows, Linux, and Mac support, as well as Ipod and Iphone support
- lots of other stuff
Interesting post from Julio Jerez:
(I used bold to emphasize some intriguing points)Julio Jerez wrote:So of the things you listed the only real issue feature is the generic concave mesh.
The performance, I believe you are testing version 1.53 with have a linear to quadratic solver.
I am going to refer you to at least test 2.0,
The solver ha linear time complexity with mean is about one order of magnetos faster for large scenes.
It is no better in all count that the exact solve because the inner loops have lot more steps, than the general solver.
The general solver had also being made faster in 2.0 and more stable.
For the general concave mesh, I am still working on that. The problem with general concave mesh is not just how to find the face a shape is colliding with, the biggest problem is to determine the quality of the contact generation.
The reason this is and unsolvable problem is because it is a unfishable mathematically,
Mathematically the definition of a contact in the point and the surface normal and the point at the instant tow body touch each other.
The thing is that for a concave edge they will never happen.
This sound like and easy Lemma, but it is much more complex than you think. This is because even those you know that concave edge do not generate contact the fact that the physics is evaluated at discreet step will make an intersection algorithm to find edge contacts. When it does happen you need to provide a solution. No heuristic will find a solution because this is a non exiting problem therefore with does not know how an body should react when it hit a concave edge because it is and even that never happens.
Given that fact how do you solve the issues, the solution is to do back tracking and find the real point at which the body intersect for the first time and collide the tow face normal’s at that point.
Her is the difficulty when you gave two generic shapes this became a parametric N body problem, an not CPU can deal with that efficiently.
The only way to deal with that I know is by using brute force with a large number of processors.
I have seen how in the world of eth self appointed experts the run around claiming the functionality, just because they can do a geometric integration on two polygonal soups.
Then you can see how these features gradually fade away and are discourage to the user.
These people are a group of intellectually dishonest individual’s the use this kind of deception to attract casual user with the purpose to spread propaganda.
This is how you see these competing open source collision physics and collision with a large set of features that do not really work, but that make a lot of noise amount the casual users.
I will never do that.
However I am looking at the new GPU like ATI and Nvidia CUDA, and believe me all those features that require brute force CPU power like cloth, soft bodies, destruction, generic concave collision will be implemented. Make no mistake about that.

