Art

I'm at the point of using Ticker that I'll need to better understand the parameters that control the program. I’ll probably devise experiments to test the effect of varying the parameters.

After studying your intro videos I do know that some of the physics of the program are adjusted to give values that we would expect to see in the real world rather than rigorously mathematical.

For instance, Full gravity would be 9800 mm/sec^2 most of the time I see that examples have a lower number. Gravity value most likely affects force calculations along the line of F=m*g.

If I half the gravity should mass, m, be doubled to have the same force?

Expert Values:

Restitution I understand as a relative measure of rebounds of object collisions where 1 would be a pure elastic collision. Anything less would result in non-elastic collisions. Is 1 the max value for restitution?

ERP (Connection, Alignment, Rotation, Gear-to-Gear), what is ERP?

Rolling Friction default is -1, is there a typical range of values?

Angular Damping: Default appears to be 0.1 I’ve tried varying this value in one of my simulations but the response to small changes really damps rotations.

AnISO Friction X: Has values for X,Y,Z-axes (default of 0.5). I assume these affect objects that slide across each other. I assume the values are [0,1].

Mass default value 1. Can Mass ever be 0 or would this blow up the program? Also is 10 really the max value or could one say input 20, 30 or higher?

Each object has a shaft in which each regular and expert parameter can be varied. I’ve noticed that an object’s shaft and free standing shafts also have regular and expert parameters. Does the object’s settings affect it’s shaft settings? For example, I have a model where I do not attach the object to it’s shaft.

Well I think I’ve run on long enough.

Bill

## Question about Ticker Regular and Expert Parameters

### Re: Question about Ticker Regular and Expert Parameters

Bill:

I'll do my best to explain.

>>For instance, Full gravity would be 9800 mm/sec^2 most of the time I see that examples have a lower number. Gravity value most likely affects force calculations along the line of F=m*g. If I half the gravity should mass, m, be doubled to have the same force?

This one is hard to explain fully as I am not yet expert enough in the interactions of gravity. Something is off and it may be

design related. In theory your correct, but Bullet ( the underlying 3d physics library , Auggie was the 2d version) was designed

for meters as the resolution. I use mm's. So we're 1000 times off the design spec. Multiplying gravity from the proper expected

9.8m/s/s to 9800mm/sec/sec is correct math wise, but Bullet has trouble in large scale differences. I correct for much of that

by using my own constraint written as a generality, to control all objects and connections, but the internals of Bullet still

fight me on forces required to maintain a pose.

This ISNT bullet, its me deciding to use mm's as a design feature. In retrospect I may have been better off making a conversion

class. This is correctable, but I haven't yet found a method I like that doesn't inhibit other motions. Mass in Ticker is an

arbitrary unit, but I think in reality its about 1/1000 of a kg, or 1 gram. TO be honest I haven't properly weighted anything

as of yet, my tests have been more code-relevant rather than force confirming. In the code I have implemented a way to

determine weight from size and material, but turned it off for now as being too complex in its use, (you'd have to say what it is

accurately and any material change could be painful.) I think Ill learn more over time as to how to make this gravity better to

real world conditions.

>>Expert Values:

>>Restitution I understand as a relative measure of rebounds of object collisions where 1 would be a pure elastic collision. Anything less would result >>in non-elastic collisions. Is 1 the max value for restitution?

Consider two object traveling in space, one hits the other. In order to bounce, one or both of the objects must deform, then the energy of

the deformation going back to normal will create a force pushing the other away. In Tickers case, when two objects collide, that means in

a single frame, one object has gone inside the other. they overlap. The system will use a threshold of how much of an overlap to

determine how much energy to apply to correct that overlap. "Restitution" is a ratio of how much energy will be left over after the overlap

is corrected. Imagine it will take 5 newtons of energy to push the two items apart. You could do this with one pulse of 5n , that energy will

disapate during the next frame ending with the two items just touching with zero energy needed for the next frame. That's restitution of zero. but what if we applied 5 newtons until the objects no longer touch, so on the second frame we see their almost out of overlap, but we inject 5 newtons again until their out of touch. ( that's 1.0 restitution.), that would make them appear to bounce..

>>ERP (Connection, Alignment, Rotation, Gear-to-Gear), what is ERP?

This is error correction ratio., Imagine after a frame, gravity has pulled a gear off its shaft by 1mm in the Z direction (for whatever reason),

