A modern, high-performance fractal visualization tool built with Rust and Tauri + Svelte.
This is a complete rewrite of the original Python 2.x wxPython application, now featuring a blazing-fast Rust backend with parallel computation and a sleek, modern web-based UI.
-
Three Fractal Types:
- Newton Fractal - Visualizes convergence of Newton's method for z^n - 1 = 0
- Julia Set - Classic z² + c iteration with customizable constant c
- Mandelbrot Set - The famous Mandelbrot set with cardioid/bulb optimization
-
Interactive Zoom:
- Click and drag to select a region to zoom into
- Hold Shift while dragging for square selection
- Zoom slider (1x - 1000x)
- Reset to Square button for returning to default view
-
Customizable Colors:
- Three color pickers: Start color, End color, Inside set color
- Six built-in presets: Classic, Neon, Grayscale, Matrix, Sunset, Royal
-
High Performance:
- Parallel computation using Rayon
- Smooth coloring using normalized iteration count (eliminates banding)
- Periodicity detection for faster rendering of interior points
- Cardioid/bulb check for Mandelbrot optimization
- Resolution up to 4000x4000 pixels
- Up to 10,000 iterations
- Backend: Rust with Tauri 2.0
- Frontend: Svelte 5 with TypeScript
- Computation: num-complex, Rayon (parallel processing)
- Build: Vite, Cargo
- Node.js (v18+)
- Rust (latest stable)
- Platform-specific dependencies for Tauri (see Tauri Prerequisites)
# Clone the repository
git clone https://github.com/gcol33/plotjuliasets.git
cd plotjuliasets/julia-sets
# Install dependencies
npm install
# Run in development mode
npm run tauri dev
# Build for production
npm run tauri build- Select a fractal type from the dropdown menu
- Adjust parameters:
- For Newton: set the exponent n
- For Julia: set the complex constant c (real and imaginary parts)
- Set resolution and iterations using the sliders
- Choose colors using the color pickers or select a preset
- Click "Compute" to generate the fractal
- Zoom in by clicking and dragging on the canvas (hold Shift for square selection)
julia-sets/
├── src/ # Svelte frontend
│ └── routes/
│ └── +page.svelte # Main UI component
├── src-tauri/
│ ├── src/
│ │ └── lib.rs # Rust backend (fractal computation)
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
└── package.json # Node dependencies
The original Python 2.x version using wxPython and matplotlib is preserved in the repository root for reference. The new Rust version offers significantly better performance and a more modern user experience.
MIT