Open source · GPL-2.0-or-later

OpenAirside, the engine you can read.

Every Tractrix product is a client of one open-source engine. The kinematics, the aircraft data, the clearance tables and the jet blast calibration are published, tested and yours to audit, reuse and improve.

Architecture: Tractrix Cloud, AutoCAD, Revit and scripts send tractrix/1 JSON requests to the OpenAirside engine; Tractrix for QGIS calls the engine in-process. CloudAutoCADRevitScripts / CI tractrix/1 · JSON request → GeoJSON layers + summary OpenAirside engine tractrix-engine · openairside.core kinematics geometry standards jetblastlibrary
Fig. 1 One engine, one protocol. Tractrix for QGIS imports the same core in-process.

What is inside

Five modules, no hidden parts.

The core is pure Python with no QGIS dependency, so it runs in a notebook, a server or a CI job exactly as it runs inside QGIS.

Table 1 Modules of openairside/core.
ModuleResponsibilityMethod and source
kinematics.pyForward taxi, pushback, articulated chains, steering angles, turning radiiTractrix pursuit update, ICAO Doc 9157 Part 2 App. 1
geometry.pyAircraft and vehicle body models, key points, convex hullsFAA ACD dimensions; estimated planform, flagged per output
standards.pyWingtip, stand and wheel-to-edge clearances, taxiway widthsAnnex 14 Table 3-1 and 3.13.6, Doc 9157 Table 1-1, AC 150/5300-13B Tables 4-1, 4-2
jetblast.pyVelocity contours and intake hazard areasSingle equivalent jet, Witze decay, calibrated to Doc 9157 Table A2-1
library.py388 aircraft and 14 ground vehiclesFAA Aircraft Characteristics Database; 44 cited steering limits

Headless

One request in, one response out.

The tractrix-engine command reads a tractrix/1 request from a file or standard input and always writes JSON to standard output. It exits with 0 on success, 2 on a request error and 1 on an engine error, which makes it easy to use from any language.

CLI reference →

# turning radii of an A320 at maximum steering
echo '{"protocol": "tractrix/1",
       "task": "turning",
       "params": {"aircraft": "A320", "steer_deg": 0}}' \
  | tractrix-engine run

# → {"protocol": "tractrix/1", "ok": true,
#    "summary": {"runs": {"A320": {"R4_wingtip": …}}}}

Open development

Reproduce it. Challenge it. Improve it.

An engineering model earns trust when others can check it. These are the ways in.

Run the tests

tests/run_tests.sh runs 20 engine unit tests and 14 headless QGIS integration tests, including the published A320 turning radii and ICAO jet blast table.

Correct the data

Steering limits are hand-keyed in tools/aircraft_overrides.json, each with its source document. Add a type or a better value with its citation.

Report a discrepancy

If a result differs from a manufacturer chart, open an issue with the aircraft, the input line and the published value. Discrepancies are treated as bugs.

Licence: GPL-2.0-or-later, as required for QGIS plugins. Aircraft data re-keyed from public facts; no vendor library, data file or software was used or reverse-engineered. See licences.