The work-energy theorem ties a force and a distance to a speed: the total work every force does, signs and all, is the kinetic energy gained or lost — Wnet = ½mv22 − ½mv12. This lab puts a block on a level floor and lets you shove it horizontally against kinetic friction, from rest or at a speed you pick. Five sliders set the mass, the push, the coefficient, the distance and that speed; four cards report the work your push does, the work friction takes, their sum and the final speed. The ledger under the drawing draws the net work and the change in kinetic energy as two bars that finish level.
A block on a level floor. You push it horizontally with a force F over a distance d, against kinetic friction μ, and it may already be moving at v1. Every force gets its own work term and friction's term is negative; add them and you have the net work. The bars show that the net work and the change in kinetic energy are one bar drawn twice — that is the theorem, and it holds just as well when the net work is negative and the block ends up slower than it started. Because the push is horizontal the normal force is exactly m·g, so friction is μ·m·g; angle the push and none of these numbers survives.
What happensNet work 122.3 J, change in kinetic energy 122.3 J.
The first button presses the lab's own Reset; the other eight write all five sliders at once. Watch two things as you move between them. Net work and Change in KE carry the same figure on every single one, and the last three buttons show that this stays true when the net work is negative, when the block stops halfway, and when it never moves at all.
Pick a push above, or drag the sliders yourself.

