phetsims / projectile-motion

"Projectile Motion" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
15 stars 13 forks source link

When to delete landed projectiles? #296

Closed matthew-blackman closed 1 year ago

matthew-blackman commented 1 year ago

When should we be deleting landed projectiles? It is relevant that deleting large numbers of projectiles at the same time can cause performance slowdowns.

catherinecarter commented 1 year ago

To clarify, you mean deleting them from the ground, not the table? Assuming this to be true, I feel the current version is fine. Having some previous launches on the ground is visually nice, as well as reminding students ALL launches are being captured in the table. If we delete all of the previous launches immediately when a new launch is done might give the impression that previous launches are also being reset in the table. So whatever balance needs to happen to improve performance while keeping some history of launches will be great. Let me know if I didn't quite answer the question.

matthew-blackman commented 1 year ago

Yes that's right. I think the current version is okay, but if the user keeps clicking the blue 'fire multiple' button very quickly, the results can be a bit strange. Thoughts on this?

catherinecarter commented 1 year ago

Well, when I pressed the blue button multiple times (as quickly as I could), I definitely noticed some of the projectiles being deleted, but I was ok with it. I think we could include it as an interview question and see if users mention it as an awkward interaction (if we have interviews with students on this one, I don't know).

matthew-blackman commented 1 year ago

When a new projectile (or group of projectiles) is fired, the sim checks to see if the total number of projectiles exceeds a limit (right now set to 150). If the total number (including landed projectiles) is over this limit, the sim will delete landed projectiles at random until the total number (including the newly launched projectiles) is under the limit. This seems like a good behavior to me. We can revisit this in the final design phase as part of the data fluency design process.