Balljoint Constraint Behavior

A place to discuss everything related to Newton Dynamics.

Moderators: Sascha Willems, walaber

Balljoint Constraint Behavior

Postby manny » Mon Feb 17, 2014 12:26 pm

Hi there,

I am currently integrating Newton into our engine, so far I like it. Newton has a really clean and lightweight codebase compared to other physic simulation engines.
However, I am a little worried about the constraint behavior. Check out the following video, the engine visualizes the constraint axis and it's limits (red=cone, green=twist, white=constraint axis).
If the box is inside the constraint limits everything seems to go as expected during the simulation, however when the box is placed outside the limits strange things happen. It looks like the constraint limits would be relative to the box when the constraint is created, but on the other hand it just looks odd.
Check out the following video, it demonstrates the issue: http://www.made-apps.com/Media/Document ... traint.mov
http://www.instaLOD.io - InstaLOD - State of the art 3D optimization
manny
Site Admin
Site Admin
 
Posts: 131
Joined: Tue Feb 11, 2014 6:49 pm

Re: Balljoint Constraint Behavior

Postby Julio Jerez » Mon Feb 17, 2014 1:09 pm

the constraint limits, at least for the custom joint in the joint library, are all specified in global space but
then they become relative to the respective bodies.

it looks to me that you are using the default ball socked joint,
In that joint by design, assumes that the initial position is the legal, so when you place the child body outside the cone the joint update function will assume ether code is the illegal area and will try to keep the
body outside the code you think is the legal area. the jump is because after each penetration the code calculate the velocity to move to the code surface, but the force is propeocial to the penetration so after the
step the body has momnetopn and keep moving. It may look estrange but it is the correct behavior for a simplistic joint like that. the default joint are deprecated.

you should use the Custom Joint library?
the custom joints can be customized anyway you want, even that behavior that you show in the video can be produced without the jitter by make a joint with an umbra and penumbra cone that is use to calculate force that do no jitter.

I do not t know what version you are using, you should get late for SVN because google do not allow download anymore.
Julio Jerez
Moderator
Moderator
 
Posts: 12426
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Balljoint Constraint Behavior

Postby manny » Mon Feb 17, 2014 1:32 pm

Julio Jerez wrote:
it looks to me that you are using the default ball socked joint,
In that joint by design, assumes that the initial position is the legal, so when you place the child body outside the cone the joint update function will assume ether code is the illegal area and will try to keep the
body outside the code you think is the legal area.

Yes, I am currently using the default ball socket joint in Newton v3. The behavior you've described is exactly what I've thought.

the jump is because after each penetration the code calculate the velocity to move to the code surface, but the force is propeocial to the penetration so after the
step the body has momnetopn and keep moving. It may look estrange but it is the correct behavior for a simplistic joint like that. the default joint are deprecated.
you should use the Custom Joint library?
the custom joints can be customized anyway you want, even that behavior that you show in the video can be produced without the jitter by make a joint with an umbra and penumbra cone that is use to calculate force that do no jitter.
I do not t know what version you are using, you should get late for SVN because google do not allow download anymore.

The behavior in the video is not like I've expected it. I'would have expected that the box will be forced into a position that is legal to the constraint.
I am currently using newton V3 with the default joints. What will happen to the default joints then?
http://www.instaLOD.io - InstaLOD - State of the art 3D optimization
manny
Site Admin
Site Admin
 
Posts: 131
Joined: Tue Feb 11, 2014 6:49 pm

Re: Balljoint Constraint Behavior

Postby Julio Jerez » Mon Feb 17, 2014 3:14 pm

Like I said that join was written about 10 year ago, when is was release but more like 12 years, and that time having a joint was an achievement and people try to add more functionality that
was really needed to a simple joint. That model is hard to maintain since it is difficult to make a one fix all joint to satisfy all use need.
the joint code was all moved to the custom joint library and there all of the default joint are replicated. plus user can add the functionality they want.


you only need to link the custom joint to your project and you will have the option of any joint you want.
I believe the Ball and Socket in the custom joint does exactly what you want plus of a lot more that you may not realize now, but soon you will..
you can see some of the joint by playing the standard joints demo in the sandbox demos.

also get the code from SVN, I do not have a way to load stable release anymore since google source do not allow them anymore.
Julio Jerez
Moderator
Moderator
 
Posts: 12426
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Balljoint Constraint Behavior

Postby manny » Tue Feb 18, 2014 5:27 pm

Julio Jerez wrote:Like I said that join was written about 10 year ago, when is was release but more like 12 years, and that time having a joint was an achievement and people try to add more functionality that
was really needed to a simple joint. That model is hard to maintain since it is difficult to make a one fix all joint to satisfy all use need.
the joint code was all moved to the custom joint library and there all of the default joint are replicated. plus user can add the functionality they want.

Wow, 12 years? I actually thought Newton v3 was a complete rewrite and only contains fresh code. Why don't you remove it from the codebase then?
Is there more code that should not be used?

