Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sandydoo/flux
An open-source tribute to the macOS Drift screensaver
https://github.com/sandydoo/flux
drift elm elm-lang fluid-simulation macos opengl rust rust-lang screensaver webgl
Last synced: 29 days ago
JSON representation
An open-source tribute to the macOS Drift screensaver
- Host: GitHub
- URL: https://github.com/sandydoo/flux
- Owner: sandydoo
- License: mit
- Created: 2021-11-06T04:29:43.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-01T15:47:40.000Z (2 months ago)
- Last Synced: 2024-09-28T20:41:10.167Z (about 1 month ago)
- Topics: drift, elm, elm-lang, fluid-simulation, macos, opengl, rust, rust-lang, screensaver, webgl
- Language: Rust
- Homepage: https://flux.sandydoo.me/
- Size: 5.05 MB
- Stars: 765
- Watchers: 7
- Forks: 39
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A open-source tribute to the macOS Drift screensaver.
Buy a screensaver
·
Launch in browser
·
Watch recording
·
Follow me on X
## Screensavers
#### [Buy Flux as a Windows screensaver →][store]
Help support development by letting your PC idle with style.## Backstory
I’ve been enamoured with 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.
## Reviews
> “You’re the first person I’ve seen take this much of an interest in how we made Drift and it looks like you nailed it… minus maybe one or two little elements that give it some extra magic 😉 Great work!”
> — anonymous Apple employee## Samples
![A render of Flux in all 4 default color schemes](https://assets.sandydoo.me/flux/samples/flux-all-at-1280-800-logical.webp)
![A render of Flux in the “Original” color scheme](https://assets.sandydoo.me/flux/samples/flux-original-at-1280-800-logical.webp)
![A render of Flux in the “Plasma” color scheme](https://assets.sandydoo.me/flux/samples/flux-plasma-at-1280-800-logical.webp)
![A render of Flux in the “Poolside” color scheme](https://assets.sandydoo.me/flux/samples/flux-poolside-at-1280-800-logical.webp)
![A render of Flux in the “Freedom” color scheme](https://assets.sandydoo.me/flux/samples/flux-freedom-at-1280-800-logical.webp)
## Build
### Using Nix
Build a new release in the `result` folder:
```sh
nix build
```Or open a development shell with all the neccessary tools:
```sh
nix developcd web
pnpm serve
```### Manual build
There’s a few things you’re going to have to install.
- rustc with `wasm32-unknown-unknown` as a target
- cargo
- wasm-pack
- node
- pnpm
- elmHow you get these dependencies depends on the operating system you’re running. Here’s an example for macOS and Linux using rustup:
```sh
rustup toolchain install stable
rustup target wasm32-unknown-unknowncd web
pnpm install
```Run a development server from the `web` folder:
```sh
pnpm serve
```Build a release:
```sh
pnpm build
```## License
[MIT][license-url] © [Sander Melnikov][maintainer-url].
[license-url]: https://github.com/sandydoo/flux/blob/main/LICENSE
[maintainer-url]: https://github.com/sandydoo/
[x]: https://x.com/sandydoo/
[store]: https://sandydoo.gumroad.com/l/flux