Optometrika

Optometrika MATLAB library implements analytical and iterative ray tracing approximation to optical image formation using Snell’s and Fresne

https://github.com/caiuspetronius/Optometrika

Download
Download

You are now following this Submission

Cite As

Yury (2026). Optometrika (https://github.com/caiuspetronius/Optometrika), GitHub. Retrieved .

Acknowledgements

Inspired by: hist2

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
2.3.2

Fixed a bug in Aperture.m incorrectly displaying rectangular aperture orientation on the bench

Download
1.31.0

Changed export_stl() function to work correctly with the stlwrite() function bulid into Matlab 2018b.

Download
1.30.0

Updated the export_stl() function to export GeneralLens class surfaces.

Download
1.29.0

Added export_stl() function for lens surface export in STL format. See example16.
Various bug fixes

Download
1.28.0

Various bug fixes

Download
1.27.0

Added several new materials
Fixed several bugs, including the one preventing the library working on pre-2016 Matlab versions

Download
1.26.0

Added STL and DXF export of a lens's 3D shape and 2D profile respectively to the draw_lens_engineering() function. Install stlwrite() and DXFLib to use this functionality.

Download
1.25.0

Minor bug fixes.

Download
1.24.0

Added engineering drawing of Fresnel lenses to draw_lens_engineering(). See example7 for an example.
Fixed a bug in Fresnel surface rotation.

Download
1.23.0

Added rectangular apertures. See example4.
Fixed various bugs in the FresnelLens implementation

Download
1.22.0

Implemented astigmatic lens surfaces: use a 2x1 vector for the radius of curvature (see example14).
Implemented elliptical cone/cylinder surfaces: use a 2x1 vector for the cone/cylinder diameter (see example10).
Various bug fixes

Download
1.21.0

Implemented ray tracing for backward-propagating rays (example13)
Various bug fixes

Download
1.20.0

Bug fixes

Download
1.19.0

Added flange option to the draw_lens_engineering() function.

Download
1.18.0

Various bug fixes.

Download
1.17.0

Added draw_lens_engineering() function to automatically generate engineering drawing for lens manufacturers. Currently only lenses without holes are implemented. See example12 for a demo.

Download
1.16.0

Example12 illustrates the use of lens_dims() function to draw a lens (full surface) and calculate its sags and volume.
Various bug fixes.

Download
1.15.0

For a new way to display rays, see example11.
Added density information for many materials in refrindx.m. Use lens_dims() function to get lens volume.
Example11 demonstrates tracing from inside the human eye.
Various bug fixes.

Download
1.14.0

Total internal reflection enabled. Various bug fixes related to multiple refraction/reflexion.

Download
1.13.0

Added cylindrical surfaces, including double refraction on such surfaces (example 10). Fixed some bugs.

Download
1.12.0

Added a cone-shaped surface ConeLens()
Added ring-aperture option for all surfaces except the FresnelLens.
Rays missing optical elements are not discarded any more but traced to the next element.
General bug fixes

Download
1.11.0

Added AsphericLens class describing strongly aspheric surfaces (conic + even polynomial terms, example8).
Added a fast focal_point() function looking for the bundle's focal point without iterations (example1).

Download
1.10.0

Added a Fresnel lens implementation. Added operations on a bench, such as bench rotation, element prepending and removal.

Download
1.9.0

Replaced the missing Bench.m file.

Download
1.8.0

Various bug fixes and improvements. Spheroidal screens are implemented now by the Retina object.

Download
1.7.0

Some bug fixes and improvements, added spheroidal screens implemented by the Retina class.

Download
1.6.0

Added basic documentation to the classes.

Download
1.5.0

Added: (i) appending ray bundles to an existing bundle, (ii) mirror elements (general, conic, planar). To specify a surface as a mirror use 'mirror' glass specifier (see example5.m and example6.m).

Download
1.4.0

Small bug fixes.

Download
1.3.0

Added tracing through general (user-defined) surfaces (see example4.m).

Download
1.2.0

Fixed a bug affecting ray tracing through strongly hyperbolic surfaces.

Download
1.1.0

Fixed a bug which affected ray tracing through extremely hyperbolic surfaces.

Download
1.0.0

Download
To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.