🖱 Mouse — main map
| Left button + drag |
Rotate the globe / change viewing angle |
| Scroll wheel |
Zoom in / out (switches zoom 3 → 5 → 8 → 10) |
| Shift + wheel |
Slow zoom — fine-tuning camera distance |
| Shift + drag |
Slow rotation — precise aiming |
| Click on an aircraft |
Select aircraft — shows its track for the last N hours |
| Right-click on aircraft / ISS |
Chase mode — camera locks onto the object |
| Right-click on an airport |
Airport mode — hi-res imagery and orbit around the point |
| Right-click on empty space |
Free look — look around without rotating the planet |
| Click on the same aircraft again |
Deselect and remove its track |
🔍 Camera & Zoom buttons
| Zoom 3 / 5 / 8 buttons |
Instantly jump to a specific altitude (Global, Regional, Detailed) over the center of your screen. |
| Mode reset |
Clicking any Zoom button automatically exits Chase mode, Airport mode, or Free Look. |
Fast navigation: If you get lost or want to quickly switch from a close-up view to a global overview, use the Zoom 3 / 5 / 8 buttons in the control panel.
🎯 Chase mode — following an aircraft
| Hold left + drag |
Orbit the aircraft — fly around it with the camera |
| Scroll wheel |
Change distance to the aircraft — zoom in / out |
| Shift + drag |
Fine orbit control |
| Esc |
Exit chase and return to global view |
| Right-click on empty space |
Also exits chase |
Aircraft label: while chasing, a purple info panel appears next to the
aircraft showing callsign, altitude, speed, heading and type. The label follows
the aircraft automatically.
Drag the label: hold the left mouse button
on the panel and move it anywhere on the screen — it stays attached to the aircraft
with your chosen offset.
🛬 Airport mode
| Right-click on an airport dot |
Enter airport mode — camera flies to the airport |
| Hold left + drag |
Orbit around the airport — rotate and tilt the view |
| Scroll wheel |
Change altitude / distance above the airport |
| Esc |
Exit airport mode and return to the global view |
Airport mode loads a high-resolution zoom-14 tile block and lifts the terrain
under the runway slightly, so the runway sits flush on the surface.
📼 Replay & Incidents
| Toggle Replay / Incidents |
Switch between recorded sessions and historical emergency situations (Squawk 7700) |
| Click a session/incident entry |
Select a recording or incident — the Play button becomes active |
| Click ▶ Play |
Start playback. (For incidents, the camera automatically flies to the start of the trajectory) |
| Click ⬇ Export |
Save the selected session or incident as a file on your computer |
| Click ⬆ Import |
Open a previously saved file — playback starts automatically |
| Drag & drop a file onto the map |
Same as Import — just drop the file onto the globe |
| Speed slider |
Playback speed (0.2× – 10×) |
| Seek slider |
Jump to any point in the recording |
| Stop |
Stop playback and return to live mode |
Export format: the file is gzip-compressed JSON
(.json.gz) — it contains all aircraft positions, plus the ISS track for the
same period. A 1-hour session typically fits into 2–5 MB, a 10-hour session into
20–35 MB.
Everything stays on your computer. Export builds the file locally in your
browser — no data is uploaded to any server. Import reads the file directly from your disk.
Session recordings can be replayed offline without connecting to OpenSky.
⌨ Keyboard
| Shift (hold) |
Slow down any rotation or zoom — precise control |
| Esc |
Reset view — return to whole-planet overview and exit all modes |
Tip: if the camera flew away or you got lost in the UI — press Esc.
It exits any mode (chase, airport, free look) and returns to the default viewpoint.
✈ Quick actions
Find an aircraft
Type ICAO or callsign in the search box → Enter
Chase
Right-click on an aircraft — camera follows it
Orbit
While chasing, hold the left button and drag — orbit the object
Exit chase
Esc or right-click on empty space
Save a recording
Select a session → click ⬇ Export
Watch a saved replay
⬆ Import or drag a .json.gz file onto the map
👆 Gestures — main map
| 1 finger + drag |
Rotate the globe / change viewing angle |
| 2 fingers |
Zoom: pinch in to zoom in, spread to zoom out |
| Tap on an aircraft |
Select aircraft — shows track and highlights it |
| Tap on the ISS |
Select the ISS — shows its orbit and highlights it |
| Long press on aircraft |
Chase mode — camera follows the aircraft |
| Long press on airport |
Airport mode — detailed imagery and orbit |
| Double tap |
Zoom in to the point (quick zoom-in) |
Long press — hold your finger on the object for about 0.5 seconds
until haptic feedback triggers (if supported by the device).
🔍 Camera & Zoom buttons
| Zoom 3 / 5 / 8 buttons |
Instantly jump to a specific altitude (Global, Regional, Detailed) over the center of your screen. |
| Mode reset |
Clicking any Zoom button automatically exits Chase mode, Airport mode, or Free Look. |
🎯 Chase mode — following an aircraft
| 1 finger + drag |
Orbit around the aircraft — fly around with the camera |
| 2 fingers |
Change distance to the aircraft — zoom in / out |
| ✕ Exit button (top of screen) |
Exit chase and return to the global view |
| Tap on empty map space |
Also exits chase |
Aircraft label: while chasing, a purple info panel appears next to the
aircraft showing callsign, altitude, speed, heading and type. The label follows
the aircraft automatically.
Move the label: press and hold the panel with one finger, drag it
anywhere on the screen — it stays attached to the aircraft with your chosen offset.
🛬 Airport mode
| 1 finger + drag |
Orbit around the airport — rotate and tilt the view |
| 2 fingers |
Change altitude / distance above the airport |
| ✕ Exit button (top of screen) |
Exit airport mode and return to the global view |
The airport name label is shown near the airport point while in this mode. Tap the
✕ Exit button at the top to leave.
📼 Replay & Incidents
| Toggle Replay / Incidents |
Switch between recorded sessions and historical emergency situations (Squawk 7700) |
| Tap a session/incident entry |
Select a recording or incident — the Play button becomes active |
| Tap ▶ Play |
Start playback. (For incidents, the camera automatically flies to the start of the trajectory) |
| Tap ⬇ Export |
Save the selected session or incident as a file on your device |
| Tap ⬆ Import |
Open a previously saved file — playback starts automatically |
| Speed slider |
Playback speed (0.2× – 10×) |
| Seek slider |
Jump to any point in the recording |
| Stop |
Stop playback and return to live mode |
File size: a 1-hour session fits into 2–5 MB even with several
thousand aircraft. Long sessions (8+ hours) may produce large files — on older phones
avoid importing files larger than 30–50 MB to keep the browser responsive.
Everything stays on your device. The file is created and opened locally
in your browser — nothing is uploaded to any server. You can watch a saved replay offline.
🎛 Control panel
| Tap the ▶ / ◀ handle |
Expand / collapse the settings panel |
| Swipe up on the handle |
Expand a collapsed panel (alternative to tapping) |
| Tap a session entry |
Select a session for playback, then tap Play |
| Speed slider |
Replay playback speed (0.2× – 10×) |
| Seek slider |
Jump to any point in the recording |
| Size model slider |
Size of the 3D aircraft models (0.2× – 3×) |
| Track slider |
Track depth for the selected aircraft (1 – 24 hours) |
The panel is collapsed by default on mobile. Tap the small handle at the top of the
panel to expand it. The list of sessions is scrollable — swipe up/down inside it.
✈ Quick actions
Find an aircraft
Type ICAO in the search box → tap 🔍
Exit chase / airport
Tap the ✕ Exit button at the top, or tap on empty map
Replay
Select session → Play → adjust Speed / Seek
Save a recording
Select session → tap ⬇ Export
Open a replay file
Tap ⬆ Import → pick a .json.gz file
Toggle layers
Earth / Airports / Aircraft / ISS buttons in the panel
💡 Useful tips
| Slow down on desktop |
Hold Shift — all movements become 10× more precise |
| Precise zoom on desktop |
Shift + wheel for smooth transitions between zoom levels |
| Precise zoom on mobile |
At high zoom levels pinch sensitivity is automatically reduced — move your fingers gently |
| Finding an aircraft |
Only know the callsign? Type it — search matches both ICAO and callsign |
| ISS in search |
Type ISS — the ISS layer turns on and the camera flies to the station |
| Aircraft disappeared? |
Open the panel → check Status. If OFFLINE — OpenSky data is temporarily unavailable, aircraft will reappear on their own |
| Session list is empty? |
There are no recordings for the last 24 hours. Check Status — it should read ONLINE |
| Widgets hidden? |
Tap the panel handle to expand it. All settings are inside |
🚨 Incident Mode (Squawk 7700)
The Incidents tab contains a dataset of historical emergency situations
where aircraft squawked 7700. This allows you to replay real-world anomalies.
Camera auto-fly: When you press Play for an incident, the camera
automatically moves to the starting point of the trajectory, waits for the terrain to load,
and then locks onto the aircraft in Chase Mode.
Exporting incidents: You can export an incident trajectory just like a regular replay session. The file will include incident metadata (callsign, origin, destination, and the problem description).
🎨 Display modes
| Earth |
Show/hide the planet. Useful when you want to inspect aircraft without the background |
| Texture |
Realistic satellite texture vs. flat tiles |
| Schematic |
Schematic view (OSM tiles) instead of satellite imagery |
| Airports |
Airport layer — points with names. Click / long press for airport mode |
| Relief / Relief x1 / Relief x5 |
Cycle through relief modes: off → realistic (×1) → exaggerated (×5). When relief is off, terrain tiles are not downloaded at all — only textures — so the map loads faster. |
| Rotation |
Automatic Earth rotation. Repeated taps cycle ×1 → ×2 → ×3 → off |
| Aircraft |
Show/hide live aircraft |
| Solo |
Keep only the selected aircraft visible, hide the rest |
| ISS |
Show the International Space Station |
Relief off by default: the map loads much faster without terrain tiles.
Turn Relief on only when you want to see mountains and valleys.
💾 Saving and sharing replays
Any recorded session or incident can be exported as a single portable file and imported back later —
on the same device or on another one. This is useful for archiving, sharing, or simply
watching a replay offline.
How to export: in the panel, tap a session in the list to select it,
then press ⬇ Export. The button will pulse while the file is being prepared.
When the status shows ✔ Exported: …, the file is in your browser's download folder.
How to import: press ⬆ Import and pick a .json.gz file,
or simply drag the file onto the map on desktop. Playback starts automatically.
100% local. Export and import never touch any server — the file is built
and read entirely inside your browser. Your recordings stay private.
🌍 Astronomy
Sun position, Moon position, and the day/night terminator are computed in real time
from the current date. In replay mode — from the recording time.
The Sun field in the panel shows the solar altitude above the horizon
at the point you are looking at: High / Medium / Low / Twilight / Night.
🚀 Performance notes
At zoom level 8 the app loads detailed terrain and satellite texture.
The system prioritizes textures first, then loads terrain — so the picture appears fast
and relief fills in a moment later.
Loading spinner: a small spinner appears in the center of the screen
while tiles are downloading. It disappears when all visible tiles are ready.
If the scene feels slow, try zooming out one level (wheel down / pinch out) — fewer
tiles and terrain features will be visible, keeping performance smooth.