/ray-optics

A web app for creating and simulating 2D geometric optical scenes, with a gallery of (interactive) demos.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Example figure

Ray Optics Simulation

DOI

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.

Features

  • Simulate various light sources: ray, beam, and point source
  • Simulate reflection in linear, circular, and parabolic mirror
  • Simulate beam splitter
  • Simulate refraction in linear or circular interfaces, including both refracted and reflected rays
  • Simulate mixture of colors and chromatic dispersion
  • Simulate ideal lens/mirror, which obeys lens/mirror equation
  • 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
  • Export as SVG diagram

Links

Contributing

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.

Cite this project

APA:

Tu, Y.-T., & Sun, W.-F. (2016). Ray Optics Simulation [Computer software]. https://doi.org/10.5281/zenodo.6386611

BibTeX:

@software{Tu_Ray_Optics_Simulation_2016,
  author = {Tu, Yi-Ting and Sun, Wei-Fang},
  doi = {10.5281/zenodo.6386611},
  month = {2},
  title = {{Ray Optics Simulation}},
  url = {https://phydemo.app/ray-optics/},
  year = {2016}
}

License

Copyright 2016–2023 Yi-Ting Tu, Wei-Fang Sun

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.

Third-Party Software

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

FileSaver.js is distributed under the MIT license. The source code is available at: https://github.com/eligrey/FileSaver.js

canvas2svg

canvas2svg is distributed under the MIT license. The source code is available at: https://github.com/gliffy/canvas2svg

Bootstrap

Bootstrap is distributed under the MIT license. The source code is available at: https://github.com/twbs/bootstrap

jQuery

jQuery is distributed under the MIT license. The source code is available at: https://github.com/jquery/jquery

Knockout

Knockout is distributed under the MIT license. The source code is available at: https://github.com/knockout/knockout

MathQuill

MathQuill is distributed under the Mozilla Public License, version 2.0. The source code is available at: https://github.com/mathquill/mathquill

Evaluatex

Evaluatex is distributed under the MIT license. The source code is available at: https://github.com/arthanzel/evaluatex

MathJax

MathJax is distributed under the Apache License, version 2.0. The source code is available at: https://github.com/mathjax/MathJax-src

json-url

json-url is distributed under the MIT license. The source code is available at: https://github.com/masotime/json-url

線光學模擬

自由、開源的網頁程式,用於建立及模擬二維幾何光學場景。

功能

  • 模擬多種光源:光線、平行光、點光源
  • 模擬直線形、弧形、拋物線形鏡子的反射
  • 模擬分光鏡(beam splitter)
  • 模擬直線型與弧形界面的折射,包括反射光與折射光
  • 模擬混色與色散
  • 模擬理想透鏡/面鏡(符合透鏡/面鏡公式)
  • 顯示光線的延長線以觀察是否成虛像
  • 直接檢視實像、虛像與虛物
  • 顯示從某一位置能觀察到的像
  • 距離、角度、能量流與動量流量測
  • 匯出為SVG圖形

連結