{
  "schemaVersion": 1,
  "categories": [
    {
      "id": "terrain",
      "title": "Terrain survey",
      "description": "Reference elevation, reconstruction error, and isolated stresses."
    },
    {
      "id": "separation",
      "title": "Paired separation",
      "description": "Projected versus legacy motion on matched synthetic fields."
    },
    {
      "id": "obstacles",
      "title": "Obstacle missions",
      "description": "Mission completion, route geometry, and published adversarial audits."
    },
    {
      "id": "state",
      "title": "Imperfect state",
      "description": "What changes when navigation and commands are uncertain or delayed."
    },
    {
      "id": "adaptation",
      "title": "Adaptation & generalization",
      "description": "New terrain splits and a frozen candidate against systematic baselines."
    },
    {
      "id": "autonomy",
      "title": "Historical autonomy",
      "description": "Original concept diagrams and shared-map toy-model results."
    },
    {
      "id": "learning",
      "title": "Historical learning",
      "description": "Archived correction-loop concepts with privileged simulated information."
    },
    {
      "id": "em",
      "title": "Historical EM illustrations",
      "description": "Reduced-order illustrations, not full-wave validation or weapon performance."
    },
    {
      "id": "smoke",
      "title": "Historical smoke benchmark",
      "description": "Original three-seed development plots, separate from current study evidence."
    }
  ],
  "figures": [
    {
      "id": "terrain-fields",
      "category": "terrain",
      "sha256": "392d51e0231f0e78f45a09960a3ce4e9f90e75f19e0eb48842b1a252e6a6a7f5",
      "title": "Three Colorado reference fields",
      "caption": "Downloaded elevation patches supply the scalar survey reference, not the drone result.",
      "caveat": "Metres, north up and east right; each panel has its own colour scale. These small smoothed DEM patches are not an obstacle or hazard model. Initial and final publications repeat the same cases, not additional independent samples.",
      "alt": "Three Colorado reference fields. Downloaded elevation patches supply the scalar survey reference, not the drone result.",
      "sources": [
        "reports/terrain_local/terrain_fields.png",
        "reports/terrain_initial/terrain_fields.png"
      ],
      "src": "/gallery/assets/terrain-fields.png",
      "width": 2250,
      "height": 705,
      "bytes": 100334,
      "format": "png"
    },
    {
      "id": "terrain-nominal",
      "category": "terrain",
      "sha256": "a767e411ee4ed581c895a38aabaaf18bafb7ed7c982ac7fcc41d4a37782aa1f3",
      "title": "Nominal reconstruction error",
      "caption": "Systematic sweeping has the lowest mean normalized map error on these three fixed patches.",
      "caveat": "Horizontal whiskers are unadjusted 95% intervals over eight seeds per patch, not sensor-accuracy bounds. Formal comparisons use paired differences. Lawnmower separation failures remain: better reconstruction does not imply safe motion. The initial copy is a development rerun, not extra evidence.",
      "alt": "Nominal reconstruction error. Systematic sweeping has the lowest mean normalized map error on these three fixed patches.",
      "sources": [
        "reports/terrain_local/nominal_comparison.png",
        "reports/terrain_initial/nominal_comparison.png"
      ],
      "src": "/gallery/assets/terrain-nominal.png",
      "width": 2250,
      "height": 795,
      "bytes": 62851,
      "format": "png"
    },
    {
      "id": "terrain-stress",
      "category": "terrain",
      "sha256": "2dc39b020655f980ac6b56b884ab4a01829c36e0b4f015534f25400a01821f54",
      "title": "Isolated stress effects",
      "caption": "Heatmaps show matched-seed stressed minus nominal RMSE for each policy and patch.",
      "caveat": "Positive means higher error; negative means lower error. Colours show mean magnitudes, not significance. Eight-seed descriptive intervals can span zero, and near-zero means can hide failures. Stresses are one-factor changes, not measured aircraft conditions or a stress-interaction study. Initial/local images are duplicate publications.",
      "alt": "Isolated stress effects. Heatmaps show matched-seed stressed minus nominal RMSE for each policy and patch.",
      "sources": [
        "reports/terrain_local/stress_effects.png",
        "reports/terrain_initial/stress_effects.png"
      ],
      "src": "/gallery/assets/terrain-stress.png",
      "width": 2700,
      "height": 990,
      "bytes": 187418,
      "format": "png"
    },
    {
      "id": "separation-paired",
      "category": "separation",
      "sha256": "50d4e0b2e7617274845c4347e11750b9b60e65aedabfcf9c65fb2a89825c6c38",
      "title": "Separation and observed-area trade-offs",
      "caption": "Paired projected-minus-legacy differences relate minimum separation to physically observed area.",
      "caveat": "Eight paired seeds per policy and condition; 95% Student-t intervals are small-sample descriptive summaries, not a pooled superiority test. Overlapping marks at zero are retained. Projection uses centralized true state and current wind; ten uncertified steps remain despite zero audited projected collisions.",
      "alt": "Separation and observed-area trade-offs. Paired projected-minus-legacy differences relate minimum separation to physically observed area.",
      "sources": [
        "reports/separation_local/main/paired_separation_area.png"
      ],
      "src": "/gallery/assets/separation-paired.png",
      "width": 1950,
      "height": 1500,
      "bytes": 154893,
      "format": "png"
    },
    {
      "id": "separation-trajectories",
      "category": "separation",
      "sha256": "9e7d7b0ed1cf481e919f94b82ad14ac928b8fe2c1944d11e9ef49249807b7b93",
      "title": "Selected low-separation trajectories",
      "caption": "Full paired paths and separation histories expose the lowest legacy swept minimum in each condition.",
      "caveat": "These cases are descriptively selected by the lowest legacy minimum (ties by policy and seed), not random representative flights or additional trials. Collisions count pair-steps below 5 m, not unique crashes. Separate terrain regression seeds 2106/2107 are not part of the 448-episode study.",
      "alt": "Selected low-separation trajectories. Full paired paths and separation histories expose the lowest legacy swept minimum in each condition.",
      "sources": [
        "reports/separation_local/main/failure_trajectories.png"
      ],
      "src": "/gallery/assets/separation-trajectories.png",
      "width": 2250,
      "height": 2550,
      "bytes": 545928,
      "format": "png"
    },
    {
      "id": "obstacles-comparison",
      "category": "obstacles",
      "sha256": "bcd44a8a45e13076977e532afbc74c05eb3334b5a3b143e2bf000f247eb98e71",
      "title": "Mission outcomes across layouts",
      "caption": "Three planners encounter open space, clutter, corridors, unreachable goals, and a thin wall.",
      "caveat": "All 1,440 agent missions remain in the denominator: completed, unreachable, and timed out. Zero collisions or zero motion alone is not mission success; recovery can reduce completion. Exact state and known geometry; seeds vary mapping, not motion geometry. Full and hardened runs repeat the same cases, not independent geometric trials.",
      "alt": "Mission outcomes across layouts. Three planners encounter open space, clutter, corridors, unreachable goals, and a thin wall.",
      "sources": [
        "reports/obstacle_missions/hardened/comparison.png",
        "reports/obstacle_missions/full/comparison.png"
      ],
      "src": "/gallery/assets/obstacles-comparison.png",
      "width": 1430,
      "height": 1040,
      "bytes": 58539,
      "format": "png"
    },
    {
      "id": "obstacles-trajectories",
      "category": "obstacles",
      "sha256": "c6cc8c29434dd58fe049ec7d66f80dcb98b10ce47eef9585915a0621dcd76997",
      "title": "Routes, reservations, and deadlocks",
      "caption": "Representative trajectories show how routing and priority recovery change mission paths.",
      "caveat": "A route corner or fast goal crossing is not completion: both ordered waypoints must be reached within 0.30 m at at most 0.15 m/s. Reservations are a heuristic, not a prediction or recursive-feasibility proof. Exact state and known geometry; seeds vary mapping, not motion geometry. Full and hardened runs repeat the same cases, not independent geometric trials.",
      "alt": "Routes, reservations, and deadlocks. Representative trajectories show how routing and priority recovery change mission paths.",
      "sources": [
        "reports/obstacle_missions/hardened/trajectories.png",
        "reports/obstacle_missions/full/trajectories.png"
      ],
      "src": "/gallery/assets/obstacles-trajectories.png",
      "width": 1560,
      "height": 2340,
      "bytes": 219155,
      "format": "png"
    },
    {
      "id": "obstacles-thin-wall",
      "category": "obstacles",
      "sha256": "cd11df2a3fbb9d109501b57ad92a195bbf6baecd74f225ae0dea68233ae42227",
      "title": "Continuous thin-wall audit",
      "caption": "Swept-segment geometry detects a wall crossing that endpoint-only checks can miss.",
      "caveat": "The wall is 0.02 m thick, below map-grid spacing. This deliberately published adversarial geometry audit is retained, unlike incidental test-fixture images. It is not an extra mission episode or a claim of perception through obstacles. Exact state and known geometry; seeds vary mapping, not motion geometry. Full and hardened runs repeat the same cases, not independent geometric trials.",
      "alt": "Continuous thin-wall audit. Swept-segment geometry detects a wall crossing that endpoint-only checks can miss.",
      "sources": [
        "reports/obstacle_missions/hardened/thin_wall_audit.png",
        "reports/obstacle_missions/full/thin_wall_audit.png"
      ],
      "src": "/gallery/assets/obstacles-thin-wall.png",
      "width": 1430,
      "height": 650,
      "bytes": 63700,
      "format": "png"
    },
    {
      "id": "obstacles-braking",
      "category": "obstacles",
      "sha256": "beca1f81a58d7d2dcc8b19a644fe6c85274d71f531a6f884d936a824459a45ff",
      "title": "Where bounded braking fails",
      "caption": "Published adversarial cases retain wall, boundary, and pair violations during fallback braking.",
      "caveat": "Actuator-bounded braking is not guaranteed safe. Infeasible initial conditions and forced solver failure can still produce collisions; no clipping or position repair erases them. These audit cases are separate from the 240-episode denominator. Full/hardened copies are byte-identical.",
      "alt": "Where bounded braking fails. Published adversarial cases retain wall, boundary, and pair violations during fallback braking.",
      "sources": [
        "reports/obstacle_missions/hardened/braking_audit.png",
        "reports/obstacle_missions/full/braking_audit.png"
      ],
      "src": "/gallery/assets/obstacles-braking.png",
      "width": 1560,
      "height": 1300,
      "bytes": 108511,
      "format": "png"
    },
    {
      "id": "state-collisions",
      "category": "state",
      "sha256": "b3779d596d3ef44e52d6c826c773b0dc4caa4128f0bf988b8e6af24338c6c335",
      "title": "Collision exposure under imperfect state",
      "caption": "Oracle, naive, and uncertainty-aware controllers are compared across six sensing and transport conditions.",
      "caveat": "Swept pair-step collisions are repeated exposures, not unique crashes. Sixteen seeds per stratum are not a population safety estimate. The aware controller still collides; an uncertainty model and bounded braking do not establish safe stopping or flight readiness.",
      "alt": "Collision exposure under imperfect state. Oracle, naive, and uncertainty-aware controllers are compared across six sensing and transport conditions.",
      "sources": [
        "reports/imperfect_state/figures/collisions.svg"
      ],
      "src": "/gallery/assets/state-collisions.svg",
      "width": 940,
      "height": 440,
      "bytes": 3463,
      "format": "svg"
    },
    {
      "id": "state-coverage",
      "category": "state",
      "sha256": "3ca591d82b251a41f9c1f796fa4ee7dd3e5275b142829f77c2b315fb771878e2",
      "title": "True footprint coverage",
      "caption": "Coverage records the fraction of 1,024 grid cells visited in each simulated episode.",
      "caveat": "This is evaluator true footprint coverage, not communicated evidence, calibrated mapping confidence, or a planner input. Safety and progress must be considered together; conservative stationary behavior can look safe while surveying little.",
      "alt": "True footprint coverage. Coverage records the fraction of 1,024 grid cells visited in each simulated episode.",
      "sources": [
        "reports/imperfect_state/figures/coverage.svg"
      ],
      "src": "/gallery/assets/state-coverage.svg",
      "width": 940,
      "height": 440,
      "bytes": 3560,
      "format": "svg"
    },
    {
      "id": "state-fallback",
      "category": "state",
      "sha256": "8ed3256aa0deaed8a00926213eae886c448919f6506fc22b681c1e4908508be4",
      "title": "Fallback demand",
      "caption": "Mean fallback agent-steps reveal how often the controller cannot accept a nominal command.",
      "caveat": "Each episode has 768 agent-step opportunities (six agents × 128 steps), not 768 independent trials. Missing or stale state can trigger uncertified braking, and dropped commands can change what executes. Fallback counts are neither collision counts nor safety certificates.",
      "alt": "Fallback demand. Mean fallback agent-steps reveal how often the controller cannot accept a nominal command.",
      "sources": [
        "reports/imperfect_state/figures/fallback.svg"
      ],
      "src": "/gallery/assets/state-fallback.svg",
      "width": 940,
      "height": 440,
      "bytes": 3466,
      "format": "svg"
    },
    {
      "id": "state-progress",
      "category": "state",
      "sha256": "4ed86a907e31e3286cbbfaa68391d8054f7683626b99a6e6bde541bcb1c99cd8",
      "title": "Mission progress with delayed information",
      "caption": "Goal-distance progress tests whether reduced collision exposure comes at the cost of stalled missions.",
      "caveat": "Progress is mean 1 − final distance / initial distance, without clipping, not the fraction of agents completing a mission. Latency and combined conditions can stall the aware controller. The independent Euler point-agent model does not validate the older field planner.",
      "alt": "Mission progress with delayed information. Goal-distance progress tests whether reduced collision exposure comes at the cost of stalled missions.",
      "sources": [
        "reports/imperfect_state/figures/mission_progress.svg"
      ],
      "src": "/gallery/assets/state-progress.svg",
      "width": 940,
      "height": 440,
      "bytes": 3553,
      "format": "svg"
    },
    {
      "id": "adaptation-terrain",
      "category": "adaptation",
      "sha256": "a062b120e53db02241978c63325fde1f2c7a49e818e73a27eab038e274dc0540",
      "title": "Nine new terrain patches",
      "caption": "Coordinate-defined USGS patches form disjoint train, validation, and test location splits.",
      "caveat": "North-up elevation is normalized independently per patch. The 100 m span and 32-pixel output do not establish native resolution or sensor accuracy. Convenience coordinates are not sampled ecology classes; three test geographies cannot demonstrate nationwide transfer.",
      "alt": "Nine new terrain patches. Coordinate-defined USGS patches form disjoint train, validation, and test location splits.",
      "sources": [
        "reports/adaptation_generalization/figures/terrain.svg"
      ],
      "src": "/gallery/assets/adaptation-terrain.svg",
      "width": 900,
      "height": 960,
      "bytes": 630451,
      "format": "svg"
    },
    {
      "id": "adaptation-rmse",
      "category": "adaptation",
      "sha256": "09b45f589bbd521168b4e25d7c20fb44e437ce05a8677630b9292887a0c120b5",
      "title": "Held-out reconstruction by horizon",
      "caption": "All five policies are compared on each test location at full and limited mission horizons.",
      "caveat": "Bars are within-location means across sixteen seeds; lower normalized RMSE is better. They are not pooled geographic estimates or real drone accuracy. The selected candidate has worse mean error than lawnmower at all three limited-time locations. Missing outcomes are never zero.",
      "alt": "Held-out reconstruction by horizon. All five policies are compared on each test location at full and limited mission horizons.",
      "sources": [
        "reports/adaptation_generalization/figures/rmse.svg"
      ],
      "src": "/gallery/assets/adaptation-rmse.svg",
      "width": 1000,
      "height": 920,
      "bytes": 6862,
      "format": "svg"
    },
    {
      "id": "adaptation-paired",
      "category": "adaptation",
      "sha256": "9ccbde979f641c638083fa7b44a114792262adb3fa46d56264e6619913b4380a",
      "title": "Selected policy versus lawnmower",
      "caption": "Paired RMSE differences show why the frozen candidate was not promoted in any of six test cells.",
      "caveat": "Negative favors selected. Segments are descriptive two-sided t95 intervals; triangles are six-cell Bonferroni one-sided upper bounds used for promotion. No promotion bound is below zero. Seed intervals are conditional on each fixed location, not geographic confidence bounds.",
      "alt": "Selected policy versus lawnmower. Paired RMSE differences show why the frozen candidate was not promoted in any of six test cells.",
      "sources": [
        "reports/adaptation_generalization/figures/paired.svg"
      ],
      "src": "/gallery/assets/adaptation-paired.svg",
      "width": 1000,
      "height": 580,
      "bytes": 3373,
      "format": "svg"
    },
    {
      "id": "autonomy-stack",
      "category": "autonomy",
      "sha256": "340808e422f153dce1ab4c0acc5d347dbb8734c4b82dcb690f07853c4954cfcd",
      "title": "Archived autonomy loop",
      "caption": "A concept diagram connects observation, sharing, planning, assignment, control, and a small bandit.",
      "caveat": "Architecture illustration, not a measured result or current execution trace. Historical mesh consensus lowered uncertainty without new evidence; safe coverage and improvement were aspirations. The diagram does not implement ROS, PX4, SLAM, deep RL, or a validated deployment interface.",
      "alt": "Archived autonomy loop. A concept diagram connects observation, sharing, planning, assignment, control, and a small bandit.",
      "sources": [
        "assets/figures/autonomy/autonomy_algorithm_stack.png"
      ],
      "src": "/gallery/assets/autonomy-stack.png",
      "width": 1644,
      "height": 1017,
      "bytes": 161331,
      "format": "png"
    },
    {
      "id": "autonomy-dashboard",
      "category": "autonomy",
      "sha256": "3a4b72977aa268124a0ebdd472f7b169cd9719ce32cbecca30b5dac31f5e3ffd",
      "title": "Archived shared-map dashboard",
      "caption": "Six panels record a synthetic mission field, shared belief, uncertainty, graph diagnostics, and bandit choices.",
      "caveat": "The historical graph update invented confidence without sensing. The 0.964 confidence score is obsolete, not 96.4% observed area or calibrated probability; zero legacy collision pressure is not safety evidence. All drones wrote one shared map, so its no-consensus ablation did not isolate information.",
      "alt": "Archived shared-map dashboard. Six panels record a synthetic mission field, shared belief, uncertainty, graph diagnostics, and bandit choices.",
      "sources": [
        "assets/figures/autonomy/autonomy_swarm_simulation.png"
      ],
      "src": "/gallery/assets/autonomy-dashboard.png",
      "width": 2356,
      "height": 1571,
      "bytes": 284929,
      "format": "png"
    },
    {
      "id": "autonomy-metrics",
      "category": "autonomy",
      "sha256": "767794fdda902502b37595b62c80cee5f934709e9f5e8088592a49aa24a945c6",
      "title": "Archived online parameter choices",
      "caption": "Legacy reward, confidence, motion cost, and option values describe one changing episode.",
      "caveat": "The confidence curve includes the flawed graph-based boost. Reward is not the rewritten-core objective; mean squared speed is not joules. No controlled multi-seed comparison or held-out learning gain is established by estimated bandit values.",
      "alt": "Archived online parameter choices. Legacy reward, confidence, motion cost, and option values describe one changing episode.",
      "sources": [
        "assets/figures/autonomy/autonomy_learning_metrics.png"
      ],
      "src": "/gallery/assets/autonomy-metrics.png",
      "width": 1904,
      "height": 1257,
      "bytes": 170867,
      "format": "png"
    },
    {
      "id": "learning-architecture",
      "category": "learning",
      "sha256": "5536963d8d7f889b592ed6bc9b32609c79fd6266f56c4ecfae39125a6afb9f73",
      "title": "Archived learning concept",
      "caption": "Drawn telemetry and aggregation arrows illustrate a proposed correction loop.",
      "caveat": "The 95% MSE reduction, 4–8× power, approximately 20 iterations, and 10 Hz labels are hardcoded drawing text, not measurements. No federated training, real telemetry, or demonstrated EM improvement is implemented by this diagram.",
      "alt": "Archived learning concept. Drawn telemetry and aggregation arrows illustrate a proposed correction loop.",
      "sources": [
        "assets/figures/learning/live_learning_architecture.png"
      ],
      "src": "/gallery/assets/learning-architecture.png",
      "width": 1972,
      "height": 1485,
      "bytes": 155681,
      "format": "png"
    },
    {
      "id": "learning-results",
      "category": "learning",
      "sha256": "77dddf20124249cd5a3edd44f872f3f4ece99d26b59683a5128e3182f2e237ed",
      "title": "Privileged-residual correction loop",
      "caption": "A toy update adjusts synthetic phase errors using the true residual plus noise.",
      "caveat": "The update directly sees ground truth; it does not infer hidden errors from sensors or aggregate locally trained models. MSE is recorded before each update; the so-called peak-power value is one near-center scalar sample after the update, not a spatial or temporal peak or validated weapon performance.",
      "alt": "Privileged-residual correction loop. A toy update adjusts synthetic phase errors using the true residual plus noise.",
      "sources": [
        "assets/figures/learning/live_swarm_learning_results.png"
      ],
      "src": "/gallery/assets/learning-results.png",
      "width": 2384,
      "height": 1535,
      "bytes": 262259,
      "format": "png"
    },
    {
      "id": "learning-still",
      "category": "learning",
      "sha256": "02daa3d53c5bb4535abda05cf47b67aa05aed80ec1973e67b04fe679c0f5eaec",
      "title": "Animation initialization still",
      "caption": "The saved animation setup places synthetic errors beside the initial field and correction state.",
      "caveat": "Saved before deliberate advancement to a converged iteration. Draw callbacks may affect the first update, but a static initialization frame is not convergence evidence. Later animation callbacks do not make this image a completed learning result.",
      "alt": "Animation initialization still. The saved animation setup places synthetic errors beside the initial field and correction state.",
      "sources": [
        "assets/figures/learning/live_learning_animation_frame.png"
      ],
      "src": "/gallery/assets/learning-still.png",
      "width": 2250,
      "height": 750,
      "bytes": 66262,
      "format": "png"
    },
    {
      "id": "em-concentric",
      "category": "em",
      "sha256": "6da1d90cbb89d33d852c6a4a027a0740688acc869b7f84410264f1c0d8ce1fda",
      "title": "Radial scalar superposition",
      "caption": "Peaks and troughs illustrate signed addition under prescribed source geometry and delays.",
      "caveat": "The ordinate is a model field value, not intensity or delivered energy. A radial scalar model omits polarization, realistic sources, materials, and full boundary conditions. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Radial scalar superposition. Peaks and troughs illustrate signed addition under prescribed source geometry and delays.",
      "sources": [
        "assets/figures/electromagnetic/concentric_interference.png"
      ],
      "src": "/gallery/assets/em-concentric.png",
      "width": 1000,
      "height": 600,
      "bytes": 29732,
      "format": "png"
    },
    {
      "id": "em-hexagonal",
      "category": "em",
      "sha256": "7743dd2b29569f14dfbef30b5c97cff8e8c5c06ce1b0fc79fcd8d59e4aa3f526",
      "title": "Imposed hexagonal symmetry",
      "caption": "A center source and six surrounding sources produce a symmetric signed scalar pattern.",
      "caveat": "Symmetry comes from the chosen layout. The resonator title does not establish a physical resonant mode or measured amplification; antenna patterns and material boundary conditions are absent. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Imposed hexagonal symmetry. A center source and six surrounding sources produce a symmetric signed scalar pattern.",
      "sources": [
        "assets/figures/electromagnetic/hexagonal_resonator.png"
      ],
      "src": "/gallery/assets/em-hexagonal.png",
      "width": 800,
      "height": 800,
      "bytes": 187548,
      "format": "png"
    },
    {
      "id": "em-layered",
      "category": "em",
      "sha256": "3e72ea52aa8b085c1f7eccda0eb0981ae9a4b6e553c70a1fd6d8c60e66170104",
      "title": "Layered sources and a field slice",
      "caption": "A three-dimensional source arrangement is shown beside a scalar field slice at z = 0.",
      "caveat": "A 3D layout and 2D slice are not a 3D Maxwell FDTD/FEM solution or validated formation-to-field performance. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Layered sources and a field slice. A three-dimensional source arrangement is shown beside a scalar field slice at z = 0.",
      "sources": [
        "assets/figures/electromagnetic/emp_3d_simulation.png"
      ],
      "src": "/gallery/assets/em-layered.png",
      "width": 1200,
      "height": 500,
      "bytes": 124082,
      "format": "png"
    },
    {
      "id": "em-formation",
      "category": "em",
      "sha256": "cb92ec1d707203436c25f27084d3ccad67908e4e844be3a024aed83424638e8e",
      "title": "Prescribed formation demo",
      "caption": "Moving point agents approach chosen formation slots beside a target-plane scalar pattern.",
      "caveat": "A designated later animation frame alone is not a convergence test. Point-agent motion is not an aircraft dynamics model or collision-safe controller, and the field is unrelated to current survey metrics. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Prescribed formation demo. Moving point agents approach chosen formation slots beside a target-plane scalar pattern.",
      "sources": [
        "assets/figures/electromagnetic/drone_swarm_resonance.png"
      ],
      "src": "/gallery/assets/em-formation.png",
      "width": 1200,
      "height": 600,
      "bytes": 84180,
      "format": "png"
    },
    {
      "id": "em-orchestration",
      "category": "em",
      "sha256": "170ab2816e0ef35b203e671c81aae25a992fa368a5d020fd98482815bfcf0e0a",
      "title": "Archived formation orchestration",
      "caption": "A moving reference, linear assignment, prescribed slots, and simplified PID-style motion share one visualization.",
      "caveat": "Assignment minimizes only the selected cost matrix, not total flight energy or safety. The final image proves neither convergence nor tracking guarantees; there is no validated aerodynamic or actuator model. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Archived formation orchestration. A moving reference, linear assignment, prescribed slots, and simplified PID-style motion share one visualization.",
      "sources": [
        "assets/figures/electromagnetic/swarm_orchestration_final.png"
      ],
      "src": "/gallery/assets/em-orchestration.png",
      "width": 1200,
      "height": 600,
      "bytes": 89373,
      "format": "png"
    },
    {
      "id": "em-interference",
      "category": "em",
      "sha256": "70769d688019a6311cb15be9e1506c8d017e715eaa536b4b83bf9d1329b4ffef",
      "title": "Synthetic timing-jitter comparison",
      "caption": "Two scalar pulse-field evaluations compare zero jitter with a synthetic 500 ps jitter setting.",
      "caveat": "Each panel has its own automatic colour scale. The fixed evaluation time is not established as the center temporal peak, and the Real-world Interference title is misleading. Two synthetic draws are not statistical robustness evidence or clock requirements. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Synthetic timing-jitter comparison. Two scalar pulse-field evaluations compare zero jitter with a synthetic 500 ps jitter setting.",
      "sources": [
        "assets/figures/electromagnetic/high_fidelity_interference.png"
      ],
      "src": "/gallery/assets/em-interference.png",
      "width": 1500,
      "height": 600,
      "bytes": 492747,
      "format": "png"
    },
    {
      "id": "em-jitter",
      "category": "em",
      "sha256": "2c33137808949507e4637c499546816701f9946c676a50add0a0fe267e9bcd90",
      "title": "Fixed-time jitter samples",
      "caption": "The archived curve averages absolute target-field samples across synthetic jitter settings.",
      "caveat": "Despite the Peak E-Field axis, fifty samples per setting are evaluated at one fixed late time, R/c + 5 ns; no temporal maximization occurs. There is no displayed uncertainty interval or measured hardware jitter tolerance. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Fixed-time jitter samples. The archived curve averages absolute target-field samples across synthetic jitter settings.",
      "sources": [
        "assets/figures/electromagnetic/jitter_sensitivity.png"
      ],
      "src": "/gallery/assets/em-jitter.png",
      "width": 1000,
      "height": 600,
      "bytes": 39906,
      "format": "png"
    },
    {
      "id": "em-vector",
      "category": "em",
      "sha256": "4848351658030c8f387938dda5f952291714a7d0a71db689cd6d3352390a5429",
      "title": "Approximate vector superposition",
      "caption": "Prescribed electric and magnetic contributions yield local field and flux magnitudes over sampled times.",
      "caveat": "The Full Physics title overstates scope: this is not a self-consistent Maxwell boundary-value solution. Near fields, coupling, materials, and energy conservation are unsolved. Errors are redrawn at each time; |E × H| is local flux magnitude, not total power or delivered energy. Dispersion helpers are not used in this plotting path. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Approximate vector superposition. Prescribed electric and magnetic contributions yield local field and flux magnitudes over sampled times.",
      "sources": [
        "assets/figures/electromagnetic/full_physics_resonance.png"
      ],
      "src": "/gallery/assets/em-vector.png",
      "width": 1000,
      "height": 800,
      "bytes": 56949,
      "format": "png"
    },
    {
      "id": "em-pulse-shapes",
      "category": "em",
      "sha256": "563e94195699e9938354873e95bbc27c7f3a374a5caee0e8e824181ee4d448c6",
      "title": "Assumed pulse-shape comparison",
      "caption": "Two analytic pulse shapes compare imposed source-count-dependent widths and amplitudes.",
      "caveat": "Narrowing is inserted into a formula, not emergent cooperative emission. There is no microscopic emitter model, coupling dynamics, consistent source-energy comparison, or demonstrated Dicke superradiance. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Assumed pulse-shape comparison. Two analytic pulse shapes compare imposed source-count-dependent widths and amplitudes.",
      "sources": [
        "assets/figures/electromagnetic/superradiance_comparison.png"
      ],
      "src": "/gallery/assets/em-pulse-shapes.png",
      "width": 1000,
      "height": 600,
      "bytes": 41183,
      "format": "png"
    },
    {
      "id": "em-scaling",
      "category": "em",
      "sha256": "f21dbc3b30cb4ae95f56594f3bed1fb76b47c5f2b297dfce53d62d912f258ed0",
      "title": "Assumed source-count scaling",
      "caption": "The plotted curves compare an N² quantity with an imposed (N + 1)² × N expression.",
      "caveat": "The extra N multiplier is arbitrary, not derived from energy-conserving integration or cooperative-emission physics. Integrated Peak does not describe a performed integration. The curve is not a physical scaling limit or basis for source-count requirements. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "Assumed source-count scaling. The plotted curves compare an N² quantity with an imposed (N + 1)² × N expression.",
      "sources": [
        "assets/figures/electromagnetic/scaling_limits.png"
      ],
      "src": "/gallery/assets/em-scaling.png",
      "width": 1000,
      "height": 600,
      "bytes": 48779,
      "format": "png"
    },
    {
      "id": "em-clipping",
      "category": "em",
      "sha256": "22a4f8458049b6e8621bd75dda62e679cba4f5c682a83083ee0fb8d00cfa9ea4",
      "title": "An imposed field cap",
      "caption": "An additive toy field is clipped at a chosen nominal 3 MV/m threshold.",
      "caveat": "The shaded region and clipped line illustrate a rule, not plasma, discharge, or atmospheric propagation. Real breakdown depends on pressure, geometry, pulse duration, humidity, and other conditions; this is not a universal measured limit. Historical reduced-order illustration, not a validated full-wave solver, hardware measurement, or weapon-performance result. Baked-in titles and physical-unit labels are preserved, not endorsed.",
      "alt": "An imposed field cap. An additive toy field is clipped at a chosen nominal 3 MV/m threshold.",
      "sources": [
        "assets/figures/electromagnetic/air_breakdown_limit.png"
      ],
      "src": "/gallery/assets/em-clipping.png",
      "width": 1000,
      "height": 600,
      "bytes": 45596,
      "format": "png"
    },
    {
      "id": "smoke-coverage",
      "category": "smoke",
      "sha256": "d28e9ab469ef5d1e20713cb8cfd1c2505c4aa3e40133f2ddd2c81fc2a6d12ac9",
      "title": "Original smoke coverage score",
      "caption": "Three policy bars retain the original uncertainty-based end-of-episode comparison.",
      "caveat": "Final coverage here means 1 − mean uncertainty, not physically visited area or calibrated confidence. Do not compare its legacy shared-map score to current evidence-count coverage. Historical development smoke run: three seeds (42–44), eight agents, 60 steps. Error bars describe the original run spread, not a current-core confidence interval or flight validation.",
      "alt": "Original smoke coverage score. Three policy bars retain the original uncertainty-based end-of-episode comparison.",
      "sources": [
        "reports/plots/smoke_test_final_coverage.png"
      ],
      "src": "/gallery/assets/smoke-coverage.png",
      "width": 1484,
      "height": 732,
      "bytes": 37821,
      "format": "png"
    },
    {
      "id": "smoke-hotspots",
      "category": "smoke",
      "sha256": "5f7d8dbad026029f97044e075d76c0f8d9af8ec36575e89eaa3d2b0644973a63",
      "title": "Original smoke hotspot score",
      "caption": "Policy bars compare the historical uncertainty-threshold score on synthetic high-value cells.",
      "caveat": "Hotspots detected refers to true top-risk cells whose uncertainty fell below a threshold, not real-object detection, precision/recall, or a civilian sensor benchmark. Historical development smoke run: three seeds (42–44), eight agents, 60 steps. Error bars describe the original run spread, not a current-core confidence interval or flight validation.",
      "alt": "Original smoke hotspot score. Policy bars compare the historical uncertainty-threshold score on synthetic high-value cells.",
      "sources": [
        "reports/plots/smoke_test_hotspots.png"
      ],
      "src": "/gallery/assets/smoke-hotspots.png",
      "width": 1484,
      "height": 732,
      "bytes": 43464,
      "format": "png"
    },
    {
      "id": "smoke-collisions",
      "category": "smoke",
      "sha256": "9f2f5a6bc8232271a4bdaa5a18af1f628999a6d271fcc97a6337924555b2c34e",
      "title": "Original smoke collision pressure",
      "caption": "Close-separation counts expose the original random-walk baseline's higher event pressure.",
      "caveat": "Legacy collision pressure is not the rewritten swept-segment safety audit and does not count distinct physical crashes. Lower pressure over three seeds does not prove safe control. Historical development smoke run: three seeds (42–44), eight agents, 60 steps. Error bars describe the original run spread, not a current-core confidence interval or flight validation.",
      "alt": "Original smoke collision pressure. Close-separation counts expose the original random-walk baseline's higher event pressure.",
      "sources": [
        "reports/plots/smoke_test_collision_pressure.png"
      ],
      "src": "/gallery/assets/smoke-collisions.png",
      "width": 1484,
      "height": 732,
      "bytes": 38277,
      "format": "png"
    },
    {
      "id": "smoke-reward",
      "category": "smoke",
      "sha256": "442fea7c754eeb139fbbd2bfb31f0a1aa90f208429d8191a15b88374f0dd0d96",
      "title": "Original smoke reward comparison",
      "caption": "Total scalar reward combines the historical development benchmark's chosen objectives.",
      "caveat": "Reward is an internal aggregate, not a calibrated mission outcome, evidence of adaptive superiority, or comparable to a different core's reward definition. Historical development smoke run: three seeds (42–44), eight agents, 60 steps. Error bars describe the original run spread, not a current-core confidence interval or flight validation.",
      "alt": "Original smoke reward comparison. Total scalar reward combines the historical development benchmark's chosen objectives.",
      "sources": [
        "reports/plots/smoke_test_total_reward.png"
      ],
      "src": "/gallery/assets/smoke-reward.png",
      "width": 1484,
      "height": 732,
      "bytes": 35905,
      "format": "png"
    }
  ],
  "reportOnlyStudies": [
    {
      "id": "improvement",
      "title": "Guarded improvement",
      "sources": [
        "reports/improvement_local/hardened/study.json",
        "reports/improvement_local/hardened/summary.md"
      ],
      "note": "Published as tables and JSON, with no standalone figure images. The baseline was retained; the hardened rerun is not a fresh blind test."
    },
    {
      "id": "solver",
      "title": "Solver reliability",
      "sources": [
        "reports/solver_reliability/summary.json",
        "reports/solver_reliability/report.md"
      ],
      "note": "Published as tables and JSON, with no standalone figure images. Fewer uncertified steps did not pass the physical-audit and progress/cost gates; the frozen controller was retained."
    },
    {
      "id": "flight",
      "title": "PX4 flight stack",
      "sources": [
        "reports/flight_stack/summary.json",
        "reports/flight_stack/report.md"
      ],
      "note": "Published as telemetry, tables, and an interactive viewer, with no standalone figure images. Independent SIH worlds are not shared-world swarm physics or hardware flights."
    }
  ],
  "scope": {
    "roots": [
      "assets/figures",
      "reports"
    ],
    "prunedDirectoryNames": [
      ".cache",
      ".git",
      ".venv",
      "__pycache__",
      "fixtures",
      "full_tmp",
      "integration_workspace",
      "node_modules",
      "runtime_snapshot",
      "source_snapshot",
      "targeted_tmp",
      "test_fixtures",
      "test_tmp",
      "vendor",
      "venv"
    ],
    "note": "All 17 original figures and all standalone published report images. Byte-identical publications share one image with every source path retained. Test fixtures, integration workspaces, archived source/runtime dependencies and vendor/cache trees are excluded. Published obstacle adversarial audit figures are included. No research simulations or charts are regenerated."
  },
  "stats": {
    "originals": 17,
    "sourceImages": 44,
    "uniqueImages": 37,
    "duplicateAliases": 7,
    "publishedBytes": 4652928,
    "sourceBytes": 5453436
  }
}
