{
  "article_slug": "rectangular-and-circular-agent-clearance-in-godot",
  "artifact": "Standalone Godot rectangular and circular grid-clearance correctness proof",
  "checks": [
    {
      "details": {
        "comparisons": 9216,
        "footprints": 4,
        "maps": 32,
        "mismatch": {}
      },
      "id": "rectangle_summed_area_matches_direct_footprint_scans",
      "passed": true
    },
    {
      "details": {
        "anchor": {
          "x": 3,
          "y": 1
        },
        "horizontal_fits": false,
        "horizontal_valid": 33,
        "vertical_fits": true,
        "vertical_valid": 30
      },
      "id": "one_by_three_and_three_by_one_use_distinct_orientation_masks",
      "passed": true
    },
    {
      "details": {
        "invalid_mask_valid_count": 0,
        "negative_anchor": -1,
        "past_edge": -1,
        "zero_width": -1
      },
      "id": "invalid_and_out_of_bounds_rectangles_fail_closed",
      "passed": true
    },
    {
      "details": {
        "comparisons": 5376,
        "includes_non_square_cells": true,
        "maps": 24,
        "mismatch": {},
        "radii": 4
      },
      "id": "circle_clearance_field_matches_direct_blocked_aabb_geometry",
      "passed": true
    },
    {
      "details": {
        "available_squared": 256.0,
        "center_cell": {
          "x": 0,
          "y": 0
        },
        "radius_16_01_fits": false,
        "radius_16_fits": true
      },
      "id": "map_boundary_limits_circle_radius_under_declared_contact_tolerance",
      "passed": true
    },
    {
      "details": {
        "cells_checked": 1600,
        "maps": 20,
        "violations": 0
      },
      "id": "larger_circle_radii_never_gain_valid_centers",
      "passed": true
    },
    {
      "details": {
        "cases": 40,
        "matches": 40,
        "mismatch": {}
      },
      "id": "rectangle_profile_paths_match_direct_geometry_unit_cost_bfs",
      "passed": true
    },
    {
      "details": {
        "cases": 40,
        "matches": 40,
        "mismatch": {}
      },
      "id": "circle_profile_paths_match_direct_geometry_unit_cost_bfs",
      "passed": true
    },
    {
      "details": {
        "available_squared": 25.0,
        "beyond_tolerance_fits": false,
        "beyond_tolerance_radius": 5.0000002,
        "contact_epsilon_squared": 1E-06,
        "touching_fits": true,
        "touching_radius": 5.0,
        "within_tolerance_fits": true,
        "within_tolerance_radius": 5.00000005
      },
      "id": "circle_contact_policy_applies_declared_squared_tolerance",
      "passed": true
    },
    {
      "details": {
        "goal": {
          "x": 1,
          "y": 1
        },
        "goal_fits": true,
        "midpoint_distance_squared": 0.0,
        "radius": 0.4,
        "segment_midpoint": {
          "x": 1.0,
          "y": 1.0
        },
        "start": {
          "x": 0,
          "y": 0
        },
        "start_fits": true
      },
      "id": "valid_circle_endpoint_poses_do_not_prove_a_safe_diagonal_sweep",
      "passed": true
    },
    {
      "details": {
        "cell_size": {
          "x": 40.0,
          "y": 20.0
        },
        "expected_horizontal_squared": 400.0,
        "expected_vertical_squared": 100.0,
        "horizontal_squared": 400.0,
        "vertical_squared": 100.0
      },
      "id": "non_square_cells_measure_circle_clearance_in_local_units",
      "passed": true
    },
    {
      "details": {
        "circle_probe_large_fits": false,
        "circle_probe_small_fits": true,
        "contact_epsilon_squared": 1E-06,
        "contact_policy": "contact_allowed_with_declared_squared_tolerance",
        "horizontal_probe_fits": false,
        "horizontal_valid_anchors": 64,
        "large_circle_valid_centers": 35,
        "small_circle_valid_centers": 90,
        "vertical_probe_fits": true,
        "vertical_valid_anchors": 57
      },
      "id": "runnable_scene_smoke",
      "passed": true
    }
  ],
  "engine": {
    "build": "official",
    "hash": "5b4e0cb0fd279832bbdd69fed5354d4e5ad26f88",
    "hex": 263936,
    "major": 4,
    "minor": 7,
    "patch": 0,
    "status": "stable",
    "string": "4.7-stable (official)",
    "timestamp": 0
  },
  "failed": [],
  "failed_count": 0,
  "generated_cases": {
    "circle_maps": 24,
    "circle_path_cases": 40,
    "rectangle_maps": 32,
    "rectangle_path_cases": 40,
    "seed": 5423594
  },
  "geometry_contract": {
    "blocked_circle_geometry": "axis-aligned blocked-cell rectangles and map boundary",
    "circle_pose": "grid-cell center plus radius in local units",
    "contact_policy": "contact allowed within 0.000001 squared local-unit tolerance; overlap beyond that tolerance rejected",
    "grid": "zero-origin orthogonal blocked-cell occupancy",
    "movement": "four-way unit-cost BFS profile-mask path comparisons",
    "rectangle_pose": "top-left anchor plus positive Vector2i width/height"
  },
  "measurement_scope": "Correctness proof only. No runtime, throughput, or memory claim.",
  "passed": true,
  "passed_count": 12,
  "proof_boundary": {
    "dynamic_updates": "The proof uses static occupancy snapshots. Incremental updates and dynamic-agent avoidance are outside scope.",
    "product_scope": "This standalone article artifact is not evidence that PathForge V1 exposes rectangular or circular profiles.",
    "rotation": "The proof distinguishes 1x3 and 3x1 orientation masks; it does not implement arbitrary-angle rigid-body planning.",
    "transition_geometry": "The named diagonal counterexample proves that legal endpoint poses do not establish a legal swept transition. General rectangle/circle sweep validation is outside this artifact.",
    "verified_here": "Summed-area rectangle fit, precomputed center-to-blocked-AABB circle clearance under the declared tolerance, profile masks, orientation distinction, map boundaries, monotonic radii, and four-way unit-cost path reachability against direct geometry."
  },
  "verified_at": "2026-07-12T07:51:40",
  "published_files": {
    "source_zip": {
      "path": "/downloads/pathforge/rectangular-and-circular-agent-clearance-in-godot-source.zip",
      "bytes": 11813,
      "sha256": "038b189327c714b3edf8437b5f9473ab9b6f5d8c15c891a192dad59aefb37597"
    },
    "shape_clearance_source": {
      "path_in_zip": "scripts/articles/shape_clearance.gd",
      "sha256": "bfa4857d269ae75fdbebf687ed6722f54f2ce9cd830ff9d08a1baa3a9d60142c"
    }
  },
  "extracted_package_rerun": {
    "passed": true,
    "check_count": 12,
    "engine": "4.7-stable (official)"
  }
}
