Skip to content
vagdesignPublic

About

Interactive Earth 3D wallpaper

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

3D Earth — live wallpaper for Windows 10/11 and macOS

A real-time 3D Earth that lives on your desktop, behind the icons and the taskbar (on a Mac: behind the desktop icons and every window):

  • Current clouds from geostationary weather satellites, refreshed every hour and cross-faded in slowly, drawn as a layered 3D cloud deck. Procedural billows add detail from continent scale down to a few km, with relief lighting and self-shadowing
  • Active hurricanes, typhoons and cyclones with name, category and wind speed (NHC + GDACS)
  • True day and night: the Sun's real position, with city lights, a sunset-coloured terminator, ocean glint and atmospheric haze
  • The Moon and planets at their real positions and true sizes, with the correct lunar phase, over 5,000 real stars and the Milky Way
  • The Earth always fills the screen height on any monitor shape (16:9, ultrawide, portrait, multi-monitor)
  • Choice of Earth surface: Solar System Scope 8K, NASA Blue Marble for the current month (real seasons: snow, vegetation), or the built-in 4K map
  • Motion: real time, a 360° spin starting above your location, or a day & night time-lapse that replays the last 24 hours of clouds
  • Explore mode: rotate, pan and zoom around the live Earth with the mouse and keyboard
  • Automatic updates: the app checks this repository's Releases, then downloads, verifies and installs new versions itself
  • Anti-aliasing up to 8× with supersampling, 15–144 fps, fade-in from black, and power saving (pauses behind full-screen apps, when locked and on battery)
Moon beside the Earth (ultrawide) Above my location Sunrise behind the Earth

(Previews are software-rendered with the bundled offline textures. On a real PC the app downloads 8K textures and the live cloud map.)

Install

  1. Download 3DEarth-Setup-x.y.z.exe from the latest release.
  2. Run it. Administrator rights are not needed; it installs per user. Leave "Start 3D Earth automatically when I sign in" ticked to have it start with Windows.
  3. The Earth replaces your desktop background immediately. A globe icon appears in the notification area.

Requirements: Windows 10 1809+ or Windows 11, x64, and the Microsoft Edge WebView2 Runtime. The runtime is already present on almost every PC; the installer and the app offer the download link if it is missing.

A portable .zip is also built. Unzip it anywhere and run 3DEarth.exe.

Updates

You only install once. After that, the app keeps itself up to date:

  • It checks for a new release 2 minutes after start and then every 12 hours. You can also check any time: tray → Check for updates or Settings → Updates → Check for updates now.
  • When a new version is found, a notification appears and the tray menu shows Install update x.y.z….
  • Installing downloads the new setup, verifies its size and SHA-256 checksum, updates silently and restarts the wallpaper after a few seconds. Your settings and your start-with-Windows choice are kept.
  • Settings → Updates → Install updates automatically installs new versions without asking.
  • Portable copies don't update themselves; they open the download page instead.

Install on macOS

  1. Download 3D-Earth-mac-x.y.z.dmg (or the .zip) from the latest release.
  2. Open the disk image and drag 3D Earth to Applications (from the zip: unzip it, then move 3D Earth to Applications).
  3. Open 3D Earth from Applications or Launchpad. The Earth appears behind your desktop icons on every display and every Space, and a globe icon appears in the menu bar. There is no Dock icon.

Requirements: macOS 12 Monterey or later, on Apple silicon or Intel (one universal app; the Mac App Store version needs macOS 13). The app is signed with Developer ID and notarized by Apple, so it opens without warnings.

  • Menu bar globe: the same View, Motion, Explore, labels, Update weather now and Pause items as on Windows, plus Open at login (off until you turn it on), Settings… (the same tabs as on Windows), About 3D Earth (credits) and Stop wallpaper & quit. Opening the app again while it runs opens Settings.
  • Power saving: rendering pauses when windows or a full-screen app completely cover the desktop, while the screen is locked, the screen saver runs or the displays sleep, and (optional) on battery.
  • Displays: it follows displays being added, removed or changing resolution, and comes back after sleep. Settings → Performance → Show on can limit it to the main display.
  • Updates: Settings → Updates (or the menu) checks this repository's Releases every 12 hours and tells you when a new version is out. On the Mac you install it the same way as above, replacing the old app; settings are kept.
  • Settings live in ~/Library/Application Support/3D Earth/ (downloaded data in data/), the log in ~/Library/Logs/3D Earth/3DEarth.log. Settings exported on Windows import on the Mac and the other way round.
  • To uninstall: menu bar globe → Stop wallpaper & quit, turn off Open at login first if you enabled it, then move the app to the Bin.

