NoMAC Documentation

What the two simulation models do, what they assume, and how to read their results.

Start here

NoMAC is a research prototype for exploring how drone traffic, airspace restrictions and detect-and-avoid (DAA) settings affect safety over Norrköping. It contains two models that answer different questions. Switch between them with the red/blue toggle beside the NoMAC title.

Trajectory based · index.html

Question
How do deliveries, background traffic and U-plans interact over whole days when departure coordination (DCB) and DAA are active?
How
Persistent 3D flights with bounded kinematics on a layered route grid, continuous conflict checks, sensing and vertical avoidance maneuvers.
Outputs
Physical contacts, NMAC intervals and DAA activations per actual flight hour; delivery completion, delays and capacity levels; 3D replay of any hour.

Sample based · research.html

Question
How often do randomly placed drones form groups whose free area per drone (A/n) falls below the research threshold πr²?
How
Independent five-minute position snapshots from the Dn traffic map, connected “blue-disk” groups and a binary A/n rule. U-plans are checked separately as planned routes.
Outputs
A/n-classified groups and close pairs per snapshot, group sizes, U-plan conflicts and saved-run comparisons.

Read results as model outputs, not validated risk. Defaults are experiment assumptions, the route grid and delivery sites are synthetic, heights are above flat ground, and events from the two models are never pooled. Zero observed contacts is not evidence of zero risk.

Quick start

Trajectory based

  1. Scenario: place terminals on the map and set deliveries/day, operating hours and profiles. Optionally add background transit, geofences and U-plans.
  2. Run length: one day, repeated independent days, a flight-hour target (default 1,000 h) or a capacity study across demand levels.
  3. Run: the calculation runs in the background; progress shows completed days or flight hours.
  4. Results: safety, delivery and capacity outputs for the whole study. Select any event to replay it.
  5. Simulation: scrub one hour of a chosen day in 3D and click aircraft to inspect them.

Sample based

  1. Scenario: set daily operations, flight duration and DAA radius r; draw geofences (or add RWY5K) and U-plans.
  2. Simulation: step through one hour of five-minute snapshots and inspect individual groups.
  3. Results: A/n classifications, close pairs, group sizes, the decision map and U-plan conflicts.
  4. Compare runs: add the current run or import exported files to compare settings side by side.

Export JSON for a durable, reproducible copy. Switching models keeps each model's settings only for the current browser session.

Trajectory model

Trajectory workflow

Background calculation and browser limits

Both models calculate in Web Workers, so you can use another tab. On HTTPS and localhost an active calculation holds a Web Lock that prevents Chrome's automatic background freezing; it is released when the calculation finishes or stops. Keep the tab open and the computer awake: other browsers and power settings may still limit background work (Chrome's freezing policy). For runs independent of the browser, use the command line.

Traffic and deliveries

P(i | k) = Bi / Σj∈Sk Bj
Terminal climb Access to grid Outbound cruise Approach & descent Delivery hover Climb to return layer Return cruise Terminal descent
More detail: data, geometry and delivery rules
  • The supplied population file has 3,499 positive cells with B totalling 117,180. B is interpreted as a population count/weight; its census date and field definition are not supplied. Destination points are synthetic, not verified landing sites.
  • Grid spacing is independent of the density-map resolution. Layers are 40 m apart by default; protective cylinders of ±15 m leave a nominal 10 m gap, and layer spacing must exceed every aircraft's protection height. These are experiment assumptions, not validated separation minima.
  • One request is one continuous round trip. Straight junctions are passed without stopping; turns and vertical transitions respect the aircraft's horizontal and vertical acceleration limits. Restrictions and conflicts are checked along every phase.
  • Delivery hover defaults to 30 s at 10 m above flat reference ground and only counts within 1 m of the delivery point. Missed or interrupted service is reported separately. Takeoff/landing contact, ground service, batteries and fleet size are not modelled.
  • Geofences change routes, waiting and rejection; trajectory mode does not redistribute Dn mass. Dn is not a demand target for daily scenarios; older imported Dn-calibrated projects keep their original demand model.
  • A day is limited to 2,000 flights. Demand whose expected count plus five standard deviations would exceed that limit is rejected before running.

