7 ms·
Opticsim.jl: Optical Simulation Software
- teruakohatu 6y agoI didn't know Microsoft was using Julia for any research. Does anyone know to what extent MSFT researchers are using it?
- WanderPanda 6y agoI don’t know to what “extent” they use it, but I’m sure they are big on “extend”
- johnnycerberus 6y agoJudging by the number of contributors, only 2 people are contributing to that project. It could be that other teams don't have their work open-sourced.
- brianguenter 6y agoThere are 4 Microsoft people contributing to the project.
- johnnycerberus 6y agoThe 3rd is writing the README and the 4th has only 11 lines of codes written. Just saying.
- brianguenter 6y agoWe use OpticSim in my group to simulate complex optical systems that we are designing. We're the only group I know of at Microsoft Research Redmond doing optical research.
- Jenz 6y agoThe quality of Julias ecosystem continues to surprise me. See also: - https://diffeq.sciml.ai/stable/ https://diffeq.sciml.ai/stable/ - https://juliadynamics.github.io/DynamicalSystems.jl/latest/ https://juliadynamics.github.io/DynamicalSystems.jl/latest/ - https://clima.github.io/OceananigansDocumentation/stable/ https://clima.github.io/OceananigansDocumentation/stable/ etc
- phonebucket 6y agoJust continuing on with this list a little bit more: - https://fluxml.ai/Flux.jl/stable/ https://fluxml.ai/Flux.jl/stable/ - https://turing.ml/stable/ https://turing.ml/stable/ Later in the year we should see https://mtk.sciml.ai/stable/ https://mtk.sciml.ai/stable/ maturing somewhat, which is a chunky project unlocking a lot modularity for scientific computing. I feel like the language is reaching an inflection point with regards to the ecosystem richness.
- neolog 6y agoWhat is "Microsoft HART group"?
- cycomanic 6y agoThis is interesting zemax costs ~$5k, if you want up to date material and part catalogues that's a yearly fee. I wonder if MS also keeps those catalogues up to date. This seems to largely be the selling arguments of the commercial offerings.
- analog31 6y agoI'm a long time Zemax user. The subscription is just a cost of doing business for my employer. It's cheap compared to hiring an optics consultant. ;-) But this is pretty common for specialized engineering software. My company maintains several seats of mechanical and electrical CAD software. Not surprisingly, the landscape of FOSS tools gets more and more sparse, the further you get away from software development. A problem in optics is that just having the software won't teach you optics unless you're already trained in an adjacent field such as physics. The people who can do it, can simply demand that the employer pay for the software. Oddly enough I'm interested in this package, and have bookmarked it. It's not like I need an alternative to Zemax, but that there are some ideas I'd like to explore that would benefit from further automation, but that don't need the breadth of features provided by Zemax. And maybe I'd like to try some things at home.
- brianguenter 6y agoOpticSim automatically downloads publicly available glass catalogs when you first build the package. The current list is Nikon, Schott, Sumita, Ohara, and Hoya. If you have glass files stored locally on your machine you can add the glass files to a sources file and the next time OpticSim is built it will include your glass files as well.
- the_only_law 6y agoI’ve been wanting to get into optics, but have no ideas where to start. I imagine it starts with the typical engineering math, but where from there?
- myself248 6y agoI don't work in the field, but I've found this material to be informative: https://www.visiononline.org/certified-vision-professional-basic-training https://www.visiononline.org/certified-vision-professional-b...
- buescher 6y agoWhat do you want to do with optics?
- the_only_law 6y agoMostly learn about and play with lasers and lens design for those lasers.
- buescher 6y agoAgain, though, what do you want to do with lasers? What do you want a lens for a laser to do? Holography makes a great hobby project, by the way, and you can get started with a laser pointer (or equivalent) as your laser.
- cornellwright 6y agoOptics by Eugene Hecht is a fantastic reference to start with. It's a bit expensive, but you can find used copies if you look around a little bit.
- snystrom 6y agoI have literally no skin in the game here, but here's another interesting group that totally bailed on a similar project because I guess they hated Julia so much. Good to see something else crop up. github.com/JuliaOptics/About
- ruph123 6y agoInteresting! This really speaks to me. In my opinion your language can have the most foreign concepts or unusual ways how you should optimize code. But only if it is well documented. And that is really the problem with Julia. Besides some video tutorials, which I don't find helpful, you only have the manual which is not that good. I said this before here but if you look at Rust which has unique characteristics like the borrow checker and is often described as having a steep learning curve: I was never overwhelmed by it or even felt it was difficult because there is much high-quality material to help you: The amazing book, rust by example and a lot of great third party resources like cheats.rs or the "rust in simple language". The other day I was trying to look for julia books. Most of them were outdated and people advised against buying them (or the publisher pulled them already).
- queuebert 6y agoAs an avid Rust and Julia user, I often use Rust even when it's harder because I know I'll never get stuck. And when it finally compiles I'll be rewarded by ludicrous speed. Hell, even C has decent man pages for the standard library. Although in Julia's defense (or is it?), they've changed the language a lot over the versions from 0.4 to 1.5, so maybe it's hard to keep docs up to date.
- adgjlsfhk1 6y agoThe language has been pretty stable (no breaking changes) since 1.0. The bigger issue is that unlike many of the other newer programming languages (Go, Rust, Swift etc) Julia doesn't have a fortune 500 company sponsoring it, so there aren't any people who's job is documentation. It's all open-source. Hopefully this is fixable through Google Summer of Docs and/or the community sponsoring people to work on this.
- spicybright 6y agoI have no idea what optical simulation means. Is it like a raytracer that acts more like a simulation of an eye?
- qart 6y agoNot my domain, but there are a lot of graphical examples here: https://microsoft.github.io/OpticSim.jl/dev/examples/ https://microsoft.github.io/OpticSim.jl/dev/examples/ Looks like a modeling toolkit for lenses, telescopes, etc. Most real systems of that sort suffer from artefacts like chromatic abberation, diffraction, etc. I wonder if such software can be used for modeling those things too.
- brianguenter 6y agoOpticSim can model all forms of geometric aberration including chromatic aberration. We are considering adding some ability to handle diffraction but it is not the highest priority now.
- photonic54 6y agoWe do optical simulation to understand the behavior of optical systems, along input and output parameters that matter to the goals of the system. Suppose you want to make a telescope with a certain spec for magnification and resolution. Or, suppose you wish to design a headlight for a car with bright and even illumination over a given angular range. Or, imagine you need to specify an interferometer for precision displacement measurement at the nanometer level. For each of these systems, there are first principles equations and approximations that describe ideal and slightly-different-from-ideal behavior, but for anything other than very simple optical systems, these first principles approaches become unwieldy very fast. An optical simulation represents the physics of the design and approximates the output you would measure when you build the system. This allows you to optimize and perturb the design over manufacturing tolerances at the design stage, rather than iterating through these at the manufacturing stage (a rather impractical alternative). The capability of any simulation approach depends on the phenomenon you need to model, and the degree of abstraction appropriate to that phenomenon. An “exact” physical representation of an optical system essentially entails solving Maxwell’s equations along the initial and boundary conditions of the optical system. There are times when this is both necessary and practical, but (outside of semiconductor applications) that tends to be rare. Ray tracing, which you mentioned, is a very popular and useful approximation for imaging and illumination. It’s especially useful when the wave properties of light are either not very relevant or they are very well behaved. Other simulation techniques incorporate more of the wave nature of light: Fourier techniques, field tracing, coupled waves, finite difference time domain, etc. It takes some domain knowledge in the application space to know which to apply.
- imvetri 6y agobeen waiting for something like this, let me go and look at the project to see if that's something I wanted. Basically looking for something to build neural networks based on optical computing or at the least, some sensor simulator that responds to light. after looking at the docs. Damn, it has eye model. Something that bridges a gap in my notes - https://github.com/imvetri/artificial-intelligence/blob/master/Self.learning.neuron.model.md https://github.com/imvetri/artificial-intelligence/blob/mast.... next, wait with patience for a neuron simulator(which is already there, just want to see it in the newsfeed). Eye model and a neuron simulator will help to build a self learning system.
- joeberon 6y agoI'm confused about what this does. Is it time domain or frequency domain? Is it compatible with a FINESSE style description of the setup? Does it have higher order mode analysis? Can you add signals to modulate mirrors? Can you propagate quantum noise through the system?
- notretarded 6y agoYes
- brianguenter 6y agoOpticSim is a geometric optics ray tracer.