Loading Historical Lens Lab...
Espen's Historical Lens Lab
Explore vintage lens designs, optical glass and ray tracing from historic patents.
Study source
A clear optical bench.
Paste a patent prescription, or add the first element and enter its surfaces.
Surface prescription
| No. | Radius R (mm) | To next (mm) | Medium after surface | nd | Vd | Clear Ø (mm) | Edit |
|---|
Light travels left to right. A positive radius curves toward a centre on the right. Use inf for a plane. Ø is the full clear diameter, not the radius. Select a row before inserting a surface. Use Element edges for drawing-only shoulders.
Reading a historical prescription
One row is one optical boundary. Enter its signed radius, axial distance to the next boundary, medium after it, and full clear diameter. For a cemented doublet the sequence is crown → flint → air, with a single shared crown/flint surface. Do not insert an artificial air gap.
The refractive index is n. A patent's nd, nD and ne refer to different wavelengths. The custom-glass editor preserves that distinction. Vd, VD and Ve are separate Abbe conventions. An index alone does not determine dispersion or identify a glass.
Paste tab-, semicolon- or whitespace-separated tables using the template in Paste table. Decimal commas are accepted. The last surface returns to air; its spacing is zero because image distance is set separately. For normalized patent dimensions, use Retarget focal length: enter the intended EFL or its scale factor, and the workbench uniformly scales signed radii, axial To next distances and clear diameters, including an explicit stop, while recalculating BFL.
Clear apertures are not always specified in patents. Any diameters you estimate remain assumptions. Retargeting scales those entered diameters with the rest of the prescription, while their starting values still directly affect clipping and the reported f-number. This tool does not infer an image circle from a lens drawing.
What the rays & numbers mean
The drawing traces actual spherical-surface intersections and Snell refraction in a two-dimensional meridional section. Rays stop at the aperture stop, lens clear apertures, the original straight edge-clipping envelope, or total internal reflection. Optional drawn shoulders do not change this optical clipping model. The opaque stop is drawn as two bars; it is not a glass surface.
EFL, BFL and automatic image distance are paraxial calculations. At infinity, the entrance pupil and f-number are verified with exact spherical marginal rays; the paraxial estimate is retained internally as a diagnostic. The basic T-stop estimate applies uncoated Fresnel reflection losses only, with no coating, absorption, haze, cement or scatter model. Marginal rays need not meet at the paraxial image plane.
Finite-object distance is measured from the first vertex, including an entrance stop when one is present. Oblique point sources are set by the bundle's field angle. Bundle width is sampled relative to the infinity entrance pupil; visible ray counts are not a throughput or illumination estimate.
This is a Version 2 geometric workbench, not a validated commercial lens-design package. The View menu adds longitudinal spherical aberration, paraxial chromatic focus and stop-centred distortion for real images of objects at infinity. Analysis does not change saved project data. Version 2.1 adds optional tangential/sagittal field-curvature overlays and a four-panel geometric PSF calculated with 3D rays. Version 2.2 adds exact infinity-pupil verification, rough Fresnel T-stop estimation, image-circle/vignetting mapping and a focus-detail ray view. Version 2.6 adds geometric MTF, reverse-traced relative illumination, optical/sample galleries and wider field-angle inputs. Geometric MTF is the Fourier magnitude of sampled ray spots, not diffraction-aware or measured MTF. These calculations do not include coatings, scatter, aspheres, non-sequential reflections or full-scene image rendering. Published studies are supplied by the site editor. Check their source and uncertainty notes. Optional built-in examples are educational, not authenticated historical designs.
Glass data & primary sources
The library contains ten SCHOTT catalog profiles with manufacturer Sellmeier coefficients: K7, LF5, F2, SF5, SF10, N-BK7, N-BAK4, N-SK16, N-BAF10 and N-SF10. Each glass has a direct datasheet link in Glass library.
N-types are modern catalog materials, not silently relabelled historical glasses. Traditional names do not establish the composition or melt of a particular old lens either. Suggested matches rank a small reference library by index and, where available, Abbe number. They are optical neighbours, never glass identifications.
Custom n + Abbe profiles use a two-term Cauchy approximation. Measured wavelength/index pairs are interpolated in 1/λ², with extrapolation outside their range. Custom Sellmeier coefficients are also supported. For catalog data, λ is in µm and the C coefficients are in µm².
Methods: SCHOTT TIE-29: Refractive Index and Dispersion; Physically Based Rendering: Realistic Cameras. The application code and educational prescriptions were written for this module; no code from Open Optical Designer is included.
Element rims & shoulders
Element edges edits the outside outline of an individual glass segment, not its optical prescription. The original profile joins the two face edges directly. A square shoulder extends the larger rim to the smaller face, then steps down at 90 degrees. An angled shoulder shortens that rim and slopes to the same face edge. Angle is measured from the optical axis. Both halves are mirrored.
The rim diameter follows the larger of the two clear-face diameters. Equal diameters already produce a straight rim. Controls reject a shoulder that folds through the opposite face; if later optical edits make a saved profile impossible, the original outline is shown with a warning.
This is an illustration feature, not a mechanical lens model. Clear apertures, radii, spacing, pupil calculations and the original ray-clipping envelope remain unchanged. Added shoulders are not new refracting surfaces; their reflection, refraction, scatter and obstruction are not simulated. Independent blank diameters, edge thickness tolerances and mechanical interference between elements are not modelled. A patent illustration alone does not establish an exact bevel angle.
Edge profiles are preserved in JSON projects and SVG exports. Cancel discards unapplied edits; Apply edges is undoable. Versions before 1.2 ignore these optional project properties.
Image plane, field curvature & geometric PSF
Add image plane creates a 36 x 24 mm rectangle centred on the axis, initially tracking the paraxial image when it is real. Width X and height Y are independently editable. Switch to Manual distance to place it after the last surface vertex. A ray inside the rectangle stops there; a ray outside continues as before. Only the height is visible in the meridional layout. Width and height provide a detector reference in the 3D PSF trace. Spots outside the frame remain visible by default; enable Crop optical spots in the PSF panel to exclude them deliberately. No plane is added to a new or imported project until requested.
Field curvature under Drawing options shows dotted tangential and sagittal differential-focus curves. An absent stop is approximated by the limiting paraxial aperture and reported as an assumption. Invalid, blocked, virtual or unstable foci produce gaps or an explanation, not a fabricated curve. This is not a finite-aperture best-focus surface.
View / Geometric PSF displays full field, half field and centre spots plus a centre ray-density histogram. The default viewport is 0.2 x 0.2 mm. It uses parallel beams at the chosen wavelength (d for the three-colour layout), equal-area pupil sampling, and one common image plane. With no physical detector, the original automatic/manual focus reference is used. Each panel is centred on its own accepted-ray centroid. RMS includes accepted rays outside the viewport; enlarging the viewport reveals them. No diffraction or artificial Airy pattern is added. Use Fit spots to frame the accepted cloud. An image-circle plot measures illumination, not sharpness or a guaranteed usable format; faint transmitted light can extend far beyond the useful image.
Optional image-plane and field-curvature settings are saved in the existing version-1 JSON schema. Older files remain valid and have no physical detector. Undo, redo, scaling, browser autosave and JSON export include the new plane when present. Loading or editing a study never publishes over its WordPress record.
Exporting, saving & embedding
Export SVG produces an editable vector drawing with optional rays, surface numbers, glass labels, title and calculated values. Choose a paper, dark or transparent background. The drawing uses true proportions, not independent horizontal and vertical scaling. Export follows your Full path / Lens detail / Focus detail framing. Blender geometry keeps the tutorial-style physical-mesh workflow: editable Screw-modifier lens geometry, Refraction BSDF glass, light traps, a physical stop and an orthographic Depth-of-Field collector. It retains a tiny optional micro-gap between cemented solids because coincident Blender meshes can clip. Realistic camera is the higher-fidelity photographic export: a Cycles Custom OSL camera traces rays sequentially through the spherical prescription with Snell refraction, exact glass-to-glass cemented interfaces, surface clear apertures and the physical stop. It has no Blender DOF collector aperture and needs no glass meshes for image formation. When the prescription contains an explicit STOP, the custom camera exposes Aperture F Number: it starts at the computed wide-open f-number and can be stopped down in Blender. Lens Extension Mm moves the complete prescription relative to the sensor for unit-focus-style focusing; it is not a measured historical helicoid value. The realistic camera uses Blender's native Camera Sensor Fit and sensor size directly. Horizontal fit uses Width, Vertical fit uses Height, and values above 100 mm can be typed directly. The camera-frame aspect comes from Scene Output resolution.
Export downloads JSON containing the complete prescription, custom glasses, ray settings and notes. Import restores a saved JSON file, including Version 1.0 files. Use these files to move a design between browsers or computers. No prescription is uploaded by this tool.
Your editing state is saved in browser local storage when available. A published study always loads first; use Restore local work to resume a previous local copy. Save a JSON file for durable backups. New clears surfaces, custom glasses, notes and ray bundles. Reset bench restores the last study or project you loaded. In a new project it restores the empty bench. Both actions ask before replacing an existing project and are undoable during the current session. Loading examples, tables or projects is also undoable. Undo buttons apply to committed field changes; text fields keep their normal typing undo behaviour.
Simulation renders in the View menu displays PNG/JPG/WebP/AVIF images the site owner has associated with the current WordPress study. These are published Blender reference renders; they do not change when a visitor edits the local prescription.
The site owner manages published studies through the Historical Lens Lab WordPress plugin. Visitors can explore, modify and export local copies, but cannot overwrite the public library. Publishing a study makes its optical data public. No account, external computation service or AI subscription is needed to use the workbench.