{
  "requested_node_budget": 6000,
  "actual_node_count": 5925,
  "triangle_count": 11999,
  "source_graph": "data_processed/graphs/graph_6000.npz",
  "topology": "saved edge_index derives from saved faces; face dihedral remains the two-adjacent-face quantity",
  "node_padding_or_duplication": false,
  "signed_curvature_mapping": {
    "coverage_fraction": 0.3883544303797468,
    "valid_count": 2301,
    "invalid_count": 3624,
    "valid_rule": "nearest STEP analytic sample <3 mm and abs(prepared normal dot STEP parameter normal) >0.8; both k values are multiplied by sign(dot) into prepared-normal convention, then ordered k1>=k2; invalid signs are masked",
    "formulas": "H=(k1+k2)/2; K=k1*k2; curvedness=sqrt((k1²+k2²)/2); shape-index=(2/pi)*atan2(k1+k2,k1-k2)",
    "caveat": "sign is meaningful only under this local oriented correspondence; use dihedral at sharp creases, where smooth curvature is undefined"
  }
}