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

instrument / verified-with-binding-errata

# Ray Diagram Plotter (lens/mirror)

The current ledger marks this instrument verified with errata that must be applied at binding time.

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

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/ray-diagram-plotter-lens-mirror/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/ray-diagram-plotter-lens-mirror/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/ray-diagram-plotter-lens-mirror/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/ray-diagram-plotter-lens-mirror/qualification/>)

## Ledger state

The current ledger marks this instrument verified with errata that must be applied at binding time.

**Area**: Physics — Kinematics/Projectiles/Orbits, Forces/Energy/Momentum, Rotational Dynamics, Gravitation, Oscillations/Waves, Optics, E&M Fields, Relativity, Quantum, Statistical Thermo

**Tranche**: tranche-6

**Evidence ID**: t6-095

**Ledger rows**: 1

No ledger note is attached.

## Review findings

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.

### Formula and scope findings

- 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.

### Unit assumptions

- 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.

## Boundary hardening

**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.

## Errata and corrections

### Tranche errata

**image_distance/magnification/image_height** · vector 4

-0.0667 / 0.2222 / 0.0111

-0.075 / 0.25 / 0.0125

working computes 1/di = -13.3333, di = -0.075 TWICE (including in its own Correction clause) then ships -0.0667

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "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)."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## Sources and evidence

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

- `VERIFIED_LEDGER.json · VERIFIED_WITH_ERRATA`

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

- `BOUNDARY_HAZARD_CATALOG.json`