you only need to link the custom joint to your project and you will have the option of any joint you want.
I believe the Ball and Socket in the custom joint does exactly what you want plus of a lot more that you may not realize now, but soon you will..
you can see some of the joint by playing the standard joints demo in the sandbox demos.

also get the code from SVN, I do not have a way to load stable release anymore since google source do not allow them anymore.

I am already using the latest SVN code from the trunk. I'll take a look at the custom joints and let you know how this works for us.
http://www.instaLOD.io - InstaLOD - State of the art 3D optimization
manny
Site Admin
Site Admin
 
Posts: 131
Joined: Tue Feb 11, 2014 6:49 pm

Re: Balljoint Constraint Behavior

Postby Julio Jerez » Tue Feb 18, 2014 7:06 pm

it is not a complete rewrite, newton 3.00 at its core is the same as newton 1.0
it has more features, and more bug fixes, some refactoring, bu the core funtionality is the same.

I did no remove those old funtion because it is eassier to add than to remove stuff, I will do some day.
Julio Jerez
Moderator
Moderator
 
Posts: 12426
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Balljoint Constraint Behavior

Postby manny » Wed Feb 19, 2014 11:45 am

Julio Jerez wrote:I did no remove those old funtion because it is eassier to add than to remove stuff, I will do some day.

That makes sense.

Is there more code/classes/methods that should not be used?
http://www.instaLOD.io - InstaLOD - State of the art 3D optimization
manny
Site Admin
Site Admin
 
Posts: 131
Joined: Tue Feb 11, 2014 6:49 pm

Re: Balljoint Constraint Behavior

Postby Julio Jerez » Wed Feb 19, 2014 1:20 pm

I think only the default joints. In the next commit I will comment out all the interfaces function to them.
One of the thing that make me leave there is the attack of self appointed engine appraisal expert experts that keep making comparison out of their asses.

disshonest people like Adrian Boing and Kenneth Bodin Holmlund who has their student making the same hit job character assentation paper every year to simple discredit me in the court of public oprnion
These are the kind of stuff these people public for which every thing is made up
http://www.adrianboeing.com/pal/papers/p281-boeing.pdf

This is the kind of stuff they made up, and if you saw the engine it made you wonder where do these people get that information from, I am sure it is not from the
Newton engine because the newton engine support any joint you can think off. Do I do no t know what the heck that list means.
Untitled.png
Untitled.png (36.53 KiB) Viewed 5475 times
Julio Jerez
Moderator
Moderator
 
Posts: 12426
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Balljoint Constraint Behavior

Postby manny » Wed Feb 19, 2014 1:32 pm

Julio Jerez wrote:I think only the default joints. In the next commit I will comment out all the interfaces function to them.

Yes, please also try to get rid of the source files. I aim at a complete newton integration, and I have to avoid linking a library to keep our crossplatform buildscripts as simple as possible.
I would also like to remove more stuff from the codebase that is of no use to us, like the whole async threading code. But I am worried that we will not be able to keep our codebases in sync if I throw out too much unused code.


One of the thing that make me leave there is the attack of self appointed engine appraisal expert experts that keep making comparison out of their asses.
disshonest people like Adrian Boing and Kenneth Bodin Holmlund who has their student making the same hit job character assentation paper every year to simple discredit me in the court of public oprnion
These are the kind of stuff these people public for which every thing is made up
http://www.adrianboeing.com/pal/papers/p281-boeing.pdf

This is the kind of stuff they made up, and if you saw the engine it made you wonder where do these people get that information from, I am sure it is not from the
Newton engine because the newton engine support any joint you can think off. Do I do no t know what the heck that list means.
Untitled.png

I have to admit that I know this paper, and I took me a long time to take a look at Newton. As I mentioned earlier, we have used Tokamak and Bullet previously. After some years we bullet we decided to switch engines and after finally giving Newton a chance, and reviewing the codebase it looked like a solid product, lean codebase + homogenous codestyle.
But on the other hand, the integration is still far from complete so it might be too early for a final verdict on quality, real-life performance etc.

About the paper, I would recommend throwing out all old code to force people to review your new code functionality.
http://www.instaLOD.io - InstaLOD - State of the art 3D optimization
manny
Site Admin
Site Admin
 
Posts: 131
Joined: Tue Feb 11, 2014 6:49 pm

Re: Balljoint Constraint Behavior

Postby Julio Jerez » Wed Feb 19, 2014 3:51 pm

manny wrote:
Julio Jerez wrote:I have to admit that I know this paper, and I took me a long time to take a look at Newton. As I mentioned earlier, we have used Tokamak and Bullet previously. After some years we bullet we decided to switch engines and after finally giving Newton a chance, ...


yes the paper and the sequence there after are a Hit jobs, maliciously designed to punish an scare away any potential user of the Newton engine.
people like Adrian Boeing and Mr Kenneth Bodin Holm from Virtual Reality lab, use his position as professor at Umea University to discredit and marginalize any possible competition why these pamphlet that they use as weapons.
known that most people can easily fall prey to the Argument from authority Fallacy.

