Modern User-Interface

The user interface, and software overall, utilizes the latest cutting-edge software libraries. A ribbon-style layout will be very familiar to users of most modern engineering and productivity software. From a data input perspective, modern tables and cell structures make inputting data and parameters very efficient. Plots and graphics are visually rich and interactive.

Object-Based Modeling

Optical components are organized into hierarchies of surfaces, objects, and assemblies. Components can be positioned in global or relative coordinates, and each component can have a unique pivot point defined. All these capabilities prevent the need for coordinate shifting surfaces, which are required in a sequential, surface-based optical model.

Multi-Sequential Raytracing

Ray sequences are defined independent of the optical component definition. This simple paradigm choice drastically simplifies the modeling of optical systems. Regardless of system complexity, each optical component only needs to be defined once. Double passes, subassemblies, and test arms are easily handled by separately defining ray sequences. Any number of ray sequences may be defined and an auto-sequence can be used for systems where the order of optical components also defines the sequential ray path.

Component Editing

The modern UI supports definition of optical components in an optical tree or directly in the 3D viewer. A familiar, mechanical CAD-like tree structure makes component relationships clear with an intuitive way to define systems. For complicated systems, quickly identify, right-click and modify components in the 3D viewer.

Mechanical CAD Integration

Import and export mechanical CAD components. Export components to STP, IGS, and STL formats, with or without rays (supported in the base version). Import the same format mechanical components for visualization purposes and to check ray interference (requires optional toolbox).

Surface Layer Stack

Instead of having to search for specific surface types with the exact set of parameters needed, a flexible surface stack definition enables arbitrary surface properties. In this model, a base surface with a radius and aperture are defined, on top of which various properties are added. Parametric layers include: form/sag, aperture/obscuration, polarization, phase, coating, and replication/arrays. A wide range of surface forms are supported from standard and aspheres to freeforms/ point clouds. Common polarizing components such as waveplates and linear polarizers are pre-defined. Diffractive optical elements are defined by adding phase profiles to a surface.

Material, coating, lens catalogs

Built in catalogs save time by enabling quick implementation of common materials, coatings and lenses. Material and coating catalogs offer built in plots to understand the characteristics of different choices. The lens catalog can be filtered for criteria of interest to quickly identify off-the-shelf lens systems that will work for a given design.

Import/Export Optics

It is often the case that users will have multiple optical design software packages. Most make it easy to import designs from other formats, but none allow export back to those same formats. Quadoa support importing optical models from and export to ZMX and SEQ file formats. This enables a seamless workflow with other programs or colleagues/partners that prefer to use other software.


Multiple configuration modeling is an important tool in systems such as scanning mirrors or zoom lenses, and also when doing thermal analysis. The multi-config table supports changing any parameter across different configurations. A thermal pickup capability enables modeling changes across temperatures and athermalization.

Slider Interface

With the slider interface, any parameter can be changed continuously over a range of values to visualize changes to the system. Any open analysis windows will automatically update as the parameter value is changed.

Math Expressions and Variables

The modern UI enables math expressions to be defined directly in most cells that accept numeric definitions. Supported functions include arithmetic, order of operations, and common trigonometric expressions. These functions can also be defined in the multi-config table for solves much more powerful than just common pickups and offsets.

File Version Control

The Quadoa file format (.OPTX) is coded as with a text readable XML format. This enables native GIT version control with the same powerful tools software engineers have used for decades.


Modern User-Interface The user interface, and software overall, utilizes the latest cutting-edge software libraries. A ribbon-style layout will be very familiar to users of most modern engineering and productivity software. From a data input perspective, modern tables...


Sequential Analyses Most commonly used optical physics calculations are supported Ray distributions, aberrations, wavefront, interferograms, MTF/PSF, irradiance distributions, image simulation, ray and system reports, polarization, ghost analysis, gaussian beam...


Efficient local, extended, and global optimization routines utilize the full power of the computer’s multiple CPUs. Algorithms based upon damped least squares give the user control over parameters that dictate how the optimizer converges. Use wizards or manually...


Comprehensive tolerancing tools allow the user to evaluate the impact of manufacturing and assembly errors on the performance of their system. Quickly define global tolerances that apply to all components in the system, uniquely define tolerances for components, or a...


Available with an optional toolbox, control Quadoa with scripting languages Python and MATLAB, or higher-level programming with C++. From the first line of code, Quadoa was written with user access to core algorithms and tools in mind. This means the API is...