Four Forces
An interactive 3D visualisation of lift, weight, thrust, and drag — explore how an aircraft climbs, descends, and holds level flight.
Static diagrams show what the four forces are and which direction they act. What they cannot show is how the forces change relative to each other as the pilot changes speed or attitude. A student who has only seen diagrams may be able to name the forces but won’t yet have the intuition for why reducing power causes a descent, or why raising the nose alone is not enough to climb.
This tool makes the force balance dynamic. Because the arrows resize in real time as you move the sliders, the relationship between pilot input and force output becomes something you can feel your way through rather than just recall. That is the gap it closes: between “I’ve memorised the four forces” and “I understand how they interact.”
Description
The Four Forces tool shows a 3D aircraft with four labelled force arrows — lift, weight, thrust, and drag — that grow and shrink in real time as you adjust the controls. Two gauges show airspeed and rate of climb or descent.
There are two sliders:
- Power — increases or decreases engine thrust
- Attitude — pitches the aircraft nose up or down
As you move the sliders, the arrows and gauges update to show the new balance of forces and where the aircraft is headed. A physics model drives the response; the airflow particle stream and weight-component decomposition during climbs make the underlying mechanics visible. Multiple embeds on a page (or across tabs) synchronise via BroadcastChannel, useful for presenter/slide pairing.
All four forces are drawn to one true scale, so lift and weight tower over thrust and drag — on a real aeroplane, thrust is a small fraction of weight. The airframe renders translucent (configurable via model-opacity) so the short thrust and drag arrows stay visible at its centre. Every balance is exact: in a settled glide the drag arrow and weight’s along-path component are equal and opposite, and in any steady state, level or not, the arrows sum to zero — a climb or glide shows up on the gauges and in the velocity, not as surplus lift. When the arrows don’t balance, the aircraft is accelerating: speed washing off, or the flight path curving.
The arrows don’t all originate from a single point: each starts where its force acts on the aircraft — lift high in the wing cell at the quarter-chord, thrust at the propeller, drag at the wing-cell trailing edge (on a biplane the wings and their rigging dominate the drag), weight at the centre of gravity. Because those points differ, the forces form pitching couples, and a solid grey line extends each force’s line of action back so that together the four lines trace a moment quadrilateral — a rectangle in straight and level flight. Lift acting forward of the CoG is a nose-up couple with weight; the thrust line above the drag line is a nose-down couple opposing it. In other flight states the shape deforms, and a grey line disappears with its force (close the throttle and the thrust line goes with it). The application points are configurable per aircraft via lift-offset, thrust-offset, and drag-offset; weight needs no configuring — its line of action always passes through the CoG.
For instructors
Use it during ground briefings to show concepts that are otherwise hard to describe:
- Straight and level flight — demonstrate that lift equals weight and thrust equals drag, and how changing one force disturbs the balance
- Climbing and descending — show how excess thrust produces a climb, and how reducing power causes a descent even with the same attitude. Pitching up gives an immediate climb as speed trades for height, then settles at the modest rate set by excess power — attitude alone is not enough to climb
- The glide — close the throttle and lower the nose: the aircraft settles into a steady glide with lift still nearly equal to weight, tilted slightly forward, while the along-path component of weight does the job thrust used to do — the drag arrow and that weight component are equal and opposite
- The couples — each arrow starts where its force acts (lift at the wing, thrust at the propeller, drag at the trailing edge, weight at the CoG), and the grey lines extend the lines of action back into a rectangle in level flight. Lift acting forward of the CoG is a nose-up couple with weight; the thrust line above the drag line is a nose-down couple. In balance they cancel — the reason a trimmed aircraft holds its attitude
- The stall — the wing stalls when its critical angle of attack is exceeded (at your configured
v_1in level flight, or above it in a steep turn): lift collapses and the nose drops - Turns — enable the bank control to show that rolling in without back pressure produces a descending turn, and that holding altitude in a steep turn needs more angle of attack and more power
The tool works in any modern browser — a laptop or tablet connected to a projector is all you need.
For trainees
Try it yourself between lessons to build intuition:
- Set full power and watch the aircraft accelerate and climb
- Reduce power gradually — notice how the rate of climb decreases, and what throttle setting holds level flight
- Raise the nose and watch the climb: strong at first while speed washes off, then settling to whatever the spare power can sustain
- Close the throttle and find the glide: lower the nose until the speed steadies, and notice lift is still almost equal to weight
- Raise the nose at low speed and observe how the drag arrow grows relative to thrust
- Lower the nose and add power — watch how quickly speed and lift recover
Experimenting here costs nothing and reinforces what you cover in the air.
Embedding this component
<script type="module"> import 'https://unpkg.com/@open-aviation-solutions/components/dist/lib/define.es.js';</script>
<four-forces height="400px" model-path="/path/to/aircraft.glb"></four-forces>Attributes
| Attribute | Default | Description |
|---|---|---|
height | 400px | CSS height of the component |
model-path | /aircraft.glb | URL to the GLTF aircraft model file |
model-opacity | 0.15 | Airframe opacity (0–1). The translucent airframe keeps the true-scale thrust/drag arrows visible; 1 renders the model fully opaque |
lift-offset | 0,0.25,0.06 | Application point of lift as a body-frame x,y,z offset from the CoG, in scene units (the aircraft spans ~2). Default: high in the wing cell at the quarter-chord |
thrust-offset | 0,0.1,0.33 | Application point of thrust, same format. Default: the propeller boss |
drag-offset | 0,0.05,-0.13 | Application point of drag, same format. Default: the wing-cell trailing edge, above the CoG but below the thrust line |
v_ne | — | Never-exceed speed (kts). Sets ASI scale maximum and draws red radial line |
v_no | — | Normal operating speed (kts). Top of green arc, bottom of yellow arc |
v_1 | — | Stall speed clean (kts). Bottom of green arc; also calibrates the stalling angle of attack (a generic default applies when unset) |
cruise-kts | 100 | Airspeed at nominal cruise. Calibrates the ASI needle to the aircraft’s actual speed range |
banking | — | Boolean. When present, shows a bank angle slider. Banking tilts the lift vector and displays its components: the part still opposing weight and the horizontal part pulling the aircraft into the turn |
show-help | — | Set to "false" to hide the in-component help (?) link |
Dependencies
Requires three (≥ 0.184) as a peer dependency:
npm install three @open-aviation-solutions/components