{
  "lab_id":"LAB-003","title":"Touch vs Crossing","version":"1.0","date":"2026-08-24",
  "related_modules":["Compo 7.02","Compo 7.03"],
  "research_question":"Do bleed relation and signed clearance agree at touch, crossing, and outside-only boundary cases?",
  "hypothesis":"TOUCHING_TRIM is distinct from CROSSES_TRIM; for crossing cases outsideDepth equals max(0,-signedClearance), while OUTSIDE_ONLY remains a separate relation.",
  "independent_variables":["edge","geometry_state","scale_factor"],"controlled_variables":["rectangular trim","object proportions","EPS","coordinate frame"],
  "dependent_metrics":["trimRelation","signedClearance","signedShortN","outsideDepth","bridge_consistency"],
  "dataset":{"type":"SYNTHETIC","case_count":72,"seed":24082026,"states":["INSIDE_ONLY","TOUCHING_TRIM","CROSSES_EPS","CROSSES_1","CROSSES_10","OUTSIDE_ONLY"],"scales":[0.5,1,2]},
  "canonical_impact":{"change_required":"NO","affected_modules":[],"recommendations":[]},
  "reproducibility":{"deterministic":true,"seeded":true,"environment":"PowerShell 7+","command":"pwsh -File run_lab_003.ps1"}
}
