openFSX Independent flight simulation
GitHub ↗
A NEW ENGINE FOR A FAMILIAR WORLD

A new beginning for Flight Simulator X.
An independent runtime, built from scratch in Rust.

Research prototype · Initial airborne C172 test mode

What is openFSX?

A project to explore a modern engine for the world of Microsoft Flight Simulator X, inspired by openOMSI. The target is FSX 1:1 across interface, behavior, content and APIs, using an independently written runtime. Compatibility must be verified one subsystem at a time; parity has not been established.

Today, that means inspecting content, viewing textured models and testing keyboard-controlled C172 flight, including fixed-wheel ground roll and departure. Scenery, broader landing behavior and add-on APIs remain ahead.

AVAILABLE

Content inspector

Read aircraft variants from aircraft.cfg. Explicit legacy encoding support and read-only access to your installation.

Run the inspector →
EXPERIMENTAL

Native model viewer

MDLX geometry, diffuse DDS textures, livery fallback lookup, selectable LODs and manual authored-key inspection, rendered through wgpu.

Explore the viewer →
EXPERIMENTAL

C172 flight prototype

Keyboard controls, six-degree-of-freedom dynamics, fixed-wheel ground contact and departure from an original test runway.

Controls and evidence →

Inside openFSX

Actual openFSX captures, 17-19 October 2026. C172 engine views use wgpu on an RTX 2080 / Vulkan; the menu is a native Windows host using locally installed skin artwork. Select an image for the full-size capture.

