Birdbath architecture for augmented reality (AR) system - part 1-System setup, optimization, and human vision simulation

Author: Ryosuke Niitsu, Yuan Chen


In this article, a simulation method with an example of optimization and simulation of birdbath architecture has been proposed and demonstrated.

The birdbath architecture consists of three groups:

1. Curved mirror (origin of the name Birdbath)

 2. Plate to reflect rays from the display to curved mirror and transmit rays from curved mirror to human eye

3. Lens elements to correct aberrations.

There are two different ways to get this architecture see-through. One way is to use semi-reflective coating and another way is utilizing the polarizing elements. The polarizing elements are introduced to increase the light efficiency and improve the light leakage performance.

In this article, we focus on the model using semi-reflective surfaces. The Zemax OpticStudio is used to optimize the system. And the entire system is simulated in Speos.


Step1 Lens Design (OpticStudio)

The lens design is done in Zemax sequential mode.



The system is designed reversely due to engineer’s preference. In reality (in the physical system), the source is the micro display, and the image plane will be the retina of the human eye (the exit/entrance pupils and the human eye will be collocated).

We shall keep in mind that the distortion and lateral will be inversed for human perception.

1.1 System Setup

Here is how the system is set up: Aperture-> Lens elements-> Field of View. By doing this, we can check the layout at any stage of the system modelling without a potential TIR problem.

The aperture, in our case, to be more specific, the eye box, is set as 8mm. The aperture type is set as Float By Stop Size to simulate different eye positions later.


The definition of eye relief may vary. It could be the distance between the eye box and the mechanical component of glasses. Or the distance between the eye box and the optical center of the tilted plate. Here, we set the distance of the latter as 15mm.

Next, we add a plate made of BK7 with 0.5mm thickness.


We can use the tool Tilt/Decenter Elements to rotate the plate to desired angle. In our case, the tilt about X value is -40 degrees.


 Then we place the mirror on the right side of the tilted plate and set the material as mirror. The thickness of the mirror surface is opposite to the distance between the tilted plate and the mirror so that light could reflect on the rear surface of the mirror.


The rear surface could also be easily modeled by using the Add Fold Mirror tool.


As the system has been mirrored twice, to continue ray propagation, the thickness now shall be set to positive value. As the starting point, the distance can be set arbitrary.


Let’s have a glance at our current system before we set the field of view to see if the system is set correctly.


There is no standard procedure to set the field of view. We can either set it directly by angle or the display size. The Fields Wizard could generate the grid field easily.

I am uncertain whether you doubt the rectangular field setting in a rotational symmetric system. From the image quality point of view, radial and rectangular field setting does not change anything. But the size of the plate and the curved mirror will be totally different.


Here we set the paraxial field height as the field type, and we can convert it to angle using the field type conversion tool at the middle stage of optimization.


1.2 Optimization

The merit function is created to meet the specifications and ensure manufacturability.

The field of view, which is one of the most important parameters, could be controlled by the incident angle on the entrance pupil (RAID), or the effective focal length of the system (EFFL). Once the field of view is close to our target, we can set the angle as the field type and control the field size and the distortion instead (or the effective focal length).

Depending on what kind of distortion we want to control, the distortion can be corrected by using DISG, DIMX or real image height REAX/REAY. Be careful when the system contains aspherical surfaces, especially if the components are placed close to the image plane. It’s suggested to add multiple fields, for certain cases, rays from multiple pupil positions to avoid the case where fields in-between have a high distortion value. In this case, though the distortion at the extreme position could be corrected, the TV distortion will be visible. If multiple fields are added, the weight and target shall be carefully chosen so that they have equivalent effect during the optimization.

The lateral color can be controlled by LACL or REAX/Y/R. For axial color, it could be calculated by AXCL or combination of REAY+RETY (the same to the other two directions) to calculate the shift.

There are various ways to improve the image quality. The most efficient way is to generate them using the optimization wizard. It’s worth trying the contrast optimization, which could speed up the MTF optimization. When it comes to MTF calculations, caution shall be paid about how the tangential and sagittal direction are defined in OpticStudio. Please refer to this KBA for more information: Understanding tangential/sagittal in OpticStudio and how to rotate rays – Knowledgebase (

As for the manufacturability, we need to think about both the elements and the mechanical design.

For elements, it’s important to get the thickness constrained to a reasonable range. We could use the constraints defined in the optimization wizard, but we must keep in mind that it can’t work for all conditions. For aspherical lenses, the FTLT and FTGT could be used to limit the minimum and maximum thickness. For certain cases, we need to control the ratio of the diameter against the thickness, this can be done by using DMVA and FTLT. If we set the target as 0, it could read the current value of the minimum value. This trick could be used for lots of boundary operands. The conic constant shall also be limited to a certain range to avoid manufacturing issues. This can be done by COVA+ABLT.

The distance between two elements can’t be negative. This can also be controlled by FTGT.

More constraints shall be considered in the Birdbath design.

To reduce the thickness, the distance between the tilted plate and the curved mirror is supposed to be minimized. This could be achieved by using the RAGZ to control the corner ray propagation.

Another important thing is that rays could not coincide with the lens elements. The extreme case the for the lower field at corner, when the curved surface is closest to the reflected rays. This one could be controlled as showed in this KBA: Modelling a holographic waveguide for Augmented Reality (AR) systems: part 2 – Knowledgebase (


The other case that rays coincide with lens element is showed below:


Currently, there is no solution to fully control the distance between the tilted element and the rays. 

One secure way is to set the RAGY lens vertex to be larger than the upper ray reflected from the curved mirror (or arriving at the curved mirror). Another way is to ensure the surface to be above the upper ray. The aspherical lens will be cut to minimize the size. We can sample a set of surface coordinate data and compare it with the ray in extreme conditions. The ZPLM could keep the merit function compact. Optimization using a ZPL Macro: the ZPLM operand – Knowledgebase ( The last option is to set a reasonable distance range and get the system slightly vignetted for the upper eye position for a better optical performance. 


Step 2: Human Perception (Speos)


Once the mechanical design is done, we can benefit from the Speos Human vision simulation. Here are Speos simulation results with and without light shield at the bottom of the glasses in human vision mode.


2.1 Import the Step file.

The .step file could be imported by Assembly -> File.


2.2 Create materials and Local Meshing

For optical materials, it’s created via Light Simulation -> Material -> New Material -> Volume & Surface Properties. The constringence is equivalent to Abbe number in Zemax OpticStudio. It’s important to set the surface as Optical Polished for lenses working.


Once the material is created, it will be displayed in the Definition window, together with Sources, Sensors, and Simulations.


If we want to modify the setting we input, by double-clicking on an item in the Simulation panel, we can set the details of the simulation element in the Definition tab.


For the half reflective plate, it shall be defined in simple scattering surface.


Currently, we set mechanical components as totally absorptive. All parts used in the simulation must be assigned to a material. In this case, we use the mirror setting with 0% reflectivity. This means that light rays will be absorbed when they hit this mechanical part. If stray light analysis is needed, we could use BRDF instead.

The selected object is shown in the lower right column called Geometry. What is shown here will be applied with this material’s characteristics.


It’s important to keep in mind that SPEOS converts all objects into meshes. The finer the mesh, the better the accuracy and longer simulation time. To get a balance between the accuracy and the efficiency, a finer mesh for optical parts might be necessary, it could be modified by LocalMesshing.


2.3 Apply materials and Local Meshing to objects.

To apply the material to certain object, we can click the material, then click the orange button to select the object and apply the material onto this piece of object. For multiple objects with the same material, you could press the Ctrl and click to select.


Like the Material setting, we use the same operations to apply the local meshing setting.


2.4 Prepare display source and environment.

Once the objects are set with proper material and surface properties, we can add a light source to this system to simulate the display panel. As an example, we can choose Light Simulation -> Display and configure the display information.


The environment is slightly different. It’s curved and can be generated from Light Simulation -> Ambient -> Environment. 


Multiple sources can be added based on the scene we want to model. More information can be found in Creating a Display Source (

2.5 Set human vision detector.

The human vision detector can be created via Light Simulation -> Human Eye.


2.6  Configure the simulation and run.

With all elements set up, we can create a simulation and select the objects, sources, and detectors we need to simulate this Birdbath architecture. In this case, we will use inverse.


The simulation could be run either by right clicking the simulation -> compute or the simulation button in the layout window.



Speos allows human vision simulations that reflect OpticStudio design data and subsequently designed mechanical components.

In this example, the simulation was performed under ideal conditions, including material settings. More parameters are needed to bring the simulation closer to the actual environment.


Was this article helpful?
3 out of 6 found this helpful



Please sign in to leave a comment.