Your desktop,
alive.

DesktopEngine runs live wallpapers, desktop widgets and desktop companions on your Mac. Each one is a small program written in JavaScript.

This isn’t a video. The wallpaper, the widgets, the cat and the hamster are mini programs built into the app, running in your browser right now. Drag a widget, click the cat, or type something.

Nebula, stirred by your pointer

Over a hundred thousand particles, simulated on the GPU, drift between a galaxy, a ringed planet, a torus and a wave. Move the pointer over them to stir them, click to scatter them. In the dark appearance they glow; in the light one they spread like ink on paper.

The live wallpaper Nebula, running
Shape
Colors
Appearance

The wallpaper declares these options in its manifest, and the app draws them as a native form. Change one and the wallpaper starts again with the new value, just like here.

Two displays, one landscape

Horizon runs on the real clock: the sun crosses the sky, dawn and dusk color it, and at night the moon rises in today’s phase, with stars and fireflies. Displays side by side join into one landscape, and the sun walks from one to the next.

The left display
The right display
Skip to

Time only moves forward. To get to the night, you watch a sunset first.

Widgets you can play with

Widgets come in small, medium and large, the same sizes as system widgets. Wherever you drag one, it’s still there next time.

Three widgets on a desktop: Pomodoro, Flask and Particle Clock
Pomodoro
A colored disc that shrinks as the time runs out. Turn it like a dial to set the minutes; it starts when you let go, and a bell rings when the time is up.
Flask
The level is the memory in use, the boil is the CPU. A web page can’t read your CPU, so here it’s how fast you scroll and move the mouse. Try scrolling quickly.
Particle Clock
A thousand particles spell the time and fly over into the next one every minute. Move the mouse through them to scatter them, click to make them burst.

Companions that watch you

Like a desktop pet, the pixel cat walks along the bottom of the screen, sits, grooms and naps. Hover it and it looks at you, click it and it hops, pick it up and it dangles by the scruff. Four coats: ginger, gray tabby, black and tuxedo.

The desk hamster sits at a little desk: it types when you type and moves its mouse when you move yours, and its eyes follow the pointer. Type a few keys anywhere on this page.

Their windows are transparent. Only their bodies take the mouse; a click anywhere else lands on the window below.

Quiet in the background

Live content that’s always on has to know when to step aside. DesktopEngine comes with playback rules:

When another app is full screen
Wallpapers keep playing, mute or pause. You choose.
On battery power
The same choice for wallpapers; widgets and companions run at up to 30 frames per second.
When nothing can see it
Covered content stops drawing. When the display sleeps, everything pauses and mutes.
Everywhere
One frame rate cap for all content, a volume for each, and one click in the menu bar mutes them all.
A Particle Clock widget whose frame rate follows the power state

60 frames per second

The frame rate is real: it’s how many frames the Particle Clock actually runs each second.

Built with the web you know

Wallpapers, widgets and desktop companions are JavaScript or TypeScript mini programs. Canvas 2D, WebGL 2, Web Audio, fetch and WebSocket work the way you know them, and three.js and PixiJS work as they are. They run on native JavaScriptCore, and ANGLE turns WebGL 2 into Metal.

src/index.js
What the code draws

          

Edit the code on the left and the right reloads at once, the way desktopengine dev does in the app.

  1. Create

    desktopengine create wallpaper ripple --renderer three

    Templates for wallpapers, widgets and desktop companions, all in TypeScript. Wallpapers can draw with Canvas 2D, WebGL, three.js or PixiJS.

  2. Debug

    desktopengine dev ripple

    Runs in the app and reloads when you save. Console output and exceptions come back to the terminal, and Safari’s Web Inspector can stop at breakpoints.

  3. Publish

    desktopengine login
    desktopengine publish ripple --copyright original --submit

    Uploads it to the store and submits it for review; once approved, anyone can find it there. Publishing is by invitation while we open the store to creators step by step. To apply, email creators@desktopengine.app with links to your work.

Put it on your desktop

Looking for something like Wallpaper Engine on the Mac? DesktopEngine is made for it. Requires macOS 12 or later. Live wallpapers and widgets need a Mac that supports Metal; picture and video wallpapers work on any Mac.

Which one?

We recommend the download from this site: it has everything, and new versions come to it first. Both have the same wallpapers, widgets, companions, store, account and sync; a Mac can have only one of them installed.

This site Mac App Store
Screen saver: any wallpaper can be your screen saver Yes No
Edit Desktop: windows step aside while you pick wallpapers, widgets and companions on the desktop itself Yes No
The Mac’s temperature, for widgets that show it Yes No
Updates The app checks for them itself From the App Store
New versions The day they’re released After Apple’s review, usually a few days later