The work energy theorem simulator is a free interactive physics lab that runs in your browser — nothing to install and no sign-up. A block sits on a level floor and you push it horizontally: set the mass from 0.5 to 50.0 kg, the push from 0 to 200 N, the coefficient of kinetic friction from 0.00 to 1.00, the push distance from 0.5 to 20.0 m and the speed it already has from 0.0 to 20.0 m/s.
The panel answers with the work your push does, the work friction takes, the net work Wnet and the final speed, and an energy ledger draws the net work and the change in kinetic energy as one bar twice. That equality is the theorem, and it holds just as well when the net work is negative.
| Control | Range | Step |
|---|---|---|
| Mass of the block | 0.5 to 50.0 kg | 0.5 kg |
| Your push | 0 to 200 N | 1 N |
| Friction coefficient | 0.00 to 1.00 | 0.01 |
| Push distance | 0.5 to 20.0 m | 0.5 m |
| Starting speed | 0.0 to 20.0 m/s | 0.1 m/s |
| Run the push | replays the motion | one button |
-117.7 J out of the 240.0 J your push puts in, leaving Net work at 122.3 J and the block doing 5.53 m/s. In the ledger the last two bars end at the same pixel.Every row below is one setting of the five sliders, and every cell is a string the running lab printed there. Rows 2 to 6 move exactly one control away from the opening push; the rest go looking for the awkward cases. Where a cell and the lab ever disagree, believe the lab.
| Setting | Mass, push, friction, distance, start | Work by your push | Work by friction | Net work | KE at the start | KE at the end | Change in KE | Final speed |
|---|---|---|---|---|---|---|---|---|
| The opening push | 8.0 kg · 40 N · μ 0.25 · 6.0 m · from rest | 240.0 J | -117.7 J | 122.3 J | 0.0 J | 122.3 J | 122.3 J | 5.53 m/s |
| Take the friction away | 8.0 kg · 40 N · μ 0.00 · 6.0 m · from rest | 240.0 J | 0.0 J | 240.0 J | 0.0 J | 240.0 J | 240.0 J | 7.75 m/s |
| Double the mass | 16.0 kg · 40 N · μ 0.25 · 6.0 m · from rest | 240.0 J | -235.4 J | 4.6 J | 0.0 J | 4.6 J | 4.6 J | 0.75 m/s |
| Push twice as far | 8.0 kg · 40 N · μ 0.25 · 12.0 m · from rest | 480.0 J | -235.4 J | 244.6 J | 0.0 J | 244.6 J | 244.6 J | 7.82 m/s |
| Push twice as hard | 8.0 kg · 80 N · μ 0.25 · 6.0 m · from rest | 480.0 J | -117.7 J | 362.3 J | 0.0 J | 362.3 J | 362.3 J | 9.52 m/s |
| Already moving | 8.0 kg · 40 N · μ 0.25 · 6.0 m · 3.0 m/s | 240.0 J | -117.7 J | 122.3 J | 36.0 J | 158.3 J | 122.3 J | 6.29 m/s |
| A rougher floor | 8.0 kg · 80 N · μ 0.60 · 6.0 m · from rest | 480.0 J | -282.5 J | 197.5 J | 0.0 J | 197.5 J | 197.5 J | 7.03 m/s |
| Let go, left to coast | 8.0 kg · 0 N · μ 0.25 · 6.0 m · 4.0 m/s | 0.0 J | -64.0 J | -64.0 J | 64.0 J | 0.0 J | -64.0 J | 0.00 m/s |
| Coasting on a rough floor | 8.0 kg · 0 N · μ 0.50 · 6.0 m · 3.0 m/s | 0.0 J | -36.0 J | -36.0 J | 36.0 J | 0.0 J | -36.0 J | 0.00 m/s |
| Nothing moves | 8.0 kg · 10 N · μ 0.25 · 6.0 m · from rest | 0.0 J | 0.0 J | 0.0 J | 0.0 J | 0.0 J | 0.0 J | 0.00 m/s |
| A push that still loses | 8.0 kg · 30 N · μ 0.60 · 6.0 m · 4.0 m/s | 112.4 J | -176.4 J | -64.0 J | 64.0 J | 0.0 J | -64.0 J | 0.00 m/s |
| The biggest push the panel allows | 50.0 kg · 200 N · μ 0.20 · 20.0 m · from rest | 4000.0 J | -1962.0 J | 2038.0 J | 0.0 J | 2038.0 J | 2038.0 J | 9.03 m/s |
The last two columns are the whole point. Net work and Change in KE carry the same figure in all twelve rows — positive, negative and zero — and they are not copies of one another. One is built from the forces and the distance, the other from the two speeds. Nothing in the lab makes them agree; the physics does.
Rows 3 and 5 make the same change and get opposite answers. Doubling the push to 80 N adds 240.0 J to the push work and leaves friction alone at -117.7 J, so the net work nearly triples. Doubling the mass to 16.0 kg leaves the push work at 240.0 J and doubles friction's bite to -235.4 J, and the net work collapses from 122.3 J to 4.6 J. The speed goes with it: 0.75 m/s instead of 5.53.
Row 6 separates the two halves of the equation. Starting at 3.0 m/s instead of rest changes neither work figure, so Net work stays at 122.3 J; what moves is the energy either side of it, from 36.0 J to 158.3 J instead of 0.0 J to 122.3 J. The theorem is about the change, and it never cared what the block was doing beforehand. If you want the standing value of ½mv2 at one instant rather than a change in it, that is the kinetic energy calculator's job.
Rows 8, 9 and 11 are the ones worth dwelling on. Take the push away and let an 8.0 kg block coast at 4.0 m/s and friction does all the work: -64.0 J, exactly the 64.0 J the block had, and it stops after 3.26 m. Row 11 keeps a 30 N push on a coefficient of 0.60 and the block still loses, stopping after 3.7453 m, which the status line rounds to 3.75 m — and Work by your push then reads 112.4 J, because 30 N only acted over that distance and not the 6.0 m asked for.
Row 10 is the case with no motion in it. A 10 N push against 19.6 N of friction moves the block nowhere, so no force covers any distance and every work figure is 0.0 J. The Net force stat still reads -9.6 N, because that stat is always the raw subtraction; here it is the size of the shortfall rather than anything acting. It has not stopped, it has not started.
The lab works left to right. It multiplies your push by the distance covered, multiplies the coefficient by the weight and then by the same distance to get friction's negative term, adds the two, and turns the answer into a speed with v2 = sqrt(v12 + 2Wnet/m). Because the push is horizontal the normal force is exactly the weight, which is what makes friction μmg and nothing more complicated.
| Symbol | Meaning | SI unit | In this lab |
|---|---|---|---|
| m | Mass of the block. It does not cancel here, because your push is a number you set rather than something that grows with the mass | kilogram, kg | 0.5 to 50.0 in steps of 0.5, reading back as “8.0 kg” after Reset. At 0.5 kg the opening push gives “232.6 J” of net work and “30.51 m/s”; at 50.0 kg it gives “0.0 J”, because 40 N cannot beat “122.6 N” of friction. |
| F | Your push. One force, horizontal, and constant over the whole distance — not the net force | newton, N | 0 to 200 in steps of 1; “40 N” after Reset. Taken to 200 N on the opening block and floor it does “1200.0 J” of work for a net “1082.3 J” and a final “16.45 m/s”. |
| μ | Coefficient of kinetic friction between the block and the floor. A number you choose, never a measured property of a named surface | none — it is a ratio | 0.00 to 1.00 in steps of 0.01; “0.25” after Reset. At 0.00 the friction card reads “0.0 J” and the push keeps everything it does; at 1.00 the friction force is “78.5 N” and a 40 N push shifts nothing at all. |
| d | Push distance: how far you mean to push, which is not always how far the block gets | metre, m | 0.5 to 20.0 in steps of 0.5; “6.0 m” after Reset. At 20.0 m the opening push does “800.0 J” against “-392.4 J” of friction, for a net “407.6 J”. |
| v1 | Starting speed: what the block is already doing when the push begins. A magnitude, so it is never negative | metre per second, m/s | 0.0 to 20.0 in steps of 0.1; “0.0 m/s” after Reset. It moves both energy stats together and leaves the net work alone: at 20.0 m/s they read “1600.0 J” and “1722.3 J” while Net work is still “122.3 J”. |
| v2 | Final speed. Worked out from the kinetic energy at the end rather than set by you | metre per second, m/s | Two decimals: “5.53 m/s” after Reset, “30.51 m/s” for a 0.5 kg block under the same push, and “0.00 m/s” whenever the block stops early or never starts. |
| Wpush | Work your push does: the push multiplied by the distance the block actually covers | joule, J | One decimal: “240.0 J” after Reset and “4000.0 J” at the panel's largest setting. When a 30 N push over a nominal 6.0 m stops the block early, the figure is worked out over the 3.7453 m it actually covered, so it reads “112.4 J” and not 180.0 J. |
| Wfric | Work friction takes. Never positive, because sliding friction always opposes the motion | joule, J | “-117.7 J” after Reset, exactly “0.0 J” with the coefficient at zero or on a block that never starts, and “-1962.0 J” at the largest setting. |
| Wnet | Net work — the two figures above added, and the left-hand side of the theorem | joule, J | “122.3 J” after Reset, “-64.0 J” where the block ends slower than it started. The lab computes it from the net force and the distance covered, so it can sit a tenth of a joule from the two work cards added by eye. |
| ΔKE | Change in kinetic energy: the energy at the end minus the energy at the start | joule, J | “122.3 J” after Reset, matching Net work. It comes from the two speeds rather than from subtracting the two rounded energy stats, which is why those two can disagree with it in the last decimal. |
| f | Friction force: the coefficient multiplied by the weight, because the push is horizontal | newton, N | “19.6 N” after Reset, “0.0 N” with the coefficient at zero, and “122.6 N” under a 50.0 kg block on the opening floor. |
| F − f | Net force, printed raw at every setting the panel can reach — including the ones where the block never moves | newton, N | “20.4 N” after Reset and “-9.6 N” for a 10 N push on a block that stays put. In that second case it is how far the push falls short, not a force doing anything. |
| g | Standard acceleration of free fall. Fixed text under the sliders, not a control | metre per second squared, m/s2 | Fixed at 9.81, which is the defined 9.80665 rounded to three significant figures. Real local gravity spans roughly 9.78 to 9.83, and nothing here is a claim about a particular place. |
Two of those rows are worth reading together. Wpush on its own is the quantity the guide to work done in physics covers, including the angled push this lab deliberately leaves out, and ½mv2 on its own is taken apart in the kinetic energy formula explained. Neither page joins them up. That joining is what the Net work card and the ledger under the drawing do.
The lab writes its equations without Greek on the canvas, so the ledger's bars are labelled push, friction, net work and change in KE in plain words, over a scale captioned “work and energy (J)”. In the panel the cards carry their formula lines properly typeset. The units are ordinary: a joule is a newton metre, and a newton is a kilogram metre per second squared.
Push a block with a constant net force and it accelerates steadily, so the extra speed it gains depends on how far the force acts rather than on how long. Multiply that net force by the distance and you have the net work; the quantity it changes is ½mv2. That is the whole theorem, and it is why a force and a distance are enough to give you a speed with no clock anywhere in the argument.
The lab makes the bookkeeping visible rather than asserting it. Your push contributes F·d, positive because it points the way the block is going. Friction contributes −μmgd, negative because it points the other way, and the minus sign is not decoration — it is the reason the third bar is shorter than the first.
Watch the opening setting as an audit. Your 40 N push over 6.0 m delivers 240.0 J; friction at 19.62 N over the same 6.0 m removes 117.7 J of it; 122.3 J is what the block is left holding, and 5.53 m/s is what 122.3 J looks like on 8.0 kg. The Friction force stat prints that force as 19.6 N. The missing 117.7 J has not vanished — it has gone into heating the block and the floor, which is energy the block no longer has.
The fourth bar is drawn from different numbers on purpose. Net work comes from the forces and the distance; Change in KE comes from the two speeds. They are computed by separate routes and end on the same pixel, which is the demonstration rather than a drawing convention. The full guide to the work-energy theorem works the method through on eight problems, from a crate on a floor to a car under braking.
Negative net work is the case people expect least and meet most. Load A push that still loses: 30 N is pushing, friction at 47.1 N is winning, and the net work is -64.0 J, exactly the kinetic energy the block had. It ends at rest, and the theorem has told you that without any mention of how long the slide took.
There is a partner equation worth knowing about here. Swap the force and the distance for a height and the same trade appears as gravitational potential energy turning into kinetic energy, which is what the conservation of energy calculator is built around. A problem that hands you a slope and a distance belongs on this page; one that hands you a drop belongs on that one.
The lab solves its own model exactly, so nothing on screen ever fails. Everything below is a limit of that model, of the situation it stands for, or of the way numbers are printed, and each item says what the lab does about it.
For the method itself — list the forces, work out each one's term with its sign, add them, set the sum equal to the change in kinetic energy — with eight worked problems of rising difficulty, read The Work-Energy Theorem. The two halves it joins each have a page of their own: what work done in physics means, with the work and power calculator and the work done simulator for the angled case, and the kinetic energy formula explained, with the kinetic energy calculator beside it.
From here the natural next steps are sideways. Heights instead of forces are the conservation of energy calculator and the conservation of energy simulator; a slope instead of a level floor is the friction on an incline lab; a time instead of a distance is momentum and impulse, with the impulse calculator. The rest of the collection is in the library of physics simulations and on the blog.
Because each box is rounded to one decimal place on its own, while the lab works the net work out from the net force rather than by adding the two rounded figures. Set 0.5 kg, a 137 N push, a coefficient of 0.50 and 20.0 m: the boxes read 2740.0 J and -49.1 J, which sum to 2690.9 J, while Net work reads 2691.0 J. The quantities add exactly; the printed figures need not.
Not reliably, which is why the lab gives you a Change in KE stat instead. Try 0.5 kg, no push at all, a coefficient of 0.05, 0.5 m and a starting speed of 3.0 m/s: KE at the start reads 2.3 J and KE at the end 2.1 J, a difference of 0.2 J, while Change in KE and Net work both read -0.1 J. Read the stat, not the subtraction.
Because that stat is always the raw push minus the friction force, at every setting the panel can reach. With 8.0 kg, a 10 N push and a coefficient of 0.25 it reads -9.6 N while the block sits perfectly still, so it is the amount the push falls short by rather than a force that acts. The status line says the same thing in words: nothing moves, because 10 N cannot beat 19.6 N of friction.
No, and it should never be read as a stopwatch. The replay uses the real motion of a constant net force, but the clock is stretched or squeezed to land between 0.8 and 3.0 seconds of screen time, and a caption says whether it is running in real time, sped up to fit, or slowed down to be watchable. The theorem itself hands you a speed and never a duration.
Every work figure is then worked out over the distance actually covered, not the distance you asked for. With 8.0 kg, a 30 N push, a coefficient of 0.60, 6.0 m and a starting speed of 4.0 m/s the block stops after 3.7453 m, which the status line rounds to 3.75 m, and Work by your push reads 112.4 J rather than the 180.0 J that a full 6.0 m would suggest. The block ends at rest.
Because the push in this lab is horizontal, so nothing you set changes how hard the block presses on the floor. The normal force is the weight, and the friction force is the coefficient multiplied by it. Angle the push even slightly and that stops being true, because part of it then lifts or loads the block, and every figure on the panel moves as a result.
The quantity doubles every time; the printed figure does not always follow. From the opening setting, going from 0.5 m to 1.0 m gives 10.2 J and 20.4 J, and going from 6.0 m to 12.0 m gives 122.3 J and 244.6 J, both exactly double. Go from 3.0 m to 6.0 m instead and you get 61.1 J and 122.3 J, a tenth of a joule adrift, purely from rounding.
No. One coefficient of friction is used throughout, so there is no separate static threshold anywhere in the model. A real floor usually demands more force to start a body sliding than to keep it going, so a push this lab calls just enough might shift nothing in practice. Treat the nothing-moves case as a statement about the model rather than about a floor.