Equations and requirement mapping: daily traffic contract and delivery model contract.

Departure coordination, DAA and disturbances

Before departure: DCB

  • Reserves space and time along the whole route: layer and corridor capacity, headway and protective separation.
  • Delays a departure on the ground or rejects it with a stated reason. Every offered flight keeps a decision.
  • Re-checks affected plans after avoidance maneuvers, contingencies and new restrictions.

In flight: DAA

  • Sensors detect within range and horizontal field of view; Pd applies per scan. Observation age and response latency delay the action.
  • In a cooperative pair a randomly drawn master maneuvers: a vertical offset and a continuous return to its route. It re-attempts while the conflict persists.
  • An infeasible maneuver is reported and may end in contact.

Turn DCB and the reference DAA profile on or off under Comparison settings to compare the same traffic with and without each function.

More detail: sensing, disturbances and policies
  • Each aircraft can use its own sensor profile. FoV is a horizontal bearing cone around the heading; no vertical FoV is modelled. Position error is bounded per axis and velocity is exact. CA predicts the intruder at constant velocity from observations, never from its future path.
  • All DAA profiles share one reference vertical avoidance policy; they are parameter sets, not independent supplier algorithms.
  • False alarms, first-failure hazards, smooth vertical tracking deviations and urgent geofences each use a separate seeded random process.
  • After a failure the aircraft brakes and hovers with an enlarged spherical protection volume, then attempts a bounded rejoin.
  • A collision-first geofence policy may relax a restriction to avoid predicted contact. Physical solids and the airspace boundary are never relaxed; policy use and violations are recorded.
  • Groups of three or more and overlapping avoidance maneuvers are flagged, not solved.

Capacity studies

Test several demand levels, refine where the outcome changes, then confirm the selected level with fresh seeds. Read the three statuses separately:

OperationalCompletion, rejection, delay and adverse-event limits. Count limits apply across all replicates of a level.
CoverageUnresolved multi-drone coordination and exhausted searches are model limitations, not passes.
StatisticalWhole-run bootstrap intervals and a separate conditional zero-contact bound. Zero contacts do not prove zero risk.
How to interpret a capacity result
  • Completed flights per demand hour describe the offered cohort, including completions in the finish period. They are not steady-state throughput.
  • If the highest tested level passes, it is a lower bound; no maximum has been located. A result applies to the chosen traffic and planning policy, not to airspace in general.
  • Inspect run reproduces any underlying run with its exact seed and settings.
  • The reference covers one flat-ground area and multirotors. See the traffic model contract. Engine fixtures for scripts/traffic.cjs: corridor network, contingency, imperfect sensing, non-cooperative intruder.

Event definitions

Contacts, protection conflicts and NMAC are separate quantities with separate thresholds. All are checked continuously along the executed paths, including between replay frames.

Physical contactBody spheres touch. One event per pair; affected aircraft are counted separately. Contact ends those flights.
Protection conflictHorizontal and vertical protective extents overlap at the same time. The radius can grow with horizontal speed.
NMAC intervalA pair is closer than the configured horizontal and vertical NMAC thresholds (default 20 m / 5 m, illustrative). One continuous interval counts once.
DAA activationA feasible maneuver actually starts after an alert and the latency. “No feasible maneuver” counts once per encounter; failed re-attempts are reported separately.
CA durationFrom maneuver start to predicted clearance plus hold time; the return is recorded separately. Unfinished maneuvers are censored.
Flight hours HActually flown airborne seconds, including hover, divided by 3,600 and clipped at contact or the end of the run.
Extra distanceExecuted 3D path length minus the planned length, for completed missions only.
p(t) = p₀ + v₀t + ½at²
Kinematics and the avoidance reference
  • Each motion segment has constant acceleration. Multirotors accelerate and brake on each leg within separate horizontal and vertical acceleration limits, stop at turns and take time to yaw. Heights are AGL above flat reference ground.
  • Event checks solve the continuous relative-distance and polygon-prism geometry, so changing the trace interval changes the display only. In the top view, overlapping circles alone do not establish a 3D conflict.
  • The CA reference tries an upward, then a downward offset that keeps the predicted protection volumes apart. If overlap has already begun, it may instead restore separation sooner, without new NMAC or contact. It then returns continuously to the original timed route.
  • The two-aircraft reference experiment is available from the command line: node scripts/trajectory.cjs --example crossing (add --daa-off for the baseline). It does not estimate capacity, validate TLS or represent supplier DAA performance. See the trajectory model contract.