Your normal desktop picture (System Settings → Wallpaper) is untouched: 3D Earth draws above it and it shows again when you quit.

Using it

Right-click the globe in the notification area:

Menu What it does
View → Moon beside the Earth A real vantage point from which the Moon sits in the empty space beside the Earth. North is kept as close to up as possible.
View → Above my location Hovers above your home location, like a geostationary satellite. Day and night sweep across it.
View → Sunrise behind the Earth The Sun just behind the limb: glowing atmosphere, night side with city lights.
Explore (full screen) The same live scene, interactive, on top of everything. Press Esc to go back.
Open in a window The interactive scene in a normal window.
Moon / planet labels, Storm labels Toggle the small text labels.
Update weather now Downloads the newest cloud map and storm list.
Motion Real time, Spin 360° from my location (one turn per minute by default), Time-lapse, or Day & night time-lapse above my location. During a time-lapse the clouds of the last 24 hours are replayed in a loop, in step with day and night. The app keeps every cloud map it downloads for 24 h, so the loop fills in over the first day. The speed and a specific date/time are in Settings.
Pause Stops rendering, which uses 0% GPU.
Check for updates / Install update The app checks this repository's Releases every 12 hours. When a newer version appears it shows a notification. Install downloads the setup, verifies its SHA-256, updates silently and restarts the wallpaper. Settings → Updates can install updates automatically.
Start with Windows Adds or removes the per-user autostart entry.
Settings… Presets at the top (Showcase, Real time, Spin, Sunrise, Power saver) with Export/Import of your settings, then these tabs: View (camera, location, Earth size and position, Moon size); Surface (Earth map, land brightness, ocean reflection and roughness, haze, city lights brightness and flicker); Motion & time (spin speed, time-lapse speed, 24 h cloud loop, a specific date/time); Weather (clouds, cloud thickness and detail, storm labels, update interval, custom cloud-map URL); Sky (labels, credits, stars, Milky Way, brightness); Performance (quality, anti-aliasing, frame rate, monitors, power saving, start with Windows); Updates.

Interactive controls (Explore / window)

Input Action
Drag with the left mouse button Rotate freely around the Earth
W A S D or the arrow keys Pan
+ / −, Page Up / Page Down, mouse wheel Zoom in / out
R, Home or double-click Reset the view
H, ? or F1 Show or hide this help
Esc Close Explore

The wallpaper itself does not react to the mouse, because Windows sends desktop clicks to the icons. Use Explore for that.

To change the static picture Windows shows when 3D Earth is not running, use the normal Settings → Personalization → Background page. 3D Earth draws on top of that background and below the icons, and restores it when you exit.

Power saving (on by default): rendering pauses when a maximised or full-screen app covers a monitor, while the PC is locked, and on battery.

How it works

