How to create a simple non-sequential system

This article is a tutorial demonstrating some basic operations in OpticStudio Non-Sequential Mode. It describes how to create and edit objects in the Non-Sequential Component Editor, how to view the system in Layout Plots, how to create source, lens and detector in a non-sequential system, and how to perform ray trace and analyze results. It also shows some examples on creating light pipes and parabolic reflectors which are commonly used in illumination applications.

Authored By Nam-Hyong Kim


Article Attachments


In non-sequential ray tracing, there are many capabilities that are simply unavailable in sequential mode. This is mainly due to the fact that non-sequential rays are allowed to interact with any object in their path and can split into fully traceable child rays. Before diving into specific examples demonstrating the functionality of Non-Sequential Mode, it is important to understand ray trace in Non-Sequential Mode of OpticStudio.  

Non-Sequential Ray Tracing

There are 2 distinct ray-tracing modes in OpticStudio: sequential and non-sequential. The Sequential Mode is mainly used for designing imaging systems, while the Non-Sequential Mode is mainly used for illumination system design and stray light analysis. The key difference is that in Non-Sequential Mode, ray path is not specified by user in a strict sequence. Instead, rays trace in the actual physical order they hit various objects and surfaces, which may not be in the sequential order that the surfaces or objects are defined. Rays my hit the same object repeatedly while entirely miss other objects. Rays can also split into reflected, refracted, or scattered child rays and the child rays can be traced simultaneously. The main analysis tool in Non-Sequential Mode is the Detector Viewer. It displays ray trace results on a detector in different data format, for example spatial and angular distribution of coherent or incoherent irradiance or radiant intensity. Users can also save ray trace results into a ZRD file and further analyze ray paths using Ray Database Viewer or Path Analysis tools.  

Setting up Basic System Properties

We will create a non-sequential system with a filament source, a parabolic reflector and a plano-convex lens that couples light into a rectangular light pipe, as shown in the layout below.


We will also trace analysis rays to the detectors to obtain the irradiance distribution at various points in the optical system. Here is what we will finally produce:


To get started, switch OpticStudio to Non-Sequential Mode by pressing Setup...System...Non-Sequential.

Once in Non-Sequential Mode, the window title bar of the editor will display the Non-Sequential Component Editor (NSCE) instead of the Lens Data Editor. The Lens Data Editor is used only in Sequential or Mixed-Mode systems.


For this exercise, we will set the system wavelength, specified under Setup...System...System Explorer...Wavelengths, to 0.587 µm.


We will also set the units under Setup...System...System Explorer...Unit as follows.


In addition to radiometric irradiance unit such as, you can specify photometric and energy units such as or We will choose the default radiometric units for this exercise. 

Creating the Reflector

Insert a few lines in the Non-Sequential Component Editor by pressing <Insert> on your keyboard.


In the first part of the design, we will create a filament source collimated by a parabolic reflector. We will then place a detector object at some Z-distance from the source and anlyze the irradiance distribution on the detector.

Make the first object a parabolic reflector by clicking on the Object Type column of Object 1 in the editor or opening the Object 1 Properties window. Set the Type to Standard Surface.

Standard surface

In the NSCE, enter the following parametersfor Object 1. 

Material MIRROR
Radius 100
Conic -1 (Parabolic)
Max Aper 150
Min Aper 20



You can open the NSC 3D layout under Analyze...System Viewers...NSC 3D Layout to see what this reflector looks like.


Creating the Source

We will not place a filament at the focus of the parabolic reflector to collimate the beam. The filament coil will 10 turns with overall length of 20mm and radius of turn of 5mm.


Change Object 2 in the NSCE to a Source Filament and enter the parameters below.

Z Position 50
# Layout Rays 20
# Analysis Rays 5,000,000
Length 20
Radius 5
Turns 10


Filament source parameters

Update the NSC 3D Layout by double-clicking on it.

Layout update

The layout shows 20 rays emanating from the source filament, as specified in the # Layout Rays parameter.

Rotating the Source

The source is oriented along the Z-axis, but suppose we want to orient it along the X axis; we would need to rotate the source object by 90 degrees about the Y-axis. Enter 90 for the Tilt About Y parameter of the source.

Tilt about Y

The default YZ plane view of the layout show the filament being oriented along the X-axis, however, the XZ plane view reveals that the filament is shifted towards +X axis. To rotate the layout, change the layout view angle in the Layout toolbar. 


Rotation     Rotation Z

The reason for the decenter is because the rotation axis of the Source Filament is not at the center of the object but at the end. To center the source in the X axis, enter -10 in the X Position column.

X position

Update the layout and it will now show the desired filament location and orientation.

Placing a Detector

Next step is to place a detector object at some distance from the source to study the irradiance distribution at that location. Change Object 3 to a Detector Rectangle and enter the following parameters.

Z Position 800
X Half Width 150
Y Half Width 150
# X Pixels 150
# Y Pixels 150
Color 1 (Inverse Gray Scale)


The YZ plane view of the layout shows:


Observe that the layout shows the rays going through the detector. The detector is totally transparent since the material type is air (blank in the editor).

Tracing Analysis Rays to the Detector

To see the intensity at the detector, we need to open the Detector Viewer by clicking Analyze...Detectors...Detector Viewer.

Detector viewer

