Sacred Geometry

Open-source local kaleidoscope studio — opens capture-first for fullscreen YouTube video creation
Recommended: YouTube Capture Mode
The app opens in full-window viewer mode with floating controls by default. Adjust the kaleidoscope, then enter one-click capture fullscreen. The app requests browser-chrome-free fullscreen, hides the control panel, fills the display with the selected frame, and leaves only two recovery buttons that fade away after two seconds.
Browsers require this one click before they permit fullscreen. Move the pointer into the top 10% of the screen, or touch the top edge, to recover the two hidden buttons.
Start Here — Instant Download Reward
Try a sample, tweak the kaleidoscope, and immediately download a wallpaper, thumbnail, or bitmap without scrolling deeper into the app.
The regular download button still appears later in the full control flow. These quick actions are duplicated here so new users get rewarded right away.
Image Source
Drop or paste an image anywhere
Choosing a sample image immediately replaces the live kaleidoscope texture. The reload button is only needed to force a fresh reload. Local files stay in your browser. Giant images are automatically scaled to a fast preview texture. Remote servers must allow CORS.
Image list + compiled double-buffer playback
Not compiled yet. Create or import a frame script, then compile the editable image list.
Target Frame + Magic Square
Current-device auto mode uses the browser display size at device-pixel resolution and updates after phone or tablet rotation. Shorts presets render and export true vertical 9:16 frames. The loop exporter uses the selected target dimensions exactly.
Radial Kaleidoscope Filter
Center controls are synchronized in normalized fraction, percentage, and exact pixels relative to the current output frame.
Start here for instant gratification: mirrored segment count, wedge angle, source-square angle, zoom, center, and radial shift. Segment count is kept even so every reflected wedge has a matching partner and the full 360° circle stays mirrored and animated together, including low wedge counts.
Live Background Rotation Animation
The slider uses a logarithmic range from 0.1 seconds to 24 hours per revolution, so fast and slow motion are both easy to explore. The exact number field remains available for matching a song or loop length precisely.
The square source background rotates once every 60 seconds beneath fixed kaleidoscope wedges. Embedded playback is locked to an evenly paced 60 FPS by default. Standalone mode can use a manual frame-rate limit or every available display frame.
Spherize Filter
Center controls are synchronized in normalized fraction, percentage, and exact pixels relative to the current output frame.
Make the source image become a square
Scale and crop to shortest side fills the square without stretching and trims the extra edges from the long side. Shrink to fit whole image shows the entire image inside the square and leaves black space where needed. Stretch to square squishes or stretches the image to fill the square. The kaleidoscope geometry itself always stays truly square and is never stretched to the DCI 8K rectangle.
When no filter is applied
If both filters are off, the source image is shown directly and upright inside the selected target frame size. Scale down to fit all shows the whole image with black bars when needed. Stretch to the frame fills the selected frame by stretching. Scale to fill selected frame and crop extra edges fills the selected frame without stretching and trims the extra edges.
Download this app file with a real name
If your browser preview tries to save this page as a generic name like preview.html, use this button instead. It downloads this exact app as a normal HTML file with a meaningful file name.
This saves the current single-file open-source web service so people can keep it locally and run it directly in Chrome from their file system.
Live Preview Performance
Automatic smooth preview is the default because it is much smoother for live work. For real-time 8K capture on an 8K display, switch to Match target frame exactly and then use browser fullscreen.
Transparent title overlay
Kid-friendly meaning: Left-right and up-down move the title. Transparency controls fade in and fade out. Size makes it bigger or smaller. Spin rotates it. Because the frame-level XML can set these numbers on every frame, the title can scroll, fade, pulse, and drift however you want.
The title text itself is stored once. The frame script controls the moving numbers: position, transparency, size, and spin. That is a simple demo of alpha-channel title compositing.
Transparent PNG title + QR overlays
These are extra transparent image layers for video-making. The sample title PNG and sample QR PNG are included in the downloadable package and can also live beside this HTML in 8k.art/daily. Their alpha, position, size, and the title layer's scroll speed can be scripted frame by frame.
Vertical scroll speed uses screen-height units per second. Example: 0.020 means the title drifts upward by about 2% of the screen height per second when animation is running.