Inspecting a run in 3D

What you see

White markerAircraft position; fixed screen size, not body size.
Translucent sphereRadius guide r. During a contingency it is the actual enlarged protection volume.
Amber cylinderSelected aircraft's actual protection: radius and vertical half-height.
Purple sectorSelected aircraft's sensor coverage: 3D range and horizontal FoV around its heading. Where detection is possible; Pd still applies.
Dashed / teal routesPlanned / executed paths.
Amber pointsSensor measurements received in the last 10 s.

Controls

SelectClick an aircraft or pick it in the inspector. Replay pauses and the camera orbits it.
Orbit · zoom · panDrag · scroll, pinch or +/− · right-drag or Shift-drag.
KeyboardArrow keys rotate, +/− zoom, Home fits the area.
FollowThe camera follows the selected aircraft when you play or scrub; panning or Fit area releases it.

Satellite imagery is background context only and needs internet access. If WebGL is unavailable, a labelled 2D fallback is used. Aircraft already airborne when the hour starts are included.

Reading trajectory results

NMAC / flight hourContinuous pair NMAC intervals divided by H. Not the same as sample-mode A/n classification.
Physical contacts / flight hourContact events divided by H, including any non-cooperative intruders.
Zero-contact bound−ln(0.05)/H: a 95% upper bound, conditional on a homogeneous Poisson process. About 30 million contact-free hours are needed to reach 10⁻⁷ per flight hour.
Completed / offered, delayAll requested missions, including U-plans. A delivery is one round trip; delivered and delivered-and-returned are reported separately. Rejected demand stays visible, so low contact counts cannot hide behind rejections.
Mean / peak airborneMean: aircraft-seconds divided by simulated clock seconds, including night and the finish period. Peak: the largest simultaneous count in the study.
Source tableOffered, completed, rejected, delivered and returned missions and flight hours per terminal, background traffic and U-plans.
Batches, event list and long runs
  • Batches keep aggregate counts, exposure, occupancy and up to 12 reproducible seeds of the most eventful days, not every flight path.
  • The event list keeps the first 400 events per type for replay; totals always include every event and truncation is shown. Selecting an event regenerates its day and opens its hour, paused at the event with the aircraft selected.
  • Stop keeps the completed days, and exported partial batches can be resumed. A flight-hour target finishes whole days, so exposure may slightly exceed it.
  • Millions of flight hours are a requested stopping target, not a demonstrated capability; full-day studies are slow in the browser.

Shared engine, file formats and commands: integrated model contract.

Sample model

Sample model in one minute

The sample model draws independent drone positions from the Dn traffic map, groups nearby drones into blue disks, computes the free area per drone and applies a binary research rule. U-plans are checked separately as planned routes.

Dn map Geofences Traffic snapshots Blue disks A/n DAA rule Observations per snapshot

Traffic field Dn

pi = Dni / Σj Dnj

pi is the probability of choosing cell i for one drone position in one snapshot. The position is then sampled by area inside the cell polygon, excluding holes and geofences.

Snapshots

activeDrones = operations/day · flightMinutes / 1440

3,000 operations/day of 15 minutes give on average 31.25 active drones in each of 288 five-minute snapshots. Positions have no route, speed or identity between snapshots.

