From 59c0997636108a6961776e97b4aad310453b73f4 Mon Sep 17 00:00:00 2001 From: Denis Groshev Date: Wed, 4 Nov 2026 20:06:34 +0100 Subject: [PATCH] docs(cockpit): describe the orbital view's sensor-aware zoom The Orbital view section said the zoom stops at 8x. It now covers the 16x to 128x steps for satellites with a confirmed sensor swath, capped from live altitude, the mouse wheel, the SENSOR button, the to-scale swath strip and readout (approximate off nadir), the imagery pre-load ahead of the ground track, the TLE age on the identifier line, and that the sensor values cite operator and agency pages per platform. --- docs/CURRENT-STATE.md | 48 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index 653ba1d99..8eacf04bb 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -1639,13 +1639,42 @@ and the saved cloud preference stands for the next aircraft or bridge. The layer companions, its own orbit ring and its detection bracket, and draws every other orbit ring (the ISS ring included) at 30% of its alpha; other satellites' points and labels stay. Scene clicks and the layer's Escape are -ignored while it is ridden. The optical zoom steps 1×, 2×, 4× and 8× with `+` -(or `=`) and `-` (or `_`) and the panel's buttons: the 1× frame is 60° -vertical in low orbit and fits the Earth's disk with margin from high orbits, -each step divides the tangent of the half-angle, and Cesium's `frustum.fov` -is set from it for the canvas aspect. A step animates over 400 ms with a -focus-pull blur and a reticle lock tick, and cuts at once under -`prefers-reduced-motion`. The arrows tilt the view off nadir in 5° steps +ignored while it is ridden. The optical zoom steps 1×, 2×, 4× and 8× for +every satellite with `+` (or `=`) and `-` (or `_`), the panel's buttons and +the mouse wheel (one step per notch; trackpad scrolling is summed to a step): +the 1× frame is 60° vertical in low orbit and fits the Earth's disk with +margin from high orbits, each step divides the tangent of the half-angle, and +Cesium's `frustum.fov` is set from it for the canvas aspect. A step animates +over 400 ms with a focus-pull blur and a reticle lock tick, and cuts at once +under `prefers-reduced-motion`. An imaging satellite matched to an entry of +the bundled sensor pack (`src/data/local_data/imaging_sensors/`, by NORAD +number or name in `src/layers/satellites/sensors.js`) whose narrowest swath +is confirmed also gets 16×, 32×, 64× and 128×, each only while the view at +the satellite's live altitude and the window's shape is still at least as +wide as that swath (`orbitalMaxZoom` in `src/cockpitOrbital.js`); when the +cap falls below the zoom shown, the view steps back to it. Unconfirmed +swaths add no steps. The sensor's swath is drawn to scale as a strip along +the ground track with a SENSOR SWATH readout, and a SENSOR button zooms +to exactly that width when it lies between 1× and the cap. Tilted off nadir +the strip stays (view and swath widen alike), the readout scales as the swath +readout does (`SENSOR SWATH ≈ 191 KM`), and SENSOR, a nadir framing, is +hidden. A swath is confirmed only on the operator's, an agency's (ESA's +eoPortal included) or an academic page for its platform. From +16×, with flat imagery on the globe (not Google 3D tiles) and the view at +nadir, every 2 s the view asks the base imagery layer for the tiles it will +need 5 to 20 s ahead along the ground track (`prefetchImageryAhead` in +`src/ui/cockpitOrbitalView.js`), so the browser has them cached when the +view arrives. The level is the one Cesium will draw there +(`imageryLevelForView` in `src/cockpitOrbital.js`, following Cesium's own +choice: the terrain level whose error spans at most the globe's maximum +screen-space error, then the imagery level whose texels are nearest that +error, about one to two screen pixels per texel). It asks for at most 12 +tiles at a time through Cesium's request scheduler, throttled per server and +at the lowest priority, so a request is declined while the imagery server's +slots are taken by the tiles on screen and is the first dropped when the +scheduler is full (a declined tile is asked for again later); it remembers the last 512 tiles asked for and does not ask +for those again. While tilted off nadir the view looks away from the track, +so nothing is pre-loaded. The arrows tilt the view off nadir in 5° steps along the frame's axes (Up/Down tilt forward/aft along the ground track, Left/Right across it, each axis to ±45°; Shift takes no larger step); Home, `0` or NADIR return to nadir. While tilted the panel shows the total angle @@ -1681,8 +1710,9 @@ the band rather than leave the last place up, and the next HUD beat looks again. The readout card puts the owner country's flag (an SVG from `flag-icons`, fetched only for the shown country) or a text badge for an organisation before the name, the operator -under it, and a NORAD · COSPAR · TLE-epoch line whose TLE button unfolds the -two element lines; each row is left out when the satellites layer does not +under it, and a NORAD · COSPAR · TLE-epoch line, ending with the element +set's age (`<1 H OLD`, then whole hours, then whole days), whose TLE button +unfolds the two element lines; each row is left out when the satellites layer does not know it. The aircraft and bridge instruments, tapes, compass, radar, look controls, position readout, route card and Contact card are hidden; the vision-style