Airplane Emulator: six degrees of freedom in the browser, not an arcade about planes

What kind of game this is

There is no score that ticks up when you press something. There is an aeroplane: a single-engine high wing, 767 kg empty and about a tonne at startup, a 16.2 m² wing on an 11 m span with a 1.49 m mean chord, a 1.93 m propeller, three gear legs, and a 160 litre tank of which you leave with 128. The score is whole nautical miles you flew yourself in the air; taxiing and the showcase do not count.

Gameplay screenshot: Airplane Emulator

Every number in the config is a physical one, in SI units, labelled with what it means, so a single edit produces an expected consequence instead of shifting everything at once.

What is actually simulated

The model steps at 1/240 s, a frame catches up no more than sixty substeps and no more than 0.25 s of accumulated time, and the debt is then dropped: a tab that slept does not teleport the aeroplane and does not owe a burst that gets paid back in one frame. Forces and moments are summed in the body frame from standard stability derivatives: lift and drag from angle of attack, side force and yawing moment from sideslip, damping from the body rates, control moments from the actual surface deflection rather than from an abstract stick value. Rotation is integrated with Euler's equations over a diagonal inertia tensor (1285, 2667 and 1825 kg·m² about roll, yaw and pitch), attitude is carried by a quaternion, and air density comes from the International Standard Atmosphere: 101325 Pa and 288.15 K at sea level, a 0.0065 K/m lapse rate, a tropopause at 11 km, which is why thrust falls off with height for a reason instead of by a cosmetic multiplier.

The control surfaces have travel and a rate: 25, 20 and 24 degrees, moving 3.2 / 4.5 / 3.0 of full travel per second, so a sharp pull is a command rather than an instant state, and the ailerons always answer faster than the elevator.

A wing that does not switch off

The lift curve goes non-linear past the stall: 16.5 degrees of attack, the peak coefficient of 1.62 four degrees further on, and after that the wing keeps producing force and loses it gradually instead of switching off, which is what nearly every browser "simulator" does. Inverted flight and a fully departed aeroplane are solved with the same equations as level flight. Stall speed is recomputed from mass, bank, flaps and density: about 48 knots clean, 40 with thirty degrees of flaps, and in the instrument that is the bottom of an arc, not a pretty number.

Three flap notches of ten degrees each, every one adding its own lift, drag and pitching moment: +0.35 / +0.62 / +0.82 of lift against +0.012 / +0.039 / +0.082 of drag and −0.05 / −0.09 / −0.13 of pitch. The model does not break the wing at speed; it simply charges you the drag and the nose-down moment. The white arc on the indicator ends at 90 knots (46.3 m/s), and past it flaps stop being a tool and become something you have to hold off with the stick.

The propeller pushes and twists

Thrust comes from shaft power times an efficiency that grows with airspeed: 0.9·V/(V+14.3). On the take-off roll the prop is poor, at cruise it is close to its best, so 134 kW (180 hp) promises nothing by itself. Reaction torque rolls the aeroplane left and the slipstream pushes the rudder the same way; both fade as speed builds, which is why a left turn at low speed is always the harder one. In the code that is one line, cnSlipstream: 0.055, and it cannot be "tuned by eye": together with weak thrust at low speed it gives an airfield where the left circuit is harder than the right, exactly as on a real single-engine aeroplane.

Fuel is litres, burned according to power: 0.0106 L/s at full throttle, about 38 litres an hour, 15 % of that on idle. The aeroplane gets lighter as the tank empties and recomputes its inertia and its stall speed, and when the fuel runs out the engine stops and a 9:1 glide becomes the whole remaining flight model.

Three gear legs and four surfaces

The nose leg is 34000 N/m with a 3600 damper and 28 centimetres of travel, the mains are 52000 and 5200. Past 28 centimetres the strut bottoms out on nine times the stiffness, and a vertical speed above 3.6 m/s at contact collapses the gear and ends the flight. Tyre force is capped by how hard the wheel is pressed down, and the impulse can never exceed what is needed to stop the wheel; the nosewheel steers with the rudder, and sideways slip faster than 1.2 m/s above 400 N lays a skid mark on the runway.

Surfaces differ, and their numbers differ: asphalt 0.022 rolling resistance and 0.85 side grip, grass 0.085 and 0.62, dirt 0.11 and 0.55, water 0.9 and 0.9. A grass strip forgives touchdown speed but not a turn, and touching down on water is a stop rather than a slide.

The airfield and the world around it

Skylark Field (KSKY): a 1400 by 30 metre runway with ends 36 and 18, eight threshold stripes, a taxiway, an apron, hangars, a terminal, a 19 metre tower and two windsocks at the ends. Edge lights every 60 metres and bars at the thresholds. The field itself is cut flat and blended into the hills with a window that has zero value and zero slope at its rim: a linear window would match the height and still leave a visible crease, and a crease in the normal under a wheel is a shove sideways.

