{
  "format": "emberscope_blender_geometry/v1",
  "source_design_id": "emberscope-starter-freeform-v1",
  "source_revision": "2026-06-09",
  "source_hash_sha256": "1fef0451d621f2d117af4200fc60abd90b62ad6310e727c4e2d271988fe83961",
  "units": "millimetres",
  "overall_status": "screening_possible_not_prototype_ready",
  "components": [
    {
      "id": "payload_envelope_reference",
      "name": "150 mm payload envelope reference",
      "type": "envelope_reference",
      "include_in_optical_envelope": false,
      "geometry": {
        "shape": "box",
        "center_mm": [
          0.0,
          0.0,
          -18.0
        ],
        "size_mm": [
          150.0,
          150.0,
          150.0
        ]
      },
      "purpose": "Reference cube for compact payload packaging checks."
    },
    {
      "id": "entrance_aperture",
      "name": "Entrance aperture",
      "type": "aperture",
      "include_in_optical_envelope": true,
      "geometry": {
        "shape": "circle",
        "center_mm": [
          0.0,
          0.0,
          -46.0
        ],
        "normal": [
          0.0,
          0.0,
          1.0
        ],
        "diameter_mm": 40.0
      },
      "optical": {
        "area_mm2": 1256.6370614359173,
        "equivalent_circular_diameter_mm": 40.0
      }
    },
    {
      "id": "lwir_window_allowance",
      "name": "Serviceable LWIR window allowance",
      "type": "window",
      "include_in_optical_envelope": true,
      "geometry": {
        "shape": "box",
        "center_mm": [
          0.0,
          0.0,
          -52.5
        ],
        "size_mm": [
          48.0,
          48.0,
          2.0
        ]
      },
      "material": {
        "substrate": "TBD LWIR window material",
        "coating": "TBD broadband 8-14 um AR"
      },
      "purpose": "Mechanical and contamination-control allowance; not yet optically powered."
    },
    {
      "id": "stray_light_baffle_allowance",
      "name": "Stray-light baffle allowance",
      "type": "baffle",
      "include_in_optical_envelope": true,
      "geometry": {
        "shape": "cylinder",
        "center_mm": [
          0.0,
          0.0,
          -20.0
        ],
        "axis": [
          0.0,
          0.0,
          1.0
        ],
        "diameter_mm": 48.0,
        "length_mm": 72.0
      },
      "mass_proxy_kg": 0.06,
      "purpose": "First package-level baffle allowance for CAD and clearance checks; final vane geometry remains open."
    },
    {
      "id": "m1_primary",
      "name": "M1 primary",
      "type": "mirror",
      "include_in_optical_envelope": true,
      "position_mm": [
        0.0,
        0.0,
        0.0
      ],
      "orientation": {
        "tip_deg": 5.0,
        "tilt_deg": 0.0
      },
      "surface": {
        "shape_family": "freeform_xy",
        "radius_mm": -133.33333333333334,
        "conic_k": -1.0,
        "diameter_mm": 50.0,
        "rnorm_mm": 20.0,
        "poly_order": 4,
        "poly_coeffs": [
          0.0,
          0.0,
          0.04321311,
          0.0,
          -0.02135484,
          -0.20207849,
          0.21344264,
          0.0,
          0.0425451,
          0.0,
          0.0,
          0.0,
          0.0,
          0.0
        ],
        "max_total_sag_mm": 2.67091406640625,
        "max_freeform_sag_um": 506.59874088875745
      },
      "material": {
        "substrate": "aluminium mirror proxy",
        "coating": "gold or protected metal LWIR reflector TBD"
      },
      "mechanical": {
        "clear_aperture_margin_mm": 2.0,
        "mount_allowance_mm": 3.0
      }
    },
    {
      "id": "m2_secondary",
      "name": "M2 secondary",
      "type": "mirror",
      "include_in_optical_envelope": true,
      "position_mm": [
        0.0,
        8.103581624456748,
        -45.95769514056971
      ],
      "orientation": {
        "tip_deg": -8.0,
        "tilt_deg": 0.0
      },
      "surface": {
        "shape_family": "freeform_xy",
        "radius_mm": 53.33333333333334,
        "conic_k": -2.5,
        "diameter_mm": 32.0,
        "rnorm_mm": 8.0,
        "poly_order": 4,
        "poly_coeffs": [
          0.0,
          0.0,
          0.25642043,
          0.0,
          -0.04233339,
          0.53197315,
          -0.00989257,
          0.0,
          -0.32184185,
          0.0,
          0.0,
          0.0,
          0.0,
          0.0
        ],
        "max_total_sag_mm": 7.60551270251114,
        "max_freeform_sag_um": 4564.242114300641
      },
      "material": {
        "substrate": "aluminium mirror proxy",
        "coating": "gold or protected metal LWIR reflector TBD"
      },
      "mechanical": {
        "clear_aperture_margin_mm": 2.0,
        "mount_allowance_mm": 3.0
      }
    },
    {
      "id": "m3_tertiary",
      "name": "M3 tertiary",
      "type": "mirror",
      "include_in_optical_envelope": true,
      "position_mm": [
        0.0,
        22.71595318409266,
        -15.997893597264142
      ],
      "orientation": {
        "tip_deg": 5.0,
        "tilt_deg": 0.0
      },
      "surface": {
        "shape_family": "freeform_xy",
        "radius_mm": -80.0,
        "conic_k": 0.0,
        "diameter_mm": 36.0,
        "rnorm_mm": 6.0,
        "poly_order": 4,
        "poly_coeffs": [
          0.0,
          0.0,
          0.04982004,
          0.0,
          0.12208412,
          0.32995534,
          -0.12671614,
          0.0,
          -0.14396528,
          0.0,
          0.0,
          0.0,
          0.0,
          0.0
        ],
        "max_total_sag_mm": 7.305875619620306,
        "max_freeform_sag_um": 9050.879339424833
      },
      "material": {
        "substrate": "aluminium mirror proxy",
        "coating": "gold or protected metal LWIR reflector TBD"
      },
      "mechanical": {
        "clear_aperture_margin_mm": 2.0,
        "mount_allowance_mm": 3.0
      }
    },
    {
      "id": "image_sensor",
      "name": "Image sensor / focal plane",
      "type": "sensor",
      "include_in_optical_envelope": true,
      "geometry": {
        "shape": "plane",
        "center_mm": [
          0.3193257296503882,
          26.409414264222555,
          -25.052688441758196
        ],
        "normal": [
          0.2317676546758431,
          0.44974337537021286,
          -0.8625628386133193
        ],
        "x_axis": [
          0.0,
          -0.886706825723299,
          -0.4623321373382032
        ],
        "y_axis": [
          -0.9727711726023028,
          0.10715363515214514,
          -0.20550996138295052
        ],
        "width_mm": 10.88,
        "height_mm": 8.704
      },
      "detector": {
        "pixels": [
          640,
          512
        ],
        "pixel_pitch_um": 17.0,
        "radiometric_raw_required": true
      },
      "mass_proxy_kg": 0.3
    },
    {
      "id": "detector_electronics_allowance",
      "name": "Detector electronics allowance",
      "type": "electronics",
      "include_in_optical_envelope": true,
      "geometry": {
        "shape": "box",
        "center_mm": [
          0.0,
          34.0,
          -31.0
        ],
        "size_mm": [
          42.0,
          2.0,
          32.0
        ]
      },
      "mass_proxy_kg": 0.12,
      "purpose": "Coarse electronics board allowance behind the current focal plane."
    },
    {
      "id": "optical_bench_allowance",
      "name": "Optical bench allowance",
      "type": "structure",
      "include_in_optical_envelope": true,
      "geometry": {
        "shape": "box",
        "center_mm": [
          0.0,
          11.0,
          -24.0
        ],
        "size_mm": [
          58.0,
          4.0,
          56.0
        ]
      },
      "mass_proxy_kg": 0.16,
      "purpose": "First structural allowance tying the three mirror stations to a common datum."
    }
  ],
  "surfaces": [
    {
      "id": "m1_primary",
      "name": "M1 primary",
      "position": [
        0.0,
        0.0,
        0.0
      ],
      "tip_deg": 5.0,
      "tilt_deg": 0.0,
      "R": -133.33333333333334,
      "k": -1.0,
      "diameter": 50.0,
      "Rnorm": 20.0,
      "poly_order": 4,
      "poly_coeffs": [
        0.0,
        0.0,
        0.04321311,
        0.0,
        -0.02135484,
        -0.20207849,
        0.21344264,
        0.0,
        0.0425451,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0
      ]
    },
    {
      "id": "m2_secondary",
      "name": "M2 secondary",
      "position": [
        0.0,
        8.103581624456748,
        -45.95769514056971
      ],
      "tip_deg": -8.0,
      "tilt_deg": 0.0,
      "R": 53.33333333333334,
      "k": -2.5,
      "diameter": 32.0,
      "Rnorm": 8.0,
      "poly_order": 4,
      "poly_coeffs": [
        0.0,
        0.0,
        0.25642043,
        0.0,
        -0.04233339,
        0.53197315,
        -0.00989257,
        0.0,
        -0.32184185,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0
      ]
    },
    {
      "id": "m3_tertiary",
      "name": "M3 tertiary",
      "position": [
        0.0,
        22.71595318409266,
        -15.997893597264142
      ],
      "tip_deg": 5.0,
      "tilt_deg": 0.0,
      "R": -80.0,
      "k": 0.0,
      "diameter": 36.0,
      "Rnorm": 6.0,
      "poly_order": 4,
      "poly_coeffs": [
        0.0,
        0.0,
        0.04982004,
        0.0,
        0.12208412,
        0.32995534,
        -0.12671614,
        0.0,
        -0.14396528,
        0.0,
        0.0,
        0.0,
        0.0,
        0.0
      ]
    }
  ],
  "entrance_aperture": {
    "center": [
      0.0,
      0.0,
      -46.0
    ],
    "diameter": 40.0
  },
  "image_sensor": {
    "center": [
      0.3193257296503882,
      26.409414264222555,
      -25.052688441758196
    ],
    "normal": [
      0.2317676546758431,
      0.44974337537021286,
      -0.8625628386133193
    ],
    "x_axis": [
      0.0,
      -0.886706825723299,
      -0.4623321373382032
    ],
    "y_axis": [
      -0.9727711726023028,
      0.10715363515214514,
      -0.20550996138295052
    ],
    "width": 10.88,
    "height": 8.704
  },
  "envelope_target_mm": 150.0,
  "computed_envelope": {
    "included_component_ids": [
      "entrance_aperture",
      "lwir_window_allowance",
      "stray_light_baffle_allowance",
      "m1_primary",
      "m2_secondary",
      "m3_tertiary",
      "image_sensor",
      "detector_electronics_allowance",
      "optical_bench_allowance"
    ],
    "min_mm": [
      -29.0,
      -24.690445775260184,
      -56.0
    ],
    "max_mm": [
      29.0,
      41.06925706586401,
      16.0
    ],
    "extent_mm": [
      58.0,
      65.7597028411242,
      72.0
    ],
    "max_extent_mm": 72.0
  },
  "ray_paths": [
    {
      "field_deg": -1.5,
      "color": "#ff6f3f",
      "points": [
        [
          -4.0,
          0.0,
          -46.0
        ],
        [
          -4.0,
          0.0,
          0.0
        ],
        [
          -4.0,
          8.103581624456748,
          -45.95769514056971
        ],
        [
          -4.0,
          22.71595318409266,
          -15.997893597264142
        ],
        [
          -3.680674270349612,
          26.409414264222555,
          -25.052688441758196
        ]
      ]
    },
    {
      "field_deg": 0.0,
      "color": "#ff6f3f",
      "points": [
        [
          0.0,
          0.0,
          -46.0
        ],
        [
          0.0,
          0.0,
          0.0
        ],
        [
          0.0,
          8.103581624456748,
          -45.95769514056971
        ],
        [
          0.0,
          22.71595318409266,
          -15.997893597264142
        ],
        [
          0.3193257296503882,
          26.409414264222555,
          -25.052688441758196
        ]
      ]
    },
    {
      "field_deg": 1.5,
      "color": "#ff6f3f",
      "points": [
        [
          4.0,
          0.0,
          -46.0
        ],
        [
          4.0,
          0.0,
          0.0
        ],
        [
          4.0,
          8.103581624456748,
          -45.95769514056971
        ],
        [
          4.0,
          22.71595318409266,
          -15.997893597264142
        ],
        [
          4.319325729650388,
          26.409414264222555,
          -25.052688441758196
        ]
      ]
    }
  ]
}
