Closed KatieWoe closed 2 years ago
Meeting June 22, 2022
@ariel-phet it's okay to not fix this for the prototype but personally wouldn't let this go out for true publication with this bug because we don't want to have to answer the question "why" when there is no why - such as here where the random interruptions have no pattern/trend.
@ariel-phet could it be a memory issue? @chrisklus doubts it because it's the same on every platform we tried and it follows the same random pattern 0 -> 86 nucleons, then one more click, then keeps going.
@ariel-phet if you change the animation speed would it stop at a different number?
@Luisav1 and I figured out the why! It is because the double arrow button does not actually work how it appears to work. When a proton and neutron are emitted at the same time, they cannot be received by the atom atomically (both at the same time) - they have to be added individually because shred/ParticleAtom tracks each type of particle in its own array. So, whenever the double arrow is pressed, the model is not immediately jumping up by two nucleons - it's changing by one and then the other. The reason this "pause" first happens is because 44,43 is the first set of nucleons that is one away from matching proton/neutron counts that does not form. This means that the enabledProperty of the double up button blips to off, and cancels the press before it's re-enabled.
We briefly talked about some ideas to fix this, but it does not seem doable without significant changes in BAN code and shred code, and it will be complicated.
Here are the logs:
protons: 1, neutrons: 0, doesExist: true
protons: 1, neutrons: 1, doesExist: true
protons: 2, neutrons: 1, doesExist: true
protons: 2, neutrons: 2, doesExist: true
protons: 3, neutrons: 2, doesExist: true
protons: 3, neutrons: 3, doesExist: true
protons: 4, neutrons: 3, doesExist: true
protons: 4, neutrons: 4, doesExist: true
protons: 5, neutrons: 4, doesExist: true
protons: 5, neutrons: 5, doesExist: true
protons: 6, neutrons: 5, doesExist: true
protons: 6, neutrons: 6, doesExist: true
protons: 7, neutrons: 6, doesExist: true
protons: 7, neutrons: 7, doesExist: true
protons: 8, neutrons: 7, doesExist: true
protons: 8, neutrons: 8, doesExist: true
protons: 9, neutrons: 8, doesExist: true
protons: 9, neutrons: 9, doesExist: true
protons: 10, neutrons: 9, doesExist: true
protons: 10, neutrons: 10, doesExist: true
protons: 11, neutrons: 10, doesExist: true
protons: 11, neutrons: 11, doesExist: true
protons: 12, neutrons: 11, doesExist: true
protons: 12, neutrons: 12, doesExist: true
protons: 13, neutrons: 12, doesExist: true
protons: 13, neutrons: 13, doesExist: true
protons: 14, neutrons: 13, doesExist: true
protons: 14, neutrons: 14, doesExist: true
protons: 15, neutrons: 14, doesExist: true
protons: 14, neutrons: 14, doesExist: true
protons: 14, neutrons: 15, doesExist: true
protons: 14, neutrons: 14, doesExist: true
protons: 15, neutrons: 14, doesExist: true
protons: 15, neutrons: 15, doesExist: true
protons: 16, neutrons: 15, doesExist: true
protons: 15, neutrons: 15, doesExist: true
protons: 15, neutrons: 16, doesExist: true
protons: 15, neutrons: 15, doesExist: true
protons: 16, neutrons: 15, doesExist: true
protons: 16, neutrons: 16, doesExist: true
protons: 17, neutrons: 16, doesExist: true
protons: 16, neutrons: 16, doesExist: true
protons: 16, neutrons: 17, doesExist: true
protons: 16, neutrons: 16, doesExist: true
protons: 17, neutrons: 16, doesExist: true
protons: 17, neutrons: 17, doesExist: true
protons: 18, neutrons: 17, doesExist: true
protons: 17, neutrons: 17, doesExist: true
protons: 17, neutrons: 18, doesExist: true
protons: 17, neutrons: 17, doesExist: true
protons: 18, neutrons: 17, doesExist: true
protons: 18, neutrons: 18, doesExist: true
protons: 19, neutrons: 18, doesExist: true
protons: 18, neutrons: 18, doesExist: true
protons: 18, neutrons: 19, doesExist: true
protons: 18, neutrons: 18, doesExist: true
protons: 19, neutrons: 18, doesExist: true
protons: 19, neutrons: 19, doesExist: true
protons: 20, neutrons: 19, doesExist: true
protons: 19, neutrons: 19, doesExist: true
protons: 19, neutrons: 20, doesExist: true
protons: 19, neutrons: 19, doesExist: true
protons: 20, neutrons: 19, doesExist: true
protons: 20, neutrons: 20, doesExist: true
protons: 21, neutrons: 20, doesExist: true
protons: 20, neutrons: 20, doesExist: true
protons: 20, neutrons: 21, doesExist: true
protons: 20, neutrons: 20, doesExist: true
protons: 21, neutrons: 20, doesExist: true
protons: 21, neutrons: 21, doesExist: true
protons: 22, neutrons: 21, doesExist: true
protons: 21, neutrons: 21, doesExist: true
protons: 21, neutrons: 22, doesExist: true
protons: 21, neutrons: 21, doesExist: true
protons: 22, neutrons: 21, doesExist: true
protons: 22, neutrons: 22, doesExist: true
protons: 23, neutrons: 22, doesExist: true
protons: 22, neutrons: 22, doesExist: true
protons: 22, neutrons: 23, doesExist: true
protons: 22, neutrons: 22, doesExist: true
protons: 23, neutrons: 22, doesExist: true
protons: 23, neutrons: 23, doesExist: true
protons: 24, neutrons: 23, doesExist: true
protons: 23, neutrons: 23, doesExist: true
protons: 23, neutrons: 24, doesExist: true
protons: 23, neutrons: 23, doesExist: true
protons: 24, neutrons: 23, doesExist: true
protons: 24, neutrons: 24, doesExist: true
protons: 25, neutrons: 24, doesExist: true
protons: 24, neutrons: 24, doesExist: true
protons: 24, neutrons: 25, doesExist: true
protons: 24, neutrons: 24, doesExist: true
protons: 25, neutrons: 24, doesExist: true
protons: 25, neutrons: 25, doesExist: true
protons: 26, neutrons: 25, doesExist: true
protons: 25, neutrons: 25, doesExist: true
protons: 25, neutrons: 26, doesExist: true
protons: 25, neutrons: 25, doesExist: true
protons: 26, neutrons: 25, doesExist: true
protons: 26, neutrons: 26, doesExist: true
protons: 27, neutrons: 26, doesExist: true
protons: 26, neutrons: 26, doesExist: true
protons: 26, neutrons: 27, doesExist: true
protons: 26, neutrons: 26, doesExist: true
protons: 27, neutrons: 26, doesExist: true
protons: 27, neutrons: 27, doesExist: true
protons: 28, neutrons: 27, doesExist: true
protons: 27, neutrons: 27, doesExist: true
protons: 27, neutrons: 28, doesExist: true
protons: 27, neutrons: 27, doesExist: true
protons: 28, neutrons: 27, doesExist: true
protons: 28, neutrons: 28, doesExist: true
protons: 29, neutrons: 28, doesExist: true
protons: 28, neutrons: 28, doesExist: true
protons: 28, neutrons: 29, doesExist: true
protons: 28, neutrons: 28, doesExist: true
protons: 29, neutrons: 28, doesExist: true
protons: 29, neutrons: 29, doesExist: true
protons: 30, neutrons: 29, doesExist: true
protons: 29, neutrons: 29, doesExist: true
protons: 29, neutrons: 30, doesExist: true
protons: 29, neutrons: 29, doesExist: true
protons: 30, neutrons: 29, doesExist: true
protons: 30, neutrons: 30, doesExist: true
protons: 31, neutrons: 30, doesExist: true
protons: 30, neutrons: 30, doesExist: true
protons: 30, neutrons: 31, doesExist: true
protons: 30, neutrons: 30, doesExist: true
protons: 31, neutrons: 30, doesExist: true
protons: 31, neutrons: 31, doesExist: true
protons: 32, neutrons: 31, doesExist: true
protons: 32, neutrons: 32, doesExist: true
protons: 33, neutrons: 32, doesExist: true
protons: 32, neutrons: 32, doesExist: true
protons: 32, neutrons: 33, doesExist: true
protons: 32, neutrons: 32, doesExist: true
protons: 33, neutrons: 32, doesExist: true
protons: 33, neutrons: 33, doesExist: true
protons: 34, neutrons: 33, doesExist: true
protons: 33, neutrons: 33, doesExist: true
protons: 33, neutrons: 34, doesExist: true
protons: 33, neutrons: 33, doesExist: true
protons: 34, neutrons: 33, doesExist: true
protons: 33, neutrons: 33, doesExist: true
protons: 33, neutrons: 34, doesExist: true
protons: 33, neutrons: 33, doesExist: true
protons: 34, neutrons: 33, doesExist: true
protons: 34, neutrons: 34, doesExist: true
protons: 35, neutrons: 34, doesExist: true
protons: 35, neutrons: 35, doesExist: true
protons: 36, neutrons: 35, doesExist: true
protons: 35, neutrons: 35, doesExist: true
protons: 35, neutrons: 36, doesExist: true
protons: 35, neutrons: 35, doesExist: true
protons: 36, neutrons: 35, doesExist: true
protons: 35, neutrons: 35, doesExist: true
protons: 35, neutrons: 36, doesExist: true
protons: 35, neutrons: 35, doesExist: true
protons: 36, neutrons: 35, doesExist: true
protons: 36, neutrons: 36, doesExist: true
protons: 37, neutrons: 36, doesExist: true
protons: 36, neutrons: 36, doesExist: true
protons: 36, neutrons: 37, doesExist: true
protons: 36, neutrons: 36, doesExist: true
protons: 37, neutrons: 36, doesExist: true
protons: 37, neutrons: 37, doesExist: true
protons: 38, neutrons: 37, doesExist: true
protons: 37, neutrons: 37, doesExist: true
protons: 37, neutrons: 38, doesExist: true
protons: 37, neutrons: 37, doesExist: true
protons: 38, neutrons: 37, doesExist: true
protons: 38, neutrons: 38, doesExist: true
protons: 39, neutrons: 38, doesExist: true
protons: 38, neutrons: 38, doesExist: true
protons: 38, neutrons: 39, doesExist: true
protons: 38, neutrons: 38, doesExist: true
protons: 39, neutrons: 38, doesExist: true
protons: 39, neutrons: 39, doesExist: true
protons: 40, neutrons: 39, doesExist: true
protons: 39, neutrons: 39, doesExist: true
protons: 39, neutrons: 40, doesExist: true
protons: 39, neutrons: 39, doesExist: true
protons: 40, neutrons: 39, doesExist: true
protons: 40, neutrons: 40, doesExist: true
protons: 41, neutrons: 40, doesExist: true
protons: 40, neutrons: 40, doesExist: true
protons: 40, neutrons: 41, doesExist: true
protons: 40, neutrons: 40, doesExist: true
protons: 41, neutrons: 40, doesExist: true
protons: 41, neutrons: 41, doesExist: true
protons: 42, neutrons: 41, doesExist: true
protons: 42, neutrons: 42, doesExist: true
protons: 43, neutrons: 42, doesExist: true
protons: 42, neutrons: 42, doesExist: true
protons: 42, neutrons: 43, doesExist: true
protons: 42, neutrons: 42, doesExist: true
protons: 43, neutrons: 42, doesExist: true
protons: 42, neutrons: 42, doesExist: true
protons: 42, neutrons: 43, doesExist: true
protons: 42, neutrons: 42, doesExist: true
protons: 43, neutrons: 42, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 43, neutrons: 43, doesExist: true
doubleUpArrow: true
protons: 43, neutrons: 44, doesExist: true
protons: 43, neutrons: 43, doesExist: true
protons: 44, neutrons: 43, doesExist: false
doubleUpArrow: false
protons: 44, neutrons: 44, doesExist: true
doubleUpArrow: true
protons: 45, neutrons: 44, doesExist: true
protons: 44, neutrons: 44, doesExist: true
protons: 44, neutrons: 45, doesExist: true
protons: 44, neutrons: 44, doesExist: true
Here is a patch for our logging:
Meeting 2022-07-27 ideas around this:
Disabled the "fire on hold" feature since it's the easiest way to not have this interruption while still being able to get up to the larger nuclei just fine. While this doesn't fix the interruptions, it does avoid them from occurring. Closing.
Test device Dell Operating System Win 11 Browser Chrome Problem description For https://github.com/phetsims/qa/issues/809. When holding down the buttons to add a proton and a neutron, the press is interrupted for seemingly no reason. If you start from empty and hold down the add pair button it stops at Tc-86, then again at Ru-88. This does not seem to be connected to a nuclide that doesn't form from what I can tell. This may also happen with other buttons, but this was the easiest for me to see. Steps to reproduce
Visuals
Troubleshooting information: