Help Spinner in FP questions

If xBAM_BAll.Speed = 500 (just an example)
SpL.angularDamping = 0.30 - (2*(xBAM_Ball.Speed -300)/10000))
So
SpL.angularDamping = 0.30 - (2*(500 -300)/10000))
SpL.angularDamping = 0.30 - (2*200)/10000))
SpL.angularDamping = 0.30 - (2*200)/10000))
SpL.angularDamping = 0.30 - (400)/10000))
SpL.angularDamping = 0.30 - 0.4
SpL.angularDamping = 0.26
OK... The idea: the more the ball have the speed, the less will be the angular damping.
You can use a lot of others formulas or criteria.

JP,

The 0.4 in your example should be 0.04. That makes your final result correct. I am guessing you must have tried many formulas before using this one.

George
 
Not really a lot of formula and I think this one is not the best...
Typo corrected (0.4 -> 0.04)
 
If xBAM_BAll.Speed = 500 (just an example)
SpL.angularDamping = 0.30 - (2*(xBAM_Ball.Speed -300)/10000))
So
SpL.angularDamping = 0.30 - (2*(500 -300)/10000))
SpL.angularDamping = 0.30 - (2*200)/10000))
SpL.angularDamping = 0.30 - (2*200)/10000))
SpL.angularDamping = 0.30 - (400)/10000))
SpL.angularDamping = 0.30 - 0.4
SpL.angularDamping = 0.26
OK... The idea: the more the ball have the speed, the less will be the angular damping.
You can use a lot of others formulas or criteria.

JP,

The 0.4 in your example should be 0.04. That makes your final result correct.

George
Not really a lot of formula and I think this one is not the best...
Typo corrected (0.4 -> 0.04)

The only thing I can suggest that might make it better is to set up a test table that has a kicker aimed at a spinner. You would need to know your minimum and maximum ball speed that is possible on the table. Then set the kicker strength to fire the ball at the minimum ball speed. Then find the best Angular Damping setting that does what you want. Then repeat the same process with the maximum ball speed. Then you would need to figure out a formula that ramps the Angular Damping setting between the two settings.

As it stands, you could delete the times 2 in your formula and substitute 5,000 for the 10,000 and you get the same answer.
 
OK... The idea: the more the ball have the speed, the less will be the angular damping.
Sorry for the question, if angular dampening slows down the spinner's rotations, why decrease them when the ball is faster? I don't understand the purpose of this.
 
If the ball is fast, the spinner have to rotate a lot. And as it's angular damping wich slow the spinner, angular damping are to be low.
Angular damping slows the rotation.
 
If the ball is fast, the spinner have to rotate a lot. And as it's angular damping wich slow the spinner, angular damping are to be low.
Angular damping slows the rotation.
Ok, so I missed something in my thread where you and rav were talking about angular damping, and yet I read the context of angular damping several times....
So it must be low, I thought the opposite, yet in my tests it works very well, I almost manage to make it stop as I thought, because my final goal is to prevent the spinner from stopping horizontally.
Your code in Hotip, is very laborious, you modify the "angular damping" in many phases, I have a doubt about the reason for a trigger, but a question, the values you set, on what basis did you orient yourself?
Did you know that depending on how you set the "damping" in the editor, the initial value found in the xml also changes?

PS:I'm waiting for your reply to my email from a few days ago.

regards
 
The trigger is just for initialising AngularDamping depending of the speed of the ball and not by the value in the .xml. You can hit the spinner many times, so have different AngularDamping.
 
@Everyone here. It may be usefull.
BAM beta: https://ravarcade.pl/beta/BAM_v385.zip
Inside is spinnerExtDemo.

- added "Ext" for spinners. Same way as always to create that object. Simpler version: xBAM.CreateAllExt

- spinnerExt.setOmega x,y,z --- you can spin spinner from script with give speed on selected axis... If spinner is on table verticaly (like on spinnerExtDemo, rotation = 0 or 180) set only X axis. If horizontally (rotation = 90 or 270), set only Y axis. If rotation is something different use trigonometry (x: speed * cos(rot), y: speed * sin(rot)) or something like this. I added this to have reliable way for testing.

- spinnerExt.setAdvDamping maxDamping, minDamping, exponentDamping, minSpeed, maxSpeed.
now you can create simple damping chart:
1756062484475.png
(Exp = exponentDamping. Something very similar to "gamma" in colors).
I'm not sure if exponentDamping will be useful.

On run spinnerExtDemo with F9 (debug window) and look at script. Probably all will easier to understand after you play with it little bit.

