# Wavefront Pro User Manual ## Purpose 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. ## How An Assistant Should Use This Manual When helping an operator, start by establishing four facts: 1. Are they using a live camera, a paused camera frame, or a previously saved interferogram image? 2. Are they on the `Test` tab, the `Setup` tab, or inside a popup such as `Interferogram Configuration` or `Modulation Transfer Function`? 3. Is their goal setup, measurement, reference handling, MTF analysis, or export? 4. Do they want to fix a problem now, or are they trying to learn the workflow from scratch? Useful prompt pattern for an assistant: 1. Ask the operator to name the tab or dialog they currently see. 2. Ask them to read the exact label of the control they want to use. 3. Give one concrete next action at a time. 4. 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, where a connected camera continuously feeds the app. - Static-image mode, where 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: 1. Launch the app and sign in if prompted. 2. Connect to a camera, skip camera setup, or continue without a camera. 3. Go to the `Setup` tab and confirm wavelength and analysis settings. 4. Go to the `Test` tab and verify that a valid interferogram is visible. 5. Open `Configure Igram` and fit the outer circle, obscuration, and any exclusion regions. 6. Watch the live metrics and plots update. 7. Optionally build an average wavefront or a reference wavefront. 8. Save images, wavefront data, or generate a PDF report. 9. Optionally run `Calculate MTF` from the `Analysis` menu. ## Startup Experience ### Login Depending on deployment settings, the operator may first see a login window with: - `Email Address` - `Password` - `Remember me` - `Sign In` - `Reset Password` - `Cancel` Guidance for an assistant: - 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 install` to update immediately. - Use `Cancel` to 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 uses `Skip`. - If no cameras are found, the popup explains recovery steps and offers `Continue` or `Exit`. 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 - `File` - `Analysis` - `Help` ### Tabs - `Test` - `Setup` ### 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. The exact window is large and information-dense. When guiding a user, refer to controls by screen position only after naming the exact panel title. ## File Menu The `File` menu is central to acquisition and export. Available commands: - `Stream camera` - `Open igram` - `Generate PDF report` - `Save screenshot` - `Save interferogram` - `Save wavefront` - `Save surface` - `Log out` - `Exit` ### 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. Important behavior: - `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 or JPEG - BMP Once loaded: - The app switches into static-image analysis. - The loaded filename is shown below the interferogram view. - `Pause camera` becomes unavailable because the image is already static. - `Stream camera` becomes the way back to live acquisition. #### Generate PDF report Creates a PDF report containing: - Test metadata from the `General` section - RMS, P-V, and Strehl metrics - The interferogram image - The fitted wavefront map - The residual wavefront map - The 3D surface plot - 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 that marks any term that was unchecked at the time the report was generated. If there are no valid current results, the app will not generate a report. Operational note: - 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: - `About` - `Contact us -> Report bug` - `Contact 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\\AppData\Local\Programs\Wavefront Pro\app.log` on Windows. ## Setup Tab The `Setup` tab contains two groups: - `Camera Settings` - `Configuration` Use this tab for system-level analysis settings rather than per-measurement metadata. ### Camera Settings Visible controls: - `Auto` - `Auto Target Brightness` slider - `Exposure Time` slider - `Restart 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. - Brightness targeting is disabled. Best use: - Use automatic mode first for initial acquisition. - Switch to manual exposure only when the camera cannot achieve the desired brightness automatically. Important behavior: - If the app warns that the auto brightness limit has been reached, tell the operator to disable `Auto` and lower exposure manually. Note: The auto-exposure checkbox is only visible and available when the connected camera supports that feature. It is hidden automatically for cameras that do not support it. #### 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 Size` - `Double Pass Mode` - `Invert Wavefront` - `Spherical Null` When `Spherical Null` is enabled, an additional parameter box appears with: - `Diameter (mm)` - `Mirror ROC (mm)` - `Conic Constant` #### Laser Wavelength Use this for the physical source wavelength used to acquire the interferogram. #### Ref Wavelength Use this for the wavelength at which results should be reported. Available options: - 532 nm - 550 nm (default) - 632.8 nm Important interpretation rule: - Reported wavefront values and metrics are expressed at the reference wavelength. #### Wavefront Size This sets the resolution of the wavefront model used for analysis and display. Available options (pixels): - 256 (default, fastest) - 512 - 724 - 1024 (slowest, highest detail) Practical guidance: - Smaller sizes are faster. - Larger sizes can show more detail but demand cleaner data and more computation. - If the operator changes this value, 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 this 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. - The optic geometry inputs become part of the active analysis setup. - The MTF tool may lock to these values rather than using independent inputs. ## Test Tab The `Test` tab contains three left-side control sections: - `General` - `Wavefront Averaging` - `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 #### What averaging does 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 1. Get a stable live result first. 2. Open `Configure Igram` and confirm the crop and obscuration are correct. 3. Set `Moving Window Size` to the desired number of frames. 4. Start averaging. 5. Watch `N Frames` increase up to the window size. 6. If too few frames are accepted, raise the RMS limit slightly or improve stability. 7. Use `Save to File` when 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. #### Saved format 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 This section is for building, loading, rotating, displaying, and subtracting reference wavefronts. #### Reference concepts - `Display Reference` shows the reference itself instead of the current measurement. - `Subtract Reference` subtracts the reference from the active result. - `Display Residual` shows the residual map rather than the fitted wavefront. - `Wavefront Angle (deg)` rotates the reference alignment in 45 degree steps. #### Recommended reference workflow 1. Establish a stable measurement with correct interferogram setup. 2. Use `Add Wavefront` one or more times to build a reference from current results. 3. Confirm `N Frames` increases as expected. 4. If necessary, adjust `Wavefront Angle (deg)` for alignment. 5. Enable `Subtract Reference` to remove the reference from subsequent results. #### Loading references from disk Use `Add from Files` to load one or more previously saved reference wavefront files. Important constraints: - Files are expected to be `.npz` wavefront files. - Loaded references must match the current wavefront size. - If several files are loaded, they are accumulated. #### Saving references Use `Save to File` to store the current accumulated reference as a `.npz` file. #### Button-state rules an assistant should know - `Add Wavefront` is disabled while reference subtraction or alternate display modes are active. - `Display Reference` and `Display Residual` are mutually constrained so the app only shows one alternate view at a time. ## Result Panels On The Test Screen ### Interferogram View This panel shows the current live, paused, or loaded interferogram. Visible controls under the image: - `Configure Igram` - `Pause camera` or `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 `Pause camera` freezes the current live frame and switches the app into static-frame analysis. `Resume camera` returns to live acquisition. This is useful when the operator wants to inspect or report on a single captured frame without loading a separate image file. ### Interferogram Section This plot 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 This plot shows orthogonal wavefront slices through the current wavefront result. Visible controls: - Section angle slider - `Y-limits` spinbox Important behavior: - 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 — so the operator can simultaneously see two cross-sections of the wavefront. - **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 after manually adjusting `Y-limits` too far. - `Y-limits` defaults to 0.25 wavelengths and can be adjusted in 0.05 increments. Use `Y-limits` when the operator wants to zoom vertically into small wavefront structure or zoom out to see the full error range. ### 2D Wavefront Map This is 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 The metrics panel displays: - `RMS` - `P-V` - `Strehl` Guidance for an assistant: - Quote metrics exactly as displayed. - If the operator asks why a metric changed suddenly, first check whether they enabled `Subtract Reference`, `Display Reference`, `Display Residual`, `Double Pass Mode`, `Invert Wavefront`, or changed wavelengths. ### 3D Surface Plot This panel provides a three-dimensional view of the wavefront shape. Visible controls: - `Z-limits` spinbox (below the plot) `Z-limits` sets the symmetrical vertical clipping range for the 3D surface. Increasing it zooms out vertically; decreasing it clips to focus on a narrower wavefront range. The app sets this automatically on the first valid result but the operator can adjust it manually at any time. Use the surface plot for quick interpretation of surface form, but rely on the 2D map and metrics for more precise numeric guidance. ### Zernike Panel This is a scrollable list of Zernike terms with checkboxes. Use it to include or exclude individual terms from the displayed fit. Interpretation rule: - Checked terms are included in the fit. - Cleared terms are removed from the fit. Operational consequences: - The displayed wavefront changes immediately when terms are toggled. - Exported and reported coefficients reflect the current selection state. Use the mouse wheel to scroll this panel when the list does not fit on screen. #### Default disabled terms The following terms are unchecked (zeroed) by default. They are fitted internally to improve accuracy but are removed from the displayed result: - Piston - Y-tilt - X-tilt - Defocus If an operator reports that tilt or defocus is missing from their analysis result, confirm whether these terms are unchecked. If the operator needs to see the raw tilt or defocus content, they should re-enable those checkboxes. #### Full list of named Zernike terms displayed The panel lists terms in ANSI/ISO order. Named aberrations that appear include: - Piston - Y-tilt, X-tilt - Oblique astig, Defocus, Vertical astig - Sin trefoil, Y-coma, X-coma, Cos trefoil - 2nd oblique astig, Spherical, 2nd vertical astig - Higher-order coma, astigmatism, trefoil, and spherical terms through the 12th radial order Higher-order terms beyond the named entries appear in the list but are presented without a common name. #### OSA/ANSI index scheme Wavefront Pro uses the **OSA/ANSI standard single-index scheme** (defined by the Optical Society of America and ANSI, adopted in ophthalmic and precision optics standards) to enumerate Zernike terms. This is the same scheme used in the R `zernike` reference package. Each term is identified by two parameters: - **n** — radial order (non-negative integer). Controls the radial complexity of the mode. - **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: $$j = \frac{n(n+2) + m}{2}$$ This produces a 0-based sequential index. Indices run through all (n, m) pairs in increasing radial order, and within each radial order from most-negative m to most-positive m. The first few mappings are: | 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: $$n = \left\lfloor \frac{\sqrt{8j+1} - 1}{2} \right\rfloor, \quad m = 2j - n(n+2)$$ **Annular Zernike polynomials**: The app supports annular pupils (central obscurations). When an obscuration ratio ε > 0 is set, the fitted polynomials are the Zernike annular variants, which are orthogonal over the annular aperture, not the full disk. This is mathematically important: annular Zernike coefficients are **not** directly comparable to circular Zernike coefficients computed at ε = 0 for the same optical surface. The index assignment (j, n, m) is unchanged; only the radial polynomial basis functions differ. **Coefficient units**: All coefficients are reported in **waves** (λ). One wave equals the reference wavelength selected in the `Configuration` section of the Setup tab (default 550 nm). **Fitting order**: 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 via normal equations) 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 - An FFT view with filter controls ### Main controls in the popup - `Outer diameter` slider - `Obscuration` checkbox and slider - `Auto-fit Circle` - FFT `Filter radius` slider and numeric label - `Save and Close` ### FFT view in the popup The right half of the `Interferogram Configuration` popup shows the 2D Fourier transform of the current interferogram. This is used to set the `Filter radius`, which controls which spatial frequencies are kept when extracting fringe information from the interferogram. The FFT view displays a bright central DC region and a pair of offset bright lobes corresponding to the carrier fringe frequency. Practical guidance: - The filter circle is overlaid on the FFT view. Its radius should be set so that it captures one of the fringe lobes while not 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. - The FFT updates live while in `Configure Igram` mode, so adjustments take effect immediately. ### Purpose of the popup This is where the operator defines what part of the interferogram should be analyzed. Use it to: - Set the outer aperture circle - Define a central obscuration - Exclude bad regions from analysis - Tune FFT filter radius ### Recommended setup workflow 1. Open `Configure Igram`. 2. Use `Auto-fit Circle` first. 3. Check whether the outer circle cleanly follows the usable aperture. 4. If needed, redraw the circle manually. 5. Enable `Obscuration` if the optic has a central obstruction. 6. Add exclusion regions for defects, clips, glare, or invalid image areas. 7. Adjust the FFT `Filter radius` if fringe extraction needs refinement. 8. Use `Save and Close`. ### Mouse and keyboard controls in the popup These controls are important and should be given exactly when guiding a user. - 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. Guidance note: - If arrow keys or `+` 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 - Clips, supports, or non-optical obstructions Best practice: - Exclude only clearly invalid regions. - Do not over-mask the image, or the fit may become unstable or less representative. ### FFT Filter Radius This controls the spatial filter used during interferogram processing. Practical guidance: - If the result is noisy, try modest adjustments. - If the result loses valid structure, undo aggressive changes. - Change this only after the aperture circle and exclusion regions are already correct. ## MTF Popup Open this tool from `Analysis -> Calculate MTF`. The popup includes: - `Diameter (mm)` - `Optic Type` - `Mirror ROC (mm)` or `Lens EFL (mm)` - `Plot Frequency (cy/mm)` - `Calculate MTF` - MTF plot area - Status area ### What it is for Use this tool when the operator wants image-performance information derived from the current wavefront. ### Recommended workflow 1. Verify the current wavefront result is valid. 2. Open `Calculate MTF`. 3. Confirm optic parameters. 4. Choose `Mirror` or `Lens`. 5. Set an appropriate frequency range. 6. Use `Calculate MTF`. 7. 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 on the frequency axis 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. - The popup may display a notice that optic parameters are controlled by the run setup. When that happens, 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` ### What `.npz` wavefront files are for These files are intended for reuse inside Wavefront Pro. Common use cases: - Save a good average result for later comparison. - Build a reusable reference library. - Share a reference wavefront between sessions. When guiding a user, do not describe `.npz` as a general image format. It is a saved analysis-data format. ## Best Practices ### Best practice for first-time setup 1. Confirm camera or file input first. 2. Set the correct wavelengths on the `Setup` tab. 3. Configure the interferogram circle and obscuration before judging any metrics. 4. Only then start adjusting advanced options such as reference subtraction, Zernike term removal, or MTF. ### Best practice for 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. ### Best practice for reference subtraction - Build references from stable, representative measurements. - Save reference files with meaningful names outside the app if the operator needs traceability. - Re-check the `Wavefront Angle (deg)` if subtraction makes the result look worse instead of better. ### Best practice for averaging - Start from a valid single-frame solution. - Choose a `Moving Window Size` appropriate for the measurement stability: start with a small value and increase if more smoothing is needed. - Watch whether `N Frames` is 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 Size` restarts the averaging buffer. ### Best practice for 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 being intentionally removed from the fit, not measured as zero in the raw optic. ### Best practice for export - Fill in `Part #`, `Serial #`, `Client`, `Project`, and `Notes` before generating a PDF report. - Generate the report only after the displayed result is the intended one. - Remember that `Display Reference` or `Display Residual` changes what the operator is looking at. ## Default Configuration Values The following defaults are used when the app starts with no saved configuration. An assistant can use these as a reference when the operator describes unexpected values. | 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 usually direct them here: - `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 Tell the operator to: 1. Check the physical connection. 2. Prefer a USB 3.0 port when applicable. 3. Confirm camera drivers are installed. 4. Restart the application or use `Restart Camera`. 5. Continue with `Open igram` if immediate analysis is still needed. ### Live result looks wrong Check these in order: 1. Is the correct interferogram source selected? 2. Is the outer circle correct? 3. Is obscuration set correctly? 4. Are exclusion regions masking valid data? 5. Are the wavelength settings correct? 6. Is `Subtract Reference`, `Display Reference`, `Display Residual`, `Double Pass Mode`, or `Invert Wavefront` active? 7. Have important Zernike terms been unchecked? ### Reference file will not load Likely causes: - The file is not a Wavefront Pro `.npz` wavefront 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 Null` is probably controlling optic parameters. - `I only see the reference, not the measurement.` -> `Display Reference` is enabled. - `The map looks like leftovers or error only.` -> `Display Residual` may be enabled. ## Frequently Asked Questions These are the officially published FAQs for Wavefront Pro. Use them to answer common questions from operators and evaluators. **Can the software be used with existing interferometer hardware?** Yes. The software works as a stand-alone solution when paired with compatible Basler 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 that are 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.