gniendorf / tracepy Goto Github PK
View Code? Open in Web Editor NEWRay Tracing and Optical Design in Python
License: MIT License
Ray Tracing and Optical Design in Python
License: MIT License
Currently you can only save a given geometry as a csv file, but you cannot load that csv file directly from TracePy. Also, the ability to load optics tables from other ray tracing software such as BEAM4 would allow us to validate TracePy's outputs
Right now you can only specify the index of refraction N. However, there are several public databases that contain glass types and their index of refraction as a function of the wavelength of incident light, usually in the form of coefficients for some given functional form. It is straight forward to implement this: find a comprehensive database containing glass types and their coefficients, create some function that takes a glass type and wavelength and outputs an index N, and allow a surface to have a variable index of refraction that calls this function when needed.
These curves would be very valuable for the optimizer, which currently only optimizes for the rms of a spot diagram
I see from the code that the ray class takes 'wvl' as an attribute, but how do we pass a new wavelength to ray? The call to ray_plane to create the ray bundle does not take 'wvl'. I've poked around and can't see how to do this.
Thanks
Currently TracePy has no way to approximate the chief or marginal rays. This would be used as both a cosmetic feature - to show the chief and marginal rays for a given optical system, and as a useful tool for functions such as spot diagrams which should be shown with points near the chief ray.
Some conics allow for exact solutions for ray tracing - situations where numerically solving for the intersection point of the ray and surface is extremely wasteful. This could offer significant speedups.
As an action of a geometrical object can either be reflection or refraction it is not possible to create a simple beam splitter.
I think this is an very important feature missing here.
Best regards
Right now TracePy only has support for 2d plotting of an optical system. Eventually it is necessary to have 3d plotting, but this is not a priority.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.