Keys:
T - spin spinner with starting speed = 100. This is more reliable way that try to hit it with ball.
On debug window it will print in _Hit event number of spin and num of physics frames after you press T. This should give you good info how different value impact result.

Y,H,N - will set standard "FP" params, where there is only one angular damping set to 0.575 (Normal), 325 (Lose), 750 (Tight).
You should try "T" few times. You will see, that it not give exactly same results. Also any other value gives "wired" results.

U,J - inc/dec minDumping
I,K - inc/dec maxDumping

In my tests i'm keeping exponentDamping = 1.0. But you may try to find better value
minSpeed = 5.0, maxSpeed = 100.0 (this is not ball speed! it is rotation speed of spinner. In my test max speed i get after ball hit was ~ 170).

Now some info:
Number of rotations default FP:
Norm (0.575/0.575) = 8 in about ~200 frames (0.8 sec)
Lose (0.325/0.325) = spins without end. rotation speed after ~13 spins falls to speed, when i expect it will stop, but it will probably never stop.
Tight (0.750/0.750) = 6. Once for while spinner stays upside/down and wobbles (Triggers _Hit over and over)

My own tests:
0.025/0.575 = 40 in ~1100 frames (4.2 sec)
0.275/0.575 = 14 in 400 frames (1.5 sec)
0.425/0.575 = 10 in 240 frames (1 sec)
0.675/0.575 = 7 in 170 frames
0.975/0.575 = 5 in 110 frames
Imho this way you can easily tweak spinner to get desired rotation.

Right now i don't have solution to prevent spinner stuck "upside/down".
 
@Everyone here. It may be usefull.
BAM beta: https://ravarcade.pl/beta/BAM_v385.zip
Inside is spinnerExtDemo.

- added "Ext" for spinners. Same way as always to create that object. Simpler version: xBAM.CreateAllExt

- spinnerExt.setOmega x,y,z --- you can spin spinner from script with give speed on selected axis... If spinner is on table verticaly (like on spinnerExtDemo, rotation = 0 or 180) set only X axis. If horizontally (rotation = 90 or 270), set only Y axis. If rotation is something different use trigonometry (x: speed * cos(rot), y: speed * sin(rot)) or something like this. I added this to have reliable way for testing.

- spinnerExt.setAdvDamping maxDamping, minDamping, exponentDamping, minSpeed, maxSpeed.
now you can create simple damping chart:
View attachment 48178
(Exp = exponentDamping. Something very similar to "gamma" in colors).
I'm not sure if exponentDamping will be useful.

On run spinnerExtDemo with F9 (debug window) and look at script. Probably all will easier to understand after you play with it little bit.

Keys:
T - spin spinner with starting speed = 100. This is more reliable way that try to hit it with ball.
On debug window it will print in _Hit event number of spin and num of physics frames after you press T. This should give you good info how different value impact result.

Y,H,N - will set standard "FP" params, where there is only one angular damping set to 0.575 (Normal), 325 (Lose), 750 (Tight).
You should try "T" few times. You will see, that it not give exactly same results. Also any other value gives "wired" results.

U,J - inc/dec minDumping
I,K - inc/dec maxDumping

In my tests i'm keeping exponentDamping = 1.0. But you may try to find better value
minSpeed = 5.0, maxSpeed = 100.0 (this is not ball speed! it is rotation speed of spinner. In my test max speed i get after ball hit was ~ 170).

Now some info:
Number of rotations default FP:
Norm (0.575/0.575) = 8 in about ~200 frames (0.8 sec)
Lose (0.325/0.325) = spins without end. rotation speed after ~13 spins falls to speed, when i expect it will stop, but it will probably never stop.
Tight (0.750/0.750) = 6. Once for while spinner stays upside/down and wobbles (Triggers _Hit over and over)

My own tests:
0.025/0.575 = 40 in ~1100 frames (4.2 sec)
0.275/0.575 = 14 in 400 frames (1.5 sec)
0.425/0.575 = 10 in 240 frames (1 sec)
0.675/0.575 = 7 in 170 frames
0.975/0.575 = 5 in 110 frames
Imho this way you can easily tweak spinner to get desired rotation.

Right now i don't have solution to prevent spinner stuck "upside/down".

It seems that spinners perform differently on tables with FizX. FizX has an extremely heavy ball that appears to affect the performance of the spinner. I noticed that when I hit the spinner with the ball using FizX, the spinner will sometimes spin normally. At other times, it barely moves and I don't understand why. I am not sure but the T2 spinner doesn't seem to work as well as the others.

I have added your spinner code to the FizX template I use. It is attached. Be sure to add the included zip file with the table which has the custom ball model. If you want to change the FizX parameters, press the Special 1 key. Note that the Special 1 key only affects the 2 main flippers. It won't change the upper flipper.
 

