Git Product home page Git Product logo

chenzhu-xie / ray_optics__xcz Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ricktu288/ray-optics

0.0 0.0 0.0 215.5 MB

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

Home Page: https://phydemo.app/ray-optics/

License: Apache License 2.0

JavaScript 34.95% Python 0.24% CSS 0.65% HTML 64.16%
web-simulator ray-tracing grin-refractive-index dispersive-refractive-index cpu-intensive custom-shapes multi-reflections 2d

ray_optics__xcz's Introduction

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, 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

Links

Related contents

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. (2016). Ray Optics Simulation [Computer software]. https://doi.org/10.5281/zenodo.6386611

BibTeX:

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

License

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.

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

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

Math.js

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

TeX Math Parser is distributed under the MIT license. The source code is available at: https://github.com/davidtranhq/tex-math-parser

ray_optics__xcz's People

Contributors

ricktu288 avatar stasfainer avatar gljames24 avatar j3soon avatar pfalstad avatar chenzhu-xie avatar chengscott avatar digitalgreenery avatar lololchen avatar mikiair avatar sadajun916 avatar dorrington avatar glmontanari avatar sukkaw avatar cyamahat avatar kqakqakqa avatar miguelsanchezp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.