C172 over Innsbruck at dusk under a purple FSX sky with warm-lit terrain and town.
Innsbruck at 18:45--time selects the installed FSX sky period and scene tint; autogen town, terrain and haze follow.
C172 cockpit at night on Seattle runway 16L with lit instruments and runway edge lights.
Seattle at nightNight tint, panel-light floor and openFSX runway edge/threshold lights.
C172 flying over suburban Innsbruck with trees, the Inn valley and hazy Alpine ridges under cumulus clouds.
Over InnsbruckAirborne start (--airborne): FSX elevation and land-class textures, autogen houses from the stock annotations, airport objects, taxiways, trees, haze and cumulus.
C172 over Seattle with urban ground textures, runways and a hazy horizon.
Over SeattleUrban land-class textures, streamed terrain, runways and haze.
C172 on Seattle-Tacoma runway 16L under a blue sky gradient with scattered cumulus clouds.
Sky and cumulusInstalled FSX noon sky gradient and cumulus puff sprites; clusters of crossed translucent puffs above the terrain. Weather themes and time of day not yet simulated.
C172 cockpit with live instruments on Innsbruck runway 08, Alpine ridges rising on both sides of the valley.
Innsbruck 08: Alpine terrainElevation and land class decoded from the installed BGLs by the installed terrain.dll through the x86 helper; stock summer FSX ground textures per land class, airport flattened. Urban texture choice approximated.
C172 on the threshold of Innsbruck runway 08 with mountains along the Inn valley behind.
Innsbruck exteriorReal runway and terrain; flight collision with terrain stops the flight for reset.
C172 virtual cockpit with live airspeed, attitude and altimeter instruments, lined up on Sheremetyevo runway 07R decoded from the installed scenery.
Sheremetyevo 07R from the cockpitRunway, heading and 192 m field elevation decoded from installed BGL airport records; live native instruments; menu default start. Terrain is flat; no buildings or textures yet.
C172 on the threshold of Seattle-Tacoma runway 16L with threshold bars, centreline and the parallel runway, flight panel showing heading 180.
Seattle-Tacoma 16LReal runway geometry from BGL with the installed FSX asphalt texture; openFSX-painted threshold bars, 16L designator, aiming points and centreline; FSX terrain, land class and sky.
Blue and gold C172 viewed from a front quarter against the openFSX model viewer's slate background.
Textured aircraft viewerLOD 150 · 11,314 triangles · diffuse DDS textures. Bind pose; animation and generated registration decals remain incomplete.
C172 interior with native instrument scales and radio artwork rendered by openFSX; needles, moving faces and digital values are absent.
Static panel artwork inspection28 native root images on the configured VC textures. Separate offscreen preview: needles, moving faces, digital values and XML are absent. Default flight-mode gauges remain blank.
C172 instrument needles rendered from recorded native callback results, with raw airspeed input 75 and altimeter input 500.
Native needle results: sample 75Six original bitmap needles, native DLL results and authored pivots/tables. Raw inputs: airspeed 75, tachometer 1800, vertical speed 0, altitude 500. Inspection values; no live flight binding or timing.
The same C172 camera with needles changed by native callback results, using raw airspeed input 200 and altimeter input 1000.
Native needle results: sample 200Identical camera and geometry; 831 changed pixels in the selected gauges. Raw inputs: airspeed 200, tachometer 2700, vertical speed 256, altitude 1000. Other layers and FSX parity remain ahead.
C172 above the openFSX test runway with live speed, height, vertical speed and attitude panels drawn by the engine.
Airborne flight prototype10 seconds at initial trim · 90 kt / 300 m · live flight and attitude panels. CFG payload and full usable fuel; original test ground, with no FSX scenery loaded.
C172 resting on the original openFSX test runway, with ON WHEELS status, zero throttle and full brakes on the live panel.
Start on the runwayThree fixed-wheel spring/damper contacts support the loaded aircraft. Parking, braking and ground-to-air departure checks pass; FSX takeoff fidelity and landing behavior remain unvalidated.
C172 cockpit rendered by openFSX with blank gauges and the original test world visible through the windshield, cockpit flight: runway start.
Cockpit flight: runway startConfigured native interior and eye point, attached to the same physics as the exterior. Original test runway; dynamic gauges remain blank.
C172 cockpit rendered by openFSX with blank gauges and the original test world visible through the windshield, cockpit flight: right bank.
Cockpit flight: right bankOne second of right-bank control produces 15.7 degrees of bank. The horizon moves relative to the cockpit; gauges and FSX camera parity remain ahead.
Independent openFSX Free Flight menu using the installed FSX skin, with the C172 selected and FLY NOW button.
Free Flight menu prototypeHistorical native Windows capture, before the projection correction. Installed skin and MDLX/DDS aircraft preview; independent layout. Drag to orbit, wheel to zoom. Aircraft selection, launch and return work. Other sections and exact FSX parity remain incomplete.
C172 from the rear with its elevator at authored animation frame zero.
Authored elevator keys: frame 0Animation group 7 in the verified C172. Native model keys, independent decoding and rendering. Compare with frame 100 using the same camera.
The same rear camera with the C172 elevator at authored animation frame one hundred.
Authored elevator keys: frame 100Positions and normals update through the model hierarchy. Manual keys, variable bindings and a visibility subset work; control-surface animation and FSX calibration remain ahead.
C172 native visibility inspection at explicit zero propeller RPM percent, showing the solid propeller blades.
Visibility inspection — 0% prop RPMAuthored conditions select the solid propeller. Explicit inspection input, not a live FSX measurement. Identical camera to the adjacent 20% capture.
C172 native visibility inspection at explicit 20 percent propeller RPM, showing the selected blurred propeller alternative.
Visibility inspection — 20% prop RPMThe same MDLX selects its blurred alternative. GPU differences are confined to the propeller region; this checks rendering, not engine dynamics or calibrated FSX RPM.
C172 nose wheel turning right from the shared flight controller, physical steering angle and native model animation.
Physics-driven nosewheel: rightThe same angle feeds wheel contact forces and native XAPC animation. Offscreen controller-to-GPU check with pause/reset verified; original FSX steering comparison remains ahead.
C172 nose wheel turning left from the shared flight controller, physical steering angle and native model animation.
Physics-driven nosewheel: leftThe same angle feeds wheel contact forces and native XAPC animation. Offscreen controller-to-GPU check with pause/reset verified; original FSX steering comparison remains ahead.
C172 cockpit geometry rendered by openFSX with the throttle at idle; instrument surfaces are blank.
Cockpit throttle: idleNative interior geometry and static textures. Controller input, local model variables and XAPC resolve frame 50. Dynamic gauges and panel interaction remain unimplemented.
C172 cockpit geometry rendered by openFSX with the throttle at full power; instrument surfaces are blank.
Cockpit throttle: full powerNative interior geometry and static textures. Controller input, local model variables and XAPC resolve frame 0. Dynamic gauges and panel interaction remain unimplemented.
C172 rendered by openFSX with seven animation groups driven by an explicitly synthetic protocol sample.
Synthetic pose import — pipeline check18 October 2026. Seven authored groups resolve from an invented sample encoded by the independent reference tool. This is an actual openFSX render, not an FSX measurement or a claim of calibrated behavior.

Aircraft artwork belongs to its respective owners. These are engine screenshots, not redistributed aircraft models or textures. Capture details →

The flight plan

01Content inventoryPartial
02Aircraft viewerExperimental
03First flightAirborne prototype
04Scenery & systemsPlanned

The first C172 livery renders with diffuse textures and an initial airborne dynamics subset. Repeatable scenarios check trim, control signs, climb response and the post-peak lift region. Recorded reference-flight comparison and full add-on compatibility remain future work.

Read the architecture and acceptance criteria →

Help shape the next milestone.

Format research, Rust, graphics and reproducible testing are good places to start.

Contributing →