the error is now 1.0mm's. To correct this my constraint will apply a force calculated to move the gear by 1mm in the right direction in one

frame. If ERP is 1.0, it will apply the full force on that frame, if it is .5 it will apply 50% of it and the gear will correct its position over a few

frames. ( by the way, though you see 60FPS in Ticker, it actually runs at 600FPS internally. Each frame has 10 sub frames to keep things

accurate. Why not use 1.0 you might ask, and there are times you may, but overall, due to the amount of forces and their distribution

trying to correct all errors entirely each frame will cause instability due to numerical errors and force buildups and overshoots. I look at ERP

as a sort of tension tensor. It makes things tense and tight when its 1.0, and looser and more relaxed at .5. With each frame in Ticker a real time

of 1.6ms of setting ERP too high isn't usually necessary. Setting it to .8 or so makes the corrections more fluyid and S curved in terms of

accelerations.

>>Rolling Friction default is -1, is there a typical range of values?

I think this should default to .1 or so, Ill look into that, I haven't seen much response from it. The only way youd see it is if you used a conveyor

belt and watched a ball roll down it. Unfortunately your belts dont work so it will be hard to play with it.

>>Angular Damping: Default appears to be 0.1 I’ve tried varying this value in one of my simulations but the response to small changes really damps rotations.

Yes, with time at 1.6ms internal, a damping can eat up energy quick. This setting basically removes rotational energy by ratio each frame. Consider it as a "thickness of gear oil" type of setting, 0 is air, 1.0 is thick grease in the joint.

>>AnISO Friction X: Has values for X,Y,Z-axes (default of 0.5). I assume these affect objects that slide across each other. I assume the values are [0,1].

This of this as simple friction, but a setting for each direction. 0.0 to 1.0 as a ratio of energy to be lost. Think of it and Linear damping.

>>Mass default value 1. Can Mass ever be 0 or would this blow up the program? Also is 10 really the max value or could one say input 20, 30 or higher?

You cant set a mass of zero, I intercept that and set .01. There is no upper limit, I have used as high as 10,000 if I really didn't want something to move.

>>Each object has a shaft in which each regular and expert parameter can be varied. I’ve noticed that an object’s shaft and free standing shafts also >>have regular and expert parameters. Does the object’s settings affect it’s shaft settings? For example, I have a model where I do not attach the

>>object to it’s shaft.

The object is given a preference in the way I wrote the constraints. But only for things like locking position or orientation. In actual fact its not possible to give numerical preference to anything in terms of the physics or it all falls apart. Its been a fascinating tracing exercise in development to find just how interrelated all the objects are to each other numerically. It is the nature of the solver that your basically solving all the motion

equations all at once for all objects, and I've found giving any item the slightest "special" treatment can crash the entire house of cards in a math sense of the simulation. So the expert settings CAN matter in some ways, when a shaft and a gear must be corrected, the code will

use the ERP of the gear, but the numerical solver will use the damping settings of both to integrate the overall response. This makes itr a bit hard to

say yes or no on this one.,..

Art

I'll do my best to explain.

>>For instance, Full gravity would be 9800 mm/sec^2 most of the time I see that examples have a lower number. Gravity value most likely affects force calculations along the line of F=m*g. If I half the gravity should mass, m, be doubled to have the same force?

This one is hard to explain fully as I am not yet expert enough in the interactions of gravity. Something is off and it may be

design related. In theory your correct, but Bullet ( the underlying 3d physics library , Auggie was the 2d version) was designed

for meters as the resolution. I use mm's. So we're 1000 times off the design spec. Multiplying gravity from the proper expected

9.8m/s/s to 9800mm/sec/sec is correct math wise, but Bullet has trouble in large scale differences. I correct for much of that

by using my own constraint written as a generality, to control all objects and connections, but the internals of Bullet still

fight me on forces required to maintain a pose.

This ISNT bullet, its me deciding to use mm's as a design feature. In retrospect I may have been better off making a conversion

class. This is correctable, but I haven't yet found a method I like that doesn't inhibit other motions. Mass in Ticker is an

arbitrary unit, but I think in reality its about 1/1000 of a kg, or 1 gram. TO be honest I haven't properly weighted anything

as of yet, my tests have been more code-relevant rather than force confirming. In the code I have implemented a way to

determine weight from size and material, but turned it off for now as being too complex in its use, (you'd have to say what it is

accurately and any material change could be painful.) I think Ill learn more over time as to how to make this gravity better to

real world conditions.

>>Expert Values:

>>Restitution I understand as a relative measure of rebounds of object collisions where 1 would be a pure elastic collision. Anything less would result >>in non-elastic collisions. Is 1 the max value for restitution?

Consider two object traveling in space, one hits the other. In order to bounce, one or both of the objects must deform, then the energy of

the deformation going back to normal will create a force pushing the other away. In Tickers case, when two objects collide, that means in

a single frame, one object has gone inside the other. they overlap. The system will use a threshold of how much of an overlap to

determine how much energy to apply to correct that overlap. "Restitution" is a ratio of how much energy will be left over after the overlap

is corrected. Imagine it will take 5 newtons of energy to push the two items apart. You could do this with one pulse of 5n , that energy will

disapate during the next frame ending with the two items just touching with zero energy needed for the next frame. That's restitution of zero. but what if we applied 5 newtons until the objects no longer touch, so on the second frame we see their almost out of overlap, but we inject 5 newtons again until their out of touch. ( that's 1.0 restitution.), that would make them appear to bounce..