Attachments

  • FizX.7z
    125.5 MB · Views: 19
spinnerExt.setOmega x,y,z
@ravarcade
A surprise......??Amazing!!

I'm very surprised(for me:cool:) that you were able to implement the Omega, from our chats via email I thought it wasn't possible, instead you made another amazing update, and for this I thank you very much Rav.
I can't wait to try it.....just back from vacation.
It seems that spinners perform differently on tables with FizX. FizX has an extremely heavy ball that appears to affect the performance of the spinner.
I am not sure but the T2 spinner doesn't seem to work as well as the others.
The fizx values in xml for the spinner are the same as the ones I always use.From our friend "smoke" his idea(or rating) was included in fixz, so it's nothing new to me. If it works for me as you can see in my videos above, it should work for you too.it's not a matter of heavy ball.

The spinner T2 It's bigger than T1, if you don't set it at the right height you'll have problems, then the T1-2 spinners, I've always modified them, have a low rotation bar for me, I repeat for me, so another factor is: has a big impact on the first hit of the ball, so I modify it.

Now I have to try Rav's code(I'm on vacation), but I assure you, it's not fizx that creates a problem for the spinners, but there are other things to fix on the spinners such as (height, model to modify, Angular Damping, and more) that's why I asked Rav for help, even if for now it's not possible to find a solution to prevent the spinner from stopping in an anomalous position, including horizontally, but maybe one day... who knows, in the meantime let's enjoy the addition of omega, which is in fact a milestone!!
 
Last edited:
@ravarcade
A surprise......??Amazing!!

I'm very surprised(for me:cool:) that you were able to implement the Omega, from our chats via email I thought it wasn't possible, instead you made another amazing update, and for this I thank you very much Rav.
I can't wait to try it.....just back from vacation.


The fizx values in xml for the spinner are the same as the ones I always use. The smoke idea was included in fixz, so it's nothing new to me. If it works for me as you can see in my videos above, it should work for you too.it's not a matter of heavy ball.

I could be wrong, but I think the heavy FizX ball may affect the way the spinner operates. The ball never moves very fast in FizX. I think a faster ball may make the spinner have more rotations. At least, I noticed a difference in the version I posted and the one Ravarcade posted. That is why I asked Ravarcade to look at it. You might try both versions yourself and see what you think.
 
I could be wrong, but I think the heavy FizX ball may affect the way the spinner operates. The ball never moves very fast in FizX. I think a faster ball may make the spinner have more rotations. At least, I noticed a difference in the version I posted and the one Ravarcade posted. That is why I asked Ravarcade to look at it. You might try both versions yourself and see what you think.
I still have to try Rav's new code, but I assume that in his demo there is no xml inside (I've never seen it inserted in one of his demo) so the code is based on a standard xml, and I'm not referring only to the spinner values, but also mass and gravity of ball, and another important factor is the friction of the playfield, in Fizx everything changes.

Just a tip,For a faster ball you can also need to increase the omega of the flippers,that you know very well.

But that's not the only point, if you tried Rav's code, inside there should be an "omega" setting to set the spinner I believe, this is what I talked a lot about with Rav, from Rav's explanation "as far as I understood" there is the possibility to manage the rotations (in frames), to set the "angularDamping" + or - , and based on, the setting in the editor about the "Damping" "we" (I think) have almost total control in the scrip.

The omega setting + or -, is supposed to be the spinner's rotation speed, but I have yet to test it.

I'll try your version with Fizx too, but I think it will be manageable for me, the xml of Fizx is the same as the one I've always used,both for the spinner and the mass and gravity of the ball, I only slightly modified the friction.
I'll let you know.
 
Last edited:
General chit-chat
Help Users
You can interact with the ChatGPT Bot in any Chat Room and there is a dedicated room. The command is /ai followed by a space and then your ? or inquiry.
ie: /ai What is a EM Pinball Machine?
  • No one is chatting at the moment.
  • Chat Bot Mibs Chat Bot Mibs:
    jhbradley has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Conejazo has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Sedulous has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    MrChiggins has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Whitey Weissman has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    SFP_systems has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Skybuck Flying has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    DesertCat has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Arecibo has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    thierry71 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    alain59500 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    mesrine13 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    ettore has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    amigajohn has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Morinehtar has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    MrConductor has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    chris9795 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    knaxit has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    dw1 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    allamain has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    johnny4545 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    mranderson has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    PinballFan1984 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Darkchylde has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Jeff X has left the room.
      Chat Bot Mibs Chat Bot Mibs: Jeff X has left the room.
      Back
      Top