1kx Music Player & Visualizer

An interactive audio player and real-time cosmic astrophotography engine featuring the musical archives of Caseyland, Uphill Driver, Creme Puffs, and Orange Cricket Project.

Quick Start Guide

The 1kx homepage is a living deep-space visualizer where music tracks drift through space as interactive floating album squares. Tracks are continuously preloaded, analyzed, and synthesized into real-time harmonic visual effects.

1
Play Any Track

Click or tap any floating album square to immediately launch audio playback and synchronize the cosmic visualizer.

2
Filter by Artist

Press Q or click the ? button in the bottom-left to toggle the About modal. Click any band logo to filter active tracks.

3
Open Control Panel

Press X (or hold the top-left screen corner for 550ms) to slide out the glassmorphic Control Panel and customize 12 real-time physics parameters.

4
Continuous & Zen Modes

Click the button to cycle between standard play, Continuous Play, and distraction-free Zen Mode (Z).

Featured Music Collective Lineup

Caseyland
Caseyland
1995–Present · Casey Cichowicz. Synth-pop, indietronica, acoustic ballads, and demos.
Uphill Driver
Uphill Driver
2000–2002 · Tam Rankin, Billy Reisinger, and Casey Cichowicz. Country & Americana rock.
Creme Puffs
Creme Puffs
1999–2003 · Dayton Henceroth and Casey Cichowicz. Ambient pop, live improvisations, and studio outtakes.
Orange Cricket Project
Orange Cricket Project
1993–2000 · Zac Cairns, Jon Gerding, Mike Hurst, Tam Rankin, and Casey Cichowicz. Improvisational space rock.

Master Keyboard Shortcuts

Use hotkeys to quickly control audio playback, open diagnostic panels, and manually trigger rare astronomical events or historic spacecraft flybys.

Key Action Category Description
Space Play / Pause Playback Toggles playback on the active audio track without resetting track position.
Z Zen Mode Playback Hides floating squares and HUDs for distraction-free listening; grants square invulnerability.
X Control Panel Navigation Toggles the glassmorphic Settings dashboard and 12-parameter control grid. (Also 1kx or xxx).
Q About 1kx Modal Navigation Opens the artist roster, band history, and interactive logo filter controls.
D Status & Debugger Telemetry Toggles the live audio analysis, GPU frame-time, LOD tier, and particle diagnostics HUD.
R Redraw Visualizer Cosmic Engine Regenerates all stars, dust rifts, and ambient gas nebulae with a fresh random seed.
W Toggle Constellations Cosmic Engine Simultaneously connects and illuminates all 11 astronomical real-sky constellations.
C Spawn Comet Cosmic Engine Launches a fast-moving comet with a Type-I multi-spectral ionized gas tail (allows 2 concurrent).
M Meteor Shower Cosmic Engine Triggers a radiant meteor shower with multi-angle entry trajectories and stardust embers.
G Spawn Galaxy Cosmic Engine Spawns a high-fidelity Spiral Galaxy, Barred Spiral, or Active Galactic Nucleus (AGN).
F Shock Filament Cosmic Engine Spawns a braided supersonic supernova remnant ionization filament (Veil Nebula archetype).
J Herbig-Haro Jet Cosmic Engine Dispatches a protostellar bipolar plasma jet with supersonic bow shocks.
P Spawn Pulsar Cosmic Engine Spawns a spinning relativistic neutron star with synchrotron radiation lighthouse beams.
I Space Invader Arcade Combat Spawns a retro 8-bit Space Invader craft equipped with obstacle evasion AI and laser cannons.
S Random Spacecraft Fleet Launches a random historic spacecraft from the 9-ship fleet across the screen.
1 Voyager 1 & 2 Fleet Voyager probe flyby featuring the Golden Record, scan platform, and magnetometer boom.
2 JWST Fleet James Webb Space Telescope with 18 beryllium-gold hexagonal mirrors and 5-layer sunshield.
3 Skylab Fleet First US space station with Apollo telescope mount and gold Mylar parasol blanket.
4 Discovery One Fleet 2001: A Space Odyssey spacecraft featuring the illuminated red HAL 9000 eye.
5 Space Shuttle Fleet NASA Space Shuttle Orbiter with heat tiles, delta wings, and opening payload bay.
6 ISS Fleet International Space Station with articulated photovoltaic arrays and pressurized modules.
7 Sputnik 1 Fleet First artificial satellite: polished metallic sphere with 4 angled whip antennas.
8 Hubble Space Telescope Fleet HST with opening aperture hood, optical mirror flash, and solar arrays.
9 Cassini-Huygens Fleet Saturn orbiter with 4m HGA dish, gold Kapton body, and detachable Huygens Titan probe.
0 Floating Astronaut Easter Egg Spawns a tiny EVA astronaut with MMU thruster pack and trailing umbilical safety tether.

Mouse, Touch & Mobile Gestures

Fling
Kinetic Square Glide & Wake

Drag any floating album square and fling it across the screen. The square glides with low-drag friction for ~10 seconds while emitting organic stardust sparkles.

Swipe
Comet & Shooting Star Swipe

Swipe quickly across any open area of the cosmic canvas to launch a high-velocity meteor or comet. Comets follow curved gravitational trajectories with glowing ion tails and trail sparkles.

Connect
Constellation Star Linking

Touch or click near background stars and drag between them to draw luminous constellation lines. Linking stars snaps to real astronomical patterns and spawns custom constellation waypoint badges.

Hold
Gravity Well & Black Hole

Click/touch and hold anywhere on the open background to open an active Gravitational Singularity. Nearby stars, dust, and spacecraft are pulled toward the singularity with gravitational lensing, and releasing the hold unleashes an acoustic shockwave burst.

Hotspot
Top-Left 550ms Corner Hold

Touch or click and hold the top-left 120px / 15% corner of the screen for 550 milliseconds to open the Control Panel without using the keyboard. Provides haptic vibration feedback.

Double-Tap
Top Screen Invader Double-Tap

Double-tap within the top-center margin of the screen to instantly summon an 8-bit Space Invader assault craft. Triggers a 20-sparkle burst and haptic vibration feedback on mobile devices.

Shake
Mobile Device Shake Gesture

Physically shake your phone or tablet. The multi-axis accelerometer and gyroscope engine detects the physical shake and summons the celestial Astronaut Easter Egg.

💡
Interactive Waypoint Labels: Whenever a spacecraft flyby occurs or a constellation enters the sky, tap its dark glassmorphic label badge to focus on it and trigger a 14 to 18-sparkle celebration burst.

Control Panel & 12-Parameter Grid

The Control Panel includes a collapsible 12-parameter drawer for granular customization. Changes are automatically saved to your browser's localStorage.

Parameter Range Default Description & Astrophysical Impact
Max Squares 1 – 43 43 Sets maximum floating track capacity. Lowering this slider summons Space Invaders to shoot down surplus squares.
Square Speed 1 – 100 50 Adjusts drift velocity and movement pace of floating album cards across the screen.
Nebula Gas 0 – 12 12 Controls the number of vibrant, volumetric ionized gas clouds drifting in the background.
Star Density 0 – 250 200 Controls starfield density scaled dynamically across phone screens up to 4K desktop displays.
Star Speed 1 – 100 50 Adjusts cosmic parallax and drift velocity of the background stellar field.
Star Color 1 – 100 70 Adjusts spectral color temperature and saturation across O, B, A, F, G, K, and M stellar classes.
Dark Dust 0 – 12 12 Adjusts the count of cold interstellar absorption dust rifts and Barnard silhouettes.
Dust Opacity 1 – 100% 55% Controls master opacity and density of foreground stardust lanes.
Wispiness 1 – 100 50 Adjusts fractal edge turbulence and irregularity of drifting nebular clouds.
Space Darkness 1 – 100 50 Controls baseline darkness and contrast of the deep interstellar backdrop.
Cloud Opacity 1 – 100 65 Controls master visual opacity of animated CSS gradient nebulae.
Aurora Glow 1 – 100 65 Adjusts atmospheric glow intensity of the harmonic audio aurora responsive to song frequencies.
⚙️
One-Click Reset: Click the Reset to Default button at the bottom of the parameters accordion to immediately return all 12 sliders to factory visualizer defaults.

Historic Spacecraft Fleet & Invaders

Nine historic and sci-fi spacecraft traverse the sky on smooth diagonal trajectories with authentic vector geometry. Spacecraft automatically interact with gravitational bodies via slingshot acceleration.

Key 1
Voyager 1 & 2

Features the 10-sided bus, Golden Record etched disc, scientific scan platform, high-gain antenna, and magnetometer boom.

Key 2
James Webb (JWST)

Modeled with 18 hexagonal gold beryllium mirror segments and the 5-layer silver/purple Kapton sunshield.

Key 3
Skylab Space Station

Equipped with the Apollo Telescope Mount (ATM), single deployed solar array wing, and gold Mylar parasol sunshade.

Key 4
Discovery One (2001)

Spherical command module with an illuminated red HAL 9000 eye, AE-35 dish antenna, and animated EVA pod bay doors.

Key 5
NASA Space Shuttle

Dorsal view with thermal protection tiles, flight deck, Canadarm robotic arm, and opening payload bay.

Key 6
International Space Station

Full integrated truss structure, dual photovoltaic solar array wings, cupola module, and pressurized laboratory modules.

Key 7
Sputnik 1

Polished metallic sphere with four 35-degree angled whip antennas and radio transmission ripple pulses.

Key 8
Hubble Space Telescope

Opening forward aperture hood, primary mirror reflective flash, dual solar wings, and high-gain antenna dishes.

Key 9
Cassini-Huygens

4m high-gain dish, gold MLI insulation body, detachable Huygens Titan atmospheric lander, and RPWS antennas.

Tactical Space Invaders & Square Destruction Engine

Press I, double-tap the top of the screen on touch devices, or wait for an automatic assault wave to spawn an authentic 8-bit retro Space Invader craft. Invaders feature 4 arcade archetypes (squid, crab, octopus, mech) with 2-frame walking animations, pixel trail emissions, and intelligent combat pathfinding:

  • Periodic "Seek & Destroy" Capacity Engine: Once the maximum square limit is reached (or when the Max Squares slider is lowered), Space Invaders periodically launch tactical assault waves. They actively scan for unplaying squares, sidestep directly into the strike column, and obliterate surplus squares with downward laser blasts into pixel explosion debris.
  • Obstacle Evasion AI: When descending across the canvas, Invaders detect active album squares in their path and execute orthogonal sidestepping maneuvers to bypass obstacles without colliding.
  • Retro Laser Cannons: When trapped between obstacles or actively clearing surplus squares, Invaders fire rapid downward laser bolts with cannon recoil and screen-wide sparkle bursts.
  • Zen Mode Protection: Floating squares are 100% immune from Space Invader targeting and laser destruction while in Zen Mode (Z).

Astrophotography & Visualizer Physics

The visualizer simulates genuine astronomical mechanics using custom canvas rendering pipelines, offscreen sprite texture caches, and mathematical models:

Galaxies
Galactic Structure & AGNs

Grand design logarithmic spiral arms, central stellar bars, Vera Rubin dark matter flat rotation kinetics, HII ionized star knots, and Active Galactic Nuclei (AGN) black hole singularities with relativistic plasma jets.

Constellations
11 Astronomical Sky Presets

Astronomically accurate star maps for Orion, Ursa Major (Big Dipper), Ursa Minor (Little Dipper), Cassiopeia, Cygnus, Leo, Scorpius, Taurus, Pegasus, Canis Major, and Triangulum.

Optics
Diffraction & Micro-Lensing

Stellar cores render Airy disk wave rings, Hubble 4-point diffraction spikes, optical ghost reflection halos, and Einstein gravitational micro-lensing arcs around dense galactic cores.

Shocks
Filaments & Protostellar Jets

Braided Veil Nebula supernova remnant ionization ribbons and Herbig-Haro bipolar protostellar jets with supersonic bow shocks and molecular knot emissions.

Audio Engine & Harmonic Sonic Palette

1kx incorporates a custom Web Audio API processing architecture with real-time frequency distribution mapping and dynamic harmonic color synthesis:

4-Band FFT
Frequency Register Analysis

Continuously separates acoustic spectrum into Sub (bass drums), Low-Mid (basslines/guitars), High-Mid (vocals/keys), and Treble (cymbals/air) with balanced gain calibration.

Contrast
Self-Normalizing Dynamic Contrast

Separates predominant frequencies relative to the track's own running baseline, preventing spectral teal bias and ensuring dynamic visual response across both quiet and loud songs.

Aurora
Harmonic Aurora & Warmth Flux

Synthesizes deep-space aurora hues that gently shift across sapphire, emerald, and solar gold, modulating transient warmth during drum beats and chorus crescendos.

Metadata
Client-Side ID3 Tag Parsing

Integrated mp3tag.js decodes track metadata, UTF-8 strings, and embedded APIC album cover artwork directly in the browser with zero server roundtrips.

Performance Engine & Diagnostic Telemetry

1kx is engineered for sustained 60 FPS performance across mobile phones, laptops, and 4K displays through an adaptive Level-of-Detail (LOD) engine and zero-allocation object pooling:

Quality Tier Target & Profile Rendering Adjustments & Optimizations
Tier 0: Full Quality 60+ FPS · High-End GPUs All 9 full-screen background shaders active, full starfield density, high-resolution micro-galaxy swarms, and maximum bloom effects.
Tier 1: Balanced 45–55 FPS · Mid-Range / Laptops Cached morphology blits, throttled CSS gradient transformations, and proportional particle limits.
Tier 2: Low Power / Eco Sub-45 FPS or Battery Saver Flattens heavy CSS background gradients into an optimized single composite fill, bypasses backdrop-filter blurs, and clamps canvas DPR to 1.0x.

Live Telemetry HUD (D)

Press D or click the bug icon in the Control Panel to open the collapsible Telemetry HUD. Inspect live metrics for:

  • Engine & Graphics: FPS, Frame Time (ms), LOD Tier, Canvas DPR, and Adaptive Subsampling.
  • Cosmic Objects: Live counts for Stars, Galaxies, Mini-Clusters, Filaments, Pulsars, Comets, Meteors, Spacecraft, and Invaders.
  • Audio Channels: Real-time FFT levels across Sub, Low-Mid, High-Mid, and Treble registers.
  • Preloader & History: Audio buffer status, track cache hit rates, recent play logs, and DOM class state transitions.

Frequently Asked Questions

Why isn't audio playing automatically when the page loads?

Modern web browsers (Chrome, Safari, Firefox, Edge) enforce autoplay security policies that require an explicit user gesture (click or tap) before an AudioContext is allowed to output sound.

How do I use this on my mobile phone?

1kx is a fully responsive Progressive Web App (PWA). You can tap squares to play, drag and fling them with touch physics, hold the top-left screen corner for 550ms to open Settings, or shake your phone to spawn the Astronaut!

Are the visualizer animations recording or capturing my audio?

No. All audio analysis is performed purely on the client side inside your web browser via the Web Audio API AnalyserNode. No audio data or microphone input is ever recorded, stored, or transmitted.

Release History & Changelog

1kx Music Player Release History
MINOR v2.36.001
2026-08-21
  • Invader-Driven Square Removal Engine & Tactical Assault Waves (index.html):
  • Invader-Driven Square Countdown: Replaced procedural timer-based square removal in 'removing' mode with episodic Space Invader tactical assault runs. Squares are destroyed exclusively when retro laser blasts strike inactive floating squares.
  • Tactical Assault Trajectory Alignment: Invaders entering during countdown mode automatically align their descent column with the center of candidate removable squares.
  • Assault Cadence: Transitioning to 'removing' mode triggers a rapid initial Invader assault within 45–90 seconds, followed by accelerated 3–5 minute attack waves until the count returns to 1 baseline square.
24 PATCHES View Patch Updates (v2.36.002 – v2.36.025)
PATCH v2.36.025
2026-08-21
  • Unified Spacecraft Dispatch Scheduler & Cadence Optimization (index.html):
  • Unified all 9 historical spacecraft (Voyager, JWST, Skylab, Discovery One, Shuttle, ISS, Sputnik, Hubble, Cassini) under a consolidated single-timer dispatch queue (scheduleNextSpacecraft).
  • Enforced absolute single-craft orbital exclusivity by canceling overlapping spawn timers upon activation.
  • Calibrated active square countdown Invader attack waves to 8–15s rapid strike intervals while tuning ambient flyby intervals to 5–30 minutes.
PATCH v2.36.024
2026-08-21
  • Touch Gestures & Space Invader Combat Documentation Expansion (help/index.html, ARCHITECTURE.md):
  • Added full technical documentation for screen-top Space Invader double-tap gestures, comet swipe trajectories, starfield constellation dragging, and 550ms corner long-press triggers.
  • Detailed the periodic Space Invader square removal cycle and seek-and-destroy combat mechanics in the documentation hub.
PATCH v2.36.023
2026-08-21
  • Documentation Hub Complete Football Changelog Sync & Mandatory Pre-Deployment Routine (help/index.html, .agents/AGENTS.md, .agents/skills/release-check/SKILL.md):
  • Expanded the Documentation Hub release history with the comprehensive retrospective changelog of all 60+ releases in 1kx Football history (v0.1.1 through v3.02.001).
  • Enforced mandatory pre-deployment Documentation Hub changelog synchronization across all future release cycles.
PATCH v2.36.022
2026-08-21
  • Caseyland Refreshed Vector Logo, Orbitron Typography & Help Hub Changelog Sync (help/index.html, images/logo_caseyland.png, index.html):
  • Integrated 2026 refreshed high-resolution Caseyland vector logo asset across all canvas preloading, fallback routines, and info modal markup with cache-busting ?v=2.
  • Upgraded Control Panel heading and technical documentation tables to Google Orbitron font typography.
  • Synchronized documentation hub changelog stream at help/index.html with recent engine releases and pre-deployment approval protocol.
PATCH v2.36.021
2026-08-21
  • Deployment Protocol Alignment & Pre-Deployment Documentation Review (.agents/AGENTS.md, .agents/skills/release-check/SKILL.md):
  • Implemented the Pre-Deployment Documentation Update & User Approval Protocol in AGENTS.md and release-check/SKILL.md.
  • Added an interactive user prompt during deployment to review, draft, and approve documentation updates (help/index.html, functional specifications, and changelogs) before version bumping and deployment execution.
PATCH v2.36.020
2026-08-21
  • Hardware GPU Alpha Glow, Bitwise Lookup Fast Trigonometry & Documentation Hub Sync (index.html, help/index.html, scripts/upload.py):
  • Replaced CPU software ctx.shadowBlur in InvaderLaser and SpaceInvaderCraft muzzle flashes with multi-pass hardware GPU alpha fill glows, eliminating rasterizer stall bottlenecks during combat sequences.
  • Accelerated fastSin and fastCos with precomputed scalar multiplication (512 / TWO_PI) and bitwise integer truncation/masking (| 0 & 511), yielding 3.5x faster lookup throughput.
  • Pre-cached rgbString formatting on starColorDefinitions and cached eligibleFilamentCloudsCount to eliminate per-frame string interpolation and array filtering allocations.
  • Synchronized documentation hub (help/index.html) across production deployment tooling (scripts/upload.py) and updated sub-app functional specifications.
PATCH v2.36.019
2026-08-21
  • Zero-Allocation Micro-Lensing Pool, Hoisted Starfield Center Vectors & Lifecycle Controller (index.html, tests/test_monorepo_regression.js):
  • Implemented reusable microLensingArcPool and index tracker activeMicroLensingArcCount to eliminate per-star object allocations during gravitational micro-lensing calculations.
  • Hoisted viewport center and gravitational center-of-mass vector math out of per-star iteration loops, passing computed coordinates directly into star.draw().
  • Added comprehensive 11-assertion regression test suite [8N] verifying zero-allocation engine components, dirty layer tracking, and lifecycle controller synchronization.
PATCH v2.36.018
2026-08-21
  • Periodic FPS Watchdog LOD Hysteresis & Throttled Nebula Cloud Reflows (index.html):
  • Aligned the Level-of-Detail (LOD) performance hysteresis engine with the 30-frame periodic evaluation cycle, evaluating multi-period low/high thresholds to eliminate per-frame state machine thrashing.
  • Increased background CSS nebula cloud transform throttle intervals from 15–40 frames to 60–120 frames (~1.0s–2.0s), drastically reducing DOM style recalculations and GPU compositing load.
PATCH v2.36.017
2026-08-21
  • Slow Connection Sequence Alignment, Relaxed Sonic Palette FFT & Dither GPU Suppression (index.html):
  • Aligned slow connection overlay check, initial album square spawn, and 3D soccer ball roll-in timing with completion of the 15-second cinematic fade-in-from-black (first square at 18s, soccer ball at 23s).
  • Relaxed Web Audio FFT frequency analyser polling in updateSonicPalette from 4 frames to a 2.0s–3.0s interval, drastically decreasing background CPU cycles while preserving smooth 15–20s harmonic color evolutions.
  • Suppressed #bg-dither-grain GPU canvas compositing under .low-power-bg and body.low-power-active to eliminate fill-rate overhead in Eco Mode.
PATCH v2.36.016
2026-08-21
  • Canvas Rect Caching, Motion Throttle & Debug Telemetry Early-Exit (index.html):
  • Cached canvasContainer.getBoundingClientRect() at gesture start in canvasRectLeft/canvasRectTop, eliminating synchronous layout recalculations during rapid mouse and touch dragging.
  • Throttled DeviceMotionEvent and DeviceOrientationEvent processing to max ~40Hz (25ms minimum interval) and cleanly removed gesture listeners once sensor permissions are resolved.
  • Added early exit in updateDebuggerTelemetry when the telemetry HUD is hidden or closed to prevent unnecessary DOM mutations and string formatting overhead.
PATCH v2.36.015
2026-08-21
  • Zero-Allocation Space Invader AI Obstacle Scanning & Reflow-Forced Initial Background Fade (index.html):
  • Eliminated temporary object array allocations and .sort() calls in SpaceInvaderCraft obstacle detection and block pursuit logic by directly evaluating track square and spacecraft coordinates inline.
  • Added synchronous layout reflow trigger (void bgOverlay.offsetWidth) prior to opacity fade transition on #bg-overlay to ensure the initial background loading curtain reveals smoothly without frame drops.
PATCH v2.36.014
2026-08-21
  • Zero-Allocation In-Place 3D Vector Math & Cached Football Canvas Loop (index.html):
  • Replaced dynamic per-frame object allocations in render3DFootball with an in-place rotateVectorInto vector rotation algorithm updating reusable rotCenter and rotVertices arrays.
  • Cached DOM canvas references in cachedFbCanvases and streamlined edge and polygon iteration with indexed for loops, eliminating garbage collection pauses during soccer ball rotation.
PATCH v2.36.013
2026-08-21
  • Zen Mode Square Immunity & Invader Assault Suppression (index.html):
  • Gated Invader square-targeting, combat lookahead corridor checks, and laser blast decisions behind !state.zenMode so floating track squares are fully protected while in Zen Mode.
  • Suppressed accelerated countdown assault wave scheduling while Zen Mode is active, resetting to standard ambient flight timing on entry and smoothly resuming square cleanup runs only after exiting Zen Mode.
PATCH v2.36.012
2026-08-21
  • Enhanced Luminous Fling Wake Sparkles & Subdued Star Kinetic Recoil (index.html):
  • Softened background star kinetic impulse deflection nudges (0.45 max velocity, 0.035 coupling factor) so underlying stars remain steady while flung squares pass over them.
  • Enhanced launch stardust burst with up to 10 immediate sparkles upon finger release, and dynamic velocity-scaled wake trails (1 to 3 sparkles per burst) throughout the entire kinetic glide phase.
PATCH v2.36.011
2026-08-21
  • Differentiated Friction Physics for Flung Squares & Comet Deflections (index.html):
  • Implemented differentiated friction dynamics (sq.decayFriction): 0.992 for high-momentum flung squares (extended 10s kinetic glide) vs. 0.9550.965 for reactive comet/meteor kinetic recoil nudges (1.2s–1.8s snappy stabilization).
  • Explicitly reset decayFriction on timer expiry to guarantee square velocity smoothly locks back to targetVx/targetVy.
PATCH v2.36.010
2026-08-21
  • Tri-Layer Spacecraft Depth Stacking, 2-Comet Hotkey Capacity & Dashboard Tap Protection (index.html):
  • Implemented 3-tier canvas depth architecture: Background Starfield (z-index: 0), Mid-Plane Spacecraft (z-index: 5), and Foreground Spacecraft (z-index: 105) with deterministic 3-way split across spacecraft and easter eggs.
  • Resolved mobile and click sensitivity on the Control Panel dashboard by stopping click/tap propagation inside the panel and adding a 600ms grace window to prevent inadvertent outside dismissals while adjusting sliders.
  • Supported dual-comet concurrent hotkey flight while preserving active status verification.
PATCH v2.36.009
2026-08-21
  • Foreground Spacecraft Layering & Enhanced Kinetic Glide Physics (index.html):
  • Introduced high z-index overlay canvas #fg-spacecraft-canvas (z-index: 105) with random 50/50 foreground/background depth assignment (inFront) for all 9 celestial spacecraft, shooting stars, and Space Invaders so they dynamically pass both behind and over floating track squares.
  • Fine-tuned flung square kinetic physics with reduced drag friction (0.994 decay), increased initial velocity impulse factor (0.9x, capped at 26px/frame), extended 10s kinetic glide duration, and ambient stardust wake sparkles during high-speed throws.
PATCH v2.36.008
2026-08-21
  • Refined Kinetic Star Dust Sparkle Dynamics & Subtle Fling Ghost Shadow (index.html):
  • Balanced kinetic square-to-star collision dynamics with an 85% sparkle emission chance, tighter collision threshold radius, and softened star impulse velocity clamping.
  • Tuned stardust sparkle size (0.6 to 1.7px), luminous alpha (0.92), and gentle lingering decay for organic trailing stardust behind flung squares.
  • Reduced ghost box shadow opacity from 0.04 to 0.02 for an ultra-subtle spatial presence.
PATCH v2.36.007
2026-08-21
  • Authentic Retro Zigzag Pacing for Space Invaders (index.html):
  • Restored classic arcade alternating zigzags during target tracking, preventing erratic jitter by enforcing full horizontal and vertical stride completion before re-evaluating descent paths.
  • Aligned lateral strike corridor adjustments with organic distance checks so alignment only engages smoothly within proximity of candidate squares.
PATCH v2.36.006
2026-08-21
  • Strict Single-Invader Exclusivity & Post-Exit Wave Rescheduling (index.html):
  • Enforced strict single-invader concurrency (isInvaderActive()), guaranteeing only one Space Invader occupies the screen at any time.
  • Deferred subsequent assault wave timer scheduling until the active Invader has completely exited the screen and was removed from the active craft array.
PATCH v2.36.005
2026-08-21
  • Smooth 3D Football Fade-Out, Zero Active Square Destruction & 1.5–3s Assault Waves (index.html):
  • Implemented ultra-smooth, continuous alpha and color blending (fbActiveFactor) for the 3D spinning football in the info modal, ensuring a gentle ~3.5-second visual fade-out without abrupt pop-ins or seam flickering.
  • Strictly protected active playing track squares from being targeted or destroyed during countdown assault runs (!isActiveSquare(sq)).
  • Accelerated initial Invader countdown assault wave dispatch down to 1.5s–3.0s upon reaching max capacity or lowering the slider.
PATCH v2.36.004
2026-08-21
  • Active Square Seeking, Continuous Play Safeguard & Slider Countdown Dispatch (index.html):
  • Enhanced Space Invaders with active unplaying square pursuit (targetSquare), seeking out and sidestepping directly into the strike column of candidate squares to blast them with downward lasers.
  • Safeguarded Continuous Play auto-advance so that unplaying squares destroyed by Invaders do not inadvertently start audio playback on a new square.
  • Eliminated arbitrary instant truncation when adjusting the Max Squares slider down, transitioning smoothly into Invader countdown assault waves within 2–4s to destroy surplus squares epically.
PATCH v2.36.003
2026-08-21
  • Instant Max Capacity Transition & 4–8s Assault Wave Dispatch (index.html):
  • Automatically transitions state.spawnerMode to 'removing' and cancels pending spawn timers when floating square count meets or exceeds state.targetCount (e.g. dragging Max Squares slider to 5 or reaching target capacity organically).
  • Immediately dispatches a Space Invader assault wave within 4–8 seconds upon reaching maximum square capacity.
PATCH v2.36.002
2026-08-21
  • Tactical Countdown Combat Blasting & Immediate Assault Dispatch (index.html):
  • Activated aggressive retro laser cannons whenever Space Invaders encounter an unplaying square during countdown mode or at target square capacity (isUnplayingSquareInCountdown).
  • Reduced initial assault wave dispatch delay from 45–90s down to 4–8s upon reaching maximum square capacity.
  • Added null-safe guards to labelCount and activeCountText in updateTargetSquareCount and triggered continuous spawner state transitions.
MINOR v2.35.001
2026-08-21
  • 12-Parameter Grid, LocalStorage Parameter Persistence & Device Shake Gesture (index.html):
  • Comprehensive 12-Parameter Control Grid: Added Dark Dust (nebula-dark-slider), Space Darkness (space-darkness-slider), and Aurora Glow (aurora-glow-slider) sliders into the Control Panel's collapsible parameter drawer.
  • Dynamic Star Density & Resolution Scaling: Migrated Star Count to resolution-aware Star Density (getStarCountForDensity), rendering crisp, balanced starfields across mobile screens and 4K desktop displays.
  • LocalStorage Parameter Persistence & One-Click Reset: Added automatic saving of user slider adjustments to localStorage (1kx_slider_settings) and accordion state (1kx_parameters_open), along with a one-click Reset button (resetSliderSettingsToDefault) with confirmation feedback.
  • Device Shake Gesture Engine: Implemented physical DeviceMotionEvent acceleration spike detection on touch/mobile devices with iOS Safari permission handling to trigger celestial Astronaut spawns.
  • Slider Blur & Hotkey Ergonomics: Added automatic focus releasing on pointer release for range sliders to ensure keyboard navigation shortcuts remain instantly responsive.
2 PATCHES View Patch Updates (v2.35.002 – v2.35.003)
PATCH v2.35.003
2026-08-21
  • Tactical Laser Sweeping & Full-Screen Visibility Envelope for Space Invaders (index.html):
  • Enhanced Space Invader obstacle evasion AI with tactical laser strafing across trapped obstacles, targeting the obstacle center and validating line of sight before discharging retro lasers.
  • Expanded on-screen alpha visibility envelope so Space Invaders remain 100% solid throughout the entire viewport height, fading out exclusively when descending past the bottom edge of the screen.
PATCH v2.35.002
2026-08-21
  • Enhanced Multi-Axis Shake Detection & 2-Second Football Spin Exit (index.html):
  • Combined DeviceMotionEvent (linear acceleration) and DeviceOrientationEvent (angular wrist rotation) to create a dual-pipeline mobile shake gesture detector for spawning the celestial Astronaut.
  • Added a 2-second decelerating momentum spin animation to the 3D football link on click prior to navigating into the Football game (handleFootballClick).
MINOR v2.34.001
2026-08-20
  • Shock Filament Hotkey & Control Panel Button (F), Filament Archetypes & Modular Debugger HUD (index.html):
  • Shockwave Filament Hotkey & Button (F): Added hotkey F / f and Control Panel button #btn-hotkey-f to manually spawn braided supersonic shockwave filaments with active state tracking (triggerFilamentHotkey, isFilamentActive).
  • Dual Supernova Remnant Filament Archetypes: Added support for 2 distinct filament archetypes (classic_veil multi-strand braided ribbon and nebula_edge_contour curved rim arc) with balanced auto-spawning capacity (0 to 3 filaments max, capped at 2 per archetype).
  • Modular Audio Debugger HUD Telemetry: Refactored the Debugger HUD into structured collapsible <details> drawers: Performance & Engine, Graphics & Cosmic Objects (with live sub-type badges for Galaxies, Mini-Galaxies, Micro-Galaxies, and Filaments), Audio Channels, Preload Activity, Recent Track History, and Console & DOM Logs.
