# NA 0.55 objective — regenerated 3D and sensor simulations

18 September 2026. Blender 4.5.14 LTS. **Simulation candidate, not a live Onshape CAD revision or manufacturing release.** Original Rev G files are retained.

## Implemented objective

The catalogue candidate is Mitutoyo M Plan Apo 50×, 378-805-3 / Edmund 46-146: NA 0.55, working distance 13 mm, focal length 4 mm, exit pupil diameter 4.4 mm, parfocal distance 95 mm, body length excluding threads 82 mm and maximum diameter 34.5 mm. Source checked 18 September: [supplier specifications](https://www.edmundoptics.com/p/50x-mitutoyo-plan-apo-infinity-corrected-long-wd-objective/6626/).

The 3D objective is a conservative full-length cylinder at that maximum diameter, not the actual tapered barrel, thread or a proprietary optical prescription. Its front moves from Z73.58 to Z66.58 mm; its shoulder remains Z148.58 mm above the sample at Z53.58. The nominal axial separation from the lid plane at Z56 is 10.58 mm. This does not establish clearance of the actual lid opening, clamp, knife, EB column, detector or stage travel.

Rev G downstream aperture sizes, horizontal camera X−375/Z188.58, ideal f100 tube and f40 illumination relay remain unchanged. The nominal imaging magnification is 25×; object sampling is 0.138 µm/pixel over 264.96 × 165.60 µm. The 3.6 mm field stop maps to a nominal 0.36 mm object diameter. A geometrical on-axis NA0.55 cone is 3.187 mm across at the lid plane; adding the object-field diagonal gives a conservative 3.500 mm aperture requirement before positioning errors. No actual lid opening was assumed or validated.

## Recomputed checks

- **21,654 numerical rays:** 401 pupil samples including the full rim, nine sensor fields, both optical branches and three assumed pupil planes. All sampled rays pass the modelled downstream apertures.
- **594 independent Blender mesh intersections:** 297 image and 297 reciprocal-excitation rays; zero collisions with the reconstructed aperture sections. This is not a whole-assembly collision test.
- **Sensor scale:** a 20 µm reference dot spans 145 pixels at half maximum, corresponding to 20.01 µm. This checks the implemented scale, not real-system calibration accuracy.
- **LED off:** the full-size render and a separate render after reopening the saved Blender file have zero-valued pixels.
- **Defocus:** moving the sample +10 µm reduces the isolated 1 µm standard peak from 0.63653 to 0.00931 in relative linear units. Total image flux ratio is 0.999693 versus focus. This is geometric blur, not a diffraction or detection-limit prediction.
- **Conditional illumination:** sample grid spans 0.91310–1.02691 relative to its centre, under the assumed 4 mm Lambertian emitter and diffuser. The rendered uniform layer's 1st/99th percentiles are 0.92578/1.02292 relative to its centre.

The pupil locations Z108.58, Z148.58 and Z178.58 are sensitivity assumptions, not manufacturer measurements. The nominal visualisation uses Z148.58. Sensor rays use an ideal sine-condition NA0.55 cone below the objective and analytic transfer through the folded path. The objective's internal prescription is not traced.

The synthetic specimen was rearranged to fit the smaller field, retaining physical 1/2/5/10/25 µm size standards, 20 µm markers and a 50 µm ruler. It is not a fixed-specimen comparison of brightness against Rev G. Pixel values are relative and cannot establish an NA-dependent photon benefit.

## Firefli Red scope

The files carry the selected green-excitation/Firefli Red intent (provisional 540/20 excitation, 565–570 nm dichroic transition and 610/40 emission). The diagram ray colours identify branches, not wavelengths. Spectral curves, dye yield, LED red leakage and absolute camera response are not modelled. No claim is made that these filter targets have been purchased, fitted or validated.

Real lenses and aberrations, diffraction, detector noise, sample background, optical throughput, vacuum suitability and whole-assembly tolerances remain unresolved. The borrowed objective's identity and actual envelope must still be checked. Live Onshape remains at Rev G; the separate unmerged Rev H proposal is not adopted as a CAD release.

## Files

- `SEM_NA055_OpticalAudit.blend`: editable objective envelope, aperture sections and recomputed ray curves.
- `na055_optical.glb`: updated browser geometry in the site's existing millimetre-coordinate convention; labels and diagnostic rays omitted.
- `rays_na055.json`: recomputed browser ray overlay, in millimetres.
- `SEM_NA055_CCD_LED_Sample.blend`: camera at the designed sensor; packed ideal transfer shader, specimen and reference render.
- `CCD_sample_comparison.png`: same-scale focus, defocus, LED-off and uniform-layer images.
- `ray_audit.json`, `blender_mesh_check.json`, `sensor_view_metrics.json`: assumptions and numerical evidence.

## Reproduce

From the repository root, with Blender 4.5 and Python with NumPy, Pillow and Matplotlib:

```sh
python analysis/na055/audit.py
blender --background --python analysis/na055/build_model.py
blender --background --python analysis/na055/sensor.py
python analysis/na055/results.py
blender --background --python analysis/na055/verify_blend.py
```

The model builder reuses the original Rev G audit `.blend` as its downstream aperture reference. Original scripts and models are not overwritten.

Open the sensor `.blend` and press F12. Set the LED object's Power to zero for a dark control (restore to 1). Set SAMPLE Location Z to 0.010 for +10 µm defocus (restore to 0). Moving proxy optical cylinders does not change the analytic shader; changes to optics or illumination geometry require updating the source and regenerating the outputs.
