Purpose & How to Use This Manual
This manual is for an LLM assistant guiding a human operator through Wavefront Pro. Use it as an operational reference, not developer documentation.
Always refer to controls by their exact visible label in the application. Never invent control names or assume behavior not described here.
When helping an operator, establish four facts first:
- Are they using a live camera, a paused camera frame, or a previously saved interferogram image?
- Are they on the
Testtab, theSetuptab, or inside a popup such asInterferogram ConfigurationorModulation Transfer Function? - Is their goal setup, measurement, reference handling, MTF analysis, or export?
- Do they want to fix a problem now, or are they trying to learn the workflow from scratch?
Useful prompt pattern for an assistant:
- Ask the operator to name the tab or dialog they currently see.
- Ask them to read the exact label of the control they want to use.
- Give one concrete next action at a time.
- Re-check the displayed result before moving to the next step.
What Wavefront Pro Does
Wavefront Pro is a desktop application for analyzing optical interferograms and turning them into wavefront measurements, Zernike coefficients, surface plots, metrics, and reports.
The application supports two practical acquisition modes:
- Live camera mode — a connected camera continuously feeds the app.
- Static-image mode — analysis runs from a loaded image or from a frozen live frame.
The app can still be used when no camera is available. In that case, users can load interferogram image files and analyze them normally.
Typical Session Flow
Most operators follow this sequence:
- Launch the app and sign in if prompted.
- Connect to a camera, skip camera setup, or continue without a camera.
- Go to the
Setuptab and confirm wavelength and analysis settings. - Go to the
Testtab and verify that a valid interferogram is visible. - Open
Configure Igramand fit the outer circle, obscuration, and any exclusion regions. - Watch the live metrics and plots update.
- Optionally build an average wavefront or a reference wavefront.
- Save images, wavefront data, or generate a PDF report.
- Optionally run
Calculate MTFfrom theAnalysismenu.
Startup Experience
Login
Depending on deployment settings, the operator may first see a login window with:
Email AddressPasswordRemember meSign InReset PasswordCancel
If the operator can sign in, tell them to use Sign In. If they forgot their password,
tell them to enter their email first and then use Reset Password. If Remember me
is enabled, the app stores a login token locally and does not require a login on the next startup.
Offline use
The app checks token validity on every startup. The token expires after 7 days. If
the operator is offline at startup and has previously logged in with Remember me enabled,
the app will use the stored token and start normally as long as it is less than 7 days old. If the
token is expired or missing, an internet connection is required to authenticate.
The token is removed when the operator uses File → Log out. If they use
File → Exit without logging out, the token is preserved only if Remember me is active.
Software Update Prompt
The app may show an update popup that says an update is available. The operator can:
- Use
Download and installto update immediately. - Use
Cancelto continue without updating.
Camera Setup
On startup, the app attempts to connect to a camera. Possible outcomes:
- One camera is found and connected automatically.
- Multiple cameras are found and the user must pick one.
- No camera is found and the app offers a static-image-only workflow.
In the Camera Setup popup:
- If cameras are listed, the operator selects one and uses
Connect, or usesSkip. - If no cameras are found, the popup explains recovery steps and offers
ContinueorExit.
If no camera is connected, the app still works with saved interferogram images loaded through the File menu.
Main Window Overview
The main window has three top-level menus and two main tabs.
Menus
FileAnalysisHelp
Tabs
TestSetup
Visual Layout on the Test Screen
The Test workspace combines controls on the left with visual outputs on the right. Main regions:
- Interferogram view in the upper-left of the results area.
- Interferogram section plot next to it.
- Wavefront section plot next to that.
- Zernike list on the far right.
- 3D surface plot in the lower-left.
- RMS, P-V, and Strehl metrics over the lower-left area.
- 2D wavefront map in the lower-middle/right.
File Menu
The File menu is central to acquisition and export. Available commands:
Stream cameraOpen igramGenerate PDF reportSave screenshotSave interferogramSave wavefrontSave surfaceLog outExit
Keyboard Shortcuts
Ctrl+O— opens an interferogram image.Ctrl+S— generates a PDF report.Ctrl+I— saves the current interferogram image.Esc— exits the application.
What Each File Menu Item Does
Stream camera
Use this after working from a loaded image or a paused frame when the operator wants to return to
live acquisition. Stream camera is disabled at startup while a live
camera is already running. It only becomes available after the app switches to static-image mode
via Open igram or Pause camera. If no working camera is available, the
app warns the user.
Open igram
Loads a saved interferogram image from disk. Supported image types: PNG, JPG/JPEG, BMP.
Once loaded:
- The app switches into static-image analysis.
- The loaded filename is shown below the interferogram view.
Pause camerabecomes unavailable because the image is already static.Stream camerabecomes the way back to live acquisition.
Generate PDF report
Creates a PDF report containing: test metadata, RMS/P-V/Strehl metrics, interferogram image, fitted wavefront map, residual wavefront map, 3D surface plot, and the full Zernike coefficient table.
The Zernike table in the report lists every fitted term with its ANSI index, radial and azimuthal
order, aberration name, coefficient value in waves, and a Disabled flag. If there
are no valid current results, the app will not generate a report.
PDF generation requires a local PDF backend. If the app reports that PDF generation support is missing, the operator must install the required PDF tool before reports can be created.
Save screenshot
Saves a screenshot of the entire application window.
Save interferogram
Saves the currently displayed interferogram as a PNG image.
Save wavefront
Saves the current 2D wavefront map as a PNG image.
Save surface
Saves the current 3D surface plot as a PNG image.
Log out
Logs the current user out and closes the app.
Exit
Closes the application. On normal exit, the app saves its current configuration, so many user choices persist across sessions.
Analysis Menu
The Analysis menu currently provides Calculate MTF. Use it when the operator wants modulation transfer function analysis based on the current wavefront result.
Help Menu
The Help menu provides:
AboutContact us → Report bugContact us → Suggest feature
The About popup also includes a button to view third-party licenses.
Bug Reporting
When the operator uses Contact us → Report bug, the app opens an email pre-filled
with the software version and platform. It also attempts to attach the application log file automatically.
If the operator needs to find the log file manually, it is located at:
%LocalAppData%\Programs\Wavefront Pro\app.log
Typically this resolves to C:\Users\<username>\AppData\Local\Programs\Wavefront Pro\app.log on Windows.
Setup Tab
The Setup tab contains two groups: Camera Settings and Configuration. Use this tab for system-level analysis settings rather than per-measurement metadata.
Camera Settings
Visible controls:
AutoAuto Target BrightnesssliderExposure TimesliderRestart Camera
Auto exposure workflow
When Auto is enabled:
- The camera uses automatic exposure behavior if supported.
- Brightness targeting is active.
- Direct manual exposure control is disabled.
When Auto is disabled, manual exposure becomes active and brightness targeting is disabled. Use automatic mode first for initial acquisition. Switch to manual exposure only when the camera cannot achieve the desired brightness automatically.
If the app warns that the auto brightness limit has been reached, tell the operator to disable
Auto and lower exposure manually. The auto-exposure checkbox is only visible when
the connected camera supports that feature.
Restart Camera
Use Restart Camera when:
- The camera was unplugged and reconnected.
- The wrong camera was selected.
- The feed appears stuck or unavailable.
If no camera can be recovered, the operator can continue in static-image-only mode.
Configuration
Visible controls:
Laser Wavelength (nm)Ref Wavelength (nm)Wavefront SizeDouble Pass ModeInvert WavefrontSpherical Null
When Spherical Null is enabled, additional parameter boxes appear: Diameter (mm), Mirror ROC (mm), and Conic Constant.
Laser Wavelength
The physical source wavelength used to acquire the interferogram.
Ref Wavelength
The wavelength at which results should be reported. Available options: 532 nm, 550 nm (default), 632.8 nm. Reported wavefront values and metrics are expressed at the reference wavelength.
Wavefront Size
Sets the resolution of the wavefront model. Available options (pixels): 256 (default, fastest), 512, 724, 1024 (slowest, highest detail). Smaller sizes are faster. Larger sizes can show more detail but demand cleaner data and more computation. If changed, previously saved reference wavefronts may no longer match the current analysis size.
Double Pass Mode
Enable this when the optical setup represents a double-pass test and reported wavefront values should reflect that measurement mode.
Invert Wavefront
Use this if the displayed wavefront sign appears reversed relative to the operator's expected convention.
Spherical Null
Enable when the measurement should be compensated using a spherical null based on optic geometry. When enabled, the checkbox label updates to show the current null value, and the optic geometry inputs become part of the active analysis setup.
Test Tab
The Test tab contains three left-side control sections: General, Wavefront Averaging, and Reference Management.
General
Visible fields: Date, Part #, Serial #, Client, Project, Notes. Use these fields to populate the PDF report and to keep measurement context attached to saved results. The date field is automatic and not normally edited.
Wavefront Averaging
Visible controls: RMS Limit (lambda), N Frames, Moving Window Size, Start, Save to File, Reset button.
Averaging uses a moving window over accepted wavefront frames to reduce noise. Only the most recent N accepted frames (where N is the Moving Window Size) contribute to the current average at any moment. Acceptance is controlled by RMS Limit: frames whose RMS is above the limit are not added to the window. N Frames shows how many frames have been accepted into the current window.
Because the average is a moving window rather than a cumulative sum, old frames are continuously replaced as new accepted frames arrive. This means the displayed average tracks recent measurement quality rather than accumulating indefinitely.
Moving Window Size
Sets how many accepted frames are held in the window at once.
- A smaller window responds faster to changes but is noisier.
- A larger window is smoother but slower to reflect changes in the optic.
- Changing the window size immediately restarts averaging with the new setting.
Recommended averaging workflow
- Get a stable live result first.
- Open
Configure Igramand confirm the crop and obscuration are correct. - Set
Moving Window Sizeto the desired number of frames. - Start averaging.
- Watch
N Framesincrease up to the window size. - If too few frames are accepted, raise the RMS limit slightly or improve stability.
- Use
Save to Filewhen the displayed average is satisfactory.
Button behavior: Start changes to Stop while averaging is active. Save to File is enabled after averaging starts. The reset button stops averaging and clears the current window. Average wavefronts are saved as .npz files.
Reference Management
Visible controls: Display Reference, N Frames, Subtract Reference, Display Residual, Wavefront Angle (deg), Add Wavefront, Add from Files, Save to File, Reset button.
Reference concepts
Display Referenceshows the reference itself instead of the current measurement.Subtract Referencesubtracts the reference from the active result.Display Residualshows the residual map rather than the fitted wavefront.Wavefront Angle (deg)rotates the reference alignment in 45 degree steps.
Recommended reference workflow
- Establish a stable measurement with correct interferogram setup.
- Use
Add Wavefrontone or more times to build a reference from current results. - Confirm
N Framesincreases as expected. - If necessary, adjust
Wavefront Angle (deg)for alignment. - Enable
Subtract Referenceto remove the reference from subsequent results.
Loading references from disk
Use Add from Files to load one or more previously saved reference wavefront files (.npz format). Loaded references must match the current wavefront size. If several files are loaded, they are accumulated.
Button-state rules
Add Wavefrontis disabled while reference subtraction or alternate display modes are active.Display ReferenceandDisplay Residualare mutually constrained — the app only shows one alternate view at a time.
Result Panels on the Test Screen
Interferogram View
Shows the current live, paused, or loaded interferogram. Visible controls under the image: Configure Igram and Pause camera / Resume camera.
Additional behavior:
- A filename label appears below the image when a file is loaded from disk.
- A red border appears when a live frame has been paused.
- The app overlays the fitted outer circle and, when enabled, the central obscuration.
- A dashed line shows the current section location used by the interferogram section plot.
Pause camera freezes the current live frame and switches the app into static-frame analysis. Resume camera returns to live acquisition.
Interferogram Section
Shows the pixel-intensity slice through the interferogram. Use it to confirm that the selected section passes through meaningful fringe structure. The section angle can be changed with the slider under the plot.
Wavefront Section
Shows orthogonal wavefront slices through the current wavefront result. Visible controls: section angle slider and Y-limits spinbox.
- The displayed angle label runs from 0 to 90 deg.
- Two orthogonal slices (90 degrees apart) are plotted together — one in blue, one in red.
- Left-clicking anywhere on the wavefront section plot auto-resets the Y-limits spinbox to fit the current data range. This is the fastest way to restore a sensible view.
Y-limitsdefaults to 0.25 wavelengths and can be adjusted in 0.05 increments.
2D Wavefront Map
The main color map of the fitted wavefront. Use it to assess the spatial structure of the result and to correlate displayed shape with the section plots and Zernike terms.
Metrics Panel
Displays: RMS, P-V, and Strehl. Quote metrics exactly as displayed. If a metric changed suddenly, first check whether the operator enabled Subtract Reference, Display Reference, Display Residual, Double Pass Mode, Invert Wavefront, or changed wavelengths.
3D Surface Plot
Provides a three-dimensional view of the wavefront shape. The Z-limits spinbox below the plot sets the symmetrical vertical clipping range. The app sets this automatically on the first valid result. Use the surface plot for quick interpretation of surface form, but rely on the 2D map and metrics for precise numeric guidance.
Zernike Panel
A scrollable list of Zernike terms with checkboxes. Checked terms are included in the fit; cleared terms are removed. The displayed wavefront changes immediately when terms are toggled. Exported and reported coefficients reflect the current selection state.
Default disabled terms
The following terms are unchecked (zeroed) by default:
- Piston
- Y-tilt
- X-tilt
- Defocus
They are fitted internally to improve accuracy but removed from the displayed result. If an operator needs to see raw tilt or defocus content, they should re-enable those checkboxes.
OSA/ANSI index scheme
Wavefront Pro uses the OSA/ANSI standard single-index scheme to enumerate Zernike terms. Each term is identified by two parameters:
- n — radial order (non-negative integer).
- m — azimuthal frequency (signed integer, same parity as n, with |m| ≤ n). Positive m are cosine (even/symmetric) modes; negative m are sine (odd/antisymmetric) modes.
The OSA/ANSI single index j is computed from (n, m) by:
This produces a 0-based sequential index. The first few mappings:
| j | n | m | Aberration name |
|---|---|---|---|
| 0 | 0 | 0 | Piston |
| 1 | 1 | −1 | Y-tilt |
| 2 | 1 | +1 | X-tilt |
| 3 | 2 | −2 | Oblique astigmatism |
| 4 | 2 | 0 | Defocus |
| 5 | 2 | +2 | Vertical astigmatism |
| 6 | 3 | −3 | Sin trefoil |
| 7 | 3 | −1 | Y-coma |
| 8 | 3 | +1 | X-coma |
| 9 | 3 | +3 | Cos trefoil |
| 10 | 4 | −4 | (oblique quadrafoil) |
| 11 | 4 | −2 | 2nd oblique astig |
| 12 | 4 | 0 | Primary spherical |
| 13 | 4 | +2 | 2nd vertical astig |
| 14 | 4 | +4 | (vertical quadrafoil) |
Given a known j, the inverse relation to recover (n, m) is:
The app fits through radial order n = 14 by default, producing 120 Zernike terms (j = 0 to 119). The fit is performed by solving a linear system (least-squares) against the measured wavefront phase pixels inside the aperture mask.
Interferogram Configuration Popup
Use Configure Igram to open the Interferogram Configuration popup. This popup has two main areas: a large zoomable interferogram editor and an FFT view with filter controls.
Main controls
Outer diametersliderObscurationcheckbox and sliderAuto-fit Circle- FFT
Filter radiusslider and numeric label Save and Close
FFT view
The right half of the popup shows the 2D Fourier transform of the current interferogram. The filter circle is overlaid on the FFT view. Its radius should capture one of the fringe lobes without including the central DC region or the opposite lobe. Too small a radius removes valid fringe information and makes results noisier. Too large a radius includes unwanted frequencies and can create artifacts.
Recommended setup workflow
- Open
Configure Igram. - Use
Auto-fit Circlefirst. - Check whether the outer circle cleanly follows the usable aperture.
- If needed, redraw the circle manually.
- Enable
Obscurationif the optic has a central obstruction. - Add exclusion regions for defects, clips, glare, or invalid image areas.
- Adjust the FFT
Filter radiusif fringe extraction needs refinement. - Use
Save and Close.
Mouse and keyboard controls
- Left-click and drag: draw the outer analysis outline.
- Arrow keys: move the outline.
- + and −: increase or decrease the outline diameter.
- Ctrl + left-click and drag: draw an exclusion region.
- Ctrl + right-click: delete the nearest exclusion region.
- Mouse wheel: zoom.
- Right-click and drag: pan.
If arrow keys or +/− do not respond, tell the operator to click inside the popup first so it has keyboard focus.
Exclusion regions
Exclusion regions remove selected image areas from the wavefront analysis. Use them when the interferogram contains dust or contamination, saturated glare, edge artifacts, or clips and supports. Exclude only clearly invalid regions — do not over-mask the image, or the fit may become unstable.
MTF Popup
Open this tool from Analysis → Calculate MTF. The popup includes:
Diameter (mm)Optic TypeMirror ROC (mm)orLens EFL (mm)Plot Frequency (cy/mm)Calculate MTF- MTF plot area
- Status area
Recommended workflow
- Verify the current wavefront result is valid.
- Open
Calculate MTF. - Confirm optic parameters.
- Choose
MirrororLens. - Set an appropriate frequency range.
- Use
Calculate MTF. - Interpret the sagittal, tangential, and radial-average curves.
MTF curve interpretation
The plot shows three curves:
- Sagittal — drawn in red.
- Tangential — drawn in blue.
- Radial average — drawn as a dashed black line.
The horizontal axis is spatial frequency in cycles per millimetre. The vertical axis is modulation, from 0 (no contrast) to 1 (full contrast). The plot limit is set automatically to where the radial-average curve drops below 10% modulation, but the operator can override it using the Plot Frequency (cy/mm) spinbox.
Interaction with Spherical Null
If Spherical Null is active in the Setup tab, the MTF popup may lock the optic parameter entries and display a notice. Direct the operator back to the Setup tab to change the optic parameters.
Saved Data Types
Wavefront Pro commonly works with these file types:
- Interferogram input files:
.png,.jpg,.jpeg,.bmp - Image exports:
.png - Average wavefront files:
.npz - Reference wavefront files:
.npz - Reports:
.pdf
.npz wavefront files are intended for reuse inside Wavefront Pro — saving a good average result for later comparison, building a reusable reference library, or sharing references between sessions. Do not describe .npz as a general image format.
Best Practices
First-time setup
- Confirm camera or file input first.
- Set the correct wavelengths on the
Setuptab. - Configure the interferogram circle and obscuration before judging any metrics.
- Only then start adjusting advanced options such as reference subtraction, Zernike term removal, or MTF.
Stable measurements
- Use a clean, well-centered interferogram.
- Avoid clipping the aperture circle.
- Use exclusion regions for truly invalid areas only.
- Let live acquisition settle before saving or averaging.
- Use paused-frame mode when the operator wants to inspect a single live capture carefully.
Reference subtraction
- Build references from stable, representative measurements.
- Save reference files with meaningful names outside the app if traceability is needed.
- Re-check
Wavefront Angle (deg)if subtraction makes the result look worse instead of better.
Averaging
- Start from a valid single-frame solution.
- Choose a
Moving Window Sizeappropriate for the measurement stability: start with a small value and increase if more smoothing is needed. - Watch whether
N Framesis increasing toward the window size. - If it stalls, either the RMS limit is too strict or the measurement is unstable.
- Be aware that changing
Moving Window Sizerestarts the averaging buffer.
Zernike term control
- Change one term at a time when teaching or troubleshooting.
- Re-check the wavefront map, section plot, and metrics after each change.
- Be explicit that excluded terms are intentionally removed from the fit, not measured as zero in the raw optic.
Export
- Fill in
Part #,Serial #,Client,Project, andNotesbefore generating a PDF report. - Generate the report only after the displayed result is the intended one.
- Remember that
Display ReferenceorDisplay Residualchanges what the operator is looking at.
Default Configuration Values
The following defaults are used when the app starts with no saved configuration:
| Setting | Default |
|---|---|
| Laser Wavelength | 532 nm |
| Reference Wavelength | 550 nm |
| Wavefront Size | 256 px |
| Double Pass Mode | Off |
| Invert Wavefront | Off |
| Spherical Null | Off |
| Camera Auto Exposure | On |
| Averaging RMS Limit | Set automatically on Start |
| Zernike terms disabled by default | Piston, Y-tilt, X-tilt, Defocus |
Settings that persist between sessions (saved to disk on exit): laser wavelength, reference wavelength, wavefront size, double pass mode, Zernike disabled terms, camera brightness and exposure preference, mirror geometry, and login preference.
Quick Problem-to-Action Map
If the operator says this, the assistant should direct them here:
| Operator says… | Direct them to… |
|---|---|
| I do not have a camera connected. | File → Open igram |
| I want the live feed back. | File → Stream camera |
| The aperture circle is wrong. | Configure Igram |
| There is a central obstruction. | Configure Igram → Obscuration |
| Part of the image is bad. | Configure Igram → exclusion regions |
| The result is noisy. | Verify circle and masking first, then try Wavefront Averaging or a small FFT filter adjustment. |
| I need to subtract a known system signature. | Reference Management |
| I want a one-frame freeze from the live feed. | Pause camera |
| I want a formal deliverable. | File → Generate PDF report |
| I need image-performance curves. | Analysis → Calculate MTF |
Troubleshooting Guide
No camera detected
- Check the physical connection.
- Prefer a USB 3.0 port when applicable.
- Confirm camera drivers are installed.
- Restart the application or use
Restart Camera. - Continue with
Open igramif immediate analysis is still needed.
Live result looks wrong
Check these in order:
- Is the correct interferogram source selected?
- Is the outer circle correct?
- Is obscuration set correctly?
- Are exclusion regions masking valid data?
- Are the wavelength settings correct?
- Is
Subtract Reference,Display Reference,Display Residual,Double Pass Mode, orInvert Wavefrontactive? - Have important Zernike terms been unchecked?
Reference file will not load
Likely causes:
- The file is not a Wavefront Pro
.npzwavefront file. - The saved wavefront size does not match the current
Wavefront Size.
PDF report will not generate
Likely causes:
- No valid current result exists.
- The required PDF backend is not installed on the system.
Averaging is not accumulating frames
Likely causes:
- The current RMS is above the acceptance limit.
- The measurement is unstable.
- The interferogram setup is poor.
Controls do not respond in the interferogram popup
Tell the operator to click inside the popup first so it receives keyboard focus.
Operator Cues an Assistant Should Watch For
These phrases usually indicate a specific hidden state:
- "The pause button says Resume camera." → the app is using a frozen frame, not a live stream.
- "I see Loaded: … under the image." → the app is analyzing a file from disk.
- "Add Wavefront is disabled." → reference subtraction or alternate display mode is probably active.
- "The MTF fields are locked." →
Spherical Nullis probably controlling optic parameters. - "I only see the reference, not the measurement." →
Display Referenceis enabled. - "The map looks like leftovers or error only." →
Display Residualmay be enabled.
Frequently Asked Questions
Can the software be used with existing interferometer hardware?
Yes. The software works as a stand-alone solution when paired with compatible cameras. It does not require a proprietary interferometer; it can be integrated into any existing optical test bench that can deliver a fringe image to the camera.
Which cameras are supported?
The Basler 'dart' and 'ace' global shutter camera families are currently well supported, making the software versatile for various interferometer setups. These cover C-mount and CS-mount variants. Canon EOS cameras compatible with the Canon EOS Webcam Utility can also be used as UVC/webcam sources. If an operator asks whether a specific Basler model works, check that it is a global shutter camera in the ace or dart series.
What are the system requirements?
Wavefront Pro runs on Windows with minimal requirements:
- Windows 10 or later
- 4 GB RAM
- Intel Core i3 or equivalent processor
- 500 MB of available storage space
Any modern computer should handle the software without difficulty. Linux support is also available but is currently experimental.
Is it suitable for production environments?
Yes. The system is designed for easy integration into production environments. The interface is designed to minimize training time. It is built to withstand the operational conditions of an optical manufacturing floor.
Can I export and save the results?
Yes. Wavefront data can be exported in multiple formats for sharing and further analysis. A comprehensive test report can also be generated and saved as a PDF, including wavefront maps, Zernike coefficients, and optical metrics.
Can the software be used with multiple users?
Yes. The software supports multiple users, each with their own login credentials. It can be installed on multiple machines, allowing different users to access and utilize the software independently.
Suggested Assistant Response Style
When guiding a human through this app:
- Use exact UI labels.
- Give one action per message when the operator is uncertain.
- Ask the operator what they see after each major action.
- Confirm whether they are in live, paused, or loaded-image mode before giving acquisition instructions.
- Prefer correcting interferogram setup before recommending advanced analysis changes.
This application is easiest to guide when the assistant treats it as a measurement workflow with explicit states rather than a generic image viewer.