Pupil solve with ray aiming

  • 14 June 2022
  • 4 replies



I noticed that the exit pupil position for an off-axis system with mirrors (eg. a TMA) seems to be off when the STOP is at the curved surface of one of the mirrors and ray aiming is turned on. I understand this to be somehow expected since the pupil solve in the LDE and the EXPP operand work in paraxial approximation, and such system is definitely far from paraxial.

Is there another way to approximate the exit pupil position when ray aiming is on?





Best answer by Angel Morales 21 June 2022, 00:10

View original

4 replies

Userlevel 6
Badge +3

In what sense is it ‘off’?


Hi Mark,


I did some more experimenting on the attached file of a simplified off-axis Cassegrain telescope. It appears that when ray aiming is turned on, the pupil solve returns the EXP position of the on-axis design, since the chief ray of the on-axis field is directed towards the vertex of the parent parabola, and not the center of the actual mirror (see figures below).

This appears to be consistent with what I find in the manual: “Pupil Position -

This solve will place the next surface at the pupil position for the optical space following refraction from the current surface. The pupil position is determined by tracing real, differential rays about the central field chief ray.”

I guess my question then is: how do I make ray aiming trace the chief ray to the center of the mirror? I tried with the pupil shift option, but it’s not having any difference.


With ray aiming off (only chief rays shown):

Real ray aiming on:





Userlevel 6
Badge +3

Hi Paolo,

I’m not able to look at your file as I don’t have access to OS this week, so maybe someone else can jump in here. My suggestions would be:


  1. Use Paraxial, not Real, ray aiming
  2. Use Float-by-Stop as the aperture definition of you’re not already

Other than that, it sounds like the Pupil solve is doing exactly what it should, and placing the following surface at the location where the chief ray has zero height. As long as that is happening, I still don’t see what is ‘off’ here 😀

  • Mark 


Userlevel 4
Badge +1

Hi Paolo,

Thanks for your post on our Community!

The chief ray for your field points are, as you described already, filling the STOP such that the chief rays would intersect with the surface’s vertex point. The Pupil Shift parameters in the Ray Aiming settings are not really a shift to generate a new pupil position. Rather, they are manual settings you would put in to help the Ray Aiming algorithm iterate to the set of input rays which would fill the STOP surface’s aperture, with the chief ray at the vertex, marginal rays at the edge, etc. This is why the Pupil Shift parameters are not doing anything -- you’re giving different starting points, but the algorithm will iterate to the same point.

You could use the vignetting factors in the Field Data Editor, however, to “decenter” your Entrance Pupil to fill the STOP at the desired location. These factors would decenter from the solution that Ray Aiming finds to fill the STOP’s aperture.

Alternatively, you could define a dummy surface with its vertex co-located at the M1’s off-axis aperture position as the STOP of the system. Then, Ray Aiming would force input rays to fill the aperture, which could be defined to overlap the footprint of the M1 surface. It looks like your system’s Surface 3 is effectively this kind of surface already:


Let us know how these thoughts work out for you or if you have any more questions!