Introduction to Composite Surface

This article introduces the Composite Surface, a novel, interesting and useful feature of Zemax OpticStudio 22.3 version (Professional/Premium Subscription) or Ansys Zemax OpticStudio (Professional/Premium/Enterprise) 2022 R2.02 version. It enables many new capabilities and possibilities in OpticStudio.

Authored By Chenfeng Gu


The Composite Surface in sequential mode enables users to add multiple sag profiles to finally achieve an optical surface with a complex new sag distribution as desired. If users want to add different types of sag distributions to one surface, multiple surfaces can be added as a Composite stack. This feature will enlighten infinite possibilities in simulations, including analysis, tolerancing and so on. 

In this article, we’ll explain how the Composite Surface works, and then apply its power to the task of tolerancing complex aspheric lenses in a cell phone camera module.

How the Composite Surface works

The Composite Surface can be turned on with the ‘Composite Surface: Add sag to the next surface’ checkbox in Surface Properties…Composite, as Figure 1 shows:


Figure 1. Composite Surface Interface

Any number of surfaces can be added together, these surfaces are referred to as “Composite Add-on”, or simply “Add-on”. The sag profile of the Add-on surfaces will be added to the following Add-on surface, and the total sag will finally be added to the next surface in the Lens Data Editor (LDE), which is referred to as “Composite Base”, or simply “Base”, and that follows the Add-ons. The Base surface profile will then be the summation of all the Add-on profiles, plus its own profile. The overall sum of Add-On and Base is referred to as “Composite Stack". The Add-on row color is light yellow, and the Base row is shown in bright yellow as you can see in the Figure 2.


Figure 2. Composite Add-on, Composite Base and Composite Stack

We can find that material and coating cannot be set for composite Add-On Surface because it is only used to apply sag distribution to the composite base surface rather than anything else. Its material and coating properties follow the ones specified on the base surface. And another point is that the aperture of the Composite Add-on Surface is also considered the same as the base surface when algorithms try to add sag distribution no matter what aperture size you set for Composite Add-on Surface.  

In raytracing, rays encounter the total surface sag at the base surface only. The Composite Add-on Surface does not participate in the raytracing directly. 

Sag maps of the base surface will show the total sag, including all Composite Add-on Surfaces, rather than the sag of the base surface alone. More details are provided further along in the article.

Surfaces Supported

Currently, the list of surface types that can be an Add-on surface and the list of surface types that can be a Base surface are the same, which is given below:

  • Biconic 
  • Biconic Zernike
  • Chebyshev Polynomial 
  • Even Asphere 
  • Extended Asphere 
  • Extended Odd Asphere 
  • Extended Polynomial 
  • Grid Sag 
  • Irregular 
  • Odd Asphere 
  • Odd Cosine 
  • Off-Axis Conic Freeform 
  • Periodic 
  • Polynomial 
  • Q-Type Asphere 
  • Q-Type Freeform 
  • Standard 
  • Superconic 
  • Tilted 
  • Toroidal 
  • Zernike Fringe Sag 
  • Zernike Standard Sag 
  • Zernike Annular Standard Sag


As we mentioned, if you want to add different types of sag distributions to one surface, multiple Add-on surfaces can be added as a Composite stack.

In the example below (Figure 3 shows), a parabolic mirror with ROC (radius of curvature) = -500mm is formed by adding Add-on Surface 4 to base surface 5.  And another add-on Surface 3 adds a Zernike perturbation to the surface sag. 


Figure 3. Parabolic Mirror System with Composite Surface

You can see from the following layout, with Add-on surfaces activated (Figure 4(a)), the plots display the total sag of composite stack and don’t show the individual Add-on Surfaces. And Figure 4(b) indicates that with all the Add-on surfaces ignored, only Base surface shows up in the plots (so the system is now, clearly out of focus).


Figure 4. (a)Parabolic Mirror System with Add-on surfaces activated

                 (b)Parabolic Mirror System with Add-on surfaces ignored  

Composite Surface Tools

After adding Composite Surface, we have several user-friendly tools for you to use.

  • Ignore individual Add-on surface

The sag contribution of a Composite Surface will be ignored when the “Ignore This Surface” box is checked, and its row color will change to dark grey, as shown in Figure 5.


Figure 5. Ignore individual Add-on surface

If you want to ignore or activate all the Composite Surfaces in the system, there are two buttons to easily control in the toolbar of the Lens Data Editor.

  • Ignore Composite Add-on Surfaces/ Activate Composite Add-on Surfaces

Picture7.pngFigure 6. Ignore all Composite Add-on Surfaces


Figure 7. Activate all Composite Add-on Surfaces

  • Hide/Unhide/Delete All Composite Surfaces

In the right-click menu, there are three options for you to easily handle Composite Surfaces as you want.


Figure 8. Hide/Unhide/Delete All Composite Surfaces

Using Composite Surfaces with the Sag Map

We can use Analyze...Polarization and Surface Physics...Surface to check the Sag distribution. Here are some general ideas on Sag map of the Composite Surface.

  • Choose ‘Remove None’: Sag maps will show the sum of all Add-on up to and including the chosen surface. 
  • Choose ‘Remove Composite Sag’: plot the selected surface sag alone. 
  • Choose ‘Remove Base Sag’: leave the sum of all the Add-on Surfaces sag which is applied on this surface. 

In the following example, as shown in Figure 9(a), surface 3 and 4 are Add-on surface, and surface 5 is base surface. The Composite Surface sag maps, Figure 9(b)~(g) explain the above sag relationships with composite surfaces.


Figure 9(a). Cellphone Lens System Example to Explain Composite Surfaces with Sag Map

As shown in Figure 9(b)~(d), when "Remove None" is used, then the sag adds up row after row.

Picture11.png Picture12.png   

Figure 9(b)                                                                    Figure 9(c)


Figure 9(d)

If then you want to isolate single surface contribution, you can use "Remove Composite Sag", or "Remove Base Sag" as shown in Figure 9(e)~(g) :

    Picture14.png Picture15.png   

Figure 9(e)                                                           Figure 9(f)


 Figure 9(g) 

Composite Surface and off-axis apertures 

Composite Surfaces can also apply on off-axis systems modeling.


 Figure 10. Off-axis Optical System

The Add-on surface will automatically center itself on an off-axis aperture of the base surface if you click “Set Tilt/Decenter to follow Base surface aperture” button in the Composite tab of the add-on surface. Pressing the button, OpticStudio automatically populates the tilts and decenters in the Composite tab so that the add-on stack is located at center of the off-axis aperture of the base surface. Decenters match the vertex location while tilts match the orientation of the Base surface at the center of the off-axis aperture.


 Figure 11. "Set Tilt/Decenter to follow Base surface aperture” and "Update Tilt" button 

For Composite stack, the “Set Tilt/Decenter to follow Base surface aperture” button is to be used on the last Add-on surface before the Base, and all Add-on surfaces in the Composite stack will have the same Tilt/Decenter properties. The Composite stack will have the same coordinate system. Note that the Tilt/Decenter of the Composite stack can only be seen on the Add-on surface closest to the Base surface, where the “Set Tilt/Decenter to follow Base surface aperture” button has been used. The values will be greyed out for all other Add-on surfaces.

If users manually change the decenter value, the “Update Tilt” button (shown in Figure 11) can be used to automatically populate tilt values so that the Add-on orientation matches the base surface at the specified decenter. 

Tolerancing with TIRR, TEXI, and TEZI 

In terms of tolerancing, from the above discussions, we know that we can use Composite property to manually add irregularity and tolerancing.

Furthermore, Composite Surface expands the existing operands of TIRR, TEXI and TEZI.  Previously, these three operands can be only used for tolerancing the following surfaces.

Figure 12.  Previously TIRR, TEXI and TEZI can only be used in limited surface types

Now, thanks to Composite Surface, any surface type that can be a Composite base surface could use these three operands to do tolerancing. (Note, the expanded capabilities for TIRR, TEXI, and TEZI do not include support for off-axis apertures.)

