An ode to the macOS Drift screensaver that runs in the browser.
I’ve been enamoured of the Drift screensaver ever since it came out with macOS Catalina. It’s mesmerizing. I feel like it’s become an instant classic, and, dare I say, it might stand to dethrone the venerable Flurry screensaver. Hats off to the folk at Apple responsible for this gem 🙌.
This is an attempt at capturing that magic and bottling it up in a more portable vessel. This isn’t a port though. The source code for the original is locked up in a spaceship somewhere in Cupertino. Instead, consider this a delicate blend of detective work and artistic liberty. It’s WebGL2 for now, but WebGPU is shaping up nicely, so native ports aren’t off the books.
Build a new release in the result folder:
nix buildOr open a development shell with all the neccessary tools:
nix develop
cd web
yarn serveThere’s a few things you’re going to have to install.
- rustc with
wasm32-unknown-unknownas a target - cargo
- wasm-pack
- node
- pnpm or yarn
- elm
How you get these dependencies depends on the operating system you’re running. Here’s an example for macOS and Linux using rustup:
rustup toolchain install stable
rustup target wasm32-unknown-unknown
cd web
pnpm installRun a development server from the web folder:
pnpm serveBuild a release:
pnpm build