Privacy
Mandelbrot Deep Zoom is a static website. This page describes what the current implementation actually does with your data.
Local audio files
When you choose an audio file through the browser’s file picker, the file is read into a blob: URL and played through the HTML audio element. Frequency analysis for music-reactive visuals uses the Web Audio API in your browser. Audio files are not uploaded to any server by this application — there is no server-side MP3 storage or processing in this deployment.
Default demo track
The main page includes an optional default demo track served as a static MP3 file from this site (/audio/once-in-a-while-i-dream.mp3). You can load it with the Load default track button, or choose your own local file instead. The default track is not fetched from a third-party service.
Browser storage
UI preferences (palette, quality, echo settings, control panel state, and similar options) may be saved in localStorage under the key mandelbrot-deep-zoom-prefs. Recent dives and named favorites are stored locally under mandelbrot-saved-dives-v1. Flags may be stored when you dismiss the first-run help overlay (mandelbrot-help-seen-v1) or the desktop explorer intro banner (mandelbrot-intro-dismissed-v1). This data stays on your device.
Optional remote GPU (LAN)
If you opt in under Advanced Controls → Remote GPU, two devices on the same local network can pair using WebRTC. The controller sends view coordinates (center, zoom, palette, and related settings) to a renderer device. The renderer sends back a video stream of the fractal. This traffic stays peer-to-peer on your LAN for the manual copy-paste signaling path; no third-party analytics or render farm is involved. Remote GPU is off by default.
Accounts, ads, and analytics
- There is no account system or login.
- There are no advertising trackers or third-party cookies from the application itself.
- The site loads Statable for aggregate, cookieless product analytics (page views, engagement time, and selected in-app actions such as share copies and gallery clicks). Statable does not set cookies or write tracking IDs to
localStorage. Data is processed and stored in the EU. The tracker honors browser Do Not Track and Global Privacy Control signals. Custom events never include fractal coordinates, audio filenames, or dive names. - The deployed site may also load Cloudflare Web Analytics (also called Real User Measurement) via the hosting provider. This collects aggregated page-view and performance information (for example load times and basic traffic patterns). It is not used to build individual user profiles.
- Fractal rendering and deep-zoom math run locally in your browser via WebGL, unless you explicitly enable Remote GPU pairing on a nearby device.
Opting out of Statable analytics
You can stop Statable from recording visits from this browser on this site in any of these ways:
- Enable Do Not Track or Global Privacy Control in your browser (honored automatically).
- Use the button below to set a per-browser opt-out flag in
localStorage(analytics_ignore). - Append
?noga=1to the URL for a single visit without analytics.
Disabling Cloudflare Web Analytics
Cloudflare Web Analytics is enabled in the Cloudflare dashboard for this site, not in the application source code. To disable it, turn off Web Analytics for mandelbrotzoom.com in the Cloudflare dashboard (Analytics & Logs → Web Analytics). Removing HTML from this repository will not stop an automatically injected beacon.
Hosting
When you visit the deployed site, your browser requests static files (HTML, images, manifest) from the hosting provider (for example Cloudflare Pages). That provider’s standard web server logs may apply at the infrastructure level; this project does not add its own server-side application logging.