Tiny Planet Maker - fotojockovic.com/planet =========================================== Turns a 360-degree photo, a phone panorama or any wide photo into a tiny planet (stereographic projection), a rabbit-hole tunnel, a planet in space with moons or a glass globe, with videos, GIFs, stills and posters. Everything runs in the browser; no image leaves the device. Our own work (MIT licence): the WebGL2 renderer and its projection family (flat strip curling into a ring, stereographic planet, camera tilt from planet to tunnel, orthographic globe, space disc with atmosphere glow, procedural star field and nebula, moons), the gestures and morph animation, the UI, texts and translations, and the Rust kernel in src-rs/ compiled to wasm/planetkernel.wasm: - panorama preparation: seam blending (low-frequency colour matching plus a short mirrored cross-fade), mirroring, mirrored ground, and filling of missing sky and ground with a weighted push-pull pyramid in polar grids around the zenith and the nadir (also used to hide a tripod); - animated GIF encoder (median cut + k-means palette, ordered dithering, lossy temporal reuse, LZW); - camera-sweep stitching (focal length estimate, alignment against the mosaic, gain matching, feathered blending into an equirectangular band). The Rust crate has no third-party dependencies. Third-party pieces shipped to the browser: 1. mp4-muxer 5.2.2, Vanilagy - MIT. https://github.com/Vanilagy/mp4-muxer mp4-muxer.js (unmodified ESM build), loaded only when a video is made. Licence: LICENSE-mp4-muxer.txt 2. Sample panoramas (samples/*.jpg: the tonemapped 8K JPEGs resized to 4096 x 2048 and 1536 x 768 and re-encoded; samples/*_t.jpg thumbnails rendered by this tool). Poly Haven, CC0 1.0 (https://polyhaven.com/license): stone_pines "Stone Pines", Greg Zaal, Rico Cilliers https://polyhaven.com/a/stone_pines piazza_bologni "Piazza Bologni", Andreas Mischok https://polyhaven.com/a/piazza_bologni sunflowers "Sunflowers", Sergej Majboroda https://polyhaven.com/a/sunflowers canary_wharf "Canary Wharf", Andreas Mischok https://polyhaven.com/a/canary_wharf shanghai_bund "Shanghai Bund", Greg Zaal https://polyhaven.com/a/shanghai_bund the_sky_is_on_fire "The Sky Is On Fire", Greg Zaal, Rico Cilliers https://polyhaven.com/a/the_sky_is_on_fire misty_pines "Misty Pines", Greg Zaal https://polyhaven.com/a/misty_pines tears_of_steel_bridge "Tears of Steel Bridge", Greg Zaal https://polyhaven.com/a/tears_of_steel_bridge venice_strip a 300 x 56 degree crop of "Venice Sunset", Greg Zaal, to demonstrate a panorama that is not a full 360 degrees https://polyhaven.com/a/venice_sunset og.jpg is a render of stone_pines made with this tool. 3. Fonts from Google Fonts (self-hosted), SIL Open Font License 1.1: Inter Tight (Rasmus Andersson et al.), Instrument Serif (Instrument). Also drawn into posters. 4. Shared site code: /static/tools/common/i18n.js (language picker; flag drawings are our own work, the national flags themselves are public-domain symbols), common/sheets.js, common/rail.js. No GPL code is shipped. No machine-learning model is used. Build tools (not shipped): Rust/cargo, binaryen wasm-opt. Self-hosted web fonts (2026-10-19): Inter Tight, Instrument Serif. SIL Open Font License 1.1. The woff2 files are the ones Google Fonts serves (latin, latin-ext, cyrillic, greek subsets where the family has them), stored on our own server under /static/tools/common/fonts// with each family's licence text (OFL.txt) next to them; stylesheet /static/tools/common/fonts/ui.css. No font request goes to Google.