No saved flights.
Flights are saved automatically when loaded. Use the OpenSky Lookup or FlightAware Lookup tab to load a flight.
No flights match your search.
Import a KML or KMZ file containing a track or route.
Flight track data is provided by FlightAware AeroAPI, a flight tracking service with data back to 2011.
Steps:
FlightAware credentials are required to look up flights.
Set up credentials ↑Flight track data is provided by the OpenSky Network, a free community service.
Steps:
OpenSky credentials are required to look up flights.
Set up credentials ↑X-Rate-Limit-Remaining response header.Enter a US tail number (e.g. N123AB) or an ICAO 24-bit hex address (e.g. a05ed9). The other format will appear next to it.
Free Tier Comparison
| OpenSky Network | FlightAware AeroAPI | |
|---|---|---|
| Cost | Free credits granted daily | Users given $5/month of free credits |
| Historic data | 30 day window | 10 day window |
| Cost per lookup | Free (daily credit quota) | ~$0.017 per flight, after free credits are consumed |
| Overage charges | No (hard daily limit, resets at midnight UTC) | Yes (~$0.017 per flight, after monthly credit is consumed) |
| Search by call sign / flight number | Yes | Yes |
| Search by ICAO24 hex code | Yes | Yes |
| Search by tail / registration number | No | Yes |
| Military / unregistered aircraft | Yes (if broadcasting ADS-B) | No |
| ADS-B feeder bonus | No | A free Enterprise Account ($99.95/mo value) with access to 8 months of historic data |
| Credentials needed | Client ID + Client Secret (OAuth) | Single API key |
Paid / Institutional Access
| OpenSky Network | FlightAware AeroAPI | |
|---|---|---|
| Historic data | Full archive (~2013 to present) | Jan 2011 to present (15+ years) |
| How to access | Trino database (SQL queries) | Same REST API (Standard plan) |
| Eligibility | University, government, aviation authorities only | Anyone (paid subscription) |
| Cost | Free (must apply with institutional affiliation) | Standard plan (monthly subscription) |
| Academic / research | Apply at opensky-network.org with institutional email | May qualify for free access — contact FlightAware |
All satellite groups are currently disabled, so no satellites will appear in the simulation.
Go to Settings → Satellite Groups to enable one or more groups.
No flight track has been loaded.
Use the Load Flight button in the Aircraft panel to load a flight track before using the playback controls.
When Combined brightness for satellite trains is turned on, every member of an unresolved formation (e.g. a freshly-launched Starlink train) is drawn at the train’s combined apparent magnitude instead of its individual brightness — matching what a naked-eye observer actually sees. The math below explains why that combined magnitude is much brighter than any one member: brightness adds linearly, while astronomical magnitudes are logarithmic.
Two light sources are unresolved when their angular separation is smaller than the observer’s resolving power, so the eye merges them into a single point or streak of light rather than seeing distinct dots.
Internally, CuriousPilot treats satellites as one cluster when their pairwise angular separation is within 0.1° (6 arcminutes) and the resulting group is cigar-shaped (length at least 5× the width). The threshold is intentionally looser than ideal naked-eye resolution to accommodate real-world viewing conditions (atmospheric turbulence, twilight glare, untrained observers) under which the practical resolving power is several arcminutes rather than one.
Suppose:
The flux from one satellite is proportional to:
F1 ∝ 10−0.4x
The total flux from N identical satellites is:
Ftot = N · F1
The combined magnitude is therefore:
mtot = −2.5 · log10(Ftot) + C
which gives:
mtot = x − 2.5 · log10(N)
This is the standard result for combining equal-brightness sources.
For N = 48:
2.5 · log10(48) ≈ 4.20
so:
mtot ≈ x − 4.20
| Individual satellite | Combined train (48 sats) |
|---|---|
| mag 5.0 | mag 0.8 |
| mag 4.0 | mag −0.2 |
| mag 3.0 | mag −1.2 |
| mag 2.0 | mag −2.2 |
Thus 48 unresolved magnitude-4 satellites would appear roughly as a magnitude −0.2 object.
More generally, if the satellites have individual magnitudes mi:
Ftot = ∑i=1..N 10−0.4 · mi
and the combined magnitude is:
mtot = −2.5 · log10( ∑i=1..N 10−0.4 · mi )
This is the formula used for a realistic Starlink train because illumination and orientation vary from satellite to satellite.
The calculation above assumes the satellites act as independent incoherent light sources and that their reported magnitudes already describe the brightness seen by the observer.
Specular reflections complicate things:
For example, if one satellite is magnitude −2 during a flare and the other 47 are magnitude 4, the combined magnitude is not simply (−2 + 4.2). Instead you sum the fluxes:
Ftot = 100.8 + 47 × 10−1.6 ≈ 6.31 + 1.18 ≈ 7.49
giving mtot ≈ −2.19. The flare contributes most of the light, and the total magnitude is only slightly brighter than −2.
If the train is visibly elongated (“cigar-shaped”) rather than point-like, the integrated magnitude is still:
mtot = x − 2.5 · log10(N)
but its light is spread over a larger angular area. The object may appear less conspicuous to the eye than a point source of the same integrated magnitude because the surface brightness is lower. Astronomers distinguish between:
For visual detection from aircraft or the ground, both quantities can matter.
If N identical satellites are unresolved and each has magnitude x, the train’s integrated magnitude is simply:
mtrain = x − 2.5 · log10(N)
— with the understanding that real Starlink trains often deviate from this because of differing phase angles, attitude variations, and occasional specular glints.
When Compute & show satellite flares is turned on, the simulator runs the specular-reflection geometry for every Starlink each tick and, when a chassis is aligned to reflect sunlight toward your observer location, boosts that satellite’s brightness and draws the flare. Starlink satellites can briefly become very bright this way — these flares are the most likely explanation for many recent UAP reports from pilots and ground observers near twilight.
When this option is turned off, the flare math is skipped entirely. A flaring Starlink will be shown at its dim baseline magnitude instead of its flare-boosted magnitude — so if its baseline is dimmer than the magnitude-slider cutoff, the satellite will not appear at all, even during a bright flare.
The ⚡ indicator flags Starlinks predicted to be flaring at the current simulated instant — the chassis is geometrically aligned to reflect sunlight toward your observer location. You’ll see ⚡ in three places:
You can also click the Predict flares button (below the checkbox) to sweep the loaded simulation timespan and get a sortable list of every predicted flare in your sky — with peak time, peak magnitude, elevation, and azimuth. Click any row to seek the simulation to ~5 seconds before that flare’s peak so you can watch it play out.
Predicted peak magnitudes come from the per-Starlink-generation log curves in Mallama & Cole (2024). The four generations (V1.0, VisorSat, V1.5, V2 Mini) are classified automatically from the SpaceX serial number; unclassifiable rows fall back to the V1.5 curve.
Important caveats:
Currently only Starlink is supported, because it is the only constellation with publicly characterized chassis geometry and a published per-version brightness model. OneWeb and BlueWalker / BlueBird may be added later.
When Show flare traces is turned on, any flaring satellite at or brighter than the chosen magnitude threshold draws its trace as a bright warm yellow-white wake instead of the normal gray. The trace appears even when the global “Show lines” option is turned off — that’s the point of the setting: to make flares easy to spot without having to enable lines for every satellite.
How it works:
The flare indicator and prediction model itself (the ⚡ icon, the Predict flares button) are described in the help dialog next to Compute & show satellite flares above. This setting controls only the trace color — it does not change which satellites are flagged as flaring.
When Show satellites in Earth’s shadow is turned on, satellites that are above the horizon but inside Earth’s umbra (the cone of complete shadow behind the planet) are rendered on the canvas instead of being hidden. They show as small dim slate-blue dots, marked with the ⊘ symbol throughout the UI, so the “this object is here but unobservable” signal is unmistakable.
What the rendering means:
Typical use: watching a freshly-launched Starlink train light up one satellite at a time as it emerges from shadow; confirming whether a specific satellite is geometrically present at a given instant; identifying which satellites are dark vs. lit when investigating a sighting that occurs near twilight.
This is a diagnostic affordance — it intentionally shows information that is not directly observable. If you want only what an observer could actually see, leave the checkbox off.
Simulation stopped at 3, due to the Fixed Mode Duration setting.
Change this setting in Settings & Info → Settings → Fixed Mode, if needed.
The demo will replay a real aircraft's flight under the night sky, with satellites rendered where they appear from the cockpit perspective at each moment in time. You'll see the flight track over the Earth while the satellites move overhead, using time-synchronized historical ADS-B and TLE data.
Click Start Demo to begin.
Please enter a date between October 4, 1957 and December 31, 2200.
Earlier dates are not supported because orbital data sources do not contain records before the start of the space age. Later dates are rejected because satellite propagation diverges far past the orbital parameters' epoch.
Curious Pilot is upgrading its local storage, but another open tab of this app is preventing the upgrade from completing.
Please close any other tabs running Curious Pilot, then reload this page.
Curious Pilot is a nighttime sky simulation tool designed to aid in UAP investigations. For the curious pilot, it may help answer the question, 'What were those lights I saw?' Or it may help rule out the ordinary, leaving a stronger case for further UAP investigations.
Of nearly 27,000 cataloged satellites in Earth orbit, more than 23,000 are bright enough to potentially be seen by the naked eye under good viewing conditions, and the population is growing rapidly. Because they travel on many different orbital planes, an observer often sees several at once moving in different directions — easy to mistake for objects flying in circles or strange patterns.
Driven by a rich set of real-world aeronautical, orbital, and astronomical data — all time-synchronized — Curious Pilot software replicates past aircraft flights and simulates the animated situational view from the cockpit. It provides a dynamic, 3D visualization of satellites, celestial objects, and the earth below, as the pilot might have seen them during the flight.
In addition to the Aircraft Mode, Curious Pilot also provides a Fixed Mode that can simulate past and current views of the nighttime sky from a fixed location.
Curious Pilot is free to use, runs in your browser, and requires no installation. It works on tablets (including iPad), laptops, and desktop computers.
Enter the aircraft's flight information and Curious Pilot does the rest — gathering and synchronizing the aircraft track, satellite positions, and astronomical data automatically. Press the Play button and the simulation begins.
The application integrates 12 independent data sources to accurately recreate and replay the night-sky conditions:
The OpenSky Network provides historical ADS-B flight track data. Given an aircraft’s ICAO24 hex code and a date, the app retrieves the recorded flight path including position, altitude, and heading.
FlightAware AeroAPI is available as a second flight track data source, with data back to 2011. It supports search by call sign, flight number, or tail number.
Aircraft flight track data can also be imported from .kml and .kmz files. These standard geospatial files are available from sources such as adsbexchange.com, which provides several years of historical data.
Space-Track.org, operated by the 18th Space Defense Squadron (US Space Force), is the primary source for satellite orbital parameters. It provides current data for tens of thousands of active satellites across all orbital altitudes, as well as a complete historical archive going back to 1957. These parameters are used with the SGP4 propagation algorithm to compute each satellite's position in real time. Both the classic 5-digit catalog numbers and the new Alpha-5 scheme are supported.
The historical archive is essential for accurately recreating past events—without historical data, satellite positions can only be estimated from current orbital parameters, which degrade in accuracy the further you go back in time. With Space-Track, the app can retrieve the exact orbital parameters that were valid on a specific historical date, ensuring satellites appear where they actually were at the time of a past sighting.
CelesTrak serves as a fallback source when Space-Track is unavailable. It provides current orbital parameters for the same set of satellites. Alpha-5 catalog numbers are supported here as well.
The Stellarium community satellite database supplies standard visual magnitude values. Combined with solar illumination geometry and observer distance, these are used to predict how bright each satellite appears—the McCants/Stellarium magnitude model.
Star coordinates are from the HYG Database v4.1 by astronexus (David Nash) — a curated compilation of bright-star data drawn from Hipparcos, the Yale Bright Star Catalog, and Gliese. Constellation stick-figure topology is from the Stellarium-skycultures “western” set, covering all 88 IAU constellations.
The Astronomy Engine library computes precise positions of the Sun, Moon, and planets using VSOP87 and ELP/MPP02 analytical models.
NASA’s Black Marble imagery (VIIRS Day/Night Band) from the Global Imagery Browse Services (GIBS) provides the nighttime ground texture showing city lights as seen from above.
ESRI World Imagery satellite photography is used for the daytime ground plane, switching automatically based on solar illumination at the observer’s location.
Magnetic declination is computed from the World Magnetic Model 2025 (WMM2025), jointly developed by NOAA NCEI and the British Geological Survey. The model coefficients are evaluated locally so that toggling between True and Magnetic headings is instantaneous; the BGS web service is used as a refinement source when available.
The location-picker map uses three tile styles: a dark and a light style from CARTO, and a terrain style from OpenTopoMap. Geocoding is provided by OpenStreetMap Nominatim.
Philip Giacalone is an aerospace engineer and software developer whose technical career has spanned spacecraft propulsion systems, autonomous drones, and Silicon Valley software startups. He developed Curious Pilot as a free tool to aid investigations of pilot-reported UAP sightings. It combines real ADS-B flight data with published satellite orbital and astronomical data.
Each mode has its own preference. The T / M keyboard shortcuts toggle the currently active mode.
When a dense formation of satellites is visible (e.g. a freshly-launched Starlink train), each member is drawn at the train’s combined apparent magnitude instead of its individual brightness. This matches what naked-eye observers see — the train appears as one bright “cigar” of light rather than many dim dots. Has no effect on isolated satellites or on satellites separated widely enough to be resolved as distinct points.
When more than this many satellites are visible at once, name labels are auto-suppressed (overlapping text becomes unreadable, and the per-label work slows the simulation clock).
Number of digits shown after the decimal point in the “satellites visible” list. Magnitude is always shown to 1 decimal.
Hold the modifier key and hover over a star to see its name, magnitude, and constellation.
Paints NASA Black Marble city lights at night (Esri World Imagery during the day) onto the ground around the observer. Visible when looking toward or below the horizon. Hidden automatically when Transparent Earth is on.
How long the simulation runs in Fixed Mode before it stops automatically. Aircraft Mode uses the loaded flight's own duration.
Lifts satellites near the horizon to match their apparent position. ~29 arcmin at the horizon, ~1 arcmin at 45°.
Renders satellites in Earth's umbra as small dim slate-blue dots instead of hiding them. Useful for watching a satellite train light up as it emerges from shadow. Magnitude slider still applies (very dim what-if sats are still hidden).
Import additional satellites in NORAD 2-line or 3-line format (e.g. Celestrak's SupGP files) for the currently selected simulation date. Useful when Space-Track has not yet catalogued a fresh launch. Imports persist locally and survive across sessions.
If you previously chose "Don't show this again" on the welcome dialog, this button restores it so the dialog appears on your next visit.
Force-refresh today's satellite data ahead of the regular auto-refresh. Most users will never need this — Play, Rewind, and Load Flight refresh today's data automatically once it's older than 12 hours.
Delete every saved aircraft flight track and the per-flight satellite data that goes with it. Your settings, credentials, and the satellite group list are kept. This cannot be undone.
Toggle satellite groups to control which satellites appear in the simulation. Disabling large groups like Starlink significantly improves performance.
Click here for a 3½-minute video that quickly introduces Curious Pilot’s capabilities to aid in UAP investigations.
Tutorials explaining how to use Curious Pilot software:
Have a feature request, found a bug, or just want to say hello? Contact the developer →
Curious Pilot has two modes, controlled by the Observer Mode switch at the upper left: Fixed Mode for observing from a fixed location, and Aircraft Mode for replaying a real flight.
Fixed Mode — Enter your location (or search by name), set the date/time, and press Play. Visible satellites appear as moving dots on the sky dome.
Aircraft Mode — Enter a call sign, flight number, or ICAO24 hex code along with a date, then click Load Flight. The app replays the flight path and shows satellites visible from the aircraft. Flight track data can be obtained from OpenSky Network or FlightAware AeroAPI — select your provider under Provider Credentials. Both require a free account. The developer has no relationship with either provider and receives no compensation.
Controls — Drag the sky to look around. Use the heading and elevation sliders for precise aiming. The magnitude filter limits which satellites are shown.
Satellite Info — Click the “x satellites visible” count at the upper left to see a list of visible satellites with details.
Satellite Data — Orbital parameters are fetched from Space-Track.org, the U.S. Space Command’s public catalog of tracked objects in Earth orbit. If Space-Track is unavailable, the app falls back to CelesTrak. The app tracks active satellites across all orbital altitudes; use the Satellite Groups tab to choose which ones to display. The Update Satellite Data button at the bottom of the controls area re-fetches the latest data. Satellite data is cached locally and only re-fetched when you click the button.
Historical Satellite Data — For accurate replay of past events, Space-Track also provides historical orbital parameters going back to 1957, ensuring satellites appear where they actually were on a specific past date. Historical lookups require a free Space-Track.org account, which you can configure under Settings. There is no CelesTrak fallback for historical data.
| Space | Play / Pause simulation | C | Toggle constellations | |
| D | Toggle dome grid | E | Toggle Enhanced / Realistic display | |
| G | Toggle transparent earth | H | Toggle highlight circles | |
| I | Toggle white-sky (inverted) view | K | Keyboard shortcuts | |
| L | Toggle satellite lines | M | Magnetic heading | |
| N | Toggle satellite names | P | Toggle planetarium mode | |
| R | Realistic satellite display | S | Settings & Info | |
| T | True heading | V | Toggle satellites-visible list | |
| Z | Toggle magnify tool | Esc | Exit magnify (zoom unchanged) | |
| 1 2 3 4 5 6 | Set zoom: 1:1, 2:1, 3:1, 4:1, 8:1, 16:1 (center stays centered) | 0 | Reset zoom to 1:1 | |
| [ | Rewind to start | ] | Fast forward to end | |
| ← → | Camera azimuth (left / right) | ↑ ↓ | Camera elevation (up / down) | |
| ⌥ Option + hover | Identify star (name, magnitude, constellation) | ⌥ Option + click | Show position uncertainty for satellite |
Opens a dialog with the current Satellites breakdown, Stars currently above the horizon (click any star to point the camera at it), and an explanation of how satellite brightness is calculated.
Brave Browser. Brave’s Shields feature can cause the 3D sky view to go white or become blurry during a simulation. If this happens, click the lion icon in the address bar and turn Shields off for this site, then reload the page. This does not affect your Shields settings on other sites.
2:1, 3:1, 4:1, or fractional values like 2.5:1 for click-zoom intermediate steps); clicking the indicator still resets to 1:1.2022-08-10T11:39:08) rather than rounding to the nearest minute. The Now-mode auto-update and the Aircraft Mode flight-load auto-populate paths preserve the seconds digit too. For comparison work against astrometric references this matters: the prior rounding could shift the rendered moment by up to 59 seconds, which at typical Starlink-train rates is several degrees of train movement.min/max attributes bracketing the recorded flight range, so the browser blocks any value outside the actual track.5·log₁₀(range / 1000) magnitudes. At typical Starlink ranges (~1500 km) the correction is about −0.88 mag dimmer per satellite; for a 51-sat train the combined cluster magnitude shifts by the same amount. Closer satellites would shift the other way (brighter), but the satellites that flare in practice are all at long range, so the user-visible direction is “Starlink flares are now predicted ~1 mag dimmer”, which agrees more closely with third-party flare prediction services that already used the observer-range frame. No change to the diffuse magnitude model — ISS-class predictions are unaffected (independently verified against heavens-above.com on 2026-05-23: predicted −3.5 mag vs heavens-above −3.6 mag, with shadow-entry within 4 seconds). Full technical write-up in docs/flare_range_frame_bug.md.docs/flares.md on rendering modes and photometric comparison — explains why Emphasized display mode (the default) renders any cluster magnitude from −4 to +2 at the same on-canvas size, and why anyone visually comparing the canvas to a real-world photograph should switch to Realistic mode first.Cluster est. mag: 3.42 (52 sats) when fully illuminated, (N of M sunlit) during partial shadow emergence, or omitted when the entire cluster is shadowed). Shadowed satellites get a slate-blue ⊘ In Earth’s shadow annotation, and their misleading per-sat magnitude is omitted (the satellite reflects no light, so any finite number would mis-represent it as something you could see).A0001 = 100001). Before this fix, Alpha-5 satellites would have silently fallen through to estimated brightness instead of the measured Stellarium value. Both Space-Track and CelesTrak issue the same scheme, so the fix covers both data sources. The About tab’s Space-Track and CelesTrak sections now mention Alpha-5 support.Az 245.3° El 33.2°) instead of rounding to whole degrees. The extra digit matters when cross-checking simulated positions against astrometric references — whole-degree rounding loses about half a degree of angular-rate accuracy on short time windows.——) during the mode transition instead of momentarily showing values from the previous mode.maxLabelSats; and trail-buffer setup is deferred to first-push.1…9 to −5…10 so you can dial the visibility cutoff into negative magnitudes for flare-only viewing.starlink || el>2 && el<20 were silently being treated as “Starlinks only.” The non-Starlink branch of such a filter now correctly admits matches that satisfy the numeric clauses.<, <=, >, >=, =, != with the fields az, el, or mag — for example mag < 3 shows only satellites brighter than mag +3, and el > 30 shows only those above 30° elevation.&& (AND) and || (OR) operators. Examples: starlink && mag < 4 && el > 20 (bright Starlinks well above the horizon); iss || mag < -1 (the ISS or anything currently flaring very brightly); starlink && el > 30 || cosmos && el < 30 (high Starlinks or low Cosmos sats). Operator precedence is unchanged — && binds tighter than ||.mag comparisons, the flare-boosted brightness is used when a satellite is actively flaring, so mag < 0 correctly includes a Starlink whose intrinsic magnitude is dim but which is currently flaring brightly — matching what you see on screen.E now toggles between Enhanced and Realistic display modes.N first, tightened blink cadence and overall timing, lowered the magnitude cap, and reworded the splash and data-source lines.&& (AND) and || (OR) operators, with && binding tighter than ||. Examples: starlink && v1.5 shows only Starlink V1.5 sats; iss || hubble || tiangong shows three named targets at once; starlink && v1.5 || cosmos shows Starlink V1.5 sats plus all Cosmos sats. Matching is case-insensitive substring; single & and | characters are preserved as literals (so AT&T still works)/about, /help) so you can share a direct link to a specific tab<gx:Track> blocks (e.g. adsbexchange exports that split taxi and airborne phases) — all tracks are merged, sorted by timestamp, and adjacent duplicate timestamps collapsed so the interpolator never sees a zero-duration segment.kmz file (zipped KML) and it’s extracted and parsed transparently using the browser’s native DecompressionStream API — no library requiredkml: or kmz: prefix, the file’s Placemark name as the displayed callsign (or the filename if no name is present), waypoint count, duration, and a notes field — identical UX to lookup-fetched flightsgl_PointSize in screen pixels — a magnitude-N satellite is drawn at the same pixel size as a magnitude-N star, and dots no longer enlarge near the edges of the canvasos:, fa:) instead of the misleading ICAO24: label, since FlightAware idents are not ICAO24 codesflightcache:* entries are migrated automatically on first launch after upgradeos:, fa:) so OpenSky and FlightAware records share one namespace without collisiontle_cache_* entries are migrated automatically on first launch after upgradeCurious Pilot is free to use at curiouspilot.com. Below are the license notices for the application and for the third-party libraries and data sources it relies on. Items marked ✓ have been verified against their canonical license; the rest are based on each project’s public documentation and remain under review.
Curious Pilot is committed to respecting the licenses and terms of all bundled libraries and data sources. If you identify any licensing concerns, please contact the developer and he will work promptly to address them.
Curious Pilot
Libraries
Data Sources
satellites.json. Stellarium is licensed GPL v2; we use only the factual {noradId, stdMag} numeric values to compute apparent brightness, in accordance with copyright fact / use boundaries. ✓ verified 2026-05-06.public/stars_data.js retains this license; per CC BY-SA 4.0 §3(b) the obligation attaches to the data file, not to the application as a whole. ✓ verified 2026-05-06.public/constellationData.js retains this license; per CC BY-SA 4.0 §3(b) the obligation attaches to the data file, not to the application as a whole. ✓ verified 2026-06-07.User-Agent header. End-user-driven (button-click), not auto-complete. Bound by the OSM Foundation Nominatim Usage Policy. ✓ verified 2026-05-06.Curious Pilot does not redistribute any third-party library or dataset; libraries are loaded directly from their canonical CDNs in the user’s browser, and data sources are queried at runtime.
Philip Giacalone is an aerospace engineer and software developer whose technical career has spanned spacecraft propulsion systems, autonomous drones, and Silicon Valley software startups. He developed Curious Pilot as a free tool to aid investigations of pilot-reported UAP sightings. It combines real ADS-B flight data with published satellite orbital and astronomical data.
| Space | Play / Pause simulation | C | Toggle constellations | |
| D | Toggle dome grid | E | Toggle Enhanced / Realistic display | |
| G | Toggle transparent earth | H | Toggle highlight circles | |
| I | Toggle white-sky (inverted) view | K | Keyboard shortcuts | |
| L | Toggle satellite lines | M | Magnetic heading | |
| N | Toggle satellite names | P | Toggle planetarium mode | |
| R | Realistic satellite display | S | Settings & Info | |
| T | True heading | V | Toggle satellites-visible list | |
| Z | Toggle magnify tool | Esc | Exit magnify (zoom unchanged) | |
| 1 2 3 4 5 6 | Set zoom: 1:1, 2:1, 3:1, 4:1, 8:1, 16:1 (center stays centered) | 0 | Reset zoom to 1:1 | |
| [ | Rewind to start | ] | Fast forward to end | |
| ← → | Camera azimuth (left / right) | ↑ ↓ | Camera elevation (up / down) | |
| ⌥ Option + hover | Identify star (name, magnitude, constellation) | ⌥ Option + click | Show position uncertainty for satellite |
There are over 25,000 satellites in low Earth orbit.
Before sunrises and after sunset, many may be visible to pilots.
Some may be bright enough to be reported as UAPs.