ApertureLab is one window for scene authoring, simulation, beamforming, and image inspection. Below: the panels and dialogs that make up the workflow, captured against a live scene.
What is in the window
The same Python runs natively on a workstation and, staged unchanged, under WebAssembly in a browser tab, separated by one function that asks which of the two it is in. Rendering is a pure software rasterizer, so nothing depends on a GPU being present to draw the interface, only to run the physics.
The object library, seafloor painting, the scene tree, a 2D plan viewport, the texture node editor, procedural and bottom features, the Fourier-wavefield parameters, run history, the output viewer, the validator, and the log all dock into one workspace. Undo and redo cover every gesture, grouped so that one drag is one undo.
A live validator runs twenty physics and geometry design rules against the scene as you edit, and blocks a run on an error rather than letting it fail forty minutes into a simulation. Vehicle tracks can be drawn freehand and are fitted to a spline, with altitude and speed per anchor and roll, pitch and yaw derived from a vehicle-response model.
Beyond authoring there are inspectors: a single-look-complex viewer with despeckling, a sub-aperture look sweep and a quadratic-phase-error tile readout, a side-scan waterfall, a mesh inspector, and a 3D scene view.
A single window for scene authoring, simulation, beamforming, and image inspection.

Sonar geometry, beam-pattern derivation, and end-to-end output preferences (HDF5, XTF, DRC images).




Wall clock to form one image, measured end to end against scene density and compared with the sonar's own collection time, is on its own page: Performance.
The point-scatterer observation model is derived in full, with the wavefront solver, the amplitude terms, shadowing, speckle statistics, calibration and the GPU kernel, on the simulation page.