For qualifying surface types, the TIRR operand will be expanded to tolerance those surfaces using an Irregular Composite Surface. The TEXI operand will be expanded to tolerance those surfaces using a Zernike Fringe Sag Composite Surface. And the TEZI operand will be expanded to tolerance those surfaces using a Zernike Standard Sag Composite Surface.

We’ll take the following cell phone design case (Figure 13) as example.


Figure 13.  Cellphone Lens System Example

The Tolerance Data Editor (TDE) is populated with TEZI operands for surfaces 3 & 4 of the cell phone lens. Previously, TEZI could not be used directly with Q-type Asphere surface type, but now you can set up directly in the TDE and use following tolerancing functions, as shown in Figure 14.


Figure 14.  Tolerancing using TEZI on Q-type Asphere

When we run the tolerancing and save the Monte Carlo files, you can check the tolerancing result.


Figure 15.  Monte Carlo Simulation

We can also open one Monte Carlo file to verify and better understand how the operand added irregularity to the surface. As shown in Figure 16, the Q-type Asphere surfaces have an Add-on surface added to them which carries the Zernike Standard Sag perturbation specified in the TDE.


Figure 16.  TEZI operand tolerances Q-type Asphere surfaces using a Zernike Standard Sag Composite Surface

There is a series of knowledgebase articles that explain the design of the of cellphone lens system used above. The series starts with: Designing Cell phone Camera Lenses Part 1: Optics

Please check and use the cellphone lens sample file to try out the new Composite Surface functionalities. Looking forward to your feedback!

API control 

There are two new API commands added for Composite Surface, IsCompositeSurface and SetOffAxisTiltAndDecenter().

IsCompositeSurface is used for both Sets and Gets values of this parameter. SetOffAxisTiltAndDecenter() populates surface property fields based on the calculation of the base composite surface normal vector at the center of the off-axis surface aperture.

Below is a sample Python snippet for your reference:

TheSystem = TheApplication.PrimarySystem;

TheLDE = TheSystem.LDE

# Get Surface j Information

CompositeTest = TheLDE.GetSurfaceAt(j)

# Check “Composite Surface:Add sag to the next surface”


# Press “Set Tilt/Decenter to follow Base surface aperture” button


# Extract Composite Surface Tilt/Decenter value






# Change the Tilt/Decenter values manually

CompositeTest.TiltDecenterData.BeforeSurfaceTiltX = 0

CompositeTest.TiltDecenterData.BeforeSurfaceDecenterY = 0

ZPL control

There are also new ZPL macro commands for Composite Surface.

  • COMPOSITEON( surface number ) - keyword
  • COMPOSITEOFF( surface number ) - keyword
  • COMPOSITEOFFAXISAPERTUREON ( surface number ) – keyword
  • ISCS(surface number) -> returns 1|0 - numeric function
  • [ISCS() returns 0 when the surface is not composite surface and returns 1 if the surface is composite surface.]

Detailed information on these commands can be found in help file. Some sample codes for your reference:

! Uncheck the composite surface checkbox
PRINT "Turn off composite surface j"
A = ISCS(j) 
! ISCS () return 0 if it's not composite surf., return 1 if it's composite surf.
IF (A < 0.5)
    PRINT " ==> Composite surface flag is OFF"
    PRINT " ==> Composite surface flag is ON"

! Check the composite surface checkbox
PRINT "Turn on composite surface j"    
A = ISCS(j) 
IF (A > 0.5)
PRINT " ==> Composite surface flag is ON"
    PRINT " ==> Composite surface flag is OFF"

! Press the "Set Tilt/Decenter to follow Base surface aperture" button
PRINT "Set Tilt/Decenter to follow Base surface aperture"
PRINT " ==> Click Tilt/Decenter to follow Base surface aperture button"


This article introduces the feature Composite Surface in Zemax OpticStudio 22.3 or Ansys Zemax OpticStudio 2022 R2.02. It enables many new capabilities and possibilities in OpticStudio. Hope it will make your daily work more efficient and creative. Looking forward to your feedback on this feature through community posts or email!

Was this article helpful?
11 out of 11 found this helpful



Please sign in to leave a comment.