Skip to content

ggouzi/fractal-visualizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https://fractal-visualizer.ggouzi.com/index.html

Fractal Visualizer

Fractal Visualizer is a browser-based fractal exploration tool for:

It focuses on fast interactive rendering, palette exploration, presets, and shareable URLs.

🚀 Try the Demo

Screenshots & Demo

Screen Recording

Fractal Visualizer Recording

Screenshots

Mandelbrot Explorer

Julia Set Parameters

Lyapunov View

Features

Core Rendering

  • Smooth Interactive Rendering: Adaptive interaction model with 420ms trailing-idle debouncing—interact freely without visual lag
  • Parallel Computation: Multi-worker Web API architecture for fast fractal generation
  • Local Cache Optimization: MRU-based cache (8-entry limit) for instant revisits to recent viewport configurations
  • Precomputed Data System: Optional cached binaries for popular presets and resolutions (faster cold starts)

Navigation & Zoom

  • Smooth Zoom & Pan: Click to zoom in, right-click to zoom out, pinch-to-zoom on touch devices
  • Zoom Constraints: Zoom minimum clamped to 1.0 (no infinite zoom-out; preserves visual coherence)
  • Multi-touch Gestures: Pan with finger drag, zoom with pinch, full mobile support

Customization

  • Multiple Fractal Types: Mandelbrot, Julia, Lyapunov, and Newton fractals
  • Fractal-Specific Parameters: Iteration counts, exponents, complex constants (Julia), and custom sequences (Lyapunov)
  • Presets Per Type: Curated fractal configurations for quick exploration
  • Palette System: Color scheme switching with gamma and saturation adjustment
  • High-Resolution Rendering: Up to 4K output with adjustable canvas resolution

Export & Sharing

  • Image Download: Export renders as PNG with current canvas resolution
  • URL State Sharing: "Copy Link" button encodes full fractal configuration—share discoveries as clickable links
  • Automatic URL Updates: Browser URL refreshes after render completion for instant shareability

User Experience

  • Mobile-Friendly Controls: Touch-optimized UI with responsive layout
  • Keyboard & Touch Support: Full interaction across desktop and mobile devices

Project Structure

  • index.html: main app entry page
  • assets/css/lyapunov.css: app styles
  • assets/js/lyapunov.js: app logic and rendering engine
  • assets/css/landing.css: styles for dedicated SEO pages
  • pages/mandelbrot/index.html, pages/julia/index.html, pages/lyapunov/index.html, pages/newton/index.html: route pages
  • precomputed/: optional precomputed data generation and binaries

Precomputed Data (Optional)

The precomputed/ folder contains tooling to generate cached base renders for presets/resolutions.

If you use it, regenerate manifest/data before release and deploy both:

  • precomputed/manifest.json
  • precomputed/data/*

Run Locally

Use a local HTTP server (recommended). Loading via file:// disables some precomputed fetch features.

Example with Python:

python3 -m http.server 8080

Then open:

  • http://localhost:8080/index.html

License

MIT License. See LICENSE.

About

Online fractal visualizer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors