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$
-- draw for each some of these light sources light rays and the program constructs the optical path of those rays through $K_1,\dots,K_n$.
-- instead of drawing the light rays, draw a point and the program construction 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.