The terrain is procedural and deterministic from the seed 20260919: a continental base, hills, detail, and a mountain ridge whose crest comes from folding the noise through an absolute value, so the tops are sharp rather than rounded; the further west, the more alpine, and to the east the ground sinks into the sea to minus forty-five metres. Four landmarks to navigate by: the field itself, the harbour town, the lighthouse and the pass. About nine hundred trees, scattered by a hash and kept off the movement area, and a town of seventy buildings; all of it generated from a fixed seed, which means the map is identical on every load and the physics and the renderer look at one list of objects instead of two descriptions that have to be kept in sync.

Wind is set at the ground and grows with a power law: about half the named value at ten metres, the whole of it at three hundred. Gusts come from noise keyed to position and time and are stronger near the ground: at 18 knots across the field you hold the centreline with a bank into the wind, and density altitude takes climb performance away on a hot day, because the temperature changes the air density rather than a line on the panel.

A picture without WebGL

Polygons are transformed into view space, clipped against the near plane, projected and painted back to front on a plain 2D canvas: a frame spends about five thousand polygons. Depth order comes from one centroid per polygon, which is why there is a detail you can see on the runway: a long stretch must not be issued as a single polygon, or its centre sits nearer than it should and covers something that belongs in front of it. Distance fades into haze, light comes from the sun position, terrain detail drops with range.

The panel is the standard six-pack: an airspeed indicator with coloured arcs, an attitude indicator with a pitch ladder, an altimeter with a Kollsman window, a turn coordinator with a slip ball, a heading indicator with a bug for the selected course, a vertical speed indicator scaled to two thousand feet a minute, plus a tachometer and fuel, throttle and flap gauges. The altimeter carries a Kollsman window, and the "27 feet per hectopascal" rule is real in the code; the window reads 1013 for now and there is no key to spin it, so at sea level with standard pressure the indicated height is the true one, which is exactly what the rule is for. On a narrow window the panel drops instruments rather than shrinking them past legibility.

An autopilot that does not play for you

Cascaded like a real one: heading through bank to ailerons, altitude through vertical speed to pitch, speed through a controller to throttle, with limits of 25 degrees of bank, plus 15 and minus 12 degrees of pitch and 3.6 m/s of vertical speed, and altitude captured rounded to the nearest fifty feet. There is envelope protection: at 75 % of the stall angle the autopilot would rather trade height for speed than stall itself chasing an altitude the aeroplane cannot reach today.

It exists for the showcase and the automated test and it never lands in your score: the engine keeps the showcase's distance in its own counter, the leaderboard takes only miles the player flew, and those are zeroed when a new attempt starts, because the leaderboard stores a maximum and starting over is safer than accumulating between take-offs.

Four starts

Held on the runway with the parking brake set and 12 % throttle; level cruise at 914 metres (three thousand feet) ten miles north of the field; short final two miles out for runway 18 at 70 knots with twenty degrees of flaps and seven hundred feet of height; and an engine failure at 1200 metres over the ridge, where best glide is 68 knots and you had better pick somewhere flat.

Controls

Arrows fly pitch and roll, and up means nose down, like a real column. Z and C rudder, W and S throttle, comma and period trim, F and V flaps, B brakes, P parking brake, E engine start and shutdown, R restart. A engages the autopilot, brackets move the heading bug, minus and equal change the selected altitude, semicolon and apostrophe the selected speed. 1-4 are cockpit, chase, orbit and tower, Tab the map, H the key list, Esc pause. On a phone the left half is a stick and the right half is throttle; a gamepad is picked up as soon as it is connected.

How people fly here

  • Speed matters more than heading: clean, the aeroplane climbs 700-1000 feet a minute, on idle it glides 9:1, and height thrown away in a dive does not come back.
  • Take-off: release the parking brake, full throttle, rotate at 55 knots and stay above 60 until the climb is finished; lead left turns with rudder, because torque and slipstream push the nose left.
  • Extend flaps one notch at a time: twenty degrees buys a slower approach and a lower stall, and costs a sink plus a nose-down moment, with the white arc ending at 90 knots.
  • Touch down slower than 3.6 m/s vertically and without sideways slip: the bottoming strut and the skid mark are not decoration, they show what you did before the crash text appears.
  • Watch the load factor: the working limits are plus 3.8 and minus 1.52 g, and above six g in the air the flight ends as suddenly as a hard landing.
  • Keep the fuel in your head: 128 litres is about three and a half hours at full throttle and considerably more at idle, and an empty tank does not warn you twice.

Airplane Emulator runs in the browser for free, in Russian and English, with no install and no plugins; on a phone the stick and throttle answer to touch, and a gamepad works as soon as you plug one in. Your record — the nautical miles you flew yourself — goes to the igrasu.ru leaderboard.

INFO
[Partner ads]

We use cook​ies for analytics. Click "OK" to consent.

Details