Enhanced Stray Light Analysis and User-Recorded HOE
Views: 365
19 Jan 2021

Enhanced Stray Light Analysis and User-Recorded HOE

FRED version 20.01 is a major new release containing significant enhancements that address both ease of use and computational efficiency and accuracy.

Ray Selection Filters

FRED’s Ray Selection Filter capabilities have long been an essential and powerful tool for the analysis of the complex paths rays can take through optical systems. In this latest release the Ray Selection Filter options have been greatly expanded - with 42 new filters enabling both novice and expert users to easily search for paths that contain different combinations of events, including diffraction events - combinations that would previously require scripting - and new filters for Total Ancestry.

The ability to use Ray Selection Filters is also now available for use in many more areas of FRED, including:

  • Advanced Raytrace Dialog
  • Raytrace Paths Report
  • Stray Light Path Report
  • Ray Summary Analysis
  • Ray Statistics Analysis
  • Ray-by-Ray Summary Report
  • Best Geometric Focus Analysis

The Ray Selection Filter capability in the updated Advanced Raytrace dialog can be used to automatically remove rays that do not meet the specified criteria. This new ability is expected to provide gains in efficiency where a large raytrace is to be performed but only a subset of the rays will be of subsequent interest; since by retaining only those rays that are relevant the speed of post-trace analyses on the smaller set of retained rays can be increased.

The new Raytrace Paths Report and Stray Light Path Report dialogs allow Ray Selection Filters to be defined that can be used to quickly identify all paths, or rays within a path, that meet the filter requirements. For example, a Ray Selection Filter might be defined to identify paths that intersect a certain surface, contain a +1 order diffraction event from a second surface, and a ghost reflection from a third surface:

When the filter is applied, the Raytrace Path Summaries data will be refreshed to show the number of rays on each path that satisfy that requirement. A new popup menu option is also available to filter the results table down to those rows that meet the filtering condition.

The Ray Summary Analysis, Ray Statistics Analysis feature, Ray-by-Ray Summary Report and Best Geometric Focus tool, now display a dialog allowing ray selection filters to be specified. Additionally, for the Ray Statistics Analysis feature, Ray-by-Ray Summary Report and Best Geometric Focus tool the dialog also allows the coordinate system in which to cast the output data to be chosen prior to performing the calculation. E.g. for the Ray Statistics Analysis:

Also a new "Reset to Default" popup menu item has been added to the ray selection filter control to conveniently remove all existing filters and restore the default single operation that selects "All rays".

Raytrace Paths

The Raytrace Paths table is a key report for understanding the paths your rays take through your optical system. In this release the layout has been simplified and the path spreadsheet row hide/sort functions now operate much faster for path tables with extremely large number of paths.

Raypath data saved to a *.FRP output file can now be read back into any FRED document by going to Raytrace > Read Ray Paths from file. Previously, FRP files could only be read by the document that originally created the FRP file. This new capability is considered to be a generic FRP file reader that allows post-trace analysis of any saved path data.

Two source user-recorded HOE

A new diffraction grating type, “Two source user-recorded HOE”, has been added in which the beams used to construct the grating phase function are defined by tracing real rays from two sources through the recording optics to the grating surface:

This new specification provides a simple interface for selecting the two sources from those already defined in the model, and the use of real ray data means that the grating function is completely customizable (via altering the source prescriptions) and the effects of aberrations are included in the grating recording setup.

A substrate swelling factor has been added to the Volume Hologram diffraction efficiency specification that defines how the substrate expands or contracts after hologram recording.


The Tabulated BSDF scatter model algorithm used to support the direct use of BSDF measurement data has been completely rewritten to provide better interpolation of tabular data that is more stable with fewer sampling artifacts. As a result of this improved algorithm the user interface has also been simplified making the fitting tool easier to use. The BSDF plotting functionality related to tabular data and tabular data fitting has also been improved.

The Harvey-Shack and ABg BSDF data fitting utility has been rewritten with a new algorithm and now supports fitting data to the Extended Harvey-Shack function.


The standard Forbes Qbfs surface type and the Extended Harvey scatter model are now both supported for FREDmpc (GPU) calculations.

Other Updates

