# UnfoldMyMac

A native Mac app that turns lid movement into desktop effects, with dynamic wallpapers and creative scenes built in Swift, AppKit, and Metal.

By Satyajit Pradhan
Published: 2026-09-14
Updated: 2026-09-16
Canonical: https://satyajiit.dev/work/unfoldmymac/

![UnfoldMyMac cover](https://satyajiit.dev/media/unfold-lights-out.webp)

I only meant to make one effect. Watching the opening animation on the iPhone Duo made me look at the MacBook in front of me: it had a lid, too. What could happen on its screen when I moved it?

UnfoldMyMac grew from that question into a native Mac app for lid effects, live wallpapers, and desktop scenes. The comic panels and video previews here come from the [original product story](https://unfoldmymac.com/story/).

## The spark: what if my Mac did that?

The appealing part of the folding-phone animation was its relationship to the object. The screen changed because the device moved. I wanted to bring that physical relationship to a laptop, using the gesture someone already makes when opening or closing it.

![The original UnfoldMyMac comic: a maker looks from a folding phone to the MacBook on his desk.](/media/unfold-story-the-spark.webp)

A conventional button gives an interface a clear event. A lid gives it a range. Half open is a meaningful state, and stopping halfway should stop the effect with you. That became the first constraint of the experiment.

## The first experiment was blur

The first version recreated the frost idea in Metal. Lower the lid and the desktop blurs; lift it and the desktop becomes clear again. The effect follows the position, rather than finishing a canned animation after a trigger.

![The original comic’s experiment: the maker lowers his MacBook lid and watches the desktop respond.](/media/unfold-story-the-experiment.webp)

Then came curtains, ribbons, artwork, and characters peeking over windows. Each needed its own visual language, but all of them kept the same physical promise. The movement on the screen should belong to the movement of the lid. Try the laptop at the top of this page: drag down, flick up, or hold the close and open controls.

## Then I left the lid open

A lid effect has a beginning and an end. A desktop world has somewhere to stay. I started making scenes that could keep moving while I worked: a race circuit, a little city built from a GitHub profile, a factory following coding activity.

![The original comic’s bigger idea: a growing collection of race cars, curtains, windows, and desktop characters.](/media/unfold-story-a-bigger-idea.webp)

That became the wallpaper collection. Lights Out stages an open-wheel circuit and countdown. GitHub After Hours turns public repository activity into a floating city. Codex Foundry makes a miniature accelerator from local coding activity. The clips below are original app-rendered previews with sample data.

## Game’s closed. World’s still on.

Gaming wallpapers gave this idea a different vocabulary. Night City carries network activity along its neon lanes. Endless Dusk brings a chosen city’s weather to a Forza-inspired road. Site of Grace and Greenpath are quieter worlds to leave behind the windows.

These scenes are part of UnfoldMyMac’s wallpaper collection; they do not control the games. Select a world below to see the moving preview. Each clip pauses when it leaves the screen, and the playback button remains available when reduced motion is enabled.

## See it on a real MacBook

The product film follows the original spark, the growing collection, and demonstrations filmed on a real MacBook. A render can describe the visual idea, but seeing a hand move the lid makes the relationship easier to understand.

The full story film is below. The [UnfoldMyMac website](https://unfoldmymac.com/story/) has more detail. The original [gaming film](https://www.youtube.com/watch?v=eYLM1soTuVs) shows the collection in motion as well.

## Playful surfaces, native responsibilities

The app uses Swift, SwiftUI, AppKit, and Metal. A desktop effect has to coexist with normal work: windows, system input, available hardware, and the lifecycle of a rendering surface. A live wallpaper also has to say what data it reads. Public GitHub activity, local coding sessions, network readings, and weather are different inputs with different setup requirements.

That is the systems work I enjoy inside a playful product. Keep the physical model understandable, make the sources of live data explicit, and stop doing work when the surface is no longer useful. [Designing interactions around a laptop hinge](/writing/designing-around-a-hinge/) goes deeper into the interaction reasoning.

UnfoldMyMac is open source and part of my work at [Matterward Labs](https://matterwardlabs.com). Its [repository](https://github.com/satyajiit/UnfoldMyMac) contains the implementation, contribution guidance, artwork notices, and current hardware requirements.

## Product figures

- **Swift** Native macOS app
- **Metal** Real-time effects

[UnfoldMyMac source](https://github.com/satyajiit/UnfoldMyMac), as of 2026-09-14. Native app and original product story.

## Sources & further reading

- [UnfoldMyMac source and native stack](https://github.com/satyajiit/UnfoldMyMac)
- [UnfoldMyMac product website](https://unfoldmymac.com)