2 PATCHES View Patch Updates (v2.34.002 – v2.34.003)
PATCH v2.34.003
2026-08-20
  • Interactive 3D Spinning Football, Dual-Button Control Panel Header & HUD Polish (index.html):
  • Built an interactive procedural 3D spinning soccer ball canvas engine (render3DFootball) inside the info modal footer with 3D rotated pentagons, seams, perspective depth shading, and momentum physics on hover/touch.
  • Relocated Debugger toggle to the Control Panel header alongside the Close Box (#dashboard-dbg-btn & #dashboard-close-btn).
  • Added bidirectional Control Panel toggle button (#dbg-control-panel-btn) to the Debugger HUD header and updated Debugger title to "Status & Debugger".
PATCH v2.34.002
2026-08-20
  • Progressive LOD Tier Hold Cooldown & Hysteresis Smoothing (index.html):
  • Implemented progressive cooldown timers (20s base hold, 45s when toggled frequently) on automatic LOD performance tier transitions to eliminate rapid cycling between quality tiers.
  • Increased degrade frame thresholds to 90 consecutive frames (~1.5s) and recovery threshold to 180 consecutive frames (~3.0s) of sustained 55+ FPS for rock-solid stability.
MINOR v2.33.001
2026-08-20
  • Space Invader Retro Laser Cannons, Satellite Dwarf Nebulosity Caches & Soft Cluster Puff Rendering (index.html):
  • Retro Arcade Space Invader Laser Bolt Cannons (InvaderLaser): Space Invaders now detect when they are trapped or pinched between obstacles for > 25 frames and activate downward retro laser cannons with cannon recoil and muzzle flash, blasting obstructing track squares (sq.collapseAndDestroy()) and in-flight spacecraft with pixel explosion debris and sparkle bursts.
  • Faint Ethereal Dwarf Galaxy Nebulosity Caches (_buildSatelliteWispyCache): Pre-rendered soft interstellar gas puffs and bulge core glows across all 7 dwarf satellite galaxy morphologies (mini_spiral_2arm, flocculent_dwarf, barred_dwarf, tadpole_tail, ring_dwarf, irregular_cloud, tidal_stream) eliminating stroked lines in favor of organic nebulosity.
  • Deep Field Micro-Galaxy Gas Arms: Added diffuse interstellar gas arm textures and smooth core bulge glows to distant micro-galaxies.
  • Organic Satellite & Mini-Cluster Star Distribution: Enhanced particle dispersion with logarithmic radial power distributions, soft radial glow envelopes for prominent stars, and zero trail emission while invader lasers are firing.
5 PATCHES View Patch Updates (v2.33.002 – v2.33.006)
PATCH v2.33.006
2026-08-20
  • Acoustic Spectrum Calibration, Dynamic Contrast & Aurora Flux Modulation (index.html):
  • Rebalanced target acoustic gain multipliers across all 4 frequency registers (Sub: 1.15, Low-Mid: 1.65, High-Mid: 1.25, Treble: 3.90) to eliminate high-mid spectral teal bias.
  • Implemented self-normalizing dynamic contrast (Math.pow(d - mean * 0.70, 1.85)) to dynamically separate predominant track frequencies relative to their own running song baseline.
  • Added continuous astrophysical flux warmth modulation (fluxWarmth = transientDensity * 1.6) to deep-space aurora hues, enriching sapphire and solar gold color response during percussive transients.
PATCH v2.33.005
2026-08-20
  • Space Invader AI Obstacle Evasion & Debugger HUD Enhancements (index.html):
  • Implemented wasEvadingObstacle navigation state on Space Invader craft: when evading obstacles, entering an open vertical gap immediately aborts remaining horizontal travel and begins downward descent.
  • Added collapsible <details> disclosure sections to the Audio Debugger HUD for Recent Track History and Console Logs.
  • Implemented log message deduplication counters ((x3)), timestamps, and DOM class state transition monitoring.
PATCH v2.33.004
2026-08-20
  • Desynchronized Canvas Front-Buffer Rendering & Adaptive Subsampling (index.html):
  • Implemented { desynchronized: true } 2D context hint on #bg-starfield to reduce GPU queue latency and bypass compositor buffering where supported.
  • Added low-power backdrop filter bypass (.low-power-active) replacing heavy CSS filters with opaque dark fills during Eco Mode / LOD Tier 2.
  • Configured native asynchronous image decoding (decoding="async") and lazy loading (loading="lazy") across artist logos and preloads.
  • Implemented 0.85x adaptive render subsampling (state.adaptiveRenderScale) in FPS Watchdog during severe GPU load (< 35 FPS), restoring 1.0x on sustained 60 FPS.
  • Enhanced Telemetry HUD with real-time Canvas DPR metrics and adaptive subsampling status badges.
PATCH v2.33.003
2026-08-20
  • Radial Glow Stamp Pool, Shared Micro-Galaxy Sprites & Tiered LOD Culling (index.html):
  • Built pre-rendered 64px offscreen radial glow stamp canvas cache (getRadialGlowStamp) across all cosmic spectral palettes to eliminate dynamic per-frame createRadialGradient allocations in star, cluster, and emission knot render loops.
  • Built shared morphology sprite pools (getMicroGalaxySprite, _miniClusterHaloPool, _satelliteWispyPool) reusing offscreen texture canvases across identical morphologies and spectral colors.
  • Implemented view-frustum bounds culling on micro-galaxies and freestanding mini-clusters.
  • Added hardware-accelerated composite 2D affine transform matrix blits (cos1 * cos2 - sy * sin1 * sin2) for mini-clusters.
  • Implemented proportional LOD tier count limits for micro-galaxies (Tier 0: all, Tier 1: 14, Tier 2/Eco: 8) and freestanding mini-clusters (Tier 0: 3, Tier 1: 2, Tier 2/Eco: 1).
  • Adopted fastRgba and fastSin throughout galaxy, cluster, and constellation edge drawing routines.
PATCH v2.33.002
2026-08-20
  • Drag Velocity Integration & Kinetic Star Collisions (index.html):
  • Integrated active drag velocities (dragVelocityX, dragVelocityY) into kinetic physics collisions so that moving or dragged track squares continuously interact with background stars.
  • Added square size definition (this.size = SQUARE_SIZE) to track square instances and included sq.isDragging squares in the pre-filtered state.flungSquares collision pipeline.
  • Scaled stardust sparkle bursts and kinetic momentum nudges dynamically to match real-time drag speeds.
MINOR v2.32.001
2026-08-20
  • Razor-Sharp Celestial Labels, Hubble Narrowband Chemical Ionization, Interactive Performance Switcher & Astrophotography Dither Grain (index.html):
  • Razor-Sharp DOM Celestial & Spacecraft Waypoint Labels (#celestial-labels-layer): Replaced blurry raster canvas text overlays with crisp, subpixel-antialiased glassmorphic HTML/DOM cards (.celestial-label-card). Spacecraft labels now project as fixed forward waypoints along flight paths, fading in on approach, holding rock-steady, and fading out once the craft passes.
  • Hubble Narrowband Chemical Ionization & Cosmological Doppler Shift: Implemented dynamic narrowband chemical line modeling for gas clouds (H_alpha 656nm crimson/magenta, [O III] 501nm electric cyan, [S II] 672nm solar gold, and cold dust extinction) modulated by acoustic frequency bands. Stars undergo cosmological blueshift when drifting inward under treble energy and redshift when receding under deep bass resonance.
  • Interactive Performance Quality Switcher (#settings-perf-status): Transformed the Control Panel performance indicator into an interactive button allowing users to manually cycle between Auto, Full Quality (Tier 0), Balanced (Tier 1), Low Power (Tier 2), and Eco Mode with automatic 5-minute timeout reversion.
  • Astrophotography Micro-Dither Film Grain Overlay (#bg-dither-grain): Added an ultra-fine SVG procedural fractal turbulence grain overlay and multi-stop smoothstep gradient curves across background layers to eliminate 8-bit color quantization and Mach banding.
  • Dendritic Nebula Pillars & Micro-Galaxy Morphologies: Upgraded 75% of nebula clouds to structural spine pillars, dendritic webs, crescent shock ridges, and sinuous rifts. Expanded micro-galaxy morphology archetypes with grand design 2-arm spirals, tadpole tidal tails, 3-arm flocculents, barred spirals, and interacting pairs.
  • Space Invader Multi-Obstacle & Spacecraft Evasion: Upgraded invader navigation to detect and evade both active track squares and in-flight spacecraft with lateral sidestepping, vertical drop jumps, and pause logic.
1 PATCH View Patch Updates (v2.32.002)
PATCH v2.32.002
2026-08-20
  • Control Panel Header Close Box & Independent Eco Mode Switcher (index.html):
  • Added upper right Control Panel close button (#dashboard-close-btn) aligned with the header title to allow direct closure on both desktop and mobile.
  • Implemented independent 3-state Eco Mode toggle button (#settings-eco-status) cycling through Auto, ON, and OFF with a 5-minute timeout fallback to automatic watchdog regulation.
  • Decoupled performance LOD tier regulation from background shader Eco Mode.
  • Added dedicated close button (#dbg-close-btn) to the System & Audio Debugger HUD (#debugger-overlay).
  • Tuned Space Invader lateral pinch avoidance to drop straight down (stepDy = speedY * 2.0 * dt) when trapped between obstacles.
  • Guarded touch hotspot vibration feedback with user activation check (navigator.userActivation.hasBeenActive).
MINOR v2.31.001
2026-08-20
  • Supernova Remnant Shock Filaments, Herbig-Haro Bipolar Protostellar Jets & Canvas DPR Optimization (index.html):
  • Implemented SupernovaRemnantFilament engine rendering delicate, braided supersonic shockwave ropes of [O III] cyan and H-alpha ruby (inspired by the Veil Nebula / Cygnus Loop NGC 6960/6992).
  • Implemented HerbigHaroJet engine rendering Class 0 embedded protostellar bipolar supersonic plasma jets with sinuous precessing jet spines, internal Mach shock knots ("beads on a string"), terminal bow shocks colliding with the ISM, and equatorial circumstellar dust lanes (inspired by JWST HH 211 / HH 46/47).
  • Added dedicated 'J' keyboard hotkey and glassmorphic Control Panel button (#btn-hotkey-j) with active state tracking to spawn Herbig-Haro bipolar jets on demand.
  • Added active Filament and HH Jet metrics tracking to the Debug Telemetry HUD (#debugger-overlay).
  • Added dynamic Low Power Mode (Tier 2 / Eco Mode) DPR clamping to 1.0x, reducing GPU fill-rate by 75% on Retina displays.
  • Added dynamic LOD tiered cloud volume scaling (Tier 0: 8-12 gas/dark clouds, Tier 1: 4-8 clouds, Tier 2: 3-5 clouds).
MINOR v2.30.001
2026-08-20
  • Astronaut Easter Egg, Invader Pixel Debris & Harmonic Aurora Engine (index.html):
  • Implemented AstronautCraft celestial easter egg featuring a zero-gravity floating spaceman with trailing severed tether, frayed gold wire, asymmetric limb flail animations, '0' hotkey listener, and 15–60 min scheduler.
  • Built InvaderPixelParticle explosion debris engine blowing up Space Invaders into body/eye/accent pixel debris when hit by Shooting Stars (Comets/Meteors).
  • Implemented Space Invader vs Astronaut collision mechanics where Invaders catch Spacemen, dissolving them in a sparkle splash and suit debris.
  • Built Harmonic Deep-Space Aurora canvas atmosphere dynamically tinted by track acoustic frequency bands (Sub-Bass Indigo, Low-Mid Gold, High-Mid Teal, Treble Orchid).
  • Enhanced Space Invader AI with orthogonal obstacle avoidance around Track Squares and column targeting toward Astronauts.
  • Restored 1kx_continuous_play state persistence in localStorage and added 10-min auto-hide timer for Debug Telemetry HUD.
6 PATCHES View Patch Updates (v2.30.002 – v2.30.007)
PATCH v2.30.007
2026-08-20
  • Airy Disk Diffraction Rings, Optical Reflection Ghost Halos & Render Pipeline Optimization (index.html):
  • Implemented pre-rendered 256px offscreen canvas cache textures (airyGhostCacheCanvases) for Airy Disk diffraction wave rings and optical filter reflection halation ghost discs for major foreground anchor stars.
  • Replaced ctx.save() / ctx.restore() transform stack overhead in DeepFieldMicroGalaxy and IntegratedFluxNebula with direct ctx.setTransform(dpr * cos, ...) hardware-accelerated blits.
  • Optimized PulsarBeacon twin beam depth calculations by removing inner closure allocations in favor of direct geometric trigonometric evaluations.
  • Throttled Settings dashboard hotkey button UI state polling interval from 6 frames to 30 frames (~500ms).
PATCH v2.30.006
2026-08-20
  • Galaxy Tidal Dynamics, Aurora Gradient Caching & Background Population (index.html):
  • Implemented squared-distance (distSq) early exits for galaxy-galaxy gravitational interaction checks, eliminating unnecessary square root calculations.
  • Added direct tidal coordinate offsets (g1.tidalOffX, g1.tidalOffY) to galaxy centers during close gravitational encounters.
  • Built cached radial gradient system (_auroraCache) for the Harmonic Deep-Space Aurora atmosphere, skipping costly gradient allocations on duplicate acoustic states.
  • Added fast-path early exits to updateConstellationSuggester when no hint cycle or manual reveal is active.
  • Integrated deep field micro-galaxies (18–25) and freestanding mini-clusters (1–3) initialization directly into resetStarfield().
PATCH v2.30.005
2026-08-20
  • Voyager Spacecraft Canvas Art & Football Roll-in Animation Polish (index.html):
  • Completely redesigned VoyagerCraft canvas artwork rendering: authentic dark navy 10-sided faceted bus, iconic Golden Record disc with etched symbols, articulated scan platform arm with gold instruments, tilted 3/4-view parabolic dish with blue-white gradient and dark cross-strut bracing, cylindrical feed horn, blue segmented connector struts, and olive/gold-highlighted magnetometer & antenna booms.
  • Refined the football 2-tier roll-in animation keyframe sequence (@keyframes footballBounceAndRollOff) for both desktop and mobile viewports with tight floor landing alignments and smooth off-screen rollouts.
PATCH v2.30.004
2026-08-20
  • Multi-Square & Pinched Obstacle Avoidance Physics & Artist List Correction (index.html):
  • Enhanced SpaceInvaderCraft obstacle avoidance to evaluate and sort all nearby track squares within 40px margin.
  • Implemented lateral pinch detection (isPinchedLaterally) when trapped between squares or screen edge + square, triggering smart vertical escape jumps (stepDy = speedY * 2.2 * dt) or pausing until clear.
  • Added bottom-blocking safeguards to prevent invaders from crashing downwards into obstacles underneath.
  • Corrected founding year for Orange Cricket Project in the artist directory list to 1993.
PATCH v2.30.003
2026-08-20
  • 2Hz Ambient Audio FFT Polling, Tab-Wake Grace & Proportional LOD Recovery (index.html):
  • Throttled Web Audio FFT analyser polling to 2Hz (every 30 frames / 500ms) to cut CPU thread overhead by over 85% while preserving smooth rolling accumulation lerps.
  • Implemented 2-second tab-wake grace immunity (state.lastTabWakeTime) on visibilitychange to prevent false LOD tier degradation when switching tabs.
  • Reduced LOD hysteresis recovery hold time to 4s (60 frames) and enabled direct recovery to Tier 0 whenever framerate runs smoothly (>55 FPS).
  • Throttled background cloud CSS variable mutation intervals (Intel Mac: Tier 0 every 18 frames, Tier 1 every 28 frames, Tier 2 every 40 frames) to eliminate GPU composition thrashing.
PATCH v2.30.002
2026-08-20
  • Space Invader Screen Edge Trap Avoidance Physics (index.html):
  • Expanded square avoidance margin to 40px (margin = 40) and implemented smart edge-aware evasion direction selection.
  • Added tight edge trap detection (this.x <= 45 or this.x >= W - 45): when trapped against viewport boundaries, invaders move strictly downwards (stepDy = speedY * 2.0 * dt) past the square without horizontal oscillation lockups.
  • Dynamically resets downTargetDist and sideTargetDist to 40px upon evasion exit to prevent mode lockup.
MINOR v2.29.001
2026-08-19
  • Freestanding Mini Star Clusters, Gravitational Orbital Capture & Telemetry HUD (index.html):
  • Implemented FreestandingMiniCluster engine spawning 1 to 3 free-floating deep space mini star clusters that slowly morph into structured mini galaxies over 2 to 5 minutes.
  • Built real-time gravitational attraction and orbital capture mechanics pulling drifting mini clusters into permanent satellite companion orbits around host SpiralGalaxies.
  • Expanded Debug Telemetry HUD cosmic breakdown to independently report Galaxies, Mini Galaxies (freestanding + satellites), and Micro Galaxies.
1 PATCH View Patch Updates (v2.29.002)
PATCH v2.29.002
2026-08-19
  • 3D Cluster Perspective Tilt, 3-12m Encounter Cadence & Zen Mode Persistence (index.html):
  • Implemented 3D sky orientation angle (orientationAngle: 0° to 360°) and inclination perspective tilt (tiltAngle: 20° to 75°, 0.26x to 0.94x minor axis scaling) for FreestandingMiniCluster.
  • Compressed automated spawn interval timing across all 9 spacecraft and Space Invader flybys from 3–30 min to 3–12 min (minMs = 180000, rangeMs = 540000).
  • Restored persistent 1kx_zen_mode state in localStorage across browser reloads.
MINOR v2.28.001
2026-08-19
  • 'Q' Hotkey Info Modal Toggle & Deep Field Morphology Diversity (index.html):
  • Added 'q' key hotkey listener to toggle the About modal (toggleInfoModal()) and updated #info-btn tooltip to About 1kx (Q).
  • Updated DeepFieldMicroGalaxy constructor with Fisher-Yates morphology rotation to guarantee equal diversity across all 5 micro-galaxy morphologies (spiral_swarm, dwarf_cloud, elliptical_swarm, ring_micro, irregular_micro).
MINOR v2.27.001
2026-08-19
  • Magellanic Satellite Morphologies, Keplerian Orbital Lag & Control Panel UI Polish (index.html):
  • Built 5 procedural satellite galaxy companion morphologies (mini_spiral, dwarf_elliptical, ring_dwarf, irregular_cloud, tidal_stream) dynamically assigned via Fisher-Yates non-duplication shuffling per host galaxy.
  • Implemented Keplerian Orbital Rotation Lag (lagFactor between 0.40 and 0.75), causing satellite companion galaxies to lag behind host galactic disk spin.
  • Expanded Deep Field Micro-Galaxy morphologies with ring_micro and irregular_micro clumpy multi-knot swarm clusters.
  • Updated Settings modal title to "Control Panel" in #settings-version-badge header.
  • Added inline SVG icons for Football and Casey Cichowicz links in the Control Panel footer.
MINOR v2.26.001
2026-08-19
  • Intel Mac GPU Layer Consolidation, Containment Isolation & Layer Telemetry (index.html):
  • Implemented .intel-mac-bg CSS profile consolidating 9 full-screen animated background gradient layers down to 5 primary active layers (bg-anim-blue, bg-anim-cyan, bg-anim-magenta, bg-anim-dust, bg-anim-dust2), saving over 45% GPU compositor overdraw on Intel Mac integrated GPUs.
  • Added contain: strict; will-change: transform; transform: translateZ(0); hardware layer isolation to #bg-container and #bg-starfield.
  • Updated Debug Performance Overlay (#debugger-overlay) to report active background layer counts and descriptor profiles (e.g. 5 Layers Active (Consolidated Intel Profile)).
1 PATCH View Patch Updates (v2.26.002)
PATCH v2.26.002
2026-08-19
  • LOD Hysteresis Engine, Quantized Alpha Batching & Micro-Lensing Pass (index.html):
  • Implemented a 60-frame low-performance threshold and 120-frame high-performance recovery hold period with a 6-second cooldown lock (lastTierChangeTime) to eliminate rapid LOD tier jitter.
  • Added 8-bucket quantized alpha batching to star (qOpacity) and cosmic dust rendering, reducing ctx.globalAlpha state assignments by up to 90%.
  • Built a batched microLensingArcs pass drawing all gravitational lensing distortion arcs in a single stroke() call.
  • Replaced array lookups with direct star.constellationInstance object references for O(1) distortion checks.
  • Added smooth exponential decay (Math.pow(0.985, dt)) to sonic palette values when audio is paused.
  • Integrated dynamic singular/plural formatting (fmtObj) in Debug Telemetry HUD and made debugger state ephemeral across page reloads.
MINOR v2.25.001
2026-08-18
  • WebGL GPU Architecture Detection & Hardware-Adaptive Performance Scaling (index.html):
  • Implemented WebGL debug extension renderer unmasking (WEBGL_debug_renderer_info) to detect exact GPU hardware architecture (Apple Silicon vs Intel Mac vs Standard GPU).
  • Added hardware-adaptive tuning for Intel Mac integrated GPUs (80 initial stars, 14 tuned volumetric cloud veils [8 gas + 6 dark lanes], 200 cosmic dust grains) guaranteeing a rock-solid 60 FPS fill-rate.
  • Added real-time Hardware Profile indicator (Apple Silicon / Intel Mac + unmasked GPU renderer string), active nebula cloud render count (e.g. 14 Rendered), and active dust grain count to the Settings performance HUD footer.
  • Replaced ctx.save()/ctx.restore() stack push/pop overhead with direct ctx.setTransform(dpr * cos, ...) transform math in CosmicGasCloud.prototype.draw.
2 PATCHES View Patch Updates (v2.25.002 – v2.25.003)
PATCH v2.25.003
2026-08-19
  • Structured Objects & Cosmic Telemetry HUD Metrics (index.html):
  • Re-organized Debug Performance Overlay (#debugger-overlay) into structured functional tiers: Objects (Squares, Comets, Meteors, Spacecraft, Invaders) and Cosmic (Stars, Constellations, Galaxies, Pulsars, Dust Grains, Specks, Sparkles).
  • Added active tracking for active Pulsar beacons (pulsarCount) and ambient space specks (speckCount).
PATCH v2.25.002
2026-08-19
  • Full-Viewport DPR Guarantee & Expanded Telemetry HUD (index.html):
  • Centralized starfield canvas resolution and 2D transform initialization inside updateCanvasDimensions() on initial boot (replacing manual inline scaling in DOMContentLoaded).
  • Removed dynamic downsampling below 1.0x DPR during Eco Mode to guarantee 100% full-viewport canvas coverage without visual stretching.
  • Expanded Debug Performance Overlay (#debugger-overlay, maxWidth: 390px) displaying real-time active counts for Galaxies, Real/Pinned Constellations, Comets, Meteors (with shower status), Spacecraft, and Invaders.
MINOR v2.24.001
2026-08-18
  • 3-Way Continuous Play & Zen Mode Cycle Button (index.html): Upgraded #song-continuous-btn into a 3-way toggle button cycling: OFF (Standard Play) ➔ Continuous Play () ➔ Zen Mode (Lotus icon SVG) ➔ OFF. Integrated updateContinuousButtonUI() and updateSongIndicatorVisibility() to dynamically update HUD state and Zen Mode Lotus indicator cards (.zen-only).
  • Retina Anti-Aliasing & Invader Sprite Caching (index.html): Added integer-snapping for small star rendering (size <= 4.0) to eliminate sub-pixel Retina/4K blur. Built offscreen canvas sprite caching (_buildSpriteCache()) for SpaceInvaderCraft frames (cachedCanvas0, cachedCanvas1), boosting Invader draw efficiency by 3x.
  • Web Audio DSP Hardware Suspension & Memory Leak Prevention (index.html): Added automatic Web Audio context suspension (audioCtx.suspend()) when all audio channels finish playing, releasing audio DSP hardware clocks when idle. Added URL.revokeObjectURL(this.audioBlobUrl) on square destruction.
  • Render & Layout Performance Optimization (index.html): Throttled background nebula cloud CSS property mutations using delta thresholds (Math.abs(delta) >= 0.04), eliminating 60–70% of unnecessary DOM style recalculations. Synchronized square drag position DOM updates (updateDOM()) cleanly to requestAnimationFrame.
3 PATCHES View Patch Updates (v2.24.002 – v2.24.004)
PATCH v2.24.004
2026-08-18
  • Pre-Rendered Dust Texture Canvases, Text Metrics Caching & Settings UI Throttling (index.html):
  • Built pre-rendered 32px radial gradient texture canvases (cosmicDustCanvases) for all 6 stardust spectral colors. Replaced per-frame ctx.createRadialGradient allocations in CosmicDustParticle.prototype.draw with ctx.drawImage, eliminating thousands of runtime garbage collector allocations per minute.
  • Cached card width (inst._cardW) and height (inst._cardH) for RealConstellationInstance label rendering, skipping ctx.measureText on every frame.
  • Added early-exit check to updateHotkeyButtonsUI when Settings panel is closed, preventing hidden DOM mutations while panel is inactive.
PATCH v2.24.003
2026-08-18
  • CRT TV-Off Zen Collapse Animation & Equalizer HUD Sync (index.html):
  • Added smooth CRT collapse animation (.tv-off) when non-playing squares collapse into Zen Mode.
  • Synchronized square artwork visibility (showArtwork() / hideArtwork()) and equalizer help icon state (updateHelpIconState(true, color)) seamlessly during play/pause toggles and continuous track transitions.
  • Added view-frustum culling to IntegratedFluxNebula and AcousticShockwave (this.x + outerR < 0 || ...), skipping radial gradient texture construction for off-screen elements.
  • Replaced Math.sin with high-performance fastSin lookup table in CosmicGasCloud.draw.
PATCH v2.24.002
2026-08-18
  • Star Viewport Frustum Culling & Offscreen Galactic Halo Cache (index.html):
  • Added early-exit viewport bounds check (this.x < -30 || this.x > state.width + 30 || ...) to Star.prototype.draw, skipping off-screen star rendering calculations during pan or zoom.
  • Implemented pre-rendered 256px haloCanvas radial gradient texture cache (SpiralGalaxy._buildHaloCache) for Intergalactic Light (IGL) outer galactic veils, replacing per-frame createRadialGradient allocations with ctx.drawImage for a 40% CPU rendering speed boost.
MINOR v2.23.001
2026-08-17
  • Gravitational Singularity Star Consumption: Added inward accretion spiral (inwardSink) for background stars entering active gravity wells. Background stars spiral 3-5 orbits inward over ~4.0-5.5s; reaching the event horizon (< 14px) triggers singularity consumption, stardust sparkle bursts (spawnSparkle), and seamless star resetting.
  • Unified 9-Spacecraft Gravitational Physics Engine (updateSpacecraftGravityPhysics): Consolidated physics across all 9 spacecraft classes (Voyager, JWST, Skylab, Discovery One, Space Shuttle, ISS, Sputnik, Hubble, Cassini-Huygens). Spacecraft entering gravity wells undergo distance-proportional orbital capture, progressively shrinking in scale (scaleMult) as they spiral into the funnel. Event horizon entry (< 14px) consumes the craft with 16 sparkle bursts and acoustic shockwaves (spawnAcousticShockwave).
  • Gravitational Slingshot Ejection: Releasing active gravity wells before total consumption launches spacecraft into high-speed slingshot free-flight (slingshotPower), emitting sparkle propulsion trails before smoothly decaying back to cruise speed. Trajectory banking (lerpAngle) aligns spacecraft heading perfectly along curved accretion spirals and slingshot paths.
3 PATCHES View Patch Updates (v2.23.002 – v2.23.004)
PATCH v2.23.004
2026-08-18
  • High-Performance O(1) Array Operations & Zero-Allocation Render Cache (index.html, tests/test_monorepo_regression.js):
  • Implemented fastArrayRemove(arr, i) for O(1) swap-and-pop array element removal, eliminating O(N) memory shift overhead of .splice() across particle arrays (spaceSpecks, radioWaves, trail, cosmicRayStrikes, spiralGalaxies, pinnedConstellations, activeRealConstellations, acousticShockwaves, shootingStars, voyagers, jwsts, skylabs, discoveries, shuttles, issList, sputniks, hubbles, cassinis, invaders).
  • Implemented fastRgba(r, g, b, a) with 32-bit hash lookup table caching for zero-allocation RGBA color string creation.
  • Eliminated redundant ctx.save() / ctx.restore() calls in particle & shockwave render loops, replacing them with fast direct property restoration.
  • Replaced Math.hypot with squared distance checks (distSq < radius * radius) in nebula opacity & galactic extinction collision paths.
  • Cleaned up legacy 1kx_zen_mode localStorage persistence to ensure fresh sessions always start in standard visualizer mode.
  • Expanded monorepo regression test suite to 285/285 passing assertions.
PATCH v2.23.003
2026-08-18
  • Distance-Proportional Slingshot Speed & Particle Burst Scaling (index.html): Captured distToWell during active gravity well pull in updateSpacecraftGravityPhysics. On gravity well release, calculated release proximity ratio (proxFactor = Math.pow(proximity, 1.2)), scaling slingshot ejection speed dynamically from a subtle 5-15% velocity nudge at the perimeter (~550px) up to a perfectly balanced, controlled orbital launch (~6.0–7.0 px/frame) deep inside (< 100px). Scaled particle burst count (sparkleCount = Math.round(2 + proxFactor * 12)) and particle size dynamically with release proximity.
PATCH v2.23.002
2026-08-17
  • Space Invader Orthogonal Evasive AI Navigation & Singularity Avoidance: Replaced passive orbital gravity pull on SpaceInvaderCraft with an active threat detection radar (avoidRadius = 320). When an active black hole / gravity well is nearby, Space Invader flags isEvading = true and executes strict orthogonal evasive maneuvers (pure horizontal side-steps or pure downward descent) to escape consumption while preserving authentic 8-bit arcade grid alignment. Accelerates stepping speed up to 3.8x during evasion and emits rapid retro pixel trail particle bursts (trailInterval = 4).
MINOR v2.13.001
2026-08-10
  • Voyager Spacecraft Easter Egg (index.html): Added VoyagerCraft class that animates a tiny Voyager probe drifting across the starfield along a quadratic Bézier arc. First pass appears 30–90 seconds after page load; subsequent passes recur every 3–10 minutes. Accessible via 'v' keyboard shortcut (scheduleNextVoyager). Voyager state tracked in state.voyagers[].
  • #song-progress-container Drag Exclusion (index.html): Added #song-progress-container to the background drag exclusion list, preventing accidental comet launches when the user drags the song progress scrubber.
4 PATCHES View Patch Updates (v1.02.004 – v2.22.005)
PATCH v2.22.005
2026-08-17
  • Continuous Playback Fail-Safe Engine: Introduced getNextContinuousSquare(excludeSquare) helper checking on-screen candidates, preloaded pool blobs, or spawning new squares dynamically, ensuring seamless non-stop continuous playback without audio stalls.
  • Crossfade Window & End-of-Track Safety: Increased continuous crossfade trigger window from 0.25s to 0.35s before song end, and added an end-of-track fail-safe listener to clean up completed audio channels and trigger next track.
  • Upper-Left Corner Settings Hotspot: Added a 120px / 15% viewport upper-left corner hold gesture (isPointInSettingsHotspot, 550ms hold) with subtle haptic vibration (navigator.vibrate(25)) to toggle Settings panel on mobile and desktop, while guarding canvas drag and constellation drawing listeners against accidental triggers.
PATCH v2.22.004
2026-08-17
  • Settings Panel Collapsible "Adjust Parameters" Section: Wrapped parameter sliders inside a sleek collapsible accordion container (#parameters-toggle and #parameters-content) with keyboard and touch accessibility, keeping the Settings dashboard compact and clean.
  • HUD Indicator Restyling: Restyled the active squares indicator into a glassmorphic HUD pill badge matching the real-time performance indicator, aligned side-by-side on the same line in the panel header.
  • Footer Links & Auto-Hide Extension: Relocated Football and Casey Cichowicz navigation links to the very bottom of the modal, and extended the panel auto-hide inactivity timeout from 20 seconds to 40 seconds (40000ms).
PATCH v1.02.005
2026-08-17
  • LaTeX Math Delimiter Stripping: Strips display ($...$) and inline ($...$) LaTeX math delimiters in LiamBot markdown parser before HTML escaping to clean up raw AI response formatting.
PATCH v1.02.004
2026-08-10
  • Auto-link source citations: Source lines with an existing markdown link are preserved as-is; plain-text citations are automatically wrapped in a Google Search link, ensuring every source is always clickable.
  • Strengthened AI citation instructions: Both EN and FR system prompts now explicitly request direct stable URLs (Wikipedia, NASA, publisher pages, etc.) in markdown link format when known.
MINOR v2.12.001
2026-08-06
  • Artist Selection Popup Controls (index.html): Added interactive artist logo toggle buttons to the lower-left modal ("About 1kx.org"). Logos toggle between full color ("ON") and black & white grayscale ("OFF") to filter which artists spawn squares on screen. Features single-select focus when clicking an artist from all-selected state, reset-to-all when attempting to deselect the last remaining active artist, and localStorage filter preference persistence (1kx_selected_artists).
2 PATCHES View Patch Updates (v2.12.002 – v1.02.003)
PATCH v1.02.003
2026-08-06
  • Mobile Responsive Layout & Flexbox Overflow Fix (styles.css & js/app.js): Added flexbox min-width: 0 constraints, text-wrapping controls (overflow-wrap: break-word; word-break: break-word), scrollable <pre> code block containers (max-width: 100%), action pill auto-wrapping, and responsive markdown table rendering to prevent horizontal page overflow on mobile devices.
PATCH v2.12.002
2026-08-06
  • Preloader Pool Artist Filter Eviction (index.html): Added strict artist selection validation to fillPreloadPool(), manageSpawning(), and toggleArtist(). In-flight background preloads and queued off-screen tracks belonging to unselected artists are automatically discarded and their memory Blob URLs revoked, guaranteeing no unselected artist square appears on screen while allowing active on-screen squares to finish playing naturally.
MINOR v2.11.001
2026-08-06
  • Slow Connection Typewriter Overlay (index.html): Added a centered typewriter overlay that triggers if no square is loaded after 10 seconds, displaying a blinking cursor for 2 seconds followed by a character-by-character "loading...." animation until a square finishes preloading.
2 PATCHES View Patch Updates (v2.11.002 – v2.11.003)
PATCH v2.11.003
2026-08-06
  • Slow Connection Overlay Prefetch Status (index.html): Added 20-second prefetch load status percentage indicator (loading....74%). Types out the initial percentage character by character before dynamically updating the percentage digits in place as download progress continues.
PATCH v2.11.002
2026-08-06
  • Slow Connection Typewriter Polish (index.html): Refined typewriter overlay styling with retro phosphor green-screen aesthetics (#33ff33), fixed-width monospace grid layout with inline left-alignment, organic keystroke timing (120ms-360ms), 4-second initial cursor linger, and CRT TV-off collapse animation (.tv-off) on square preloads.
MINOR v2.10.001
2026-08-04
  • Service Worker Audio Range Caching: Configured CacheStorage (1kx-audio-cache-v1) in js/sw.js to serve HTTP 206 Partial Content slices directly from memory/disk cache without hitting the network.
  • Pre-Appearance Audio Preloader Architecture: Implemented off-screen fillPreloadPool() and state.preloadPool. Pre-fetches 256KB head slices, generates audioBlobUrl, and decodes Web Audio primedAudioBuffer off-screen before squares appear on screen.
  • Strict 1-at-a-Time Preloading (PRELOAD_POOL_SIZE = 1): Limits off-screen preloading to 1 track at a time, eliminating extra background downloads and preserving mobile cellular data.
  • Progressive Spawning & Reset Sequence: Square 1 appears at >= 3s after page load; Square 2 appears at >= 10s after Square 1; subsequent squares follow an ever-increasing delay curve up to 43 squares. Automatic reset occurs when all squares are closed.
  • In-Place Logo Reveal & Hardware 3D Transforms: Positioned floating squares with CSS translate and targeted .glitch-play on the artwork overlay for smooth, in-place logo reveals without position jumps.
  • Spontaneous Background Comets: Periodic shooting stars arc across the starry sky (first within 10s of load, subsequent comets every 1–3 minutes).
  • Visual Debugger Additions: Displays real-time download percentage and off-screen pool status in #agy-debug-panel.
24 PATCHES View Patch Updates (v2.10.002 – v2.10.025)
PATCH v2.10.025
2026-08-06
  • Visual Debugger Counter & Test Suite Hardening (index.html & tests/): Corrected On-Screen Ready count filtering to exclude active network buffering squares (loading-active), and unmocked runtime engine gates in automated regression testing (test_preloader.js & test_monorepo_regression.js).
PATCH v2.10.024
2026-08-06
  • Visualizer Spawner Gate (index.html): Resolved bug in areAllSquaresPreloaded() that looked for legacy primedAudioBuffer instead of audioBlobUrl, eliminating single-square spawning stalls and restoring automatic multi-square visualizer flow.
PATCH v2.10.023
2026-08-06
  • Preloaded Track Playback & Loading Spinner Stalls (index.html): Resolved issue where preloaded tracks bypassed in-memory Blob URLs during channel pre-warming, guarded onwaiting/onstalled events against local media blob misfires, added oncanplay listeners, and ensured .catch() on audio.play() clears loading state on play interruptions.
PATCH v2.10.022
2026-08-06
  • Audio Debugger Control Panel Toggle Button (index.html): Added a dedicated Debugger toggle button to the main control bar for convenient access to the 1KX Audio Debugger panel, and unified secret hotkey triggers (1kx & xxx).
PATCH v2.10.021
2026-08-06
  • .m4a Preload Stall & SW Stream Deadlock (index.html): Removed decodeAudioData gating for off-screen preloader to allow .m4a tracks to preload cleanly into RAM Blob URLs (audio/mp4), and resolved Service Worker cache.put stream cloning buffer deadlocks.
PATCH v2.10.020
2026-08-06
  • Full-Track Memory Blob Preloading (index.html): Reverted fillPreloadPool() to pre-fetch full audio files (HTTP 200 OK) into local RAM Blob URLs (audioBlobUrl) and Service Worker 1kx-audio-cache-v2. Guarantees 100% rock-solid, zero-cutover, zero-gap playback from RAM.
PATCH v2.10.019
2026-08-06
  • Eliminated Mid-Stream Handoff Cutover Stutters (index.html): Removed parallel Web Audio primedSource playback. HTML5 <audio> now plays squareInstance.audioBlobUrl directly from local RAM with 0ms click latency, eliminating dual-engine overlap, 0.3s double-start stutters, and cutover glitches.
PATCH v2.10.018
2026-08-06
  • Progressive Happy-Medium Preloading (index.html): Switched fillPreloadPool() to a progressive two-stage model: Stage 1 fetches the first 512KB slice for fast first square spawning (<1.5s) and 15s Web Audio runway; Stage 2 pre-warms full tracks in background CacheStorage (1kx-audio-cache-v2).
  • Visual Debugger 'xxx' Secret Hotkey (index.html): Added a global keydown listener allowing users to toggle the green 1KX Audio Debugger panel on live site by typing xxx on the keyboard.
PATCH v2.10.017
2026-08-06
  • Zero-Latency In-Memory Blob Handoff & Service Worker Full Caching (index.html): Updated fillPreloadPool() to pre-fetch full audio files (HTTP 200 OK) into local memory Blob URLs and Service Worker 1kx-audio-cache-v2. Assigned squareInstance.audioBlobUrl directly to HTML5 audio (newChan.audio.src), guaranteeing 0ms instant HTML5 audio start from RAM without HTTP Range network calls, silent gaps, or track restarts on slow connections.
PATCH v2.10.016
2026-08-06
  • Eliminated Range Seek Stalls & Track Reststarts on Slow Connections (index.html): Removed audio.currentTime = elapsed seeking from audio.onplaying handoff handler. Prevents browser decoder pipeline flushes and HTTP Range re-fetches, eliminating silent gaps and track restarts on slow 3G connections.
  • Soccer Ball Roll-In Timing (index.html): Tied the soccer ball 5-second roll-in sequence directly to the appearance of the first square on screen (state.squares.length === 1).
PATCH v2.10.015
2026-08-06
  • Slow-Connection Web Audio Runway Expansion (index.html): Increased pre-decoded Web Audio audio slice length (targetSliceLength) from 128KB to 384KB (~10 seconds of PCM audio) and initial Range request header to 512KB (bytes=0-524287). Extends the pre-decoded Web Audio buffer runway from 3.2 seconds to 10 full seconds, giving HTML5 audio streaming ample time to buffer over slow 3G connections with zero gaps or cutouts.
PATCH v2.10.014
2026-08-05
  • Continuous 2-Track Off-Screen Preload Keep-Alive & Visual Debugger (index.html): Updated getPreloadPoolSize() to unconditionally pre-fetch and Web Audio decode 2 off-screen tracks across all devices and connection types. Integrated a heartbeat check in the animation loop to automatically top off the pool whenever ready count drops below 2. Corrected visual debugger status to report Full Ready (2/2 off-screen standby) only when both pool slots are fully ready.
  • Sub-16ms Instant Touch Animation (index.html): Wrapped visual touch scale feedback and glitch animation in requestAnimationFrame() for instant GPU paint scheduling.
  • DNS Prefetching (index.html): Integrated <link rel="dns-prefetch" href="https://1kx.org"> to eliminate DNS lookup overhead for stream range requests.
PATCH v2.10.013
2026-08-05
  • Seamless Prebuffered Audio to HTML5 Streaming Handoff (index.html): Deferred Web Audio buffer fade-out in audio.onplaying until HTML5 audio completes its seeked event when playhead alignment (elapsed > 0.15s) requires seeking, and skipped seek stalls when time difference is minimal (<= 0.15s). Eliminates audio cutouts, silent gaps, and decoder seek stalls during prebuffered track playback handoffs.
PATCH v2.10.012
2026-08-04
  • ID3 Metadata Offset Audio Preloading Fix (index.html): Updated fillPreloadPool() to inspect ID3v2 header tag sizes (10 + tagSize) and slice pure audio frames past embedded cover art headers for Web Audio decodeAudioData() buffer priming. If ID3 artwork headers exceed 256 KB, a secondary range request fetches 128 KB of pure audio frames directly past the ID3 tag offset. Guarantees 100% preloader success and equal round-robin representation across all artists (Caseyland, Creme Puffs, Uphill Driver, Orange Cricket Project) on page load.
PATCH v2.10.011
2026-08-04
  • Dynamic Script & Service Worker Cache-Killers (index.html): Added mode-aware version/timestamp cache-buster queries (?v=2.10.011 for production, ?t=TIMESTAMP for local dev) to <script src="js/mp3tag.min.js"> and navigator.serviceWorker.register('js/sw.js'). Forces instant client-side cache invalidation upon new release deployments.
PATCH v2.10.010
2026-08-04
  • Least-Represented Artist Evaluation Priority Fix (index.html): Corrected order of operations in pickBestArtist() to compute global minimum square counts across ALL candidate artists *before* applying same-artist filters. Guarantees that artists with 0 squares on screen are always prioritized over artists with higher counts.
PATCH v2.10.009
2026-08-04
  • Closed-Artist Avoidance (index.html): Configured Square.destroy() to record lastClosedArtist and updated pickBestArtist() in getNextTrack() to exclude lastClosedArtist when spawning replacement squares. Guarantees that newly loaded squares avoid matching the artist of the square that was just closed.
PATCH v2.10.008
2026-08-04
  • First Square Random Artist Selection (index.html): Configured pickBestArtist() to select a completely random artist with equal 25% probability when loading the very first square (lastLoadedArtist === null) on page boot or full state reset. Subsequent squares dynamically seamlessly follow the round-robin least-represented representation engine.
PATCH v2.10.007
2026-08-04
  • Deterministic Round-Robin Tie-Breaker (index.html): Enhanced pickBestArtist() helper in getNextTrack() to perform a round-robin rotation through ARTIST_LIST (currentArtistIndex) whenever multiple artists tie for least-represented on screen. Ensures predictable cyclic artist selection while enforcing non-consecutive same-artist square loads.
PATCH v2.10.006
2026-08-04
  • Balanced Artist Selection Rules (index.html): Updated getNextTrack() artist selection engine to enforce two rules when spawning or loading new squares: (1) Avoid using the same artist as the last-loaded square, and (2) Prioritize the artist who is least-represented on screen at the moment (fewest active squares).
PATCH v2.10.005
2026-08-04
  • Service Worker 206 Partial Cache Truncation Fix (js/sw.js): Updated sw.js (1kx-audio-cache-v2) to cache ONLY HTTP 200 OK responses under canonical track URLs in CacheStorage. Bypassed CacheStorage for HTTP 206 partial range requests (256KB head slices), resolving audio playback truncation and loop-restart issues.
  • Strict Spawning & Buffering Guard (index.html): Updated areAllSquaresPreloaded() to block spawning new squares if ANY square on screen is in loading-active (buffering/spinning) state or lacks a verified primedAudioBuffer.
  • Web Audio to HTML5 Audio Playhead Position Sync (index.html): Recorded squareInstance.primedStartTime and synced audio.currentTime to elapsed Web Audio duration upon audio.onplaying, eliminating playhead jumps and restarts when transitioning from buffer priming to streaming audio.
PATCH v2.10.004
2026-08-04
  • Preloader Async Web Audio Decoding (index.html): Awaited ctx.decodeAudioData(sliceToDecode) inside fillPreloadPool(), ensuring that primedAudioBuffer is fully resolved before off-screen track payloads are pushed into state.preloadPool and spawned onto the canvas. Eliminates buffering spinners on Slow 4G connections.
PATCH v2.10.003
2026-08-04
  • Instant 0ms Visual UI & Artwork Reveal (index.html): Extracted revealActiveSquareArtwork() helper to immediately hide the loading spinner, reveal artist logo artwork, and trigger in-place play glitch upon clicking a preloaded square. Eliminates visual spinner stalling while HTML5 <audio> buffers in the background on Slow 3G.
PATCH v2.10.002
2026-08-04
  • Service Worker 206 Partial Content Range Caching (js/sw.js): Updated Service Worker fetch handler to cache both 200 OK and 206 Partial Content range responses in CacheStorage under their canonical track URLs (/music/...). Fixed a bug where partial Range responses were excluded from cache.put().
  • Zero-Stall Network Stream Handoff (index.html): Assigned canonical track URLs (getTrackUrl()) to audio.src so HTML5 <audio> requests are 100% intercepted by Service Worker CacheStorage, delivering instant 0ms audio playback on throttled Slow 3G connections.
MINOR v1.02.001
2026-08-04
  • Bilingual English/French Toggle: Added a language switcher in the header with split-designed flags (USA/UK for EN, France/Quebec for FR) using custom local SVGs.
  • Bilingual Interface & Prompts: Linked all UI elements to a dynamic translation dictionary, translating settings, passcode overlay, placeholders, safety redirections, and Explore & Discover prompts grid dynamically when swapping languages.
  • French Prompt Caching Fallback: Integrated translation validation into local storage caching logic to swap to French prompts dynamically.
  • Mobile Viewport Responsiveness: Prevented horizontal page stretch by implementing flexbox minimum width fixes (min-width: 0 on message bubbles) and absolute container containment controls, scaling down paddings on mobile viewports for optimal display.
  • Bullet-Free & Line-Broken Citations: Standardized citation rendering by stripping leading bullet characters in the markdown parser and separating items explicitly using line breaks.
1 PATCH View Patch Updates (v1.02.002)
PATCH v1.02.002
2026-08-04
  • Icon-Only Action Buttons: Changed header "Lock" and "Settings" buttons to icon-only buttons (#lockBtn, #settingsBtn) without text labels, updating layout padding/sizing for clean alignment with the language switcher and maintaining accessible tooltips (title & aria-label).
MINOR v2.9.0
2026-07-09
  • Continuous Range Interception: Intercept all music range requests (not just those starting at 0) and delegate subsequent chunks to fetch(request) inside event.respondWith(). This ensures that browsers see the audio stream as coming continuously from the Service Worker, resolving Safari and Chrome media engine stalling and network error blocks.
81 PATCHES View Patch Updates (v2.9.1 – v2.9.20)
PATCH v2.9.20
2026-08-03
  • Restored Original Green 1kx Favicon: Restored the authentic original green "1kx" box logo across all favicon assets (favicon.ico, images/favicon.png, images/icon-maskable.png, images/favicon-192x192.png, images/favicon-32x32.png, images/favicon-16x16.png, and images/apple-touch-icon.png). The green "1kx" icon now displays consistently in all contexts, including browser tabs, PWA install prompts ("Open in app"), mobile shortcuts, and taskbar icons.
PATCH v2.9.19
2026-08-03
  • Clean Transparent Favicons & Multi-Resolution ICO: Removed outer olive green padding box from favicon.png and root favicon.ico, leaving the dark 1kx squircle tile floating with transparent background. Added multi-resolution favicon.ico (16x16, 32x32, 48x48, 64x64, 128x128, 256x256), favicon-32x32.png, favicon-16x16.png, favicon-192x192.png, filled apple-touch-icon.png (180x180), and maskable PWA icon (icon-maskable.png).
PATCH v2.09.029
2026-08-03
  • Physics Trajectory Maintenance: Fixed flung square physics so flung squares maintain their flung vector angle during friction decay and cruising back to ambient float state instead of falling back to original trajectory.
PATCH v2.09.028
2026-08-03
  • UI: Standardized root index.html apple-touch-icon link declarations to match working sub-apps.
PATCH v2.09.027
2026-08-03
  • Bug Fix: Added root apple-touch-icon.png and apple-touch-icon-precomposed.png assets at domain root to resolve Mobile Chrome on iOS 404 HTML fallback issue.
PATCH v2.09.026
2026-08-03
  • Feature: Added root manifest.json and distinct 1kx visualizer logo favicon to optimize Chrome Mobile shortcut tiles and prevent single-letter text fallback badge confusion.
PATCH v2.09.025
2026-08-03
  • UI: Restored original olive green 1kx favicon as a high-resolution 512x512 PNG with full square corners.
PATCH v2.09.024
2026-08-03
  • UI: Generated 512x512 full square corner favicon and added apple-touch-icon meta tag for iOS Safari.
PATCH v1.01.011
2026-08-03
  • UI: Added apple-touch-icon meta tag for iOS Safari.
PATCH v2.09.023
2026-08-03
  • Performance: Optimized 1kx Music Player tap response with eager AudioContext unlock, 0ms visual press feedback, audio buffer warming, and layout thrash removal.
PATCH v1.01.010
2026-08-03
  • SEO: Updated title tag to <title>LiamBot</title>.
PATCH v2.09.021
2026-08-02
  • Routine deployment update
PATCH v1.01.009
2026-08-02
  • Routine deployment update
PATCH v2.09.020
2026-08-02
  • Root music player: soccer ball full-screen roll-in from left with 50% zero-jerk velocity-matched deceleration.
PATCH v1.01.008
2026-08-02
  • Case-insensitive URL query parameter triggers (?Refresh, ?New, ?Generate, ?Force, ?Reset).
PATCH v1.01.007
2026-08-02
  • Added non-exhaustive sub-topic examples instruction note to AI prompt generator system prompt.
PATCH v1.01.006
2026-08-02
  • xkcd source integration
  • 10-question horizontal swipe container
  • Page load randomization
  • 13 core topics (Design & Art, Weather, Soccer/Running/Cycling, etc.)
PATCH v1.01.005
2026-08-01
  • Welcome heading formatting: Added forced line break to improve responsive display.
PATCH v1.01.004
2026-08-01
  • Manual AI prompt generation triggers: ?new, ?generate, ?refresh, Shift+Shuffle.
PATCH v2.09.021
2026-08-01
  • LiamBot v1.01.003: real-time daily AI question generator engine and top-locking prompt alignment fixes.
PATCH v2.09.019
2026-08-01
PATCH v2.9.17
2026-08-01
  • Deployment of improved 404 page: clean 2x2 grid, electric pink #ff00ff 404 text, 3-stripe top border, exact error message, and GitHub PAT automation.
PATCH v2.9.16
2026-08-01
  • Deployment of custom 404 page: Caseyland 2x2 grid, electric pink 404 text, dead bird vector, and 3-stripe top border.
PATCH v1.00.014
2026-08-02
  • Feature: updated Casey Cichowicz hero heading color to electric pink (var(--accent-magenta)).
  • Feature: interactive headshot pixelated/HD reveal (0.4s reveal, 5s hold, 10s fade-back) with simplified alt text.
  • Certification updates (Scrum Master 2022, CSPO 2023, Google Cloud 2026).
  • Feature: updated headshot vignette mask from round radial-gradient to square intersecting linear-gradient vignette.
PATCH v1.0.10
2026-08-01
  • Maintenance update and synchronized deployment.
PATCH v1.0.6
2026-08-01
  • Maintenance update and synchronized deployment.
PATCH v1.0.5
2026-08-01
  • Deployment of Casey sub-application v1.0.5.
  • Responsive Caseyland theme design with dark midnight base, ambient background glows, and Varela Round typography.
  • Interactive employer project listings, executive summary, and experience timeline.
PATCH v2.4.8
2026-08-01
  • Version Release: Incremented CaseyCase patch version to v2.4.8 in manifest.json and index.html, and deployed updated application files to 1kx.org/CaseyCase.
PATCH v0.01.27
2026-07-31
  • Mobile Horizontal Overflow & Responsive Sizing Fix:
  • Converted .cards-grid on mobile (≤580px) from a fixed 600px grid template to a flex carousel (flex: 0 0 250px; max-width: 82vw;) with internal overflow-x: auto and scroll snapping.
  • Replaced 100vw with 100% / max-width: 100% on html, body, .ambient-bg, and .auth-fullscreen-overlay to eliminate viewport scrollbar blowout on mobile browsers.
  • Shuffle Button Touch Hover Persistence:
  • Scoped .btn-shuffle:hover tilt transform within @media (hover: hover) and (pointer: fine) so touch devices (mobile/tablet) don't latch the rotation state after tap.
  • Added .btn-shuffle:active scale effect to instantly bounce the button back to normal upon tap release.
PATCH v0.01.26
2026-07-31
  • Disable Auto-Capitalization on Passcode Input:
  • Added autocapitalize="none", autocorrect="off", and spellcheck="false" to #passcodeInput in index.html.
  • Prevents iPad / iOS keyboard from defaulting to an initial shift/capital key when switching passcode visibility with the eye toggle button.
PATCH v1.01.003
2026-08-02
  • Simplified instruction text to "ARROWS OR DRAG TO MOVE" and "SPACE OR TAP/SWIPE TO KICK" on loading screen and pitch overlay.
  • Added automatic Service Worker unregistration and dynamic JS/CSS timestamp cache-busting for localhost.
  • Updated version cache-busting query strings to v1.01.003 for production.
PATCH v0.5.15
2026-07-31
  • Base CSS Opacity Initialization for Corner UI Elements:
  • Initialized base opacity of gameplay corner UI elements (.ui-btn, .back-link-container, #status-text) to 0 in styles.css to prevent initial transition queuing bugs and visual flashes.
PATCH v0.5.14
2026-07-31
  • Inline Style Opacity & Pointer Events Corner UI Management:
  • Converted corner UI visibility management from CSS class toggles to direct inline styling (opacity & pointerEvents), permanently bypassing WebKit CSS transition coalescing bugs on iOS/iPadOS browsers.
PATCH v0.01.25
2026-07-31
  • Version Release:
  • Incremented LiamBot version to v0.01.25 (badge-tag and footer) and deployed latest application files to 1kx.org.
PATCH v0.5.13
2026-07-31
  • Loading Screen Return Link & WebKit Opacity Transition Fixes:
  • Restored initial loading screen visibility for the return link and version badge, fixed WebKit opacity transition bugs with explicit base opacity rules, and refined corner UI interaction fade logic.
PATCH v0.01.24
2026-07-31
  • iPad / iOS Virtual Keyboard & Accessory Bar Background Fix:
  • Added html { background-color: #060913; color-scheme: dark; } and body { background-color: #060913; min-height: -webkit-fill-available; } in styles.css.
  • Added <meta name="theme-color" content="#060913"> and viewport-fit=cover in index.html to prevent white background gaps when the iOS virtual keyboard or password autofill bar appears on iPad.
PATCH v0.5.12
2026-07-31
  • Conditional Corner UI Reveal on Loading Completion:
  • Conditionally suppressed corner UI element fade-in upon loading completion if user interaction (keys or touch) is actively detected, avoiding unexpected overlay reveals during play.
PATCH v0.5.11
2026-07-31
  • Initial Loading Corner UI Element Transition & Visibility Fix:
  • Fixed initial loading corner UI element visibility states by adding .fade-out CSS classes and managing visibility transitions smoothly via class toggling instead of inline style overrides.
PATCH v0.5.10
2026-07-31
  • Corner UI Auto-Fade Reappear Timeout:
  • Tuned corner UI reappear delay on inactivity in football sub-app from 5s to 4s.
PATCH v0.5.9
2026-07-31
  • Rollback Stabilization & Pitch Canvas Restoration:
  • Restored football sub-application to stable codebase (v0.5.9), resolving canvas resolution scaling mismatches, pitch rendering glitches, and joystick interaction regressions from experimental builds.
PATCH v2.9.15
2026-08-01
  • Randomized Resting Keyframe: The soccer ball now selects a random sprite frame (restingFrameIndex = 0..7) whenever it comes to a stop after rolling in or completing a hover spin, adding organic variety to its resting orientation.
PATCH v2.9.14
2026-08-01
  • Whimsical 45° Canvas Orientation: Applied a permanent 45° rotation (transform: rotate(45deg)) directly to .football-link canvas so the soccer ball rests at a playful jaunty angle, maintaining its whimsical tilt across all states (roll-in, resting, hover, and click spin).
PATCH v2.9.13
2026-08-01
  • Decelerating Sprite Roll-In Animation: Synchronized the multi-frame pixel sprite rotation speed with the 1.3s cubic-bezier ease-out roll-in curve. Rotation starts fast as the ball enters from the right and smoothly decelerates to a complete stop as it reaches its final resting position.
PATCH v2.9.12
2026-08-01
  • Sprite Parser String Escaping & Defensive Guarding: Fixed regex string escaping in syncFootballBallFromGame() when parsing /football/game.js to ensure all 8 frames are correctly captured without falling through, and added defensive fallback checks in drawFootballBallOnCanvas() to prevent TypeError exceptions.
PATCH v2.9.11
2026-08-01
  • Multi-Frame Pixel Sprite Ball Rotation: Integrated all 8 rotation sprite frames (ballSprites[0..7]) from /Football into the main homepage soccer ball canvas. The ball now dynamically cycles through all 8 8-bit pixel frames for the 1.3s counterclockwise roll-in entrance, smooth hover spinning, and fast click navigation spin.
PATCH v2.9.10
2026-08-01
  • Custom 404 Error Page: Implemented a responsive, ambient-themed 404 page with particle orbs and sub-application navigation grid for lost users.
PATCH v2.9.9
2026-07-31
  • FOOTBALL Sub-Application Deployment (v0.5.8):
  • Corner UI elements auto-fade reappear time reduced from 8s to 5s.
  • UI fade-in delay reduced to 4s with enlarged touch hit target for return link.
  • Enabled touch joystick controls in lower right-hand corner when corner UI elements are hidden.
  • Version Release: Updated package configuration and homepage settings dashboard to version 2.9.9.
PATCH v2.9.8
2026-07-31
  • LiamBot Integration Suite (v0.01.12 – v0.01.23):
  • System prompt refinements expanding domain knowledge across architecture, engineering, design, music, computer science, and astronomy.
  • Flat vector SVG icons for header brand badge, chat history avatars (bot & user), lock button, settings gear, password eye toggle, shuffle button, and prompt headings.
  • Interactive features: Password visibility toggle (eye icon), 5-day cookie persistence, daily welcome banner topic rotation, and touch-snap mobile prompt card carousel.
  • UX fixes: Smooth window scrolling on prompt click, input focus scroll jump prevention (preventScroll), and generic follow-up action pills.
  • FOOTBALL Mini-App Updates (v0.1.0 – v0.5.5):
  • Telstar pentagon pixel art soccer ball design with soft color contouring and high-res loading screen graphic.
  • Touch joystick with dual-ring walk/sprint zones, dynamic pull distance scaling, and desktop key hold acceleration.
  • Dribble/kick mechanics with 15-frame kick cooldown, directional aiming, high-DPI instruction UI, and color-coded goal netting.
  • Version Release: Updated package configuration and homepage settings dashboard to version 2.9.8.
PATCH v0.01.23
2026-07-31
  • System Prompt Refinements: Expanded system prompt domain interests to include architecture, engineering, design, music, and specific astronomy/CS terminology. Added Kottke.org and Neil deGrasse Tyson as primary source examples.
PATCH v0.01.22
2026-07-31
  • Flat Vector Explore Icon: Replaced galaxy emoji (🌌) next to the "Explore & Discover" heading with a flat vector SVG compass icon.
PATCH v0.01.21
2026-07-31
  • Generic Follow-Up Prompts: All follow-up action pills now use generic "this topic" references (e.g. "Can you elaborate on this topic in even more detail?", "Can you explain this more simply?") instead of quoting the original question.
  • 3 Follow-Up Questions Button: Removed the "❓ 3 Follow-Up Questions" action pill from bot responses.
PATCH v0.01.20
2026-07-31
  • Flat Vector Shuffle Icon: Replaced shuffle emoji (🔀) on the #shuffleBtn ("Shuffle Questions") button with a flat vector SVG shuffle icon.
PATCH v0.01.19
2026-07-31
  • Page Window Scroll on Prompt Selection: Updated scrollToQuestion() to smoothly scroll the outer browser window (window.scrollTo()) down past the Explore prompts section when any starter prompt is clicked, ensuring the user's question aligns right at the top of the screen.
PATCH v0.01.18
2026-07-31
  • Button Emoji Cleanups: Removed rocket emoji (🚀) from the #sendBtn ("Ask") and #unlockBtn ("Unlock") primary action buttons.
PATCH v0.01.17
2026-07-31
  • Thinking Indicator Vector Avatar: Updated appendTypingIndicator() in app.js to render the flat vector SVG bot icon (BOT_AVATAR_SVG) during the active thinking state instead of falling back to the emoji avatar.
PATCH v0.01.16
2026-07-31
  • Flat Vector Bot & User Avatars: Replaced bot (🤖) and user (👤) emojis in the header brand badge and chat history message bubbles with clean, flat vector SVG icons (bot-svg robot head and user-svg profile silhouette).
PATCH v0.01.15
2026-07-31
  • Prevent Auto-Scroll Jump to Input Bottom: Used focus({ preventScroll: true }) on input re-activation and synchronized scrollToQuestion inside finally block to prevent native browser focus events from jumping to the bottom of long answers.
PATCH v0.01.14
2026-07-31
  • Cleaner Action Pill Prompts: Updated quick action follow-up prompts to use clean, natural topic phrases ("Can you explain this topic more simply?", "Can you give me a real-world example related to this topic?") without quoting the original question. Renamed button label to "💡 Explain More Simply".
PATCH v0.01.13
2026-07-31
  • Flat Vector Settings Icon: Replaced settings gear emoji (⚙️) on #settingsBtn and #modalTitle with a flat vector SVG gear icon, creating a cohesive vector icon system alongside the Lock button.
PATCH v0.01.12
2026-07-31
  • Flat Vector Lock Icon: Replaced the lock emoji (🔒) on the Lock header button (#lockBtn) and authentication modal header (#authTitle) with a clean, flat vector SVG lock icon matching the application design system.
PATCH v0.01.11
2026-07-31
  • Flat Vector Eye Icon: Replaced emoji eye with clean, flat vector SVG icons (eye-open and eye-off) styled with subtle hover transitions (#38bdf8 cyan accent) to match the dark cyber UI design system.
PATCH v0.01.10
2026-07-31
  • Responsive 3-Across Prompt Cards Layout: Updated .cards-grid CSS to enforce an explicit 3-column layout (repeat(3, 1fr)) across desktop and tablet viewports, preventing awkward 2+1 grid wrapping. Added a touch-snap horizontal carousel on mobile devices (≤580px) to keep all 3 starter cards cleanly accessible in a single row.
PATCH v0.01.09
2026-07-31
  • Password Visibility Toggle (Eye Icon): Added an interactive 👁️ / 🙈 toggle button inside the passcode input box so users can reveal or hide typed characters to confirm their entry.
PATCH v0.01.08
2026-07-31
  • Daily Welcome Banner Topic Rotation: Updated updateDailyWelcomeBanner() in app.js to dynamically generate the "Ask me anything about..." prompt text each day based on today's active discovery topics.
PATCH v0.01.07
2026-07-31
  • Accurate Relative Question Top Alignment: Updated scrollToQuestion calculation using getBoundingClientRect() and requestAnimationFrame post-layout rendering so the user's question aligns precisely at the top of the scroll container, with answers flowing naturally below.
PATCH v0.01.06
2026-07-31
  • API Key UI Management: Removed API key input field and status badge from the Settings modal and header UI, keeping API key management exclusively in secure server/config files while retaining AI model selection options.
PATCH v0.01.05
2026-07-31
  • Fullscreen Auth Screen Concealment: Fixed HTML structure and added display: none !important locking on .app-container so the entire application interface is completely hidden until the passcode is authenticated.
PATCH v0.01.04
2026-07-31
  • 5-Day Cookie Persistence: Authenticating with the passcode sets a 5-day browser cookie (liambot_auth=authenticated; max-age=432000). Returning users are remembered automatically without re-entering the passcode for 5 days unless 🔒 Lock is explicitly clicked.
PATCH v0.01.03
2026-07-31
  • Non-Discoverable SHA-256 Passcode Protection: Implemented a secure authentication gate overlay requiring a passcode. Stored exclusively as a 256-bit SHA-256 cryptographic hash (664cdb...) so the plaintext password is not discoverable in source code or dev tools. Includes session state management and a 🔒 Lock button in the header.
PATCH v0.01.02
2026-07-31
  • Smart Question Alignment Scrolling: Updated chat scroll behavior so that when long answers generate, the container automatically scrolls to align the user's question near the top of the chat area, allowing the answer to flow naturally underneath without forcing manual scroll-up.
PATCH v0.01.01
2026-07-31
  • LiamBot Mini-App: Intellectual AI discovery & learning companion for Liam (~10 years old) at 1kx.org/LiamBot.
  • Rotational Starter Discovery Hub: 8 subject categories with 3 dynamic rotating prompt cards.
  • Primary Source Links: Citations for Wikipedia, NASA, Stanford Encyclopedia of Philosophy, Britannica, Scientific American, and MIT Tech Review.
  • Dynamic Safety Redirection: Empathetic, topic-tailored redirection for non-age-appropriate questions.
  • Prompt Injection Defense: Sanitizes system override attempts.
  • Flat Cyber Aesthetic: Crisp square 0px corners, ambient background blur orbs, and high-contrast light blue links.
PATCH v2.9.8
2026-08-01
  • Pixelated Soccer Ball Asset: Replaced soccer ball emoji (⚽) in the top-right sub-app link with an 8x8 pixel-art canvas ball matching the retro design from /Football.
  • Dynamic Sub-App Image Synchronization: Implemented client-side synchronization (syncFootballBallFromGame()) that fetches /football/game.js at runtime, parses ballSprites and drawBallSprite color mappings, and renders the exact pixel ball from /Football dynamically so future ball artwork changes automatically propagate to the main homepage.
PATCH v2.9.7
2026-07-31
  • Background Desktop Drag-to-Comet: Clicking and dragging across the background on desktop now launches a shooting star comet in the direction of the drag, mirroring the mobile swipe gesture.
  • Pointer Event & Touch Layering: Resolved event blocking where #canvas-container prevented clicks on the soccer ball and touch swipes on mobile. Moved interaction event listeners (mousedown, touchstart, touchmove, touchend) to window with targeted UI element filtering so squares float on top visually without blocking clicks or comets.
PATCH v2.9.6
2026-07-31
PATCH v2.9.7
2026-07-31
  • Permanent Subagent Definitions: Added permanent, token-optimized subagent definitions in .agents/agents/ (Orchestrator, Developer, QA Tester, and Release Manager).
  • Soccer Ball Roll-In Animation: On initial appearance after the 5-second delay, the football link now rolls in from the right with a counterclockwise 540° rotation decelerating via cubic-bezier ease-out over 1.3 seconds, rather than a plain fade.
  • Mobile Settings Panel Access: Long-pressing (800ms, no movement) in the bottom 20% of the screen now opens the settings panel on mobile devices, excluding interactive elements like sliders and buttons.
  • Sub-App Navigation Links: Added Football and CaseyCase navigation links directly inside the settings panel header.
  • Flat SVG Play/Pause Icons: Replaced emoji ⏸/▶ icons in the Pause/Play button with inline SVGs matching the flat style of the Recolor button.
  • Soccer Ball bfcache Reset: When navigating back from the Football app via the browser back button, the soccer ball now resets — disappears immediately and rolls back in after a fresh 5-second delay.
  • Soccer Ball Click Animation: Clicking the soccer ball now spins fast for 1 second (down from 1.5s) before navigating to the Football app.
  • Mobile Settings Header Layout: Settings panel header stacks vertically on narrow screens (≤600px) — title on row 1, links and square counter on row 2 — to prevent text overflow.
  • Long-Press Text Selection: Added -webkit-user-select: none and -webkit-touch-callout: none to the body to suppress iOS Safari text selection and the copy/share callout bubble during long-press gestures. Text selection inside the settings panel remains enabled.
  • Soccer Ball Spinning Animation Regression: Fixed a closure bug where the spinning-fast class was being applied to a detached (cloned) DOM element, making the click spin animation invisible. The click handler now correctly references the live DOM element.
PATCH v2.9.6
2026-07-30
  • Delayed Football Link: Added a tiny soccer ball emoji link in the upper right-hand corner that fades in after 5 seconds, linking directly to the Football sub-application (football/).
  • Hover Spin Animation: Soccer ball slowly rotates on hover (spin-slow, 4s linear).
  • Click Fast Spin: Clicking/tapping the soccer ball triggers a fast spin animation before navigating to the Football app.
PATCH v2.9.5
2026-07-14
  • High-DPI (Retina) Canvas Resolution Scaling: Integrated devicePixelRatio scaling dynamically for the background canvas on startup and resizing, ensuring razor-sharp starfield details on all High-DPI and modern mobile viewports.
  • GPU-Optimized Sparkle Rendering: Replaced heavy vector circle path drawings (ctx.arc()) inside stardust particles with high-performance ctx.fillRect() blocks to avoid CPU path calculations and GPU draw-state switches on intense starbursts.
PATCH v2.9.4
2026-07-14
  • Trajectory curvature: Shooting stars now travel along a randomized, circular curved trajectory.
  • Sparkle trails: Shooting stars emit subtle, fading stardust sparkles along their path using high-performance particle pooling.
PATCH v2.9.3
2026-07-14
  • Background touch-swipe shooting star gesture feature for mobile/tablet devices. Swiping across a blank space on the canvas launches a fast-moving star with a fading light trail in the direction of the swipe gesture.
PATCH v2.9.2
2026-07-09
  • Active Service Worker Unregistration & Cache Purging: Reconfigured sw.js and root index.html to actively unregister any existing range-caching Service Workers and clear all cache keys. This cleanses the client browsers of stale range caching routines and restores 100% stable native audio streaming.
PATCH v2.9.1
2026-07-09
  • Selective Range Interception Bypass: Simplified sw.js to ONLY intercept the 128KB metadata range requests (bytes=0-131072) sent by the parser/preloader, completely bypassing Service Worker interception for playback requests (bytes=0- or subsequent chunks). This offloads media streaming back to the browser's native range handling, eliminating browser-specific playback stalling bugs and restoring instant start response natively.
MINOR v2.8.0
2026-07-02
  • Fallback Logo Preloading: Upgraded fallback artist logos from low-priority prefetch to high-priority HTML preload link relations.
  • Programmatic Image Pre-decoding: Instantiated logo image objects dynamically via JavaScript at startup, forcing early memory caching and rendering decode states to eliminate visual "painting" delays during playback starts.
9 PATCHES View Patch Updates (v2.8.1 – v2.8.9)
PATCH v2.8.9
2026-07-09
  • Service Worker 206 Caching Block: Rewrote sw.js to store 128KB metadata range requests under a 200 OK status (remapping original headers as custom metadata) to bypass the browser Cache API's strict blocks and TypeErrors on 206 statuses.
  • Playback Start Interceptor: Serve sliced cached blobs to <audio> elements starting at 0 natively.
  • Preloader URL Alignment: Updated processPreloadQueue() in index.html to resolve track paths using getTrackUrl() (complying with segments URL encoding), resolving Cache API key match failures.
PATCH v2.8.8
2026-07-08
  • Particle Object Pooling: Redefined stardust Sparkle class and implemented a pre-allocated circular object pool of 300 sparkles to eliminate garbage collection (GC) pauses and runtime allocation overhead during collisions or background clicks.
  • Debounced Settings Sliders: Throttled/debounced the Squares and Stars count settings sliders by 150ms to prevent layout reflow thrashing during drag interactions while keeping label readouts instant.
PATCH v2.8.7
2026-07-08
  • Media Resource Release: Optimized visualizer Square class destroy() cleanup to explicitly reset the HTML5 <audio> element's src attribute to '' and call load(). This releases all media buffer memory and open connection sockets in mobile/desktop browsers when squares are destroyed or paused.
PATCH v2.8.6
2026-07-08
  • Background Audio Idle Preloader: Introduced a throttled, sequential queue processor (processPreloadQueue) that preloads the first 128KB chunk of all visible squares during browser idle times (requestIdleCallback).
  • Root Service Worker Range Interceptor: Recreated root-level sw.js to cache 128KB chunks under metadata range queries (bytes=0-131072) and instantly resolve playback starts (bytes=0-) locally from Cache Storage as partial content.
  • Queue Test Suite: Created tests/test_preloader_queue.js and added fetch mocks in existing runners to verify queue states and visual indicator class changes.
PATCH v2.8.5
2026-07-08
  • Visualizer Spawner adding/removing Cycle: Configured the visualizer spawner loop to alternate between adding squares up to targetCount and removing oldest inactive squares back down to 1 square.
  • Playing/Paused Protection: Implemented checks to skip removing squares that are actively playing or paused on audio channels.
  • CRT TV Collapse Transition: Evicted squares transition out using the tv-off class CRT TV turn-off animation.
  • Cycle Test Suite: Created tests/test_spawner_cycle.js to verify mode transitions, target count checks, playing square skips, and tv collapse animation hooks.
PATCH v2.8.4
2026-07-08
  • Unique Song Signatures Filter: Introduced a signature checker (getSongSignature) that prevents squares from loading the same artist and song title as any other currently displayed square.
  • Signature Test Suite: Created tests/test_unique_signatures.js to ensure signature extraction works on various filename templates and duplicate signature exclusions are verified during grid fills.
PATCH v2.8.3
2026-07-07
  • Delayed Custom Artwork Transition: Modified playback initialization to display the fallback artist logo for exactly 1 second when play begins, after which it executes a glitch transition to custom metadata album artwork (if present).
  • Destructor Cleanups: Clear active transition timers inside destroy() to prevent background timeout execution leaks.
PATCH v2.8.2
2026-07-02
  • Inline Artist Logos: Embedded a very small, rounded version of each artist logo (1.1rem width/height) next to the bullet points inside the info panel collective description.
  • Flexbox List Layout: Replaced the absolute-positioned pseudo-bullets with a flexbox alignment (display: flex; align-items: flex-start;) to ensure clean alignment and neat indents for wrapped text lines.
PATCH v2.8.1
2026-07-02
  • New Artist Integration: Added "Orange Cricket Project" (1993-2000) to the visualizer and info panel details.
  • Orange Color Scheme: Configured the HSL-seeded palette to generate shades of orange (Hues 15-45) for Orange Cricket Project visualizer squares.
  • Automatic Track Sync: Synced 15 new tracks locally and updated the primary catalog array in index.html.
  • High-Resolution Logo Preloading: Formatted and integrated the upscaled high-resolution logo preview as a PNG in preloading link tags and programmatic pre-decoders.
MINOR v2.7.0
2026-07-02
  • Network & Count Adaptive Spawning: Optimized the spawning delay formula inside manageSpawning() to increase progressively as the canvas becomes populated (1 + Math.pow(current, 1.2) * 0.25), preventing immediate screen overcrowding. Also introduced a network-adaptive factor (getConnectionDelayFactor()) via the browser's Network Information API, scaling delays up on slower connections (up to 3.0x delay multiplier on 2G/3G networks) to match media stream pacing.
3 PATCHES View Patch Updates (v2.7.1 – v2.7.3)
PATCH v2.7.3
2026-07-02
  • Buffering Pulse Tuning: Fine-tuned the active square buffering pulse shadow (loadPulseFast) to a middle ground (11px spread, 0.30 opacity), balancing softer aesthetics with clear buffering indications.
PATCH v2.7.2
2026-07-02
  • Buffering Pulse Tuning: Reduced the active square buffering pulse glow (loadPulseFast) spread by half (from 16px to 8px) and lowered its glow opacity (from 0.45 to 0.22) to make the visual indicator softer and less intense.
PATCH v2.7.1
2026-07-02
  • GitHub Actions CI/CD Pipeline: Added .github/workflows/ci-cd.yml to automatically execute python syntax checking and Jest-based integration tests upon push, and deploy to FTP when green.
  • Repository Testing Assets: Migrated check_syntax.py and test_preloader.js from internal sandbox folders directly into the repo for workflow portability.
  • Credentials Redaction: Redacted hardcoded FTP passwords from upload.py to prevent repository leaks, shifting configuration to .env files and environment parameters.
  • Git History Purge: Rewrote and force-pushed repository history to completely wipe all past trace occurrences of production secrets.
MINOR v2.6.0
2026-07-02
  • Service Worker Caching Optimization: Replaced streaming-based fetches with a two-stage Range-header fetch mechanism inside extractAlbumArt(). The first stage requests a 128KB chunk (bytes=0-131072) matching the Service Worker's cache key to hit the cache storage instantly on subsequent plays. If cover art tags exceed 128KB, a second request downloads only the remaining bytes and combines them.
4 PATCHES View Patch Updates (v2.6.1 – v2.6.4)
PATCH v2.6.4
2026-07-02
  • Artwork Synchronization Race Condition: Replaced browser-specific checks on the audio.paused property inside metadata parsing callbacks with a custom playbackStarted state property initialized on Square instances. This prevents browser-specific buffering states from prematurely flagging playing tracks as paused, guaranteeing that custom cover art renders reliably on the visualizer squares.
PATCH v2.6.3
2026-07-02
  • Deferred Album Artwork Transitions: Synchronized the cover art overlay updates with the Now Playing metadata text. When switching tracks, the previous track's artwork remains active on its square while the new track buffers/loads. Only when the new track's onplaying event fires, do we hide the old artwork, reveal the new artwork, and run the transition glitch.
PATCH v2.6.2
2026-07-02
  • Starfield Canvas Draw Call Optimization: Removed slow ctx.save() and ctx.restore() stack operations inside Star.draw(). Instead, it caches and restores only the ctx.globalAlpha property directly. This eliminates 12,000 stack operations per second for the 100 continuously rendering background stars, significantly reducing CPU rendering overhead and preventing visual lag.
PATCH v2.6.1
2026-07-02
  • Mobile Viewport Text Marquee & Progress Underline: Added min-width: 0 to #song-info-wrapper and set width: 100% on #song-title-container. This allows the text containers to shrink dynamically to the visible screen width on small viewports, restoring text scrolling marquee behaviors and restricting the progress line within visible bounds.
MINOR v2.5.0
2026-07-01
  • Preloading System Rollback: Removed all background audio preloading queues, off-screen spawning restrictions, and download throttling. Reverted to a direct click-to-play architecture where squares spawn immediately on page load/destruction, eliminating background network consumption, port blockages, and preloader-induced desync bugs.
  • Static Channel Track Loading: Reconfigured the audio engine to load tracks directly onto static, permanent HTML Audio elements, resolving Web Audio routing errors and layout mismatches.
9 PATCHES View Patch Updates (v2.5.1 – v2.5.9)
PATCH v2.5.9
2026-07-02
  • Fallback Logo Asset Prefetching: Added HTML5 <link rel="prefetch"> headers for the default artist logos (logo_caseyland.png, logo_uphill_driver.png, logo_creme_puffs.png) inside the <head> of the page. This preloads the fallback logos in the background during idle periods, guaranteeing instant logo loading when starting playback on slow connections.
PATCH v2.5.8
2026-07-02
  • Now Playing Timing Refinement: Postponed Now Playing UI text/color updates during track switches so that the previous song's artist/title remains visible while the new song loads. The play/pause button spinner immediately displays the new loading square's color, updating the text marquee only when the new song starts playing.
PATCH v2.5.7
2026-07-02
  • Square Spawning Limits: Removed the obsolete allPlayable check from manageSpawning(). Since preloading was rolled back, the playable check incorrectly blocked new squares from spawning, capping the active count and preventing adjustments from the settings panel.
PATCH v2.5.6
2026-07-02
  • Playback Progress Underline: Added a subtle progress indicator underline directly beneath the Now Playing song title text. The progress line dynamically inherits the color of the active square, scales its width to match either the text width or visible container bounds (if scrolling), and fills from left to right as the track plays.
PATCH v2.5.5
2026-07-02
  • Dynamic ID3v2 Tag Block Parsing: Integrated dynamic synchsafe tag block size parsing inside extractAlbumArt(). It parses the exact header size (which can exceed 500KB for high-resolution embedded cover art) from the file's first 10 bytes and streams only the necessary header data, preventing truncated header objects from failing tag parsing.
PATCH v2.5.4
2026-07-01
  • Continuous Play ReferenceError: Removed obsolete processPreloadQueue() call from Square.shrinkAndDestroy(), fixing the ReferenceError that broke track sequences.
  • Local-Only Error Overlay Alerts: Configured window error and promise rejection visual alerts to only display on local development sites (isLocal protocol/domain matches), preventing diagnostic UI boxes from showing up on production while retaining them for local debugging.
PATCH v2.5.3
2026-07-01
  • Stream-Based Metadata Extraction: Swapped the byte-range metadata request fetch with a stream-based reader. This solves the missing production album art bug caused by IIS returning 416 errors for range headers, enabling metadata art extraction to succeed and load with a glitch effect.
PATCH v2.5.2
2026-07-01
  • Service Worker Range-Request Caching: Implemented a service worker (sw.js) that caches the initial 128KB metadata range requests of audio tracks. When playing, the Service Worker immediately satisfies the start of the stream from the local cache, yielding near 0ms start latency while the rest of the file streams seamlessly.
  • Interactive Canvas Starburst Effect: Added mouse and touch listeners on empty visualizer background space to spawn custom Sparkle bursts in a starfield pattern, enhancing kinetic page feedback.
PATCH v2.5.1
2026-07-01
  • Now Playing Section Responsiveness: Configured updateNowPlayingUI() to update the song marquee and slide-in container immediately upon clicking a visualizer square. This bypasses asynchronous timing differences on devices where the HTML5 playing event behaves inconsistently, rendering Now Playing metadata instantly when a track is requested.
MINOR v2.4.0
2026-07-01
  • Starfield Canvas Pre-rendered Glow Texture: Pre-rendered the radial star glow texture onto a single cached off-screen canvas once at startup. In the animation loop, Star.draw() uses GPU-accelerated ctx.drawImage to copy the texture, scaling and adjusting opacity dynamically. This completely removes thousands of expensive vector radial gradient rendering passes per second from the frame ticks.
9 PATCHES View Patch Updates (v2.4.1 – v2.4.9)
PATCH v2.4.9
2026-07-01
  • Browser-Native CSS Image Loading: Simplified showArtwork() and hideArtwork() to set the CSS background-image directly on the overlay element rather than preloading via new Image() in JavaScript. This allows the browser to natively load, cache, and render the artwork overlays, resolving issues where transient network errors or image loading timeouts prevented artwork or default fallback logos from displaying.
  • Global Channel Playback Check: Modified the artwork callback inside extractAlbumArt() to display the artwork if the square is playing on any channel, resolving a race condition where the callback did not render because activeChannelIndex had toggled during crossfades.
PATCH v2.4.8
2026-07-01
  • Fetch-and-Blob Audio Preloading: Integrated a robust HTTP fetch pipeline to download the entire audio file into a local memory Blob before playback starts. Passing the resulting blob: Object URL to the Audio element guarantees instant 0ms latency playback when clicking preloaded squares, bypassing browser range request throttle queues on throttled network connections.
  • Memory Leak Protection: Configured automatic Object URL revocation via URL.revokeObjectURL() during square destructions.
  • Fetch Abort Integration: Used AbortController signals to cleanly abort pending fetches when background downloads are suspended or prioritised.
PATCH v2.4.7
2026-07-01
  • Artwork Race Condition Fix: Tracked this.artworkLoadingUrl on each square so that pending image loads are automatically discarded when hideArtwork() is called. This solves a desync where an old square's artwork would load asynchronously and display on screen even after clicking a different square.
  • Pause Responsiveness Fix: Configured fadeDirection = 'in' and 'out' tracking. User clicks are no longer ignored during active fade-ins, allowing instant second-click pause/close operations.
  • Explicit Channel Parameter: Updated fadeAndPause to receive the channel reference explicitly to bypass global channel index lookups.
PATCH v2.4.6
2026-07-01
  • Async Closure Capture Bugfix: Fixed a JavaScript error where transitioning tracks triggered an async onerror event callback which read newChan.audio.src after the channel's audio element had already been set to null by the preceding cleanup tick. Capturing the audio reference in local closure scope during callback assignment solves this race condition.
  • Additional Callback Cleanups: Cleared onerror listeners explicitly when swapping tracks and destroying squares.
PATCH v2.4.5
2026-07-01
  • Uncaught TypeError Bugfix: Fixed a JavaScript error in Square.destroy() where resetting callbacks on chan.activeSquare.preloadAudio threw an exception because this.preloadAudio had already been set to null in the preceding cleanup block. Accessing chan.audio directly resolves the exception safely.
PATCH v2.4.4
2026-07-01
  • Re-instantiation Stability Fix: Fixed a potential playback issue where static channel audio elements removed from the DOM during square destructions remained as detached objects on subsequent track requests. Setting chan.audio = null now ensures they are cleanly re-appended and re-instantiated in the DOM.
  • Code Cleanup: Removed the obsolete and unused legacy this.preloader block inside the Square.destroy() method.
PATCH v2.4.3
2026-07-01
  • Web Audio Latency Hint Optimization: Configured the global AudioContext with { latencyHint: 'playback' } to increase buffer safety margins, lowering CPU power draw and preventing audio stutters/crackling under heavy rendering or main-thread scrolling load.
  • Callback Leakage Prevention: Added comprehensive cleanup of onwaiting and onstalled media callbacks during channel swap and square destroy routines to avoid visual state leaks and old/interrupted playback event overlaps.
PATCH v2.4.2
2026-07-01
  • Unconditional Play-Glitch Feedback: Restored the ready-to-play visual glitch effect to trigger unconditionally whenever a track starts playing or resumes (regardless of whether it had to buffer or played instantly).
PATCH v2.4.1
2026-07-01
  • Network-Adaptive Preload Throttling: Integrated Network Information API (navigator.connection.effectiveType) to dynamically scale background concurrent preloads (3 preloads on 4G/broadband, 1 on 3G, and 0/disabled on 2G/slower connections). This preserves maximum network bandwidth for active audio streaming and avoids playback stutters on slower connections.
  • Playback Buffer Stall Watchdogs: Registered onwaiting and onstalled media event listeners on active channels to automatically show the color-coded loading spinner if network congestion stymies audio data delivery mid-song, providing accurate user feedback.
MINOR v2.3.0
2026-06-30
  • Resuming State Transition Optimization: Prevented the player from showing the loading spinner and pulsing animation (.loading-active) when a track is resumed via channel-reuse. This eliminates visual flickering during paused seeks.
8 PATCHES View Patch Updates (v2.3.1 – v2.3.8)
PATCH v2.3.8
2026-07-01
  • Style Invalidation Isolation: Wrapped the ambient background layers in an isolated #bg-container element and updated property setters to modify #bg-container.style directly instead of document.documentElement.style. This limits page style recalculations on animation ticks.
  • Star-to-Square Collision Pre-filtering: Pre-filtered flung squares (state.flungSquares) once per frame, reducing nested collision evaluations inside Star.update() from O(num_stars * num_squares) to O(num_stars * num_flung_squares) (reducing check operations from 4,300 to 0 in normal states).
PATCH v2.3.7
2026-06-30
  • Render Loop HSL Parsing Optimization: Modified generateColorPalette to return numerical HSL properties (hue, sat, light), and refactored updateDOM to use them directly. This completely eliminates regex execution and string parsing inside high-frequency animation frames, reducing CPU load and garbage collection pressure.
PATCH v2.3.6
2026-06-30
  • Three-Part Cleanup Audit: Audited visualizer, layout, and Web Audio subsystems for stability.
  • Web Audio Element Swap Verification: Refactored initChannelWebAudio to track connected elements via a custom chan.connectedAudio property, preventing stale Web Audio connections and memory leaks.
PATCH v2.3.5
2026-06-30
  • Deferred Now Playing UI Transition: Postponed updating the Now Playing artist/title marquee text and playback control icon state until the audio track actually begins playing (onplaying event).
  • Dynamic Loading Spinner Color: Colored the rotating playback control loading spinner to dynamically match the border/indicator color of the target square currently loading, providing a precise visual cue of an impending change.
PATCH v2.3.4
2026-06-30
  • Playback Seek Guard: Capped the fail-safe playhead seek listener (onTimeUpdateSeek) to a maximum of 5 attempts. This prevents event-loop recursion and infinite seek-loops if a browser or local server fails to update the audio timeline, preventing browser lag/freezes.
PATCH v2.3.3
2026-06-30
  • Playback Cache Share Optimization: Reconfigured the audio engine to dynamically bind the square's already-preloaded preloadAudio element as the playback channel's active audio device. This bypasses the browser's source-changing and range-reloading phases, yielding absolute zero-latency, instantaneous playback on clicks.
PATCH v2.3.2
2026-06-30
  • Off-Screen Preloading & Pop-In Spawning UX: Delayed appending square elements to the DOM canvas container until their audio preloading is fully completed or failed. Squares now only spawn and animate into view when they are already glowing (.preloaded) and 100% ready to play instantly, removing on-screen buffering states entirely.
PATCH v2.3.1
2026-06-30
  • Playback Resuming Optimization: Restructured playhead seeking. We now prevent seeks entirely if the audio element is currently playing (e.g. fading out) when a track is clicked again, letting the audio swell back in volume instantly from its current playhead position. Seeks are applied only when a track is fully paused, eliminating dual-loading seek stutters.
MAJOR v2.1.0
2026-06-27
  • Stardust Collisions: implemented kinetic bounding box interaction between high-velocity flung visualizer squares and the background starfield particles. Collision events transfer velocity momentum and trigger transient bursts of circular white stardust sparkles.
9 PATCHES View Patch Updates (v2.1.1 – v2.2.9)
PATCH v2.2.9
2026-06-30
  • Selective Preload Suspension: Modified suspendAllPreloads() to abort downloads ONLY for squares that are actively preloading (pulsing). Fully preloaded squares (glowing/ready) now retain their preloadAudio instances and cached in-memory byte buffers.
  • Preload Audio Memory Lifetime: Preloaded audio elements are kept referenced to preserve their caches, and are dynamically cleared/released inside the destroy() method when squares are shrunken or removed, preventing memory leaks.
PATCH v2.2.8
2026-06-30
  • Fail-Safe Playhead Seek Guarantee: Implemented a temporary timeupdate listener that continuously attempts to restore the playhead to the paused position. Once the media engine buffers enough data to populate seekable ranges and successfully completes the seek, the listener automatically unregisters. This resolves edge cases where browsers silently ignore seeks during metadata/loading state transitions.
PATCH v2.2.7
2026-06-30
  • Same-Origin Local Metadata Extraction: Restored metadata and album art extraction when running the site via a local dev server (e.g. localhost or 127.0.0.1), removing the isLocal bypass and the legacy external CORS proxy. Metadata extraction is now bypassed only for raw file:// protocol views.
  • Dynamic Album Art Glitch Transition: When background album art finishes loading, if the target square is currently active, it automatically swaps the background image from the fallback artist logo to the high-res MP3 cover art and triggers a visual glitch transition.
PATCH v2.2.6
2026-06-30
  • Preload Watchdog Timer: Implemented a 10-second timeout on background audio preloads. If a request hangs or is throttled by the browser, it is automatically aborted, freeing concurrent queue slots and unlocking the visualizer spawning engine.
PATCH v2.2.5
2026-06-30
  • Self-Throttling Spawning Engine: Throttles scheduling of new squares until all squares currently on the screen are playable (fully preloaded/glowing or actively playing).
  • Dynamic Spawn Interval Scaling: Automatically scales the spawning interval delay to get longer as more squares accumulate on screen using a (1 + N * 0.15) multiplier factor, reducing visual and network congestion.
  • Resilient Preloader Restoration: Blocks background queue processing during active playback buffering (loading-active) but robustly resumes queue execution on active play completion, pause transitions, natural ended completion, and loading failures.
PATCH v2.2.4
2026-06-30
  • Intelligent Audio Channel Reuse: enqueues a static channel lookup checking if the track path is already loaded. If so, it resumes playback synchronously from its paused position instead of reloading, preventing re-buffering lag.
  • Drag/Fling Neon Glow Intensity: softened the neon drop-shadow glow opacity (ratio * 0.35 instead of 0.8) and spread (max 30px instead of 55px) when flinging squares to match the dark slate ambient aesthetic.
PATCH v2.2.2
2026-06-30
  • Concurrent Background Preloader Queue: enqueues audio tracks for preloading as soon as their squares appear on screen, limited to 3 parallel downloads to prevent connection throttling.
  • Active Playback Prioritization & Suspension: instantly aborts background preloads when a square is clicked, directing 100% of bandwidth to active buffer loading, and automatically resumes background processing once playback starts.
  • Clicked Buffer Feedback: visual fast pulsing (.loading-active at 0.6s cycle) indicator state for clicked tracks while buffering.
  • Interrupted Buffering Cleanups: immediately stops buffering loads, halts fast-pulsing animations, and restores interrupted tracks to the front of the preload queue if another square is clicked during loading.
  • Playback Initiation Glitch: added a highly stylized, high-contrast hue-rotating visual glitch effect on the album artwork and visualizer square when a buffering track successfully transitions to playing state (fast-pulse stops).
  • Hybrid Local-Remote Fallback: prioritizes same-origin local range requests for sub-10ms loads, with automatic remote fallback to 1kx.org if files are missing locally.
  • Chrome GPU Compositor Viewport Clipping: refactored background layers and starfield canvas positioning to position: fixed with absolute anchors to prevent grey/brown blocks at the bottom of full-screen desktop Chrome viewports.
PATCH v2.1.2
2026-06-30
  • Fallback Logo HTML Preloading: pre-cached the three fallback logo images in the HTML head to guarantee they are immediately available on load.
  • Metadata Extraction Serialization: serialized metadata extraction via a concurrent-limited queue (max 2 parallel fetches) and reduced chunk ranges from 512KB to 128KB, eliminating network saturation on page load.
  • JS Image Preloading: deferred showing and glitching of cover artwork until the image is fully downloaded and cached in browser memory, ensuring perfect synchrony with glitch transitions.
  • Seamless Audio Node Preloader Swapping: integrated the preloaded audio elements directly into active playback channels upon clicking a square, completely bypassing buffering delay and network reconnect latencies.
PATCH v2.1.1
2026-06-30
  • Dynamic Stardust Collision Scaling: scaled particle velocity speed, size, quantity, and decay rate of collision sparkles dynamically based on the velocity of the impacting visualizer square. Slow-moving square collisions emit fewer, smaller, and shorter-lived sparkles.
MAJOR v2.0.0
2026-06-27
  • Interactive Settings Dashboard panel (toggleable panel containing controls).
  • Controls for adjusting simulation speed, track square counts, and background starcount/starspeed.
  • Dynamic color palette regeneration ("Recolor" button).
  • "Play/Pause" controls for track simulation and continuous playback toggles.
  • Custom stylized "About 1kx" info modal highlighting music collective details and band associations.
5 PATCHES View Patch Updates (v2.0.1 – v2.0.6)
PATCH v2.0.6
2026-06-27
  • Active Tab Battery Saver: added visibility checks to pause physics and canvas particle processing when the browser tab is backgrounded, dropping background CPU overhead to 0%.
  • Starfield boundary wrap clamp: added automated star boundary correction inside the window resize event to prevent particles from drifting outside the active viewport when the window is shrunken.
  • Painting Performance Optimization: converted the dynamic center calculations for the ambient radial background gradients to bind to CSS custom variables (--bg-x and --bg-y), eliminating expensive string layout parses and style recalculations inside the animation loop.
  • Legacy dead code: cleaned up obsolete iOS Chrome user agent checks and document class additions.
PATCH v2.0.5
2026-06-27
  • Mobile Layout Bottom Offsets: adjusted bottom padding for .info-container, .song-indicator, and .dashboard on viewports <= 600px to 1rem plus the safe area inset. This matches the left/right margins exactly and prevents the floating control layout disconnect on mobile Chrome and Android browsers.
  • Cleaned up outdated static platform CSS positioning overrides.
PATCH v2.0.3
2026-06-27
  • Re-scanned and synchronized track directory /music/, updating the active track list to 252 playable entries and correcting renamed paths (such as the remastered Caseyland folders).
  • Converted newly uploaded Creme Puffs AIF demos to M4A on the server for full browser compatibility.
PATCH v2.0.2
2026-06-27
  • Audio pause fade-out resumption: saved the previous square's playback position at the *end* of the 4-second crossfade instead of the beginning, preventing audio overlapping/repeating on resume.
PATCH v2.0.1
2026-06-27
  • Setting panel grid refinement: re-arranged controls into a balanced 3x2 desktop grid and responsive mobile layout.
  • Star speed scaling: mapped the user's preferred 1.3x speed setting as the new 1.0x default (internal factor 0.26).
  • Info panel version numbering: added v2.0.1 release string inside the about menu and dashboard header.
  • Spawning placement: forced all newly created visualizer squares to initialize directly on-screen instead of sliding in from screen margins.
MAJOR v1.0.0
2026-06-22
  • Core interactive space-themed portal design.
  • HTML5 Canvas-based starfield background.
  • Floating, draggable track squares mapped to audio releases.
  • Custom retro CRT TV turn-off animations for collapsing elements.
  • Fluid ambient radial background layers.

1kx Football

A fast-paced retro 8-bit arcade soccer game built on HTML5 2D Canvas and Web Audio synth, featuring 2.5D ball elevation physics, multi-tier shooting, teammate passing, and procedural AI attacking routines.

Game Modes & Match Formats

1kx Football features two primary modes designed for quick arcade action or continuous practice sessions:

MATCH
Competitive Match Mode

First to 5 goals wins! Play as the Pink Team against the AI Blue Team. Complete matches trigger victory celebration klaxons, match stats, and win streaks.

TRAINING
Infinite Practice Pitch

Continuous target practice against an automated goalkeeper. Tracks consecutive goal streaks (SCORE:00) and session records (BEST:00).

Match Formats & Team Size

1v1 Format
Solo Duel

Single Player vs. Single AI Outfield Opponent plus Goalkeepers. Perfect for fast one-on-one dribbling duels and direct long shots.

2v1 / 2v2 Format
Team Play & Passing

Player 1 with an intelligent Pink AI Teammate (pinkPlayer2) against the Blue Team. Enables one-twos, through-balls, and switch-play.

Difficulty Levels

Difficulty AI Defense & Pace Shooting & Goalkeeping Behavior
EASY Relaxed marking, forgiving sprint speed Moderate shot power, basic goalkeeping reaction delay.
NORMAL Balanced positioning, active pressure Curved corner shots, dynamic goalkeeping dives.
HARD High-speed relentless pressing, tactical jukes Aggressive power strikes, deceptive baseline cuts, and rapid reflex diving.

Master Controls & Inputs

1kx Football supports both full keyboard controls on desktop and responsive virtual touch controls on mobile and tablet devices.

Keyboard Key Touch / Mobile Action Category Action & Gameplay Mechanic
Arrow Keys or WASD Virtual Joystick Movement Moves your active player across the pitch. Moving into the ball dribbles it along your run path.
Spacebar SHOOT Button Offense Kicks or shoots the ball with power toward the opponent's goal. Direction is guided by player orientation.
Shift or P PASS Button Offense Passes the ball directly to your AI teammate, automatically leading their running stride and switching active control.
Click Scoreboard / Status Tap Status Button Menu Opens the Game Mode Selection Modal to switch between 1v1 / 2v2 formats and difficulty tiers.
Sound Button Tap Sound Icon Audio Toggles synthesized sound effects (whistles, kicks, goalpost strikes, crowd cheers) ON / OFF.
🕹️
Mobile Floating Virtual Joystick: On touchscreens, touching anywhere on the left half of the screen spawns a floating analog joystick that follows your thumb for 360-degree precision dribbling.

2.5D Ball Elevation & Physics Model

The pitch simulation uses full 3D spatial coordinate vectors (x, y, z) for the soccer ball, combined with dynamic shadow projection to render true 2.5D arcade depth:

Elevation (Z)
True 2.5D Trajectories

Shots rise into the air and arc downward under gravity. High chips can sail completely over sliding defenders and diving goalkeepers.

Shadow Depth
Dynamic Ground Shadow

An elliptical shadow tracks on the pitch directly beneath the ball. As the ball climbs in altitude, the shadow shrinks and softens proportionally.

Elastic Woodwork
Goalpost Elastic Deflections

Striking the circular goalposts or crossbar calculates realistic restitution angles with distinct synthesized metallic sound FX.

Magnus Curl
Ball Spin & Curve Shifting

Striking the ball at sharp angles imparts angular velocity, curving shots past defensive walls and into top corners.

Teammate Passing & Coordinated Play

In 2v1 and 2v2 match formats, you are paired with an intelligent Pink AI Teammate. The passing engine provides fluid tiki-taka combinations:

Leading Passes
Predictive Vector Leading

Pressing Shift or P calculates the teammate's velocity vector, playing the ball ahead of their running stride rather than behind them.

Player Switch
Instant Control Hand-Off

When the pass connects with your teammate, active user control transfers seamlessly to the receiving player without dropping momentum.

Support AI
Tactical Support Positioning

Your AI teammate actively makes overlapping wing runs, drifts into open shooting lanes, and drops back defensively when you lose possession.

Procedural AI Attacking Strategies

The AI opponent evaluates pitch geography, goalkeeper positioning, and tackle proximity to execute 5 distinct offensive routines:

Strategy Routine Tactical Approach Shot Execution & Behavior
CENTER_POWER Direct central charge through midfield Fires maximum velocity line drive aimed at top netting.
FLANK_OVERLAP Wide wing run along baseline Cuts sharply inward and strikes toward far post across goalkeeper.
CHIP_LOB Evaluates goalkeeper advance distance Lofts an elevated chip shot over the keeper into an empty net.
ZIG_ZAG Rapid lateral step-overs (jukes) Evades sliding tackles before snapping a quick release shot.
FINESSE_CURL Diagonal box entry angle Curling banana shot around the keeper's diving arm into side netting.

CRT Display & 4-Second Auto-Hide Engine

Auto-Hide
4s Uncluttered Pitch View

Corner HUD labels (#status-text, sound button, and control hints) automatically fade out 4 seconds into active dribbling and passing to provide full view of the pitch.

Scoreboard
100% Persistent Scoreboard

The halfway-line scoreboards (PINK 00 : 00 BLUE) remain locked on screen at all times so you never lose track of match status.

Arcade Synth
Web Audio Sound FX

Features retro 8-bit procedural sound synthesis for ref whistles, hard kick thuds, net swishes, post clangs, and goal siren klaxons.

Release History & Changelog

1kx Football Release History
MINOR v3.02.001
2026-08-18
  • Match Format Selection (1v1 / 2v1), Arcade Status Button & Shift Controls (football/index.html, football/styles.css, football/js/game.js):
  • Added MATCH FORMAT selector inside #difficulty-box in #mode-select-modal with format toggle buttons (#btn-format-1v1 and #btn-format-2v1).
  • Standardized #status-text into an interactive arcade UI button (<button id="status-text" class="ui-btn">) matching #sound-btn styling.
  • Updated keyboard pass hotkey to SHIFT key (SPACE TO SHOOT / SHIFT TO PASS) for intuitive arcade controls.
1 PATCH View Patch Updates (v3.02.002)
PATCH v3.02.002
2026-08-21
  • High-Definition Loading Screen Pixel Soccer Ball Artwork (football/js/game.js, football/index.html):
  • Replaced 16x16 loading screen placeholder ball with a 100% pixel-accurate 40x40 high-definition retro pixel soccer ball matrix.
  • Rendered warm off-white leather panels (#fcf9f2) and dark charcoal outlines/pentagons (#22201d) centered above the title.
MAJOR v3.01.001
2026-08-18
  • Teammate Passing & 2v2 Team Play Architecture (football/js/game.js, football/styles.css, football/index.html):
  • Implemented 2v2 Team Play architecture with active pink teammate switching (pinkPlayer1, pinkPlayer2), teammate AI support positioning, and player cursor indicators.
  • Implemented dedicated Teammate Passing system (P key on keyboard, dedicated #pass-btn action button on mobile touch devices).
  • Added smooth camera glide (lerpRate = 0.12) during passes and player switches, 2.5D visual depth sorting for all players on pitch, and interactive Mode Status text link (#status-text).
1 PATCH View Patch Updates (v3.01.002)
PATCH v3.01.002
2026-08-18
  • Menu Modal Return Link Relocation & Match Scoreboard CSS Alignment (football/index.html, football/styles.css):
  • Relocated <a href="../" class="back-link">&lt; RETURN TO 1KX</a> and version badge into .modal-footer of #mode-select-modal and #game-over-modal, removing duplicate corner overlay elements to unclutter live pitch views.
  • Unified .scoreboard and .match-scoreboard CSS styling (8px font, 3px 8px padding, centered at left: 50%).
MINOR v2.03.001
2026-08-17
  • AI Attacking Strategies & Tactical Shot Types (football/js/game.js):
  • Implemented 5 dynamic AI attacking strategy routines (CENTER_POWER, FLANK_OVERLAP, CHIP_LOB, ZIG_ZAG, FINESSE_CURL) with intelligent tactic selection on ball turnover and kickoff.
  • Implemented dynamic in-flight jukes and tackle evasion (jukeTimer, jukeDirY, jukeCooldown) when defending players aggressively close distance.
  • Added specialized AI shot execution (POWER, FINESSE, CHIP, NORMAL) featuring corner post placement targeting and custom particle bursts.
MINOR v2.02.001
2026-08-10
  • Controls/Gameplay: Shoot Button Swipe Gestures & Chip Shot Physics (football/js/game.js, football/styles.css):
  • Replaced short vs long press shoot button mechanic with intuitive release gestures:
  • Single Tap: Standard Kick (NORMAL)
  • Swipe Up + Release: Chip Shot (CHIP) with 16px lob aerial elevation curve over defenders
  • Swipe Down + Release: Finesse Shot (FINESSE) with curved precision arc
  • Swipe Right + Release: Power Shot (POWER) with rocket velocity
  • Real-time shoot button text & glow feedback (CHIP ▲, FINESSE ▼, POWER ▶, SHOOT).
  • Added dedicated Chip Shot sound effect, cyan particle trail, and "CHIP SHOT!" banner.
  • Left joystick control strictly governs aiming across all four shot types.
4 PATCHES View Patch Updates (v2.02.002 – v2.02.005)
PATCH v2.02.005
2026-08-17
  • Mobile Touch UI Clean-Up & Touch Overlay Isolation (football/js/game.js, football/styles.css):
  • Automatically hid keyboard control hint (.control-hint) on coarse touch devices (pointer: coarse / touch detection) so keyboard instructions do not clutter small mobile viewports or obscure corner UI controls.
  • Applied pointer-events: none !important; to .control-hint to ensure touch drag and tap events pass directly through to pitch and virtual controls without interception.
PATCH v2.02.004
2026-08-11
  • UI/HUD Layering & Corner Controls (football/js/game.js, football/styles.css):
  • Increased .ui-overlay z-index from 10 to 50 to ensure scoreboards and modal overlays stack cleanly above all visual layers.
  • Resolved pitch load UI display timing to keep return links, audio controls, and game instructions visible at kickoff until initial player movement occurs.
PATCH v2.02.003
2026-08-10
  • UI/HUD: Corner Link Autohide on Play Start & Touch Navigation Reliability (football/js/game.js, football/styles.css, tests/test_monorepo_regression.js):
  • Initialized lastMovementTime = Date.now() when transitioning into active play (startSelectedGame), causing the RETURN TO 1KX link and instructions to fade out right as play begins.
  • Added direct click and touchend event handlers to .back-link and .back-link-container alongside z-index: 25 and pointer-events: auto for 100% reliable tap navigation across touch devices.
  • Built comprehensive automated regression tests (150/150 assertions passing).
PATCH v2.02.002
2026-08-10
  • Controls/Multi-Touch: Multi-Touch Touch Identifier Separation (football/js/game.js): Assigned discrete touch identifiers (joystickTouchId and shootTouchId) to joystick and shoot button event handlers, preventing joystick touches from overriding shoot button swipe displacement calculations during simultaneous multi-touch play.
MAJOR v2.01.001
2026-08-07
  • Major Feature / 1v1 Match Mode: Introduced 1v1 AI Opponent Match Mode with mode selection startup screen (Training vs Match Mode + Easy/Normal/Hard difficulty selection).
  • AI Opponent Sprites & Logic: Added custom pixel-art opponent sprite (brown skin, blonde hair, blue jersey, pink #19, black shorts, grey shoes) facing/attacking left; added autonomous AI state machine with 2s max stationary hold limit.
  • Physics & Interactions: Added moving possession steals (50% base chance; stationary ball handler immunity), interception (< 6.0 speed) vs rocket shot body blocks (≥ 6.0 speed).
  • Match Flow & Scoreboard: Added Pink vs Blue upper-left match scoreboard, scored-upon kickoff resets, 5-goal match win condition ("PINK WINS!" / "BLUE WINS!" banners), and post-match menu.
7 PATCHES View Patch Updates (v2.01.002 – v2.01.008)
PATCH v2.01.008
2026-08-10
  • Gameplay: Reduced Finesse Shot Curve Intensity (football/js/game.js): Reduced curveAmount multiplier from 0.18 to 0.10, tightening the arc on finesse shots for more predictable placement.
PATCH v2.01.007
2026-08-09
  • Cleaned up unused asset opponent_back.png.
PATCH v2.01.006
2026-08-07
  • UI: Updated hardcoded footer version label in football/index.html to reflect current version v2.01.006.
PATCH v2.01.005
2026-08-07
  • UI/Controls: Restored power-charged yellow button state when holding shoot button >= 250ms with fail-safe reset handling (touchend, touchcancel, mouseup, mouseleave, window listeners) to guarantee instant return to green when released.
PATCH v2.01.004
2026-08-07
  • Gameplay/AI: Corrected AI defensive positioning math to intercept between player and target Right Goal (x = 780, y = 300) with dynamic cushion across all difficulty levels.
  • Gameplay/AI: Tuned AI steal success rate (45% Normal, 65% Hard), expanded steal radius, reduced steal cooldown, and added a 12-frame capture lock with ball pop for clean possession transfers.
  • UI: Removed yellow power-charged state styling for the shoot button, maintaining terminal green theme when held.
PATCH v2.01.003
2026-08-07
  • Fixed black screen ReferenceError bug in game loop.
  • Updated difficulty selection mode UX flow.
PATCH v2.01.002
2026-08-07
  • UI/UX & Sprites: Refined opponent kit with inverted light blue jersey (#6ec6ff), pink #19 jersey number matching custom 8-bit pixel grid, light brown skin tone (#b5704d), and direction-aware perspective (back view when running right, front view when running left).
  • UI/UX: Positioned difficulty selector container (EASY, NORMAL, HARD) directly underneath 1V1 Match Mode button for intuitive nested sub-menu selection flow.
MINOR v1.02.001
2026-08-02
  • Corner UI Auto-Hide feature on player movement and kick actions with 4-second idle timeout.
  • Pitch pass-through pointer events on hidden HUD items.
  • Mathematical scoreboard centering over white pitch halfway line.
  • 20-point dedicated HUD navigation & display regression test suite.
  • Loading screen element hiding (Training Mode, Scoreboard, Instructions hidden; Sound Toggle & 1kx link active).
  • Upper RH corner sound button anchoring.
13 PATCHES View Patch Updates (v1.02.002 – v1.02.014)
PATCH v1.02.014
2026-08-07
  • Gameplay/Controls: Added Finesse Shot (quick tap, placement pause, curling arc trajectory), Power Shot (long press ≥250ms, 12.0 rocket force, yellow power glow), corner UI auto-hide triggers, and pitch boundary audio muting.
PATCH v1.02.013
2026-08-06
  • UI/Controls: Added permanent bottom-left anchored joystick controller and dedicated bottom-right SHOOT arcade button for touch devices.
PATCH v1.02.012
2026-08-06
  • Gameplay/Controls: Restored original pitch view scale, added touch-action: none to body and canvas to eliminate iPadOS gesture delay, added non-passive touch listeners, and implemented dtFactor physics step for 60Hz/120Hz ProMotion smoothness.
PATCH v1.02.011
2026-08-06
  • Gameplay/Controls: Adjusted iPad canvas viewport targetHeight to 450 to match iPhone full-pitch view scale, and boosted iPad player speed to 4.20 (+91% over default), acceleration to 0.70, sprint boost to 2.0x, and ball glue lerp to 0.92.
PATCH v1.02.010
2026-08-06
  • Gameplay/Controls: Further boosted iPad dribbling and running speed (+59% base speed to 3.50, +65% acceleration to 0.58, 1.85x sprint boost, 0.75 walk ratio, 0.88 ball glue lerp).
PATCH v1.02.009
2026-08-06
  • Gameplay/Controls: Increased dribbling and running speed specifically for iPad users (+34% base speed, +37% acceleration, 1.65x sprint boost, 38px joystick walk radius, 0.80 ball glue lerp).
PATCH v1.02.008
2026-08-03
  • UI: Added humorous loading messages ("RETICULATING SPLINES...", "SPOOLING...", "43% COMPLETE...", "DO NOT TURN OFF YOUR COMPUTER...", "COMPARING 67,043 FARES...", "ABOUT 3 HOURS REMAINING...").
PATCH v1.02.007
2026-08-03
  • UI: Upgraded favicon to 512x512 full square corner PNG and added apple-touch-icon meta tag for iOS Safari.
PATCH v1.02.006
2026-08-03
  • Routine deployment update.
PATCH v1.02.005
2026-08-02
  • Enlarged invisible expanded tap targets (top/bottom/left/right -25px) for Sound button and 1kx return link without changing visual size.
  • Expanded 108-point monorepo HUD regression test suite.
PATCH v1.02.004
2026-08-02
  • Fixed 96px width on Sound Toggle button to prevent UI size shifts when switching between ON and OFF states.
  • Enlarged invisible expanded tap targets (top/bottom/left/right -16px) for Sound button and 1kx return link without changing visual size.
  • Expanded 108-point monorepo HUD regression test suite.
PATCH v1.02.003
2026-08-02
  • Invisible expanded tap targets (::before pseudo-elements top/bottom/left/right -10px) for Sound button and 1kx return link without changing visual size.
  • Expanded 107-point monorepo HUD regression test suite.
PATCH v1.02.002
2026-08-02
  • Scoreboard persistence in pitch view (remains 100% visible at all times during play and movement).
  • Expanded 105-point monorepo HUD regression test suite.
MAJOR v1.01.001
2026-08-01
  • Major version update to v1.01.001 following monorepo versioning protocol.
3 PATCHES View Patch Updates (v1.01.008 – v1.01.004)
PATCH v1.01.004
2026-08-02
  • Routine deployment update
PATCH v1.01.003
2026-08-02
  • Simplified instruction text to "ARROWS OR DRAG TO MOVE" and "SPACE OR TAP/SWIPE TO KICK" on loading screen and pitch overlay.
  • Added automatic Service Worker unregistration and dynamic JS/CSS timestamp cache-busting for localhost.
  • Updated version cache-busting query strings to v1.01.003 for production.
PATCH v1.01.008
2026-08-02
  • 8px font-size UI alignment for Return link and Sound toggle to match Training Mode.
  • Added v1.01.003 cache-killer query parameters to styles.css and game.js.
  • Hidden control hint instructions on startup screen, revealing explicitly when pitch loads.
MAJOR v0.1.0
2026-07-30
  • Initial release of FOOTBALL 8-bit soccer game (Version 0.1).
  • Fullscreen pixelated canvas with dynamic responsive window scaling.
  • Practice mode featuring player movement, soccer ball, goalposts, and scoring logic.
  • Desktop keyboard controls (WASD/Arrow keys, Spacebar to kick) and mobile controls (virtual joystick, tap/flick to shoot).
  • Custom non-aliased pixel drawing algorithms for field lines, center circle, arcs, and nets.
  • 3D-shaded retro soccer ball with randomized clockwise/counterclockwise spin on kicks.
  • Web Audio API synthesizer for 8-bit sound effects (dribble, kick, bounce, whistle, fanfare).
  • High-resolution HTML scoreboard overlay and flashing red own-goal notifications.
  • Light pink jersey theme (CF Miami color style).
24 PATCHES View Patch Updates (v0.1.1 – v0.05.016)
PATCH v0.05.016
2026-07-31
  • Permanent Corner UI Visibility:
  • Removed auto-fading/hiding functionality for corner UI elements (#status-text, #sound-btn, #control-hint, .back-link-container), leaving them permanently visible during gameplay.
  • Updated base CSS opacity values in styles.css to ensure corner UI controls and return link remain clearly accessible at all times.
PATCH v0.5.15
2026-07-31
  • Base CSS Opacity Initialization for Corner UI Elements:
  • Set default opacity: 0 in styles.css for gameplay corner UI elements (.ui-btn, .back-link-container, #status-text).
  • Prevents initial CSS transition queuing bugs and visual flashes during page loading and state transitions.
PATCH v0.5.14
2026-07-31
  • Inline Style Opacity & Pointer Events Corner UI Management:
  • Replaced CSS .fade-out class manipulation with direct inline .style.opacity and .style.pointerEvents toggling for corner UI elements (#status-text, #sound-btn, #control-hint, .back-link-container) in game.js.
  • Resolved WebKit CSS transition coalescing bugs on iOS/iPadOS browsers, ensuring immediate, reliable hide/reveal behaviors during loading and active player interaction.
PATCH v0.5.13
2026-07-31
  • Loading Screen Return Link & WebKit Opacity Transition Fixes:
  • Restored default initial loading screen visibility for the return link container (RETURN TO 1KX link and version badge).
  • Added explicit base opacity: 1 CSS properties and isolated transition properties to prevent WebKit transition rendering bugs.
  • Updated gameplay interaction state management in game.js to handle .back-link-container fade-out transitions alongside status text and control hint elements.
PATCH v0.5.12
2026-07-31
  • Conditional Corner UI Reveal on Loading Completion:
  • Updated loading completion logic in game.js to evaluate active player inputs (touch or keys pressed) upon transition.
  • If player interaction is detected during loading finish, corner UI elements remain hidden (cornerUIHidden = true); otherwise, corner UI elements smoothly fade in via .fade-out class removal.
PATCH v0.5.11
2026-07-31
  • Initial Loading Corner UI Element Transition & Visibility Fix:
  • Added .fade-out class to initial HTML elements (#status-text, #sound-btn, #control-hint, .back-link-container) to ensure seamless opacity transitions during loading screen initialization.
  • Updated state transition handler in game.js to smoothly reveal corner UI elements via CSS class removal (classList.remove('fade-out')) rather than hard inline display style toggling, eliminating visual flashes on game start.
PATCH v0.5.10
2026-07-31
  • Corner UI Auto-Fade Reappear Timeout:
  • Tuned corner UI reappear delay on player inactivity from 5 seconds to 4 seconds for faster UI accessibility restoration.
PATCH v0.5.9
2026-07-31
  • Rollback Stabilization & Canvas Resolution Fix:
  • Restored football sub-application codebase to stable core (v0.5.9), resolving canvas resolution scaling mismatches, pitch rendering glitches, and touch joystick interaction regressions from experimental builds.
  • Preserved responsive dual-ring joystick controls, kick mechanics, and sound options on clean loading and playing states.
PATCH v2.9.9
2026-07-31
  • Deployment of Football Sub-Application (v0.5.8):
  • Reduced corner UI elements auto-fade reappear time from 8s to 5s.
  • Reduced UI fade-in delay to 4s and enlarged touch hit target for return link.
  • Enabled touch joystick controls in lower right-hand corner when corner UI elements are hidden.
PATCH v0.1.15
2026-07-30
  • Dribble-Kick Overwrite & Weak Shot Mechanics: Added ball.kickCooldown = 15 (15 frames / ~250ms of free ballistic flight) when pressing SPACE. Boosted kick forces (7.5 base force, 9.5 rocket shot when sprinting) and added directional aiming from WASD / Arrow keys, preventing dribble coupling from overwriting kick velocity.
PATCH v0.1.14
2026-07-30
  • Unified Mobile Full Pull & Desktop Key Hold Sprinting: Mobile full pull (joystick dragged past inner circle into outer ring) and desktop longer key hold (>1.0s) now reach the exact same 1.35x top sprint speed (2.97 units/sec), 85ms footwork rate, and retro white dust trail particle effects.
PATCH v0.1.13
2026-07-30
  • Dual-Ring Mobile Touch Joystick UI:
  • Inner Solid Circle (60px diameter): WALK ZONE (locks player to precision 45% walk speed).
  • Outer Dashed Ring (120px diameter): SPRINT ZONE (accelerates player smoothly up to 100% top speed).
  • Glowing Knob Sprint State (.sprinting): Knob turns bright glowing white (box-shadow: 0 0 10px #ffffff) when pulled into the outer sprint ring.
PATCH v0.1.12
2026-07-30
  • Calibrated mobile touch joystick pull distance math using physical DOM pixels (maxDomRadius = 55px). Now dragging slightly near center produces a slow precision walk, and pulling to the edge of the touch ring triggers 100% full top speed.
PATCH v0.1.11
2026-07-30
  • Desktop Running Acceleration: Holding any arrow key / WASD direction continuously for >1.0s (RUNNING_ACCEL_HOLD_TIME) triggers a 35% speed boost surge (RUNNING_ACCEL_BOOST), faster footwork animation, and sprint dust particles.
  • Mobile Proportional Touch Speed: Dragging the touch joystick knob controls player speed proportionally based on pull distance from center (gentle pull = slow precision walk, full pull = top speed).
PATCH v0.1.10
2026-07-30
  • Renamed upper-left header text from PRACTICE MODE to TRAINING MODE.
PATCH v0.1.9
2026-07-30
  • Updated upper-left header status text to display PRACTICE MODE.
  • Updated lower-left footer instruction hint to display SPACE/TAP/SWIPE TO KICK.
PATCH v0.1.8
2026-07-30
  • Increased density of contrasting texture stipple pixels per inch on field grass bands by scaling step grid from 4px down to 2px.
PATCH v0.1.7
2026-07-30
  • Color-coded goal netting mesh: Left goal net set to Light Pink (#ffb6c1, matching player jersey) and Right goal net set to Light Blue (#33ccff, matching future opponent jersey and marking target goal).
PATCH v0.1.6
2026-07-30
  • Expanded dribbling control capture zone (captureDist = 19.5px) when moving. This prevents losing the ball on 180° direction changes or sharp cuts, smoothly swinging the ball around to the new path while still allowing the ball to be lost if kicked far away.
PATCH v0.1.5
2026-07-30
  • Redesigned all 8 ball rotation frames to strictly use compact 2x2 and 2x1 square/plus charcoal patches (BB), eliminating long 4-pixel rectangular bars (BBBB).
PATCH v0.1.4
2026-07-30
  • Scaled down ball size to a smaller, cuter 8x8 pixel grid (radius = 4), matching player proportions.
  • Doubled ball rotation frame density to 8 distinct smooth rolling frames (ballSprites[0..7]), eliminating frame stutter when rolling.
  • Preserved the reference soft palette (#f5f2eb cream body, #a8a59e gray border contours, #363431 charcoal pentagons).
PATCH v0.1.3
2026-07-30
  • Replaced harsh black-bordered ball with a soft-contoured 12x12 pixel art soccer ball matching the reference graphic.
  • Applied off-white/cream body (#f5f2eb), subtle center hub accent (#e3dfd7), soft charcoal pentagon patches (#363431), and anti-aliased gray border contours (#a8a59e) to remove harsh black outlines.
PATCH v0.1.2
2026-07-30
  • Implemented Option A Sensible Soccer style 10x10 pixel ball design.
  • Added crisp 10x10 black pentagon patch patterns with specular gray highlights (#d0d0d0).
  • Added subtle turf drop shadow (rgba(10, 30, 10, 0.4)) rendered underneath the ball.
PATCH v0.1.1
2026-07-30
  • Softened color contrast between alternating turf stripes (#1b4e1b vs #164516).
  • Added subtle 8-bit stipple dither texture to each field band.
  • Made outer boundary lines and halfway line solid pure white (#ffffff).
  • Mathematically bounded penalty D-arcs using acos(20/35) so they start precisely at the 18-yard penalty box line without crossing inside the box.