More detail: the Dn overlay and seeding
  • Dn is the relative traffic weight in the GeoJSON file, not a real-time probability that a drone is there. The map is a bounded analysis area; the tool does not invent Dn outside or between source cells.
  • Overlay colours are contrast-enhanced and clipped near the top, so colour differences are relative. Satellite imagery (ArcGIS World Imagery) does not enter any calculation.
  • The active-drone count per snapshot is Poisson-sampled. Sampling is seeded, so every radius is evaluated on the same traffic and an unchanged scenario reproduces its result.
  • Flight hours/day = operations/day · flightMinutes / 60. These are scenario metadata; the snapshots have no physical-event exposure.

Source: LiU probabilistic traffic map, QRA demand-map approach and the local GeoJSON Dn field. Display scaling is an implementation choice.

Geofences in the sample model

sharej = (1 / dj) / Σk(1 / dk)
Geofence outputs explained
movedMass = blockedMass − unassignedMass
Altitude levelsNumber of distinct altitude bands used by the geofences.
Analyzed clear areaMap area outside the geofence union, estimated on a 100 × 100 sample grid; not the total area where a drone could fly.
Analyzed area / active droneClear area divided by average active drones. A global reference, not local A/n.
Moved Dn massNormalized mass removed from blocked cells and successfully redistributed.
Geofence areaPlanar polygon-area estimate for each geofence.
Blocked cellsCells whose centres lie inside the geofence; overlaps go to the first matching geofence.
Receiver edge cellsUnblocked cells whose centres lie within the search radius of a geofence edge.

RWY5K is a bundled local geometry preset, not an authoritative airspace restriction.

Source: product description for geofences and height restrictions; the QRA paper and AST notes motivate boundary congestion. The edge-push algorithm and its parameters are project sensitivity choices.

Why five-minute snapshots?

The interval is an implementation choice, not a requirement or a validated DAA response time: 1440 / 5 = 288 snapshots per day. The product descriptions and papers give no justification for exactly five minutes. The LiU paper supports sampling traffic snapshots; its pixel-traversal example uses a different time step (150 m / 25 m/s = 6 s) in another calculation.

Consequence: a shorter interval gives proportionally more observations per day while flight hours stay the same. That is not more physical risk, which is why sample results are reported per snapshot and never as a collision rate. The command line can vary the interval for sensitivity studies.

Blue disks and A/n

Math at a glance

Geometry at a glance

Drone radius r Each drone is tested with one DAA radius.
Radius contact creates zone Touching r-circles connect drones into one blue disk.
Collision area expands Bigger r or larger groups change A/n. Classified if A/n < πr².
connected if distance(i, j) ≤ 2r
Rblue = r + maxi ‖xi − x̄‖
A/n-classified ⇔ localClearArea / dronesInBlueDisk < πr²
Geometry details and how this differs from the Java prototype

The blue disk is a mean-centred implementation envelope, not a minimum enclosing circle. It touches the outer edge of the furthest red safety circle and contains the others, so there can be extra space on other sides; tightening it would change A and possibly the classification.

The free area subtracts the union of geofences inside the disk once, using analytic polygon-edge and circle-arc integrals. Red safety disks are safety margins, not blocked airspace, and are not subtracted. The map edge is not a wall. In the inspector, green and red dots only illustrate free and blocked regions; large dark dots are drone centres.

The Java prototype merges disks recursively. This tool first finds the whole connected group, so radii are not simply added as 3r, 5r and so on.

Source-backed concept: LiU conflict graph/connected components and ATM overlapping safety disks. Mean-centred envelope: project implementation choice.

Two concrete three-drone examples

Same scale, three drones on a line, no geofences, r = 50 m (threshold πr² ≈ 7,854 m²). Red disks are safety margins around drone centres, not drone bodies; the blue envelope is centred on the middle drone.

