Overview
DDF — Drone Drop Finder — turns offline crash simulations into an embedded prediction interface. The PC application estimates where an aircraft may land after total thrust loss; a C99 library interpolates the resulting distributions on the controller.
The linked four-page IESBJ report documents the model, simulation results, and embedded integration. The public DDF repository contains both reports and the implementation.
Problem definition
The last GPS position is a starting point for a search, not necessarily an impact point. Horizontal momentum, wind, and turbulence can move an unpowered aircraft during descent.
Research motivation
Computing many rigid-body trajectories on a PC allows the expensive simulation to happen offline. Firmware then answers a small state-to-distribution query using a lookup table instead of solving a Monte Carlo problem in flight.
System architecture
The C#/.NET 8 simulator separates Domain, Physics, Application, IO, Visualization, and App projects. BepuPhysics2 integrates the rigid body; grid sweeps produce trial CSVs for library/drone_drop.c and drone_drop.h.
The C library loads CSV data at boot, aggregates per-cell statistics, and estimates intermediate flight states through trilinear interpolation. Compile-time defaults bound the grid to 20 altitude × 15 horizontal-speed × 10 vertical-speed levels. The implementation uses static arrays rather than heap allocation.
DroneDrop_Status drone_drop_predict(float altitude_m,
float h_speed_mps,
float v_speed_mps,
DroneDrop_Prediction *out);
Methodology
The failure model removes all motor thrust and retains gravity plus isotropic quadratic drag. Each trial samples wind speed and bearing, with Dryden turbulence added to the wind field. Impact coordinates are recorded relative to the failure location.
Aircraft mass, drag coefficient, and reference area parameterize the model. The embedded API takes altitude, horizontal speed, and vertical speed. The header documents positive vertical speed as climbing; integrations must reconcile this with GPS down-velocity conventions.
Experimental setup
Report Table 1 uses a 0.6 kg aircraft, drag coefficient 1.1, and reference area 0.03 m². The reported sweep has eight altitude levels from 10.4 to 120.3 m and eight cruise-speed levels from 0 to 20 m/s.
Approximately 983 trials per combination produce 62,912 simulated trials. These settings belong to the report’s dataset, rather than every possible LUT generated by the software.
Results
Across the report’s simulation dataset, mean fall distance is 20.33 m, standard deviation 15.0 m, and reported p95 distance 49.02 m. Table 2 breaks down the distribution by altitude.
At the specific 57.5 m / 8.57 m/s convergence condition, the reported sample mean is 17.264 m after 983 trials. This condition differs from the altitude-aggregated row below and should not be substituted for it.
| Altitude (m) | Mean distance (m) | p95 distance (m) |
|---|---|---|
| 10.4 | 8.76 | 20.88 |
| 26.1 | 13.37 | 31.25 |
| 41.8 | 16.81 | 38.53 |
| 57.5 | 19.72 | 45.20 |
| 73.2 | 22.00 | 48.77 |
| 88.9 | 24.67 | 54.10 |
| 104.6 | 27.27 | 58.30 |
| 120.3 | 30.03 | 62.80 |
These are the report’s simulated distribution statistics, not measured impact-location accuracy. The library separately estimates a p95 radius using a normal approximation; field coverage is not established.

Discussion
drone_drop_predict() returns forward/lateral mean offsets, standard deviations, mean radial distance, and an estimated p95 radius. Body-relative offsets need to be rotated by heading before being interpreted on a world-coordinate map.
The library computes its radius using mean distance plus 1.6449 times radial standard deviation. That normal approximation does not itself establish calibrated 95% coverage in physical crashes. The report’s proposed STM32F405, NEO-M9N, and SD/FatFS integration is distinct from measured on-aircraft validation.
Limitations
Isotropic drag omits attitude-dependent aerodynamics, and total thrust loss excludes partial-motor failures. The report explicitly states that field verification through actual crash experiments was not performed.
The author-supplied field photograph is project context. It is not evidence that the simulated distances or estimated coverage have been validated in the field. Memory footprint and integration targets are reported design characteristics, not newly measured portfolio benchmarks.
References and resources
Primary sources: the IESBJ report, Sections 3–7 and Tables 1–4; the public DDF README; library/drone_drop.h and drone_drop.c. Source links below identify the exact code revision used for this write-up.
Project resources
Implementation & data
Source files at the reviewed repository revision.
C99 prediction APILUT implementationIntegration documentationSource: Muwon Lee, DDF report on IESBJ, Sections 3–7 and Tables 1–4; public DDF repository. Simulation results are distinct from physical validation.