3DEarth.exe (C# / WinForms, .NET 10)
 ├─ DesktopLayer      finds the desktop layer between the wallpaper and the icons
 │                    (WorkerW on Windows 10/11, Progman child on Windows 11 24H2+)
 ├─ WallpaperWindow   one borderless window per monitor, parented into that layer,
 │                    hosting WebView2; serves ./web and the data folder from one origin
 ├─ DataService       downloads clouds, storms and HD textures to %LOCALAPPDATA%\3D Earth\data
 └─ TrayContext       tray menu, settings, watchdog (Explorer restarts, display changes), power saving

3D Earth.app (macOS 12+, Swift / AppKit, universal arm64 + x86_64)   mac/
 ├─ WallpaperWindow   one borderless window per display at desktop level (below the icons),
 │                    on all Spaces, ignores the mouse; hosts WKWebView
 ├─ SchemeHandler     serves ./web and the data folder from one origin (earth://local)
 ├─ DataService       the same downloads as on Windows, to ~/Library/Application Support/3D Earth/data
 └─ AppDelegate       menu bar item, settings (SwiftUI), display/sleep/lock handling, power saving

web/ (Three.js WebGL scene; runs in any browser too)
 ├─ astro.js      Sun/Moon/planet positions and Earth rotation (Astronomy Engine)
 ├─ framing.js    keeps the Earth filling the screen height; the three camera views
 ├─ shaders.js    analytic atmospheric scattering (Rayleigh + Mie), clouds, ocean glint
 ├─ earth.js      surface, cloud shell with cloud shadows, atmosphere halo
 ├─ moon.js       Moon (Lommel-Seeliger shading, tidally locked)
 └─ sky.js        stars (Yale BSC), Milky Way, planets, Sun and lens glare

Everything is in its real place. The scene uses the Earth's real rotation (sidereal time), the Sun direction for this moment, the Moon's real distance of about 60 Earth radii and its true size, and the planets' true directions. Only the camera position is chosen, and it is always a physically possible viewpoint.

Data sources

Data Source Refresh
Global cloud map Live cloud maps by Matt Eason, from EUMETSAT/NOAA/JMA geostationary imagery every 60 min (configurable)
Tropical cyclones NOAA National Hurricane Center CurrentStorms.json and GDACS same
Earth surface (choose in Settings → Surface) Solar System Scope 8K (CC BY 4.0), NASA Blue Marble Next Generation for the current month (seasons; 21600 px scaled to 8K), or the built-in 4K once per choice
Night lights, Moon Solar System Scope (CC BY 4.0) once
Offline textures (bundled) NASA Blue Marble / Earth at Night (public domain), via three-globe examples —
Milky Way ESO/S. Brunier panorama (CC BY 4.0), mapped from galactic coordinates —
Stars d3-celestial data (Yale Bright Star Catalogue) —

You can set your own cloud source in Settings → Cloud map URL. It must be an equirectangular (2:1) image with white clouds on black.

Development

Preview the scene in a browser (no Windows needed):

npm run serve        # then open http://localhost:8080/?debug

Query parameters override any setting and the clock, for example ?view=home&homeLat=40.6&homeLon=22.9&t=2026-09-25T18:00:00Z&timeSpeed=600.

Headless previews (as in CI): npm install --no-save playwright && node tools/screenshot.mjs previews "view=moon".

Build the Windows app (on Windows, with the .NET 10 SDK):

dotnet publish src/ThreeDEarth/ThreeDEarth.csproj -c Release -r win-x64 --self-contained -o publish
& "${env:ProgramFiles(x86)}\Inno Setup 6\ISCC.exe" /DSourceDir=..\publish installer\3DEarth.iss

Build the Mac app (on a Mac with Xcode or the Command Line Tools):

mac/build.sh 0.7.0          # → out/3D Earth.app (universal, ad-hoc signed)
open "out/3D Earth.app"     # add --args --devtools to enable the Web Inspector

GitHub Actions builds the Windows installer and portable zip and the universal Mac app on every push and pull request. With the signing secrets present the Mac app is signed with Developer ID (hardened runtime), notarized, stapled and checked with spctl, then launched on the runner as a smoke test (snapshot + desktop screenshot, Apple silicon and Intel under Rosetta). Pushing to main or a tag vX.Y.Z creates the release with both platforms; pull requests never publish.

Logs are written to %LOCALAPPDATA%\3D Earth\3DEarth.log. Start with --devtools to be able to inspect the page.

Credits

Created by Vangelis Makridakis (Ax-Easy) and Claude (Anthropic). A small credits line is shown bottom-right. It can be turned off in Settings → Sky.

Third-party components and data: see THIRD_PARTY_NOTICES.md.

About

Interactive Earth 3D wallpaper

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages