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.

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

6 Answers 6


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:


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.


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

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


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.


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


From the README:

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


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.


http://www.onshape.com with Ray Tracer custom feature.

I had some success simulating geometrical light propagation via a set of lenses and prisms using www.onshape.com, which is free, online 3D modelling environment (see attached screenshot). I used a custom feature, named Ray Tracer, created by one of OnShape users. You can define refractive indices of optical components, trace refracted and reflected rays by specifying their origin and initial direction and account for total internal reflection. Generally speaking a CAD program is a natural choice for geometrical ray tracing.enter image description here


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.

  • $\begingroup$ What's the difference between ray optics and geometrical optics? $\endgroup$
    – student
    Commented Jun 7, 2012 at 10:42
  • $\begingroup$ 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 ... $\endgroup$
    – BandGap
    Commented Jun 14, 2012 at 15:42
  • 2
    $\begingroup$ @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. $\endgroup$
    – texnic
    Commented Apr 26, 2013 at 12:26
  • $\begingroup$ I thought of raytracers when I wrote my comment since they can calculate (some) aspects of wave optics but clearly you are right. $\endgroup$
    – BandGap
    Commented Apr 26, 2013 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.

Cheers, Radek


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.