All notable changes to the Aurora Flow extension will be documented in this file.
- Soft Ethereal Look: Rebalanced aurora palette (muted violet → mint → pale aqua → cream), softer particle falloff, larger hazy points, and calmer multi-scale flow for a dreamier focus backdrop.
- Motion Tuning: Reduced flow speed (2.2→1.7), gentler breathing cycle, smoother velocity mix, and lower micro-jitter so the aurora drifts rather than sparkles.
- Quality Presets: Softened bloom/light/rim across tiers so low particle counts still read as ethereal haze; slightly lower pixel-ratio caps on weak tiers.
- Smarter Default Quality: When no saved quality exists, estimate a safe starting tier from device pixel ratio, CPU cores, device memory, and coarse pointer.
- Soft Performance Downgrade: Before reallocating particle textures, first reduce pixel ratio / bloom cost and then skip compute frames / disable trails; 2.5s startup grace avoids cold-start false positives.
prefers-reduced-motion: Pauses the simulation when the OS reduced-motion preference is active (UI remains interactive); resumes if preference is cleared.
- Aurora Permanence: Enhanced particle simulation for long-running screensaver use — particles now maintain density and visual structure over hours rather than thinning out.
- Band-Preserving Forces: Added aurora band attraction/repulsion forces in the velocity shader that keep particles distributed across natural curtain structures, preventing clumping and sparse patches.
- Breathing Modulation: Introduced subtle macro-oscillation (3-minute cycle) that gently pulses the turbulence strength, giving the aurora an organic breathing quality.
- Anti-Clumping Drift: Added time-varying offsets to curl noise sampling that prevent particles from converging on flow attractors.
- Micro-Perturbation: Tiny hash-based position jitter in the position shader keeps particle distribution organic over long sessions.
- Edge Visibility: Widened the height-based alpha envelope so aurora edges remain visible longer (fade-in: 0.0→0.12, fade-out: 1.0→0.88) and increased base alpha from 0.4 to 0.5.
- Particle Coverage: Increased base particle size from 2.5 to 3.0 for better surface coverage.
- Afterimage Trails: Enabled afterimage trail effect on MEDIUM (damp 0.82) and LOW (damp 0.78) quality presets, increased HIGH damp from 0.85 to 0.88.
- Simulation Tuning: Increased flow speed from 1.8→2.2 and reduced noise scale from 0.03→0.025 for broader, more dynamic sweeping motion.
- Quality Presets: Added
afterimageDampproperty to quality presets for per-tier trail persistence control.
- Enhanced README and GEMINI.md with format checks
- Optimized render loop by caching quality preset and frame duration
- Aligned clock updates with system minute boundaries
- Full Shader Rework: Completely redesigned aurora simulation physics and rendering.
- Velocity Shader: Multi-scale curl noise (large/medium/small) for organic turbulence; lateral curtain waves; position-dependent vertical circulation (gentle up/down flow based on particle height) instead of constant upward force.
- Position Shader: Replaced reset-based system with toroidal wrapping — particles continuously wrap around the simulation volume, eliminating the "settling" period entirely.
- Color Palette: Enhanced aurora gradient with 4 stops: deep violet → electric green → bright teal → pale green-white.
- Fog Density: Reduced fog from 0.01 to 0.004 for better depth visibility.
- Physics Tuning: Adjusted speed (1.8) and noiseScale (0.03) for the new multi-scale system.
- Depth Calculations: Corrected particle size and alpha calculations that were inverted relative to camera distance.
- Uniform Cleanup: Removed unused
uWarmthIntensity,uTexelSize,time(position shader), anddelta(velocity shader) uniforms. - Simulation Bounds: Unified initial fill and shader bounds to X=±140, Y=±70, Z=±50.
- FPS Calculation: Replaced array-based FPS history tracking with numeric accumulators (
framesSinceLastCheckandtimeSinceLastCheck) in the render loop, eliminating per-frame array mutations and reducing GC pressure.
- Verification Scripts: Added documentation for Python verification scripts in
verification/directory, including Python 3 prerequisite and Playwright setup instructions.
- Reset-Based Spawning: No more random particle respawns on boundary breach — continuous wrapping maintains uniform distribution at all times.
- Constant Upward Force: The old one-directional upward drift that caused particles to cluster at the top has been replaced with bidirectional vertical circulation.
- Density-Aware Lighting: Added per-particle density sampling to detect local particle clustering and attenuate brightness accordingly.
- Dynamic Brightness Control: Implemented inverse density attenuation in fragment shader to prevent overexposure when particles clump together.
- Speed-Based Color Variation: Added subtle color shifts based on particle velocity for more dynamic visual interest.
- Architecture: Simplified to single particle-based rendering pipeline, removing experimental ribbon shader approach for better stability and performance.
- Shader Colors: Enhanced aurora color palette to be more vibrant - deeper purples, brighter teals, and more vivid greens.
- Particle Sizes: Increased base particle sizes (3-5 units vs 2-3.5 before) for more visual presence.
- Fragment Shader: Reduced density attenuation aggression (0.4x multiplier vs 1.0x) to preserve brightness while preventing blowout.
- Fragment Shader: Increased core glow and rim lighting intensity for more ethereal aurora effect.
- Bloom Settings: Lowered bloom threshold (0.15 vs 0.25) to capture more particles in glow effect.
- Quality Presets: Rebalanced all presets with optimized bloom strength, light intensity, and rim strength values.
- HIGH Quality: Reduced bloom strength (0.8), light intensity (0.7), and disabled afterimage effect to prevent brightness accumulation.
- Critical: Texel Size: Fixed hardcoded texel size in vertex shader that caused incorrect density sampling for non-HIGH quality presets.
- Brightness Oscillation: Removed auto-upgrade quality logic that caused system to rapidly switch between quality levels.
- Brightness Control: Fixed brightness accumulation when particles clump together by implementing proper density-based attenuation.
- Ribbon Shader: Removed experimental volumetric ribbon shader for LOW/POTATO quality levels.
- OrbitControls: Removed camera rotation controls for better performance and simpler codebase.
- Auto-Upgrade: Removed automatic quality upgrade logic that caused unwanted oscillation between modes.
- Bundle Size: Reduced main bundle by ~30% (65KB → 46KB) by removing OrbitControls.
- Render Loop: Removed OrbitControls.update() call from animation loop for CPU savings.
- Shader Cleanup: Removed ribbon-related shader imports and code paths.
- Error Handling: Added global error handlers in
app.tswith try-catch wrappers for each initialization function to ensure graceful fallback UI display on failures. - WebGL Context Recovery: Added
webglcontextlostandwebglcontextrestoredevent handlers to properly pause and resume animation when GPU context is lost/restored. - Cleanup Functions: Added
cleanupUI()andcleanupWeather()functions to properly clear intervals and remove storage listeners for memory management.
- Quality Upgrade Path: Implemented dynamic quality upgrade path in background animation - quality now increases when FPS exceeds target by 30% for 30 consecutive frames.
- Race Condition Fix: Split
isFetchingflag into separateisFetchingLocationandisFetchingWeatherflags to prevent race conditions between location and weather fetch operations. - Storage Error Handling: Added
chrome.runtime.lastErrorchecks to all storage callbacks across weather, quotes, UI, and sidepanel modules.
- Critical: Memory Leaks: Fixed memory leaks by ensuring
setIntervaltimers andchrome.storage.onChangedlisteners are properly cleaned up. - Critical: Duplicate Event Handlers: Removed duplicate event listeners on clock format toggle and quality select in sidepanel that caused double-execution.
- Clipboard Error Feedback: Improved clipboard API error handling by updating aria-label for accessibility on copy failures.
- Performance: Optimized fillVelocityTexture initialization using
arr.fill(0)and sparse alpha channel loop for ~2x speedup. - Performance: Disabled static mesh matrix auto-update in background animation to reduce unnecessary computations.
- Build: Split Three.js into separate vendor chunk for better caching and smaller main bundle.
- Build: Added explicit esbuild minification and disabled sourcemaps in production.
- Dependencies: Moved playwright to devDependencies for proper production bundle isolation.
- Docs: Updated README.md and GEMINI.md for Node.js v22 and usage documentation.
- Docs: Restored verification directory and scripts documentation.
- Optimization: Replaced wildcard Three.js imports with specific imports to reduce bundle size.
- Optimization: Added precision qualifiers to all shader files for mobile GPU performance.
- Optimization: Removed duplicate CSS rules to reduce stylesheet size.
- Cleanup: Removed unused icon-512.png asset.
- TypeScript: Upgraded target to ES2022 for modern browser features.
- Release Prep: Finalized the official 1.4.2 release metadata across extension packaging.
- Shader Performance: Reduced hot-path fragment cost by replacing per-pixel
length()andpow()work with squared-distance falloff while preserving the soft particle glow. - Shader Performance: Simplified aurora gradient blending in the render vertex shader to reduce per-particle branching without altering the overall look.
- Simulation Performance: Tightened curl-noise normalization math and cached the short-lived FPS sampling aggregate to cut small but constant per-frame overhead.
- Packaging: Hardened the release packaging script to fail fast when
dist/is missing and to rebuild the versioned zip cleanly instead of appending to stale archives.
- UX Feedback: Added status feedback when saving settings in the side panel.
- Performance: Optimized aurora animation for low-end hardware.
- Performance: Cached DOM elements in clock update loop for improved efficiency.
- Testing: Refactored simulation-utils tests for improved robustness.
- IP-Based Weather: Replaced geolocation with IP-based location fetching (via geojs.io) for better privacy and zero-permission setup.
- Single Simulation Focus: Pivoted to an exclusive Aurora experience. Simplified codebase and UI to deliver the highest quality aurora simulation.
- Performance Tuning: Refined Quality Presets (Low/Medium/High) with custom bloom and particle scaling for a consistent aesthetic across all hardware tiers.
- Visual Improvements: Enhanced particle brightness, saturation, and soft-blending in shaders for a more ethereal and vibrant look.
- Improved Stability: Hardened simulation bounds-checking and resource disposal to ensure stable performance for long-running "New Tab" sessions.
- Double Fetching: Resolved a bug in the weather module that caused redundant network requests.
- Memory Management: Fixed potential memory leaks by ensuring proper Three.js resource disposal on cleanup.
- Galaxy & Blackhole Modes: Removed legacy simulations to focus on Aurora quality.
- Geolocation Permission: Removed the need for precise location access.
- Comprehensive Test Coverage: Added robust test suites for Weather module, Simulation Utils, and Side Panel functionality.
- Input Validation: Added length limits to username (30 chars) and focus input (80 chars) to prevent storage bloat.
- Icon Generation: Fixed
scripts/generate_icons.jsto use ESM imports, resolving runtime errors in module environment. - Security: Tightened Content Security Policy by setting
object-src 'none'and addingbase-uri 'self'to prevent injection attacks.
- Performance: Optimized rendering with HalfFloatType for computation textures and reduced bloom resolution to half window size.
- Performance: Throttled window resize operations to animation loop to prevent layout thrashing during rapid resizing.
- Accessibility: Enhanced greeting and focus interactions with proper ARIA labels, tooltips, and visual feedback.
- UX: Made settings labels clickable for better usability by converting text spans to interactive
<label>elements. - Documentation: Updated README.md and GEMINI.md to enforce pnpm usage and document testing procedures.
- SidePanel Tests: Added a robust unit test suite for the Side Panel module, covering settings persistence and UI synchronization.
-
Accessibility: Improved accessibility by converting interactive elements to semantic
<button>elements and adding ARIA labels for better screen reader support. -
Accessibility: Improved the accessibility of the side panel by associating labels with their respective toggle switches and adding focus indicators for keyboard navigation.
-
Accessibility: Improved the usability of the new tab page by adding a placeholder to the focus input.
- Performance Optimization: Implemented DOM caching for clock and greeting updates, reducing unnecessary DOM writes by ~98%.
- Refactor: Refactored Side Panel initialization logic to support better testability.
- Testing Infrastructure: Added Vitest and happy-dom for robust unit and integration testing.
- Test Coverage: Added comprehensive tests for Weather, Quotes, and UI modules including Focus Tracker and Greeting logic.
- Build Configuration: Excluded test files from production build to ensure clean distribution.
- UI Improvements: Enhanced "fade-in" transition on new tab load for a smoother, flicker-free experience.
- Daily Quote API: Quotes now fetched from Quotable API with daily caching (one quote per day).
- Fallback Quotes: Static quotes used when API is unavailable.
- TypeScript Refactor: Complete migration from JavaScript to TypeScript with strict type checking.
- Vite Build System: Modern build process with
@crxjs/vite-pluginfor Chrome extension bundling. - Modular Shader Architecture: GLSL shaders extracted into organized directory structure (
src/shaders/). - Three.js via npm: Moved from bundled library to npm package for better type support.
- Legacy JavaScript source files (
src/js/). - Bundled Three.js library files (
lib/three/).
- Galaxy Simulation Mode: A new mesmerizing spiral galaxy visualization option.
- Settings Side Panel: A comprehensive settings interface accessible via the extension icon or new gear button.
- Switch between "Aurora" and "Galaxy" simulation modes.
- Adjust animation quality (Low/Medium/High) to manage performance.
- Toggle Weather display on/off with privacy disclaimer.
- Weather Privacy: Weather functionality triggers a location permission prompt only when explicitly enabled by the user.
- Visual Refinements: Improved Galaxy particle distribution and shader coloring for a improved aesthetic.
- Official Launch: Extension published to the Chrome Web Store.
- Weather Functionality: Real-time localized weather updates (temperature and description).
- Publishing Setup: Manifest configuration and assets preparation for store submission.
- Initial Release: Core "Aurora" particle simulation.
- UI Overlay: Minimalist interface with time, greeting, focus input, and inspirational quotes.