A CD spinning on your desktop.

JewelCase is an open-source 3D desktop widget: a transparent CD jewel case holding the disc of the album playing on Spotify, with real refraction of your wallpaper.

Live demo: drag to rotate, click to open the lid

What it is

A physically simulated object with real measurements (case 142 × 125 × 10.4 mm, CD Ø 120 mm) that lives on your desktop and changes album when your music changes.

Real transparent plastic

Custom shader with Beer-Lambert absorption, total internal reflection and Fresnel. Procedural scratches that only catch light when they reflect it.

The album's CD

Looks up the real disc photo on MusicBrainz / Cover Art Archive, Discogs, TheAudioDB and Fanart.tv. If none is found, it generates a screen-print style disc from the cover's palette.

Physical diffraction

The disc throws rainbows from a 1.6 µm track pitch (orders 1 to 3), with marks that rotate with it.

Desktop refraction

The case bends whatever is behind it, live. The window is transparent and lets clicks through everywhere outside the object.

Interactive booklet

Open the lid, look at the track list and tap a row to play it (Spotify Premium).

Lightweight

Only draws when something changes, lowers its frame rate at rest and pauses when a full-screen app is running.

Install

Download the file for your system from the latest release. No account or extra installs needed.

SystemFileStatus
Windows 10/11 (x64).msi or -setup.exeFull All features. Requires WebView2 (already included in Windows 11).
Linux (x64).AppImage, .deb, .rpmExperimental No live desktop refraction and no instant Spotify detection. On Wayland, dynamic click-through may not work; X11 is recommended.
macOS (Apple Silicon).dmgExperimental Same as Linux. Unsigned: right-click → Open the first time.

Windows may show SmartScreen because the installer is not signed: «More info → Run anyway».

How to use it

  1. Open JewelCase. The widget appears on the desktop, with an icon in the system tray.
  2. Drag to rotate the case. Click without moving to open or close the lid.
  3. Alt + drag moves the window. You can also use «Reposition» in the tray menu (double-click to leave that mode).
  4. Settings (click the tray icon): size, window level (always on top / at the bottom), quality, refraction, wear on the case and disc, paper, background.
  5. Reload artwork from the tray if an album got the wrong disc. For each album you can set a manual photo with a URL.

Mouse

Drag: rotate · Click: lid · Alt+drag: move · Click a track row: play.

Tray

Settings, Reposition, Reload artwork, Quit.

Optional keys

Fanart.tv and Discogs improve disc lookup. Without them it still works with MusicBrainz and TheAudioDB.

Connect Spotify

Uses your own Client ID (PKCE authentication, no secrets). Setup takes about two minutes. Playing a track by tapping its row requires Premium.

  1. Go to developer.spotify.com/dashboard and create an app.
  2. Under Redirect URIs, add exactly:
    http://127.0.0.1:47862/callback
  3. Copy the Client ID, paste it in Settings → Spotify, then click «Connect».

The session token is stored in the system's secure store (Credential Manager on Windows). On Windows, JewelCase also detects track changes instantly without signing in.

Build from source

You need Node LTS and stable Rust. On Windows, Visual Studio Build Tools with «Desktop development with C++». On Linux: libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev libssl-dev libdbus-1-dev.

git clone https://github.com/XradX314/jewelcase.git
cd jewelcase
npm install
npm run tauri dev      # development
npm run tauri build    # builds the installers

src/render/jewelcase.ts is generated: to change the rendering, edit tools/render/*.part.ts or build.mjs and run npm run render. The visual reference is demo.html.

Stack: Tauri 2 (Rust) · Vite · TypeScript · Three.js 0.158.