{
  "schema_version": 1,
  "provenance": {
    "kind": "original synthetic arithmetic and vertex-text fixture",
    "inspected_source_url": "https://github.com/SpatiaOS/Procedura/blob/fac191ed49f55fcc2e0f23897e986042249f59fe/src/mesh/normalize.ts",
    "inspected_revision": "fac191ed49f55fcc2e0f23897e986042249f59fe",
    "equation": "p_normalized = (p - bbox_center) * 2 / longest_bbox_side",
    "target_half_extent": 1,
    "scope": "normal successful publishMesh OBJ path; opt-in STL copies transformed geometry",
    "not_tested": [
      "Procedura execution",
      "OpenSCAD compilation",
      "real generated outputs",
      "mesh faces",
      "materials",
      "USD/URDF motion export",
      "game-engine or DCC import",
      "runtime performance"
    ]
  },
  "checks": {
    "box_cases_passed": 5,
    "invalid_fixture_inputs_rejected": 3,
    "dimension_restoration_passed": true,
    "position_restoration_passed": true,
    "normalization_collapses_uniform_size_variants": true
  },
  "cases": [
    {
      "name": "base",
      "source_bbox_size": [
        100,
        50,
        25
      ],
      "source_bbox_min": [
        0,
        0,
        0
      ],
      "fixture_source_unit": "millimeter (author-defined)",
      "vertex_count": 8,
      "bbox_center": [
        50.0,
        25.0,
        12.5
      ],
      "normalization_factor": 0.02,
      "normalized_obj_vertex_text_sha256": "10305bbf537838f9f05682f13e0f69c24010593e6a441021d1fa884ae1598e34",
      "normalized_bbox_size": [
        2.0,
        1.0,
        0.5
      ],
      "meters_per_normalized_unit_to_restore_dimensions": 0.05,
      "restored_bbox_meters": [
        0.1,
        0.05,
        0.025
      ],
      "naive_shared_scale_0_05_bbox_meters": [
        0.1,
        0.05,
        0.025
      ],
      "source_position_restored": true
    },
    {
      "name": "length_only_double",
      "source_bbox_size": [
        200,
        50,
        25
      ],
      "source_bbox_min": [
        0,
        0,
        0
      ],
      "fixture_source_unit": "millimeter (author-defined)",
      "vertex_count": 8,
      "bbox_center": [
        100.0,
        25.0,
        12.5
      ],
      "normalization_factor": 0.01,
      "normalized_obj_vertex_text_sha256": "6fa83f583216c42475ea63bd66cfdeb2f5eeba3d02c83d092d19ad30403651f4",
      "normalized_bbox_size": [
        2.0,
        0.5,
        0.25
      ],
      "meters_per_normalized_unit_to_restore_dimensions": 0.1,
      "restored_bbox_meters": [
        0.2,
        0.05,
        0.025
      ],
      "naive_shared_scale_0_05_bbox_meters": [
        0.1,
        0.025,
        0.0125
      ],
      "source_position_restored": true
    },
    {
      "name": "all_dimensions_double",
      "source_bbox_size": [
        200,
        100,
        50
      ],
      "source_bbox_min": [
        0,
        0,
        0
      ],
      "fixture_source_unit": "millimeter (author-defined)",
      "vertex_count": 8,
      "bbox_center": [
        100.0,
        50.0,
        25.0
      ],
      "normalization_factor": 0.01,
      "normalized_obj_vertex_text_sha256": "10305bbf537838f9f05682f13e0f69c24010593e6a441021d1fa884ae1598e34",
      "normalized_bbox_size": [
        2.0,
        1.0,
        0.5
      ],
      "meters_per_normalized_unit_to_restore_dimensions": 0.1,
      "restored_bbox_meters": [
        0.2,
        0.1,
        0.05
      ],
      "naive_shared_scale_0_05_bbox_meters": [
        0.1,
        0.05,
        0.025
      ],
      "source_position_restored": true
    },
    {
      "name": "translated_base",
      "source_bbox_size": [
        100,
        50,
        25
      ],
      "source_bbox_min": [
        30,
        -10,
        7
      ],
      "fixture_source_unit": "millimeter (author-defined)",
      "vertex_count": 8,
      "bbox_center": [
        80.0,
        15.0,
        19.5
      ],
      "normalization_factor": 0.02,
      "normalized_obj_vertex_text_sha256": "10305bbf537838f9f05682f13e0f69c24010593e6a441021d1fa884ae1598e34",
      "normalized_bbox_size": [
        2.0,
        1.0,
        0.5
      ],
      "meters_per_normalized_unit_to_restore_dimensions": 0.05,
      "restored_bbox_meters": [
        0.1,
        0.05,
        0.025
      ],
      "naive_shared_scale_0_05_bbox_meters": [
        0.1,
        0.05,
        0.025
      ],
      "source_position_restored": true
    },
    {
      "name": "different_longest_axis",
      "source_bbox_size": [
        40,
        160,
        80
      ],
      "source_bbox_min": [
        0,
        0,
        0
      ],
      "fixture_source_unit": "millimeter (author-defined)",
      "vertex_count": 8,
      "bbox_center": [
        20.0,
        80.0,
        40.0
      ],
      "normalization_factor": 0.0125,
      "normalized_obj_vertex_text_sha256": "b9b66927d6ea460ae8bd095042eb12fe0d526daf820a9de25c7c3ed55f9e6389",
      "normalized_bbox_size": [
        0.5,
        2.0,
        1.0
      ],
      "meters_per_normalized_unit_to_restore_dimensions": 0.08,
      "restored_bbox_meters": [
        0.04,
        0.16,
        0.08
      ],
      "naive_shared_scale_0_05_bbox_meters": [
        0.025,
        0.1,
        0.05
      ],
      "source_position_restored": true
    }
  ]
}
