Releases: ricktu288/ray-optics
Release list
v5.3.2
- To run the web app locally, please download
website-build.zipin the assets below and follow this guide - To use the integration tools, please download
integrations-build.zipin the assets below (more info) - To cite this version, please follow the "Citation" or "Export" panel of this Zenodo record.
Summary of changes in this release
Core simulator
- Fixed inconsistent bases of
\logbetweentex-math-parser(base 10) andevaluatex(natural log) (#328).
NOTE: This bug caused incorrect ray paths when logarithms were used in refractive index functions in GRIN glasses, affecting all versions since v4.1, when GRIN optics was first implemented. - Fixed runtime errors when using some combinations of functions in equations.
v5.3.1
- To run the web app locally, please download
website-build.zipin the assets below and follow this guide - To use the integration tools, please download
integrations-build.zipin the assets below (more info) - To cite this version, please follow the "Citation" or "Export" panel of this Zenodo record.
Summary of changes in this release
Core simulator
- Fixed loop length detection in module
- Fixed runtime error when using inverse trig functions in GRIN glasses (#319)
v5.3.0 — 10th Anniversary Release
- To run the web app locally, please download
website-build.zipin the assets below and follow this guide - To use the integration tools, please download
integrations-build.zipin the assets below (more info) - To cite this version, please follow the "Citation" or "Export" panel of this Zenodo record.
Celebrating 10 Years of Open Source
Today (February 22, 2026) marks the 10th anniversary of the Ray Optics Simulation repository on GitHub. Ten years ago, this project made an important transition: from a personal coding experiment into an open-source project that invites anyone to inspect, improve, and build upon it.
Over the past decade, this project has grown through contributions from people worldwide. Students, teachers, researchers, and hobbyists use it in many different contexts; as a result, the software has evolved to meet needs we could never have anticipated at the beginning. This kind of growth is made possible by keeping the source code public, allowing the community to shape the tool into what they need it to be.
By now, around 100 people have contributed directly to the codebase, including many who helped translate it into 20 languages. Countless others have suggested features, reported bugs, or simply shared how they use the software. Thank you to everyone who has helped, in ways large or small, to make Ray Optics Simulation more useful to people around the world.
Summary of changes in this release
Core simulator
- Updated fallback line spacing (#290)
- Allowed setting individual styles for decorations (#285)
- Allowed turning off partial reflections of glass (#157)
- Added option to limit ray depth (#157)
- Added focal length slider for curved mirrors (#268)
- Added red/violet wavelength options
Web app
- Beta features now strictly mean those not in the latest release (except for UI texts and small UI improvements), and those in use are indicated with an icon.
- Added virtual Ctrl/Shift for touchscreen
- Added more hints for advanced features
Gallery & Modules
- New: Classical Cassegrain telescopes (by @bird0cosmic)
- New: Digital Camera (by Jorge Bodroghy Leite)
- New: Grating Pulse Compressor (by DeadeyeSun)
- New: Rainbow Point Source (by @bkgoodman)
- Improve: Newtonian Telescope
- Improve: Pair of Axicons making a Rainbow Ring
Translations
- New language: Hungarian (by Márk Fazekas)
- New language: Turkish (by @leventcandan)
- New language: Uzbek (by @Qurbonsaid)
- Translate: Arabic (by @Mars0055)
- Translate: Spanish (by Adrián González Rodríguez, @EstyxTranslations, @Palevioletred-db7093)
- Translate: French (by @georges23, @lordpositron)
- Translate: Italian (by Alvise Di Rienzo)
- Translate: Khmer (Central) (by @KimHongPhong)
- Translate: Polish (by @abat54)
- Translate: Portuguese (Brazil) (by @Pedroobraga)
- Translate: Tamil (by vimalrajrm)
v5.2.1
- To run the web app locally, please download
website-build.zipin the assets below and follow this guide - To use the integration tools, please download
integrations-build.zipin the assets below (more info) - To cite this version, please follow the "Citation" or "Export" panel of this Zenodo record.
Summary of changes in this release
Core simulator
- Fixed runtime error when using number array in module
- Fixed bug in handling weak partially reflected rays (note that the numerical error caused by this bug is within truncation error)
v5.2.0
- To run the web app locally, please download
website-build.zipin the assets below and follow this guide - To use the integration tools, please download
integrations-build.zipin the assets below (more info) - To cite this version, please follow the "Citation" or "Export" panel of this Zenodo record.
Summary of changes in this release
Core simulator
- Allowed negative refractive indices in glasses (by @briidee3)
- Allowed language-specific font lists for
TextLabel(#238) - Added Bézier curve glass and GRIN glass tools (by @briidee3)
- Added double-backtick equation syntax in module
- Added absorption of GRIN glasses (#109)
- Fixed bugs when importing scenes from v3.x to v4.x
- Added parametric curve tools
- Added custom surface tools (#123, #131, #132, #250)
- Redefined and clarify surface merging (#122, #136, #230)
- Added custom theme support (#156)
- Added "step" option to handles
- Allowed binding objects directly to handles
- Added "variables" feature to modules
Web app
- Added manual simulator controls
- Added AI assistant
Gallery & Modules
- New: Augustin Fresnel's Lighthouse Optics (by Richard Ruh)
- New: Coated Spherical Lens
- New: Cube Beam Splitter (by Feng)
- New: Elliptical Mirror
- New: Optics of human eye (by bri)
- Improve: Beam Directors
- Improve: Chaff
- Improve: Concave Mirror Wearable Display
- Improve: Fresnel Lens
- Improve: Köhler Illumination
- Improve: Optical Fiber
- Improve: Reflecting Monochromator (by @gljames24)
Translations
- New language: Czech (by Jan Pražák, Richard Novotný)
- New language: Italian (by Alvise Di Rienzo, @l3viso)
- New language: Portuguese (by @SantosSi)
- Translate: German (by @BlueCl0wn, @Atalanttore)
- Translate: Spanish (by @ndefrancesco)
- Translate: French (by @EnolaK64, Florence, @remiberthoz)
- Translate: Japanese (by @Bearia)
- Translate: Khmer (Central) (by @KimHongPhong)
- Translate: Korean (by Young-Gi Kim)
- Translate: Dutch (by gert jansen)
- Translate: Polish (by @abat54)
- Translate: Portuguese (Brazil) (by @Pedroobraga)
- Translate: Russian (by @artyom34593, @GermCatt, @OWLFok, vanapro1)
- Translate: Tamil (by vimalrajrm)
v5.1.0
- To run the web app locally, please download
website-build.zipin the assets below and follow this guide - To use the integration tools, please download
integrations-build.zipin the assets below (more info) - To cite this version, please follow the "Citation" or "Export" panel of this Zenodo record.
Summary of changes in this release
Core simulator
- Fixed bugs in custom equation tools
- Fixed error in crop box
- Added validity and compatibility checks for scene
- Added integrations with Python and Julia
- Refactored some code to allow using
Simulatorwithout canvas - Added "Show Ray Arrows" option
- Implemented float color renderer for "correct brightness"
- Added color mapping functions (color modes) for "correct brightness"
- Added convex diffraction grating tool (by @birdylife)
- Added scene object function to rotate objects around their center (by @birdylife)
Web app
- Refactored the UI from plain HTML to Vue
- Truncate mouse coordinates to binary fractions
- Reorganized directory structure and docs
- Added support of Cmd key for Mac users (by @Abhinandan-Kushwaha)
- Added +/- keys to rotate objects (by @birdylife)
Gallery & Modules
- New: Distortion in windows and backside mirrors (by Shahar Seifer)
- New: Köhler Illumination (by Leon Seidel)
- New: Orientations of plano-convex lens (by Matthias Guillon)
- New: Virtual Image Formation (by Daniel Anya)
- Improve: Specular and Diffuse Reflections
Translations
- New language: Khmer (Central) (by @KimHongPhong)
- New language: Tamil (by TamilNeram)
- Translate: German (by @Atalanttore, Patrick Gretzki)
- Translate: French (by Andreas Arnold, Rafael Bastin, @mcornillon)
- Translate: Polish (by Anonymous, @abat54)
- Translate: Portuguese (Brazil) (by Anonymous, @Pedroobraga)
- Translate: Russian (by @artyom34593, Ilya Vasilenko, sasavladimirov6)
v5.0.0
- To run the web app locally, please download
website-build.zipin the assets below and follow this guide - To cite this version, please follow the "Citation" or "Export" panel of this Zenodo record.
Summary of changes in this release
Core simulator
- Refactored to modularize the JS code
- Used a new JSON format for scenes
- Added hyperbolic functions to equation editor (#120)
- Added option for ruler scale interval (#57)
- Added diffraction grating tool (by @digitalgreenery)
- Added the "module" feature for parametrizing optical components
- Added option for rayCountLimit and warnings in CropBox (#144)
- Added warning for identical optical elements
- Added warning for inconsistent brightness saturation ratios (#86, #149)
- Enhanced compatibility with physical unit of length (#140)
- Added chromatic dispersion support in GRIN glass
Web app
- Used Webpack for bundling the app
- Replaced
polyfill.io(by @SukkaW) - Added JSON editor for scene
- Added preference to auto sync URL
- Show error and warning messages
Gallery & Modules
- New: Optical fiber (by josephernest)
- New: Solar Eclipses
- New: Caustics from a reflective sphere (by Georg Nadorff)
- New: Concave mirror wearable display (by Rene)
- New: Reflecting Monochromator (by @gljames24)
- New: Simple Double-Gauss Lens (by Alex)
- New: The principle of camera imaging (by Liu Quanhong)
- New: Pair of Axicons making a Rainbow Ring (by Peter Becher)
- New: The Mirascope (by Mario Petitclerc)
- New: Chaff (by @StasFainer)
- New: Ray Relay (by @StasFainer)
- Update all items for auto-layout and image generation
Translations
- New language: Spanish (by @MiguelSanchezP)
- New language: Portuguese (Brazil) (by @Pedroobraga)
- Translate: Sinhala (by @ttheek)
- Translate: Polish (by @abat54)
- Migrate translations to Weblate