Saving Jet Fuel is a blog post that turned into a tour of aerospace engineering, distributed systems and open-source software. The post’s author, a researcher named Junzi Sun, wants to find a cheaper way across the Atlantic — and along the way, he shows off a Python virtual machine, a Dutch university’s flight models, and a weather database from NOAA.
The problem is simple to state but hard to solve. A Boeing 787-9 Dreamliner flying nonstop from Newark Liberty International Airport (EWR) to Leonardo da Vinci-Fiumicino Airport (FCO) could need $68K in jet fuel over an 8.5-hour flight. Wind conditions change constantly, and adjusting the flight path for those changes could reduce fuel consumption and possibly save a few thousand dollars.
The Tools Behind the Post
Sun’s setup reads like a hardware spec sheet for a high-end workstation. He runs a 5.7 GHz AMD Ryzen 9 9950X CPU with 16 cores and 32 threads, 96 GB of DDR5 RAM at 4,800 MT/s, and a 4 TB Crucial T700 NVMe SSD reading up to 12,400 MB/s. The system is cooled by a liquid cooler and sits in a Cooler Master HAF 700 case, powered by a 1,200-watt Corsair power supply and an ASRock X870E Nova 90 motherboard.
The operating system is Ubuntu 24 LTS running through Microsoft’s Ubuntu for Windows on Windows 11 Pro. Sun explains that he stays on Windows because his Nvidia GTX 1080 GPU has better driver support there, and ArcGIS Pro only works on that platform.
From OpenAP to Scikit-Decide
The core of the post is a comparison between two flight paths, both flown using the Airbus A320 and OpenAP’s fuel consumption model. OpenAP is an aircraft performance model and toolkit developed by Sun himself. He holds a PhD in air traffic management and teaches the subject as a tenured assistant professor at TU Delft in the Netherlands.
Scikit-decide is the planning framework doing the actual work. It has been in development for six years and is a framework for reinforcement learning, automated planning and scheduling. It can optimise flight paths, re-organise airline workforce schedules and calculate drone swarm paths. The project can be configured to use different fuel consumption models.
The installation process is thorough. Sun sets up a Python Virtual Environment with python3 -m venv ~/.flight_planning and source ~/.flight_planning/bin/activate, then installs scikit-decide, OpenAP and OpenTop. OpenTop is another flight trajectory toolkit developed by Sun.
The Data That Runs the Solver
OpenAP’s model relies on a large number of datasets packaged with its codebase. The datasets cover a wide variety of aircraft, and Sun provides a count of manufacturers:
- Boeing: 17 entries
- Airbus: 13 entries
- Embraer: 5 entries
- Gulfstream: 1 entry
- Cessna: 1 entry
He also opens the files themselves. The Airbus A380-800 entry lists maximum takeoff weight, maximum landing weight, empty weight, maximum fuel capacity, speed limits and more. The drag polar file adds its own coefficients, and a separate text file holds additional wrap data.
Sun uses DuckDB to handle the data, loading its H3, JSON, Lindel, Parquet and Spatial extensions. He sets up a configuration file so every extension loads automatically on launch.
What the Comparison Shows
The post does not publish the exact savings from its two flight paths. Instead, it walks readers through the tools and data that made the comparison possible. The comparison itself is the method, not the result.
The broader point is that open-source tools exist for this kind of work. Firms like Jeppesen offer commercial solutions, but Scikit-decide, the Delft University of Technology’s models and NOAA’s wind data offer a free alternative. Sun’s post demonstrates that a researcher can assemble a working pipeline from freely available components.
The post is dense with technical detail, and it assumes a reader who knows Python and shell scripting. But the underlying idea is easy to grasp: a flight’s path is not fixed, and small adjustments can cut costs.
Key Numbers
- Flight: Boeing 787-9 Dreamliner from EWR to FCO, 8.5 hours
- Estimated fuel cost: $68K
- Possible savings: a few thousand dollars
- OpenAP aircraft types: 3,369 lines of Python, 17 Boeing, 13 Airbus, 5 Embraer, 1 Gulfstream, 1 Cessna
- Installed packages: 26 total, including scikit-decide 1.1.1 and OpenAP
- Workstation: 5.7 GHz Ryzen 9 9950X, 96 GB DDR5, 4 TB Crucial T700 SSD
- OS: Ubuntu 24 LTS via Ubuntu for Windows on Windows 11 Pro
The Schedule of Installation Steps
| Step | Command |
|---|---|
| Add Python repository | sudo add-apt-repository ppa:deadsnakes/ppa |
| Update packages | sudo apt update |
| Install prerequisites | sudo apt install jq python3-pip python3.12-venv |
| Set up virtual environment | python3 -m venv ~/.flight_planning; source ~/.flight_planning/bin/activate |
| Install libraries | pip install 'scikit-decide[all]' 'openap[all]' opentop |
| Load DuckDB extensions | INSTALL h3 FROM community; INSTALL lindel FROM community; INSTALL json; INSTALL parquet; INSTALL spatial |
The post is a useful demonstration of what open-source tools can do in aerospace research. It shows how a researcher can build a custom flight-planning pipeline from freely available models and data, without relying on proprietary software.
The comparison itself is a methodological statement. Sun is not publishing a final number, but he is showing that the question of fuel efficiency is tractable with the right tools. That is the value of the exercise.
The hardware detail is entertaining in its specificity. A 5.7 GHz processor, a 1,200-watt power supply, a GTX 1080 — this is not a modest lab rig. Sun’s decision to stay on Windows because of ArcGIS Pro is a small but telling detail about how institutional software requirements shape personal workflows.
The post is a reminder that the tools of science are now widely available, even if the knowledge behind them is not always easy to access. Sun’s work is a bridge between the two, and his willingness to document it step by step is generous.
Get the Notebook.
The day's best stories and every fresh verdict, in plain English, in your inbox by seven. One email a day, no more.