MyAnythingList-style QR controls: qr_x, qr_y, and qr_size in both percentage and pixels. Percent values are based on the current output frame. QR size percent uses the shorter side of the current output frame.
Sample QR target: https://8k.art/daily
Audio → frame-accurate XML animation script
Load an MP3 or other browser-decodable audio file. Analysis is performed locally and offline. Every video frame receives peak and average amplitude values from 0 (silence) to 1 (full scale), plus a complete snapshot of every scriptable kaleidoscope control. Nothing is uploaded.
Choose a sample or paste any direct URL to an MP3, WAV, M4A, AAC, FLAC, or OGG file. The remote server must permit browser cross-origin access. The app downloads and analyzes the audio locally; it does not upload your audio anywhere.
1. Download
2. Decode
3. Analyze frames
4. XML ready
5. Run ready
Canonical sample: “Neon Pulse Symmetry” is an original royalty-free electronic instrumental created for Sacred Geometry demonstrations.
Audio response strength regulates how strongly the song moves the selected effect. 0 means no movement, 0.30 is a gentle musical thump, 1.00 uses the whole selected range, and values above 1 make the response stronger while still being limited to the selected minimum and maximum.
Left: target value at silence. Right: the safety limit at full loudness. Every audio-mappable effect remembers its own response strength. Default Spherize Strength response is 0.30.
No audio or XML script loaded.
The current H.265/H.264 WebCodecs MP4 path uses these scripted values frame by frame. Audio is analyzed and synchronized for preview; multiplexing the original audio into the offline MP4 container is the next encoder step and is not falsely claimed here.
Animated 360° loop video export
Ready for maximum-speed offline encoding.
Maximum-speed export renders and encodes frames as quickly as the GPU and browser video encoder can accept them. It does not intentionally wait for real time. H.265 / HEVC MP4 is attempted first for Premiere and HeyGen compatibility; browser encoder availability still varies by machine.
Hardware-composited transparent video overlay
Play a transparent 4K or 8K video directly above the kaleidoscope. Chrome composites this separate video layer with the WebGL canvas through the GPU when the codec and hardware permit it. WebM VP9 with alpha is the most practical transparent format in Chromium; other alpha-video formats depend on the operating system and browser.
Visionary suggestion to HeyGen: please add direct transparent WebM VP9 with alpha output for avatars as soon as possible. A transparent avatar layer would let creators place a HeyGen avatar live over this 4K or DCI 8K kaleidoscope, combine it through hardware-accelerated browser compositing, and capture the finished result without permanently baking a background into the avatar video. This should also become a first-class HeyGen API output option for automated open creative workflows.
No transparent video loaded. This overlay is included in fullscreen and HDMI/screen capture because it is visually composited above the kaleidoscope. Current still-image and offline MP4 exports do not yet bake this separate overlay layer into the exported file.
Live Shareable URL
This box contains the whole app URL, including viewer mode, floating-controls choice, square mode, image URL, target frame, animation values, and filter values.
Embed this kaleidoscope in any web page
The first example uses the full current app URL. The second example uses just this file name plus the current control string, so someone can download the HTML file, put it beside their own page, and embed it with an iframe right away.
Viewer Mode
This mode fills the browser window with your image. Embedded previews cannot take over the browser; the fullscreen button will open the app standalone first. In standalone fullscreen, the top-right button hides or shows the controls.
Image-only URL output
PNG gives the browser a lossless image. JPEG tries to land inside your target MB range by adjusting quality automatically.
Sample 8k.art tool URLs
Loading sample links…
These clickable examples use the real 8k.art daily image and open either the live tool or an image-only output.
Open-source local execution: This entire web service is contained in this downloadable HTML file. It is designed to run directly from file:/// in Google Chrome on Windows, macOS, Linux, ChromeOS, Android, and iPadOS browsers that support WebGL. No upload or server is required for local images.
Open-source local web service: save this one HTML file anywhere, open it directly from your local file system in Chrome, and use it without installing a server, framework, account, or cloud service. Every control and every shareable URL name uses plain English. Buttons and controls now also give calming visual touch feedback on tap or click.
Standard sample asset locations: reusable source images and overlay PNGs live under /daily/samples/. Dated lossless working copies live under /daily/2026-07-16/, keeping the root /daily/ directory uncluttered.