{
  "project": "optik-three-eras",
  "generated_utc": "2026-07-10T07:46:35.179843+00:00",
  "authoritative_source": "tools/generate_models.py",
  "source_blend": "source/optik-three-eras.blend",
  "blender_version": "4.2.3 LTS",
  "units": "meters",
  "coordinate_conventions": {
    "lens_blender": "mount at Z=0; front along +Z",
    "lens_gltf": "mount at Y=0; front along +Y",
    "body_blender": "front faces -Y; lens-mount center is assembly origin"
  },
  "export": {
    "format": "GLB / glTF 2.0",
    "y_up": true,
    "materials": "none"
  },
  "totals": {
    "assembly_count": 6,
    "educational_mesh_count": 76,
    "triangle_count": 54532,
    "file_size_bytes": 1954844,
    "proof_png_count": 12
  },
  "assemblies": [
    {
      "id": "SX70B",
      "filename": "body-sx70.glb",
      "relative_path": "assets/models/body-sx70.glb",
      "educational_mesh_count": 12,
      "mesh_count": 12,
      "dimensions_m": {
        "x": 0.112,
        "y": 0.160326,
        "z": 0.116
      },
      "triangle_count": 7796,
      "file_size_bytes": 460604,
      "node_names": [
        "SX70B|01|Lower chassis and film door · folding|struct",
        "SX70B|02|Rear body shell · film chamber and dark slide|struct",
        "SX70B|03|Bellows · eight pleated light-seal folds|struct",
        "SX70B|04|Front standard · deployed lens and shutter|struct",
        "SX70B|05|Scissor struts · four-bar folding deployment|mech",
        "SX70B|06|Reflex mirror · folding SLR viewing path|opt",
        "SX70B|07|Fresnel focusing screen · ground-glass image|opt",
        "SX70B|08|Folding viewfinder · pop-up hood and eyepiece|opt",
        "SX70B|09|Shutter release linkage · front button and|mech",
        "SX70B|10|Cycle-control electronics · motor, timing board|elec",
        "SX70B|11|Film rollers · paired developer-spread rollers|mech",
        "SX70B|12|Tripod socket and latch · folding chassis|mech"
      ],
      "materials_exported": 0,
      "proofs": {
        "assembled": "proofs/blender/SX70B-assembled.png",
        "exploded": "proofs/blender/SX70B-exploded.png"
      }
    },
    {
      "id": "SX70L",
      "filename": "lens-sx70-116.glb",
      "relative_path": "assets/models/lens-sx70-116.glb",
      "educational_mesh_count": 10,
      "mesh_count": 10,
      "dimensions_m": {
        "x": 0.052,
        "y": 0.0284,
        "z": 0.047
      },
      "triangle_count": 6844,
      "file_size_bytes": 187360,
      "node_names": [
        "SX70L|01|Front bezel · engraved 116 mm filter rim|struct",
        "SX70L|02|Front objective · exaggerated convex singlet|opt",
        "SX70L|03|Focusing cell · manual helical carriage|mech",
        "SX70L|04|Front optical group · cemented correction doublet|opt",
        "SX70L|05|Leaf shutter · five joined overlapping blades|mech",
        "SX70L|06|Aperture iris · variable exposure stop|mech",
        "SX70L|07|Exposure photocell · automatic exposure sensor|elec",
        "SX70L|08|Rear optical group · field-flattening pair|opt",
        "SX70L|09|Lens board flange · square folding-standard|struct",
        "SX70L|10|Drive coupling and contacts · shutter linkage|elec"
      ],
      "materials_exported": 0,
      "proofs": {
        "assembled": "proofs/blender/SX70L-assembled.png",
        "exploded": "proofs/blender/SX70L-exploded.png"
      }
    },
    {
      "id": "MJU2B",
      "filename": "body-mju2.glb",
      "relative_path": "assets/models/body-mju2.glb",
      "educational_mesh_count": 11,
      "mesh_count": 11,
      "dimensions_m": {
        "x": 0.145,
        "y": 0.069,
        "z": 0.07
      },
      "triangle_count": 5376,
      "file_size_bytes": 255220,
      "node_names": [
        "MJU2B|01|Capsule body shell · weather-sealed rounded|struct",
        "MJU2B|02|Front fascia · molded splash-resistant|struct",
        "MJU2B|03|Open sliding cover · clamshell power switch and|mech",
        "MJU2B|04|Cover guide and spring · sliding power interlock|mech",
        "MJU2B|05|Retracting lens collar · fixed barrel and|mech",
        "MJU2B|06|Optical viewfinder · front window and Albada|opt",
        "MJU2B|07|Flash window and reflector · automatic xenon|elec",
        "MJU2B|08|Film transport · 35 mm cartridge, spool and|mech",
        "MJU2B|09|Pressure plate and back door · film-flatness|struct",
        "MJU2B|10|Shutter and AE electronics · metering board,|elec",
        "MJU2B|11|Controls and tripod socket · shutter release and|mech"
      ],
      "materials_exported": 0,
      "proofs": {
        "assembled": "proofs/blender/MJU2B-assembled.png",
        "exploded": "proofs/blender/MJU2B-exploded.png"
      }
    },
    {
      "id": "MJU2L",
      "filename": "lens-mju2-35.glb",
      "relative_path": "assets/models/lens-mju2-35.glb",
      "educational_mesh_count": 10,
      "mesh_count": 10,
      "dimensions_m": {
        "x": 0.028,
        "y": 0.0305,
        "z": 0.028
      },
      "triangle_count": 7540,
      "file_size_bytes": 179624,
      "node_names": [
        "MJU2L|01|Front bezel · 35 mm weather-seal rim|struct",
        "MJU2L|02|Barrier doors · two joined automatic lens|mech",
        "MJU2L|03|Front element · compact convex objective|opt",
        "MJU2L|04|Telescoping outer barrel · powered two-stage|struct",
        "MJU2L|05|Focus carriage · short-travel helical cell|mech",
        "MJU2L|06|Middle doublet · cemented aberration corrector|opt",
        "MJU2L|07|Aperture and shutter · joined iris and|mech",
        "MJU2L|08|Rear element · field-flattening meniscus|opt",
        "MJU2L|09|Light baffle · stepped anti-reflection throat|struct",
        "MJU2L|10|Mount and flex contacts · fixed chassis flange|elec"
      ],
      "materials_exported": 0,
      "proofs": {
        "assembled": "proofs/blender/MJU2L-assembled.png",
        "exploded": "proofs/blender/MJU2L-exploded.png"
      }
    },
    {
      "id": "A7IIIB",
      "filename": "body-a7iii.glb",
      "relative_path": "assets/models/body-a7iii.glb",
      "educational_mesh_count": 15,
      "mesh_count": 15,
      "dimensions_m": {
        "x": 0.147,
        "y": 0.112,
        "z": 0.093095
      },
      "triangle_count": 7756,
      "file_size_bytes": 381368,
      "node_names": [
        "A7IIIB|01|Magnesium body shell · angular full-frame|struct",
        "A7IIIB|02|Front armor · faceted mount surround and|struct",
        "A7IIIB|03|Deep hand grip · battery-backed control grip|struct",
        "A7IIIB|04|Battery door · hinged NP-FZ100 compartment|mech",
        "A7IIIB|05|E-mount ring · short-flange 3-tab bayonet|mech",
        "A7IIIB|06|Full-frame sensor · 36 by 24 mm exposed imaging|elec",
        "A7IIIB|07|Sensor stabilizer · five-axis floating IBIS|mech",
        "A7IIIB|08|Mechanical shutter · dual traveling focal-plane|mech",
        "A7IIIB|09|EVF prism hump · central electronic finder|struct",
        "A7IIIB|10|EVF optics and eyepiece · OLED finder magnifier|opt",
        "A7IIIB|11|Rear LCD · tilting live-view display|elec",
        "A7IIIB|12|Top controls · mode, exposure and command dials|mech",
        "A7IIIB|13|Multi-interface hot shoe · flash rail and|elec",
        "A7IIIB|14|Strap lugs · paired triangular anchor hardware|mech",
        "A7IIIB|15|Mainboard and ports · processor, HDMI and USB|elec"
      ],
      "materials_exported": 0,
      "proofs": {
        "assembled": "proofs/blender/A7IIIB-assembled.png",
        "exploded": "proofs/blender/A7IIIB-exploded.png"
      }
    },
    {
      "id": "GM2470",
      "filename": "lens-fe2470gm.glb",
      "relative_path": "assets/models/lens-fe2470gm.glb",
      "educational_mesh_count": 18,
      "mesh_count": 18,
      "dimensions_m": {
        "x": 0.116,
        "y": 0.187,
        "z": 0.116
      },
      "triangle_count": 19220,
      "file_size_bytes": 490668,
      "node_names": [
        "GM2470|01|Petal hood · deep flare and side-cut shade|struct",
        "GM2470|02|82 mm filter ring · threaded front accessory|mech",
        "GM2470|03|Front element · oversized aspherical objective|opt",
        "GM2470|04|Front optical group · two-element wide-angle|opt",
        "GM2470|05|Telescoping inner barrel · zoom extension|struct",
        "GM2470|06|Zoom ring · wide 24-to-70 mm control ring|mech",
        "GM2470|07|Zoom cam sleeve · helical tracks and three|mech",
        "GM2470|08|Focus ring · fly-by-wire manual control|mech",
        "GM2470|09|Floating focus carrier · corrective element and|elec",
        "GM2470|10|Middle optical group · zoom compensation group|opt",
        "GM2470|11|Aperture housing · electromagnetic stop carrier|mech",
        "GM2470|12|Iris diaphragm · nine joined overlapping blades|mech",
        "GM2470|13|Rear optical group · telephoto correction stack|opt",
        "GM2470|14|Rear element · high-curvature field flattener|opt",
        "GM2470|15|Main barrel · sealed structural lens chassis|struct",
        "GM2470|16|Direct Drive SSM motor · ultrasonic autofocus|elec",
        "GM2470|17|Bayonet mount and gasket · E-mount flange and|mech",
        "GM2470|18|Gold contact block · eight electronic|elec"
      ],
      "materials_exported": 0,
      "proofs": {
        "assembled": "proofs/blender/GM2470-assembled.png",
        "exploded": "proofs/blender/GM2470-exploded.png"
      }
    }
  ]
}