Three close drones
Centres 25 m apart, so blue R = 25 + 50 = 75 m.
A = 17,671 m²; A/3 = 5,890 m²/drone.
Below 7,854: A/n-classified.
Three touching safety disks
Centres 100 m apart, so blue R = 100 + 50 = 150 m.
A = 70,686 m²; A/3 = 23,562 m²/drone.
Above 7,854: not A/n-classified.

The touching red disks still connect all three drones on the right, but overlap alone does not decide the A/n result. With geofences, A is only the free part of the blue disk. A classification counts one group observation, not three collisions, and neither outcome establishes whether a physical collision occurs.

The A/n rule and radius presets

The πr² boundary is an explicit, replaceable research hypothesis, not a validated DAA law and not derived from the papers. It maps r and local A/n to a binary result so the idea can be tested; it does not model sensors, latency, nuisance alerts or avoidance maneuvers.

Radius presets

ATM lowr = 50 m, from the ATM parameter sweep.
QRA NMACr = 76 m, from the QRA example 2r = 152 m.
ATM highr = 300 m, from the ATM parameter sweep.

Two drones, r = 50 m, no geofences

  • Rblue = r + d/2 for two drones d apart.
  • d = 20 m: A/n = π · 60² / 2 ≈ 5,655 m², classified.
  • d = 100 m: still connected, but A/n = π · 100² / 2 ≈ 15,708 m², not classified.
  • In general a pair is classified only if d < 2(√2 − 1)r ≈ 0.83r. A geofence inside the disk lowers A and can tip the result.

Each preset is only a radius sensitivity point, not a complete ATM, QRA or supplier DAA. The fuller DAA parameters proposed in the requirements (range, FoV, Pd, latency, nuisance alerts, maneuver performance, per-drone profiles) are modelled in the trajectory model, not here.

Source for r and the 2r overlap test: ATM Seminar 2019 and QRA first-party risk papers. The exact πr² threshold is a project research hypothesis.

Reading sample results

A/n-classified groups / snapshotClassified groups divided by snapshots. A group counts once, whatever its size.
Red-disc overlap pairs / snapshotUnordered pairs with centres at most 2r apart, divided by snapshots. Shows close pairs even when their group fails the A/n test. Not a physical NMAC count.
A/n-classified shareClassified groups divided by all groups of two or more drones.
Snapshots with A/n classificationShare of snapshots with at least one classified group.
Daily observationsPer-day sums averaged over days. They scale with the number of snapshots, not with traffic density.
Multi-drone groupsGroups of 3+ drones, the largest group and a size histogram. One snapshot can contain several groups, so group and snapshot counts differ.
Mean local A/nMean free area per drone over all observed groups.
A/n decision mapX is A/n, Y is r (10–500 m). Red is classified, dark is not. Bubbles show observed A/n at the selected r (size = frequency); the ring is their mean, not a TLS verdict.
classifiedGroupsPerSnapshot = classifiedGroupObservations / snapshotCount

Independent snapshots have no persistent encounters, so sample counts cannot be turned into an NMAC or collision rate per flight hour. Sample results therefore have no TLS verdict and no rate confidence interval.

Known A/n limitation and chart notes

A/n can hide a dense subgroup: two coincident drones at r = 50 m are classified, but a third drone 100 m away enlarges the blue disk enough to remove the classification, although the coincident pair is still there. Pair counts and the closest-pair distance are therefore shown separately in the inspector.

A former 3D surface encoded the same 0/1 classification as height and was removed. The 2D map's design follows the supplied “sharp 0/1 boundary” reference figure. Legacy comparison targets in older files are only kept for import compatibility. See corrections and validation for analytical checks.

Inspecting snapshots (Simulation tab)

What the inspection does and does not show

Background positions are held for inspection and replaced every five simulated minutes; they do not represent continuous drone trajectories. U-plans move continuously along their planned paths and are evaluated separately. At 60:00 the 55:00 sample stays visible; there is no thirteenth sample. The Airborne badge counts sampled background drones only.

