A web app for creating and simulating 2D geometric optical scenes. Our goal is to make it easy for students to build physical intuition by "playing around", for teachers to do dynamical demonstrations, and at the same time also include tools for more advanced usage.
- Simulate various light sources: ray, parallel/divergent beam, and point source
- Simulate reflection in linear or curved mirrors, which can be defined by a custom equation
- Simulate beam splitters and dichroic mirrors
- Simulate refraction in linear or curved interfaces, which can be defined by a custom equation
- Simulate ideal lens/mirror, which obey the lens/mirror equation
- Simulate spherical lens defined by front/back focal distances
- Simulate gradient-index material defined by a custom refractive index function
- Simulate mixture of colors, color filtering, and chromatic dispersion
- View extensions of rays to see if they converge to a virtual image
- View real images, virtual images, and virtual objects directly
- View images that can be observed from some given position
- Distance, angular, energy flow, and momentum flow measurements
- Draw irradiance map and export as CSV data
- Export as SVG diagram
Contributions are welcome. Possible contributions include but not limited to the followings:
- New tools
- New items in the gallery
- New translations
For contribution guidelines, see CONTRIBUTING.md.
See CITATION.bib
Copyright 2016–2024 Yi-Ting Tu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Ray Optics Simulation includes or depends upon the following third-party software, either in whole or in part. Each third-party software package is provided under its own license.
FileSaver.js is distributed under the MIT license. The source code is available at: https://github.com/eligrey/FileSaver.js
canvas2svg is distributed under the MIT license. The source code is available at: https://github.com/gliffy/canvas2svg
Bootstrap is distributed under the MIT license. The source code is available at: https://github.com/twbs/bootstrap
jQuery is distributed under the MIT license. The source code is available at: https://github.com/jquery/jquery
MathQuill is distributed under the Mozilla Public License, version 2.0. The source code is available at: https://github.com/mathquill/mathquill
Evaluatex is distributed under the MIT license. The source code is available at: https://github.com/arthanzel/evaluatex
MathJax is distributed under the Apache License, version 2.0. The source code is available at: https://github.com/mathjax/MathJax-src
json-url is distributed under the MIT license. The source code is available at: https://github.com/masotime/json-url
Math.js is distributed under the Apache License, version 2.0. The source code is available at: https://github.com/josdejong/mathjs
TeX Math Parser is distributed under the MIT license. The source code is available at: https://github.com/davidtranhq/tex-math-parser
Ace is distributed under the BSD license. The source code is available at: https://github.com/ajaxorg/ace