The custom scatter catalog now supports the following scatter types: Harvey Shack, Extended Harvey Shack, ABg, Diffuse Binomial, Diffuse Polynomial, and Tabulated BSDF.

The "Entity Position/Orientation Coordinates" report dialog has been modified to allow the user to remove non-traceable entities from the report.

The StrayLightReport and StrayLightReportByEntity script commands are now tab delimited (instead of comma delimited) when written to a file and additionally print filtered path ray counts and filtered path powers.

A new option has been added to the Help > License Search Strategy dialog that reports the results of the most recent key license search.

Bug Fixes

A problem in the Lens Edit dialog which would cause the lens to be automatically placed at the origin of the global coordinate system whenever the user changed the lens aperture type and then pressed the "OK" or "Apply" button has been resolved.

FREDmpc specific issues including the below have all been fixed:

  • invalid power in a very small number of scatter rays when a very large number of scatter rays were traced
  • FREDmpc Trace Advanced incorrectly listing "The document's maximum allowed ancestry depth is xx" 
  • bug for general asphere surfaces when the 1st order linear aspheric coefficient is non-zero and it is the only non-zero odd order coefficient

Resolved a problem in which rays hitting the exact boundary of an Analysis Surface were sometimes included, and sometimes excluded, from an Irradiance calculation due to extremely small numerical roundoff errors.

A ray trace error reporting problem in which unresolvable material errors at glue surfaces were not correctly reported in the ray trace summary, the Ray Status list, and the Table of Rays Errors report has been fixed.

Changing the TIS sampling parameter in the Harvey/ABg/Extended Harvey and diffuse binomial/polynomial fit dialogs no longer triggers a new fit calculation. The TIS for the requested sampling is shown in the legend of the raw data/fit plot.

A small problem in the Ray Selection Criterion dialog in which it was possible to manually enter an invalid entity specification has been fixed along with some minor item numbering bugs in the ray selection filter control which could result in the displayed item number being indexed incorrectly.

An issue in the Raytrace Paths dialog in which some sort and column reorder operations did not work reliably has been corrected.

An issue where it was possible (although difficult) for the user to resize the dialog in such a way that the Diffraction efficiency type combo box would temporarily disappear has been resolved.

Source Primitive Issues including the below have all been fixed:

  • A main dialog resizing problem in which the controls in the wavelength specification region of the dialog were improperly sized when editing an Incoherent Plane Wave and the List wavelength attribute was selected.
  • Specifically for the user interface dialog for the Incoherent Point Source Primitive where editing the source at any time after its initial creation always changed the ray direction specification from "Isotropic" to "Lambertian".
  • Changing some items in the "Source", "Acceptance Filter", "Visualization", and "Location/Orientation" tab of the Detailed Source Edit dialog would cause the dialog to erroneously ask the user for permission to change the Source Primitive to a Custom Source.
  • The "Position/Direction" tab of the Detailed Source Edit dialog would behave incorrectly with respect to radio button selection when the "Positions/Directions" tab is selected and the "Ray Positions" type is "Random surface". 

An issue with the bitmap source in which rays, when created, were shifted by one-half pixel from the bitmap's pixel position has been corrected. The effect is most noticeable for small bitmaps with very low pixel counts.

A problem in the optimizer that under certain circumstances caused a premature exit from the multi-start optimization algorithms has been fixed.

Fixed a configuration related problem which was only relevant when one or more configurations were defined: under certain conditions the active configuration was not accurately identified in the configuration edit dialog, or on the main status bar.

Script Command Fixes

Command Issue Resolved
SetDiffractEfficiencyFile Improper Diffraction Efficiency Initialization
SetDiffractEfficiencyFileSecondary Improper Diffraction Efficiency Initialization
SetDiffractEfficiencyVolHOE Improper Diffraction Efficiency Initialization
SetDiffractEfficiencyVolHOESecondary Improper Diffraction Efficiency Initialization
SetDiffractEfficiencyVolHOEAlgorithm Improper Diffraction Efficiency Initialization
SetDiffractEfficiencyVolHOEAlgorithmSecondary Improper Diffraction Efficiency Initialization
GetGratingKVector False run time error
GetInterpolatedDiffractionEfficiency False run time error
SetMieScatter Overly restrictive data checks halting script