phetsims / buoyancy

"Buoyancy" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
2 stars 2 forks source link

Removing underwater scale from Applications screen #80

Closed zepumph closed 3 months ago

zepumph commented 4 months ago

While discussing https://github.com/phetsims/buoyancy/issues/75 with @jonathanolson @AgustinVallejo and @zepumph, we had some worries about how the underwater scale was being modeled:

  1. We noticed that it is awkward to not include the force of the water above the scale as part of the force. Perhaps we could have a toggle to show that?
  2. In order to calculate the force on the scale including the water pressure, a student would need to know the surface area of the scale for that calculation. This seems like an awkward thing to communicate to the user.
  3. Here is a really buggy situation that relates to how we are only sometimes accounting for water pressure on the scale: a. Applications screen, use the boat b. put the boat on the underwater scale c. Move the block with the mouse into the boat without touching the bottom of the boat. The scale will change its force as you move the block around above the boat.

We recommend addressing water pressure on the scale in some way, and to not ignore it completely.

DianaTavares commented 4 months ago

I find it complicated to include the fluid pressure in the scale reading because that goes beyond the learning goal. The scale there is to measure the apparent weight, that corresponds to the equilibrium of forces. The block has a weight of 132.3 N, but inside the water its apparent weight of 83.3 N because the buoyancy force is 49 N. For students, it is easy to make the subtraction: image

I see that in the boat screen the behavior is strange because the scale includes the weight of the water inside the boat. My solution: no scale under the water in the boat screen. Apparent weigh can be a learning goal of the other 3 screens, and clearly this screen has other goals that don't need an scale under the water.

What developers think about that solution?

jonathanolson commented 4 months ago

I worry that we'll immediately get complaints once it's online due to incorrect behavior (due to the scale showing zero force if there is no block/boat on it). This applies to any screens.

Is there a potential way we can indicate "this is the difference between the force applied currently, and the force of the water if there was no object pressing against it"? It's a tricky concept, and seems like it could lead students to misconceptions ("the water is not pushing against the bottom of the pool") that would break understanding.

Perhaps we can bring this up at a design meeting?

DianaTavares commented 4 months ago

Yes, I will request a design meeting, I guess they still being Thursdays. But I have two points: 1) Flash works that way and we didn't have any complaint (I know it is not a good justification). 2) It is not strange that scales have a zero set-up. Thinking in scales in lab school and even in kitchens, you can put a plate, set the scale at zero, and now measure the weight of the thing that you want.

zepumph commented 4 months ago

Seems like at the very least, a good candidate for doc in the teacher tips and model.md.

AgustinVallejo commented 4 months ago

It is not strange that scales have a zero set-up. Thinking in scales in lab school and even in kitchens, you can put a plate, set the scale at zero, and now measure the weight of the thing that you want.

That was my first thought as well, maybe clicking on the scale could bring it back to 0 from whatever readout it had previously.

The problem, I think, is that if you set the new 0 based on the current water level, then after submerging an object you'll raise the water level even more, so the readout on the scale would be of the net object's weight + the new water level. Not sure if my intuition is right on that part...

zepumph commented 3 months ago

Unassigning until we talk at design meeting.

zepumph commented 3 months ago

Discussed during design meeting today. We will remove the underwater scale from the applications screen, since the boat is behaving as a "closed system" and the scale isn't important to the learning goals of that screen.

AgustinVallejo commented 3 months ago

Removed scale from pool. Tossing back to @zepumph for review and closing

zepumph commented 3 months ago

Looks great. the other three models all have this code copied, I'd like to see about adding it as a super type option instead of copying it:

    // Pool scale
    const poolScale = new Scale( this.engine, this.gravityProperty, {
      matrix: Matrix3.translation( 0.3, -Scale.SCALE_BASE_BOUNDS.minY + this.poolBounds.minY ),
      displayType: DisplayType.NEWTONS,
      tandem: tandem.createTandem( 'poolScale' ),
      canMove: true
    } );
    this.availableMasses.push( poolScale );
AgustinVallejo commented 3 months ago

This is done bye