← RFC

Adaptive Modulation / Spatial Reuse — Measured Capacity Result (Q3)

Status: Stage 2 result. Date: 2026-06-08. Tag: sim-result-v4. Reproduce: cd sim && python3 -m experiments.capacity_scaling (writes capacity_spatial_reuse.png).

Spatial reuse: aggregate throughput holds at C× (capture); cross-cell contention is the only cost

This measures the capacity argument from adaptive-modulation-note.md (the Checkpoint-A Q3 decision): per-cell SF selection + spatial reuse, the two levers that dissolve the single-domain 500-node ceiling. All runs use the validated TDMA data plane (tdma-data-plane-result.md), so this is a relative comparison the validation gate licensed.

1. The two levers combined (50 nodes)

Configuration per-node (msg/min) aggregate (pkt/s)
1× LongFast (single domain) 2.45 2.04
5× MediumFast (10/cell, 15 km apart) 39.30 32.75
gain ×16.0 ×16.0

The single LongFast domain sits exactly at the raw channel ceiling (2.04 ≈ 2.1 pkt/s). Splitting the same nodes into 5 spatially-separated MediumFast cells gives ×16 — matching the note's model estimate (~×17). The two levers compose: ~×3.4 from SF (MediumFast vs LongFast) × ~×5 from spatial reuse (5 cells).

2. Spatial reuse is robust — capture does the work

Aggregate throughput is exactly 5× a single MediumFast cell (32.20 = 5 × 6.44 pkt/s) at every separation from 3 km to 15 km. The reason is the capture effect: a client sits ~0.7 km from its own hub but ≥3 km from any neighbouring hub, so its signal arrives ~17 dB stronger than any cross-cell interferer — far above the 6 dB capture threshold. Intra-cell delivery is therefore collision-immune to neighbouring cells.

Cell separation aggregate (pkt/s) cross-cell decode failures
3 km 32.20 243,270
5 km 32.20 185,117
7 km 32.20 115,356
9 km 32.20 26,742
12 km 32.20 0
15 km 32.20 0

The honest cost of insufficient separation is contention, not lost throughput — wasted decode attempts as hubs hear (and fail to decode) neighbouring cells' weaker traffic. That waste vanishes by ~12 km ≈ 1.5× the MediumFast range, giving fully orthogonal reuse. This is a stronger result than the note assumed: capture makes spatial-TDMA tolerant of imperfect cell placement.

Caveat (the real boundary cost): this holds for clients well-associated with a cell (the strong-intra-link regime). A boundary client roughly equidistant from two hubs loses the capture margin and would contend — exactly the boundary-assignment problem the note flagged for the spec. The sim places clients tightly around hubs; boundary behaviour is a follow-up experiment (needs the cell-association/handoff rule from mode-and-handoff-note.md).

3. The 500-node ceiling, dissolved

Configuration per-node achievable rate
Single LongFast domain, 500 nodes 0.247 msg/min (~1 message every 4 minutes)
Cellular MediumFast, 50 nodes/cell (10 cells carry 500) 8.29 msg/min
gain ×34

The sim reproduces the analysis' worst-case number exactly — a single LongFast domain gives 500 nodes ~1 message every 4 minutes (mac-layer-options.md §1, synthesis §3). Reorganising those 500 nodes into MediumFast cells lifts each node to 8+ messages/minute — the ceiling is not a wall, it is an artifact of treating 500 nodes as one collision domain. INFRA-as-modulation-authority (picking per-cell SF) plus spatial reuse is the structural escape.

What this licenses

Open follow-ups: boundary-client cost + cell-association rule; SF selection driven by measured per-client link budget (here SF is set per cell by construction); and absolute calibration of the range/separation thresholds once the DB export lands.