Fix/potential energy reference height#315
Merged
mattqdev merged 2 commits intoMay 16, 2026
Merged
Conversation
The drawLabel method in ForceRenderer hardcoded "N" (Newtons) as the
unit suffix for all vectors. In BallAcceleration, the acceleration
vector is drawn with F/m values (m/s²), so the label incorrectly
displayed "Acceleration (X.XN)".
Added a `unit` option to drawLabel so callers can override the default
"N". BallAcceleration now passes `{ unit: "m/s²" }` to drawVector,
fixing the label to correctly show "Acceleration (X.Xm/s²)".
getPotentialEnergy(gravity, referenceY) computes mass * g * (position.y - referenceY). The previous referenceY of toMeters(p.height) is the canvas top in Y-up coordinates, making PE almost always a large negative number. Changed referenceY to size/2 (ball center Y when resting on the floor), so PE correctly equals 0 at ground level — consistent with BouncingBall.
Collaborator
|
thank you for this! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📘 Pull Request Template – PhysicsHub
Thank you for contributing to PhysicsHub!
Please complete the sections below to help us review your pull request efficiently.
🔍 Description
Problem
getPotentialEnergy(gravity, referenceY)computesmass × g × (position.y − referenceY).In
BallGravity.jsx,referenceYwas set totoMeters(p.height)— whichis the top of the canvas in Y-up coordinates (a large positive number).
Since the ball's Y position is always below the canvas top, this made PE
almost always a large negative number, which is physically incorrect.
Fix
Changed
referenceYtosize / 2— the ball center's Y position whenresting on the floor. This means PE = 0 at ground level, which is the
standard physics convention and consistent with how
BouncingBall.jsxalready handles it.
Closes #BUG-007 (if applicable)
✅ Checklist
Before requesting a review, please ensure that you have:
npm run dev)🎨 Visual Changes (if UI-related)
IF CHANGES ARE RELATED TO SIMULATIONS PLEASE SEND A SHORT CLIP ABOUT IT
(OBLIGATORY)
📂 Type of Change
🧩 Additional Notes for Reviewers