The status names the scenario hour and the clock shows elapsed time within it. Earlier random draws are consumed when a later hour is inspected, so its samples stay aligned with the full run. The view shows the A/n research model, not executed avoidance or physical collisions; aggregate statistics remain in Results. See the interface review.

U-plans (planned routes)

In the sample model a U-plan is one planned mission with a route, speed, altitude and departure time. U-plans form a separate layer and never change the background A/n results. In the trajectory model, drawn U-plans instead fly in the shared world.

What is checked

  • Conflicts: horizontal distance ≤ 2r and vertical distance ≤ the U-plan vertical separation, solved continuously on every overlapping leg.
  • Geofences: route segments that cross an active geofence's altitude band.
  • Multi-drone warning: three or more plans in one connected conflict group at the same instant.

What you can do

  • Draw or generate routes (Dn-sampled endpoints with 1–3 bends), or add the crossing preset.
  • Reroute: an A* grid search for new waypoints, then small altitude or departure shifts if needed. Endpoints are kept.
  • Compare each route with its frozen original plan: distance, duration, arrival shift and altitude.
routeConflict ⇔ horizontalDistance(t) ≤ 2r and verticalDistance ≤ verticalSeparation
Formulas, rerouting and the U-plan result tables
duration = routeDistance / speed
τCPA = clamp(−p0 · vrel / ‖vrel‖², 0, Δt)
distanceEfficiency = originalDistance / currentDistance
arrivalShift = departureShift + flightDurationChange
  • Conflict intervals are merged per pair; a pair that separates and conflicts again counts twice. Fast crossings between display samples are not missed.
  • Reroute all handles plans one at a time, so the result is heuristic and depends on order. A start inside an active geofence band is reported as an error.
  • Generated routes avoid geofence bands where possible but not each other until rerouted.
  • The conflict list shows the pair, interval start/end and minimum separation. Selecting a closest approach moves the planned-flight preview to that instant. Playback follows constant-speed plans and is not an avoidance simulation. Long lists are paginated; JSON export keeps every interval.
  • Original plans survive edits, reroutes and export/import; older files without one use the imported plan as the baseline. Ratios with a zero denominator are exported as null, and a shorter route can exceed 100% efficiency.
  • Result tables: pair intervals count once, the per-route table counts each interval for both routes, and geofence intersections count each route–geofence pair once. Closest flagged approach is the smallest horizontal separation among detected conflicts.
  • Presets: Add RWY5K adds the bundled restriction; Add crossing U-plans adds two equal, perpendicular routes that meet at the same altitude and time. Both keep the existing settings and routes.

Source: product description for U-plans, randomized flights and {course, distance, height} legs; QRA route-GUI inspiration. CPA and A* routing are implementation choices.

Saving, importing and comparing runs

More detail
  • Metrics: A/n classifications per snapshot, A/n observations per day, groups with 3+ drones per day, and the largest group. Bars share a linear scale; Δ is the change from the reference run at the same radius (absolute when the reference is zero). Differences are descriptive, not significance tests.
  • Runs & scenario settings lets you rename or remove runs, inspect provenance, or Open in Scenario, which restores the saved geometry and recalculates with the current engine.
  • Export all saves the comparison as a reusable batch with the reference first. Limits: 30 runs and 10 MB per file. The comparison lasts until the page is reloaded.
  • The dataset is identified by SHA-256 on HTTPS or localhost. Older exports remain readable, and unrecorded metadata shows as Not recorded. An incomplete run can be exported but not compared as evidence of zero events.
  • Trajectory projects export their scenario, traffic sources, profiles, seeds and study results, and can be resumed or replayed after import.

Reference

Command line

Requires Node.js 18 or newer; there are no external dependencies. Run commands from the project directory. Output files must not already exist.

