Source: https://guthlabs.ai/docs/instruments/ray-diagram-plotter-lens-mirror/mechanism/

instrument mechanism / verified-with-binding-errata

# Ray Diagram Plotter (lens/mirror) mechanism

The inspectable method record for Ray Diagram Plotter (lens/mirror), kept separate from implementation and qualification.

Status: **VERIFIED_WITH_ERRATA**Lifecycle: **verified-with-binding-errata**

## Model scope

The fourth vector intentionally exposes a formula inconsistency: for f=-0.10 m and do=0.30 m, the standard lens equation gives di=-0.075 m, not -0.06666666666666667 m. Its expected ray values are therefore flagged for correction before the instrument is implemented. The specification needs explicit sign conventions, supported element types, exact principal-ray definitions, and deterministic plotting rules.

- The thin-lens and spherical-mirror equations are only described generically; the specification does not state the actual equations, sign convention, coordinate system, or ray-construction equations.

- Lens type is ambiguous: converging and diverging lenses require signed focal lengths or an explicit separate case.

- Mirror type is ambiguous: plane, concave, and convex mirrors require different image equations and geometry.

- The SVG geometry is underspecified: the number of principal rays, their endpoints, backward extensions for virtual images, and the plotted coordinate bounds are not defined.

- The honest label should also state the thin-element/ideal-ray assumptions and that lens thickness, spherical aberration, chromatic effects, and nonparaxial behavior are ignored.

## Units and conventions

- All distances and heights must use one consistent unit system; f, do, and object height must have matching units.

- For lenses, use Cartesian coordinates with the lens at x=0, object at x=-do, positive x in the outgoing-light direction, and signed focal length f.

- For mirrors in these vectors, use a concave mirror with vertex at x=0, object at negative x, and positive f equal to the focal distance toward the object.

- The standard lens equation is 1/f = 1/do + 1/di, with magnification m = -di/do and image coordinates (di,mh).

- For the concave-mirror vectors, use 1/f = 1/do + 1/di, with physical image coordinate x=-di and image height mh.

- Ray diagrams use ideal paraxial principal rays: parallel rays, optical-center or pole rays, and focal rays.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "element": "converging lens",
    "f": 10,
    "do": 30,
    "object_height": 5,
    "units": "cm",
    "coordinate_convention": "lens at x=0; object at x=-30; positive x to the right",
    "sampled_points": {
      "parallel_ray": [
        -30,
        0,
        5,
        15
      ],
      "center_ray": [
        -30,
        0,
        15
      ],
      "front_focal_ray": [
        -30,
        -10,
        0,
        15
      ]
    }
  },
  "expected_outputs": {
    "image_distance": 15,
    "image_coordinate_x": 15,
    "magnification": -0.5,
    "image_height": -2.5,
    "image_type": "real, inverted, reduced",
    "sampled_y": {
      "parallel_ray": [
        {
          "x": -30,
          "y": 5
        },
        {
          "x": 0,
          "y": 5
        },
        {
          "x": 5,
          "y": 2.5
        },
        {
          "x": 15,
          "y": -2.5
        }
      ],
      "center_ray": [
        {
          "x": -30,
          "y": 5
        },
        {
          "x": 0,
          "y": 0
        },
        {
          "x": 15,
          "y": -2.5
        }
      ],
      "front_focal_ray": [
        {
          "x": -30,
          "y": 5
        },
        {
          "x": -10,
          "y": 0
        },
        {
          "x": 0,
          "y": 2.5
        },
        {
          "x": 15,
          "y": -2.5
        }
      ]
    },
    "key_features": {
      "lens_x": 0,
      "focal_points": [
        -10,
        10
      ],
      "two_focal_length_points": [
        -20,
        20
      ],
      "principal_ray_intersection": [
        15,
        -2.5
      ]
    }
  },
  "working": "Thin lens: 1/di = 1/f - 1/do = 1/10 - 1/30 = 3/30 - 1/30 = 2/30 = 1/15, so di = 15 cm. Magnification m = -di/do = -15/30 = -0.5. Image height = mh = (-0.5)(5) = -2.5 cm. Parallel ray after the lens: y = h(1 - x/f) = 5(1 - x/10), giving y(-30)=5, y(0)=5, y(5)=2.5, y(15)=-2.5. Center ray: y = -hx/do = -5x/30, giving y(-30)=5, y(0)=0, y(15)=-2.5. Front-focal ray passes through (-10,0), reaches (0,2.5), and then continues horizontally at y=-2.5 after the lens; all principal rays meet at (15,-2.5)."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

The focal-limit and zero-object-distance vectors produce undefined results and must be rejected or rendered as explicit nonfinite states. A plotting engine that blindly converts these values into SVG coordinates can generate NaN, infinity, or invalid geometry. The convention probe also shows that failing to define whether focal length is signed or type-derived can produce a completely different diagram.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/ray-diagram-plotter-lens-mirror/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/ray-diagram-plotter-lens-mirror/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/ray-diagram-plotter-lens-mirror/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche6/tranche6-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
