Versioned as v[major].[three-digit-minor] — e.g. v5.040.
Added Subresource Integrity (SRI) hash to the Three.js CDN script tag, fetched from cdnjs's own official SRI repository. Last gap in the client-side security surface.
Fixed light-mode button contrast: active-state mode toggles used a hardcoded light cream text on what became a light peach background — contrast ratio was 1.54:1. Fixed to 4.76:1, passing WCAG AA.
Added dark/light mode toggle (🌙/☀️) in the header. 3D viewport and Sky Coverage plots intentionally kept dark in both modes.
3D Preview layout refinements: legend text moved beside the wireframe canvas, then later made toggleable ("Show Wire frame legend"). "Drag to orbit, scroll to zoom." repositioned and colored amber. Camera distance tuned through several iterations, settling at 5.
Subtitle text removed from page header. Layout restructured from 3 to 4 columns: Step 3 (Optical Axis) moved to column 2, Local Horizon to the bottom of column 2, Step 4 (Telescope Pointing) to column 3.
Versioned as v1.00.00, incrementing .00.01 per change.
Panel 1 and Panel 2 now use centimetres. All read sites updated to convert cm→mm internally; underlying physics math unchanged.
Split telescope measurement units: tube length and aperture stay in mm; offset and lateral offset converted to cm.
Swing Clearance panel now collapsible, matching Sky Coverage.
Swing Clearance panel moved to sit directly below Sky Coverage.
Telescope measurements converted to cm. Center-point markers added for each offset telescope in the plan-view diagram.
Plan-view swing circles separated by lateral offset and individually labeled (T1/T2 etc.).
Up to 4 telescopes with lateral offset, swing-radius wall clearance, telescope-to-telescope collision checking (parallel cylinder model), plan-view diagram, 3D swing spheres.
3D Preview moved above Local Horizon. Layout collapsed from 4 to 3 columns.
Wedge (mono-slope) added as a third roof shape. Flip checkbox for slope direction. Trapezoidal 3D prism shape.
Custom wall shape system: up to 6 walls as a general convex polygon (half-planes). Roll-off wall correctly extended by roofTravel in polygon mode. Caught and fixed a bug where the roof wall distance was not being extended before intersection.
Rectangular building, flat/peaked roof, roof-travel distance, local terrain horizon (.hrz import), full-sky coverage, GEM/AltAz mounts, full pointing constraints, 3D preview, dark/light mode, Save/Load, Reset, SRI hash, horizon-file export.