# Software for geometrical optics

Is there any good software for construction optical path's in geometrical optics. More specifically I want features like:

• draw $k \in \mathbb{N}$ objects $K_1,\dots,K_n$ with indices of refraction $n_1,\dots,n_k$ and light sources $l \in \mathbb{N}$ light sources $L_1,\dots,L_l$

• define some light sources (or just light rays) and the program constructs the optical path of those rays through $K_1,\dots,K_n$.

• define a point and the program constructs the optical path between the light sources and the given point

• draw some specific optical elements like lenses, (concave, convex) mirrors and do things like above

• construct automatically virtual images

• 3D drawings would be fine

I would prefer free software for linux.

• I would download such a program if it were free, too. Sounds cool. ;-) – Luboš Motl Mar 11 '11 at 17:41
• A free program to simulate mechanics with any shapes etc. is Phun, see phunland.com/wiki/Home - it's really phun. – Luboš Motl Mar 11 '11 at 17:42
• Perhaps goptical (gnu.org/software/goptical) can be help you (if you can manage to use it). – Georg Sievelson Nov 14 '14 at 15:26

The industrial tool is zemax; however, it is very expensive.

If you just want to make diagrams, the TeX package pst-optics might do the trick.

In the gaussian beam regime, optocad (free) is a tool often used in the laser interferometer gravitational wave detector community.

I just discovered:

## opticalraytracer

From the manual:

OpticalRayTracer is a free (GPL) cross-platform application that analyzes systems of lenses and mirrors. It uses optical principles and a virtual optical bench to predict the behavior of many kinds of ordinary and exotic lens types as well as flat and curved mirrors. OpticalRayTracer includes an advanced, easy-to-use interface that allows the user to rearrange the optical configuration by dragging objects around using the mouse.

OpticalRayTracer fully analyzes lens optical properties, incuding refraction and dispersion. The dispersion display uses color-coded light beams to simplify interpretation of the results.

Recent OpticalRayTracer versions allow the creation of mirrors, flat and curved. In modern optical designs, mirrors often produce better results than lenses, for example in astronomical instruments. Such instruments can be roughed out in OpticalRayTracer's virtual workbench.

## optgeo

This is in french, but seems to fit some my requirements.

Both seem to be nice 2d tools, both are in the ubuntu repositories.

## OpenRayTrace

From the manual:

OpenRayTrace is an optical lens design software that performs ray tracing. It is built using python, wxPython, and PyOpenGL. It should run on any platform that python, wxPython and PyOpenGL run on.

So it should in principle run on a linux box but I didn't manage to do so yet.

Here is a newer fork of the project: https://github.com/BenFrantzDale/OpenRayTrace

It also seems to support 3D ray tracing.

## PyOptTools

pyOpTools is a set of packages that allow the simulation of optical systems by raytracing as well as some calculations involving wavefronts, currently under development. It is written in Python and Cython, and is being developed by the technological development group of Combustión Ingenieros S.A.S, and the applied optics group of the Universidad Nacional de Colombia.

A nice video of how it works can be found on youtube: https://www.youtube.com/watch?v=DB8sfm7pVPI

## pyoptics

Geometric optics raytracing in python for education and small-project design.

## geoptics

From the documentation:

geoptics propagates light rays in 2D, in the geometrical optics approximation.

Modifying objects should be easy, with a live update of the rays propagation. The intent being to give a fun experience with optics.

That being said, physical precision is kept, so geoptics might interest engineers or physicists looking for a quick way to test ideas.

Still in alpha stage.

I am not aware of a simple program to do what you ask. What comes to mind are either raytracers or finite element methods (FEM).

For a list of raytracing software: http://en.wikipedia.org/wiki/List_of_ray_tracing_software

I am not aware of any free FEM software but for an overview of the principle go here: http://en.wikipedia.org/wiki/Finite_element

Edit: I didn't read carefully. You wanted geometrical optics. I was thinking of ray/wave optics.

• What's the difference between ray optics and geometrical optics? – student Jun 7 '12 at 10:42
• Geometrical optics is simpler in terms of descrbing the way a light beam travels. It completely ignores such effects as diffraction or interference. Ray or wave optics handles just that ... – BandGap Jun 14 '12 at 15:42
• @BandGap: Your last comment is actually wrong. Geometrical optics is the same as ray optics (en.wikipedia.org/wiki/Geometrical_optics). It is called so because simple geometry formulae are used to calculate the path of each ray through an optical system. Diffraction effects indeed cannot be treated this way. A wave optics method (there are many of them) would not use the paradigm of a ray at all. – texnic Apr 26 '13 at 12:26
• I thought of raytracers when I wrote my comment since they can calculate (some) aspects of wave optics but clearly you are right. – BandGap Apr 26 '13 at 14:07

Gradually, after one got familiar and professional in optics, free softwares are not that useful.

Besides Zemax, CODE V and OSLO are three industrial and very powerful geometrical-optics design softwares.

One of the software for simulating complex lens sets and other elements is Optical Table Simulator. It requires Silverlight though:

It's in short a 2D ray tracing engine, but it simulate many types of optical phenomena like refractions or absorption though different media types. It has defined most of CDGM and Shott glass types as well as other materials including metals, cristals and so on.