To give you an idea how dishonest these people are, and how the when out of ether way to slander me and my work look at this. Graph.
Untitled.png
Untitled.png (54.07 KiB) Viewed 5463 times


This shows the error of a ball in free fall, and it certainly looks very bad for Newton.
They place all of the engine is one graph, and separated out Newton in a separated Graph to make sure people know that all engine are similar but Newton is uniquely bad.

What they do not tell you is that the ball in the Newton simulation had a default damping value 0f 0.01 that the never bother to set to zero, so basically all engine simulate equation
V = g * t

While Newton simulate
V = g * t – k * v

I and many users pointed that out to these guys but despite all the call out,
they never retrieved the paper, never publish a addendum or an apology,
instead they continue publishing the same misinformation year after year and redicule anyone how disagree with these results.
Even if not one ever called these people, any honest person running a test like that, find that
one engine is so off the scale, that person will say, hey there most be something wrong in our test conditions.
you would think that person at least ask someone if the setting are right or wrong.

To make an analogy say tha a car magazine comparing the 0 to 60 acceration of sport cars,
and the test few brand of cars, all cars give figures bewten 0 and 5 secunds, but one car give a figure of 500 secunds.
don't you think that magazine will contact the manufactirer and ask then what is wrong?
But not these people, intead they put it in a special display.

I once try to call these people out in one forum, and they took all my post and placed them all one afte anoteh out of
context in one thread to make me look like I was a crazy person. These people are dishonest immoral and plagiarizers.

Unfortuantly these low life tactic of misiforming do work.
Today most Newton users now are ex users of the soem plagiarized spin out of older version of Havok or Physx
made by ex employees of those companis.
Julio Jerez
Moderator
Moderator
 
Posts: 12426
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Balljoint Constraint Behavior

Postby FSA » Thu Feb 20, 2014 10:23 am

But why do they do that? I mean, are these people angry on you?
User avatar
FSA
 
Posts: 322
Joined: Wed Dec 21, 2011 9:47 am

Re: Balljoint Constraint Behavior

Postby Julio Jerez » Thu Feb 20, 2014 11:31 am

some teacher a Umea University is also a big wig on Virtual Reality Lab teh peopel who made Vortex.
They were used to charge hundreds to millions of dollars on consulting feed for writing simple simulation code the implement Joints
as if that was soem special braek in tecnology that tehy and only thay new how to do.
Many European institutes started to question if Vortex was really worth the investment when there were libraries like Newton and the did the job many time over and better.

They were OK, with stuff like Havok and Tokomak because there were not serious physics base application, and ODE did not really work on cases other the simple demos.
Newton was the first serious Library that was Free while being a full package with serious physically based solver and a complete collision system.

They could not have that so they solution of Kenneth Bodin Holmlund from Virtual Reality Lab was you use his student at Umea University to write these paper to Slander any competitor by appealing to the Court of Popular opinion in places like Game Developer Net.
Julio Jerez
Moderator
Moderator
 
Posts: 12426
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Balljoint Constraint Behavior

Postby manny » Fri Feb 21, 2014 8:10 am

Don't worry. Keep at it, quality will prevail.

Some questions and notes I took:

- how can we do rope physics without chaining multiple rigid bodies together? In bullet softbodies were used IIRC.
- rigid particles were awesome in tokamak. Basically a lightweight simulation for effects that only collide with static geometry and not with each other or rigid bodies.
- quaternion component order is WXYZ, whereas most engines use XYZW. Would be a good adjust this to match the structure most engines use.
- did you consider migrating to github? it's much easier to collaborate than svn.

EDIT: After reviewing the dCustomJoints library I have to say that it's quite large and as engine developer I would prefer to avoid having to link two libraries (actually it's three because of dMath library) into our codebase instead of a single library responsible for physics. Well, actually I would prefer integrating the sourcefiles directly to avoid linking at all but that will make it difficult to merge changes... But the joint library is overkill, please consider throwing out all dead default constraints from the newton library, namely: ball, hinge, slider, corkscrew and 6DOF and replace them with the new constraints from the joints library (+vehicle manager, +playercontroller). And keep the dCustomJoints library as a seperate, gigantic library of joints.
http://www.instaLOD.io - InstaLOD - State of the art 3D optimization
manny
Site Admin
Site Admin
 
Posts: 131
Joined: Tue Feb 11, 2014 6:49 pm

Re: Balljoint Constraint Behavior

Postby Julio Jerez » Fri Feb 21, 2014 1:15 pm

if you want just one library you can use the CNewton Class, It is an all in one library
Julio Jerez
Moderator
Moderator
 
Posts: 12426
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: Balljoint Constraint Behavior

Postby manny » Mon Feb 24, 2014 7:40 am

I couldn't find the "CNewton" class you were referring to. Can you point me into the right direction?
http://www.instaLOD.io - InstaLOD - State of the art 3D optimization
manny
Site Admin
Site Admin
 
Posts: 131
Joined: Tue Feb 11, 2014 6:49 pm

Next

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 1 guest

cron