>>ERP (Connection, Alignment, Rotation, Gear-to-Gear), what is ERP?

This is error correction ratio., Imagine after a frame, gravity has pulled a gear off its shaft by 1mm in the Z direction (for whatever reason),

the error is now 1.0mm's. To correct this my constraint will apply a force calculated to move the gear by 1mm in the right direction in one

frame. If ERP is 1.0, it will apply the full force on that frame, if it is .5 it will apply 50% of it and the gear will correct its position over a few

frames. ( by the way, though you see 60FPS in Ticker, it actually runs at 600FPS internally. Each frame has 10 sub frames to keep things

accurate. Why not use 1.0 you might ask, and there are times you may, but overall, due to the amount of forces and their distribution

trying to correct all errors entirely each frame will cause instability due to numerical errors and force buildups and overshoots. I look at ERP

as a sort of tension tensor. It makes things tense and tight when its 1.0, and looser and more relaxed at .5. With each frame in Ticker a real time

of 1.6ms of setting ERP too high isn't usually necessary. Setting it to .8 or so makes the corrections more fluyid and S curved in terms of

accelerations.

>>Rolling Friction default is -1, is there a typical range of values?

I think this should default to .1 or so, Ill look into that, I haven't seen much response from it. The only way youd see it is if you used a conveyor

belt and watched a ball roll down it. Unfortunately your belts dont work so it will be hard to play with it.

>>Angular Damping: Default appears to be 0.1 I’ve tried varying this value in one of my simulations but the response to small changes really damps rotations.

Yes, with time at 1.6ms internal, a damping can eat up energy quick. This setting basically removes rotational energy by ratio each frame. Consider it as a "thickness of gear oil" type of setting, 0 is air, 1.0 is thick grease in the joint.

>>AnISO Friction X: Has values for X,Y,Z-axes (default of 0.5). I assume these affect objects that slide across each other. I assume the values are [0,1].

This of this as simple friction, but a setting for each direction. 0.0 to 1.0 as a ratio of energy to be lost. Think of it and Linear damping.

>>Mass default value 1. Can Mass ever be 0 or would this blow up the program? Also is 10 really the max value or could one say input 20, 30 or higher?

You cant set a mass of zero, I intercept that and set .01. There is no upper limit, I have used as high as 10,000 if I really didn't want something to move.

>>Each object has a shaft in which each regular and expert parameter can be varied. I’ve noticed that an object’s shaft and free standing shafts also >>have regular and expert parameters. Does the object’s settings affect it’s shaft settings? For example, I have a model where I do not attach the

>>object to it’s shaft.

The object is given a preference in the way I wrote the constraints. But only for things like locking position or orientation. In actual fact its not possible to give numerical preference to anything in terms of the physics or it all falls apart. Its been a fascinating tracing exercise in development to find just how interrelated all the objects are to each other numerically. It is the nature of the solver that your basically solving all the motion

equations all at once for all objects, and I've found giving any item the slightest "special" treatment can crash the entire house of cards in a math sense of the simulation. So the expert settings CAN matter in some ways, when a shaft and a gear must be corrected, the code will

use the ERP of the gear, but the numerical solver will use the damping settings of both to integrate the overall response. This makes itr a bit hard to

say yes or no on this one.,..

Art

### Who is online

Users browsing this forum: No registered users and 1 guest