You will notice that the Detector Viewer is blank with zero total power, even though we see rays reaching the detector in the layout. The reason is because the rays are traced separately for the layout and for the detector viewer. We need to trace the analysis rays to the detector first to see the result. The number of rays traced to the detector is specified in the “# Analysis Rays” parameter column of the Source Filament object in the editor, which is usually a large number: 5 million in this case. Remember, layout rays do not affect the Detector Viewer results; only analysis rays do.

To trace analysis rays to the detector, open the Detector Control window under Analyze...Trace Rays...Ray Trace.


Press Clear & Trace to clear any previous data from the detector and initiate a new ray trace. The detector viewer will display the irradiance distribution, revealing the hotspots caused by the filament source.


If your Detector Viewer looks different, open the detector viewer settings window and make sure the settings are as follows:

Detector settings

You can also see the detector trace result in the NSC Shaded Model Layout by selecting Color Pixels By Last Analysis option in the settings.

Settings    Shaded_Model

Adding a Plano-Convex Lens

Now that we have a source and a reflector, we will add a refractive plano-convex lens 10mm to the right (+Z) of the detector. Insert a line after Detector Rectangle in the editor and make the type Standard Lens with the following parameter values.

Ref Object 3
Z Position 10
Material N-BK7
Radius 1 300
Clear 1 150
Edge 1 150
Thickness 70
Clear 2 150
Edge 2 150


Update the NSC 3D Layout.


Notice how we referenced the position of the lens to Object 3 (Detector Rectangle) by entering the value 3 in the Ref Object column and specified the Z position value of 10, instead of referencing to global vertex (Ref Object = 0) and specifying 810mm for the Z position parameter. With the lens positioned referenced to the detector, the lens will always be 10mm to right (+Z) of the detector regardless of the detector position. This is how relative object positions are specified in Non-Sequential Mode.

To see how the focused beam looks like, insert another Detector Rectangle (Object 5) 650mm to the right (+Z) of the lens with the following parameters.

Ref Object 4
Z Position 650
X Half Width 100
Y Half Width 100
# X Pixels 150
#Y Pixels 150
Color 1


Update the NSC 3D Layout.


Tracing Analysis Rays and Accounting for Polarization Losses

Open another Detector Viewer by clicking Analyze...Detectors...Detector Viewer and make the settings as follows.

2nd Detector viewer

Now, we are ready to trace analysis rays to the detector again. Since the N-BK7 lens is uncoated, we need to account for the reflection losses (Fresnel reflection), thus need to enable Use Polarization option in the Detector Control window. Note that we are not splitting rays at this time, and so the reflection losses are accounted for, but the reflected energy is not being propagated. Clicking Split Rays will create child rays that take the reflected energy away.


The Total Power, reported in the Detector Viewer is now accounting for reflection losses and bulk absorption in the lens.


Adding a Rectangular Light Pipe

As a final step, we will add a rectangular acrylic light pipe 20mm to the right (+Z) of the Detector Rectangle (Object 5). Add Rectangular Volume object in the editor, after Object 5 with the following parameters.

Ref Object -1
Z Position 20
Material Acrylic
X1 Half Width 70
Y1 Half Width 70
Z Length 2000
X2 Half Width 70
Y2 Half Width 70


When entering the material type Acrylic, you might get the following message. Click Yes and OpticStudio will add to your file the MISC Materials Catalog, in which the material Acrylic is defined.


This time, we have set Ref Object: -1, which represent the previous object in the editor (Object 5). This is same as entering “5” for this parameter. Specifying relative object using negative number for the Ref Object is useful when group of objects in the editor are to be copied and pasted into the same or different Non-Sequential Component Editor.


Place another Detector Rectangle (Object 7) in the editor with following parameters.

Ref Object -1
Z Position 0
Material ABSORB
X Half Width 100
Y Half Width 100
# X Pixels 150
# Y Pixels 150
Color 1


Using a Pickup Solve to Position the Detector

The updated NSC 3D layout will show the following.


The material type was set to Absorb to make the detector opaque rather than transparent, evident from the layout.

Because we referenced Detector Object 7 to the Rectangular Volume and set the Z position as zero, the Detector is located at the front surface of the light pipe. If we want to place this detector 10 mm (+Z) beyond the end of the light pipe, the Z Position value should be 2010 mm (thickness of Rectangular Volume + 10). If we change the thickness of the Rectangular Volume to a different value, the Z position of the Object 7 should also be changed. For convenience, instead of typing the value 2010 mm in the editor, we will place a “Pickup solve” for the Z Position of the detector. Then the Z Position value in the editor will automatically be calculated to be the sum of the Object 6 Thickness and 10.

Enter a Pickup Solve for the Object 7 Thickness as shown below. 

Pick up

Setting From Column: Parameter 3 corresponds to the Z Length for Object 6. A letter “P” will appear next to the parameter in the editor indicating the presence of Pickup solve.

Ray-tracing the Complete System

Open a third detector viewer to view Detector Object 7 and re-run the ray trace. Remember to check Use Polarization and press Clear & Trace. The Detector Viewer shows that the light pipe has effectively removed the hot spots making the irradiance distribution almost uniform.


See the Article Attachments section at the top of this article for a complete sample system.


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



Please sign in to leave a comment.