Trajectory projectnode scripts/mission.cjs --project scenario.json --output result.json
Uses the project's saved run length unless --runs or --target-hours is given. --workers 4 runs days in parallel, --max-seconds sets a time limit, --resume continues a saved batch and --single writes one inspectable day.
Sample modelnpm run simulate -- --scenario examples/01-baseline.json --seed workshop --output result.json
Repeat --scenario or use --batch. Also --days, --data, --window-minutes and --progress. U-plans are kept but not evaluated.
Traffic engine fixturesnode scripts/traffic.cjs --scenario examples/traffic-01-corridors.json --capacity --output capacity.json
Pairwise referencenode scripts/trajectory.cjs --example crossing, with --daa-off for the baseline.

Load sample outputs in Compare runs. A sample run of 13,334 days (10,000,500 operational flight hours at 3,000 flights/day of 15 minutes) has been completed; it tests execution, not physical collision risk. See the README and implementation status.

Defaults

All defaults are scenario assumptions for experiments, not sourced or approved values. Change them in Scenario.

Trajectory model

Run length1,000 actual flight hours (or a number of independent days)
Terminal120 deliveries/day, 08–18, 10 km service radius
Background transit120 flights/day, 08–18
Airspace500 m grid, 120 m corridors, layers at 80 / 120 m
Delivery30 s hover at 10 m
Aircraft12 m/s cruise, 4 m/s climb, 3 m/s² horizontal and vertical acceleration, 0.5 m body radius
Protection · NMACr = 50 m, ±15 m · 20 m horizontal, 5 m vertical
DAA500 m range, 360° FoV, Pd = 1 per scan, 2 s latency
DCBMax delay 120 s, corridor headway 10 s, terminal headway 30 s, capacity 100 per layer and 10 per corridor
DisturbancesOff: no failures, false alerts, tracking deviation or urgent geofences

Sample model

Traffic3,000 operations/day, 15 min each
Simulation80 days of 288 five-minute snapshots
DAA radiusr = 50 m (presets 50, 76 and 300 m)
Geofence edge push180 m search radius, 4 receiver cells
U-plans12 m/s, 120 m altitude, departure minute 0, 6 generated routes
U-plan vertical separation30 m

Known limits

Trajectory model

  • Synthetic route grid, delivery sites and demand; no empirical calibration of traffic or DAA performance.
  • Flat ground and AGL heights; no terrain, buildings or altitude-reference conversion.
  • Multirotors only. All DAA profiles share one vertical avoidance policy; groups of three or more are flagged, not solved.
  • DCB is first come, first served on the shortest available route per layer; there is no global optimisation, warm-up or steady state.
  • No RTTA, noise or visual impact, LFV airspace import, multiple areas or category-specific TLS.
  • At most 2,000 flights per day. Full-day studies are slow in the browser, and the ten-million-hour acceptance run has not been performed.

Sample model

  • Independent snapshots: no persistent identities, encounters or flight paths.
  • The Dn simulation is horizontal; altitude only applies to U-plan and geofence-band checks.
  • Edge-push redistribution, the mean-centred blue disk and the πr² rule are research approximations, not validated DAA behaviour.
  • Observation counts depend on the snapshot interval and are not collision rates.
  • U-plans are strategic plans; this model executes no avoidance maneuvers.

Sources and further reading

The papers support the traffic-map, conflict-graph, separation-radius and route-risk concepts. Project hypotheses, numerical approximations and configurable defaults are identified as such throughout this page.

Model contracts

Background documents

Kept in the project folder; not published with the website.

Product description and requirements, September 2026Proposed scope: 27 numbered requirements plus RTTA. The prototype implements part of it.
Earlier product description, June 2026Maps, geofences, grids, vertical separation, U-plans, randomized flights, black-box DAA and ALS/TLS.
LiU probabilistic map paperProbabilistic drone map, traffic snapshots, conflict graphs and connected components; Norrköping case.
ATM Seminar 2019 paperNorrköping case, drones as disks, safety radius sweep from 50 to 300 m.
QRA first-party risk paperProbabilistic demand map, route-GUI inspiration, NMAC example with 2r = 152 m.
AST notesInformal notes on geofences, congestion, altitude layers and parameter sweeps; not a normative source.