A comprehensive Rust application for exploring complex systems, fractals, cellular automata, particle simulations, and emergent behavior through interactive visualizations.
39 Unique Simulations across 2D and 3D categories:
- Fractals (3): Mandelbrot Set, Julia Set, Burning Ship
- Cellular Automata (4): Game of Life, Elementary CA, Langton's Ant, Cyclic CA
- Growth & Self-Organization (2): DLA (Diffusion-Limited Aggregation), Sandpile
- Physical Simulations (4): Double Pendulum, Reaction-Diffusion, Lissajous Curves, Wave Interference
- Generative Art (6): Koch Snowflake, Phyllotaxis, Perlin Flow, Boids, De Jong Attractor, Clifford Attractor
- Complex Emergent (2): Slime Mold, Falling Sand
- Visual Animations (3): DNA Helix, Torus Knot, Galaxy Spiral
- Particle Systems (5): 3D Particle Attractor, 3D Boids, N-Body Gravity, Fluid SPH, Magnetic Field
- Chaotic Attractors (7): Lorenz, Rössler, Aizawa, Halvorsen, Dadras, Thomas, Chen
- Advanced Effects (3): Vortex Turbulence, Lightning Bolt, 3D Fractal Tree
- Interactive Controls: Real-time parameter adjustments with immediate visual feedback
- Mousewheel Zoom: Smooth zooming for fractal exploration (Mandelbrot, Julia, Burning Ship)
- Drag-to-Pan: Navigate fractal landscapes by dragging
- 26 Color Schemes: Beautiful palettes for fractals and visualizations
- Preset Configurations: Quick access to interesting views and parameters
- High Performance: Parallel computation using Rayon for fast rendering
- Professional UI: Organized collapsible sections with emoji icons
The project uses a Cargo workspace structure for modularity:
mandlebrot-visualizer/
├── sim-core/ # Core simulation library
│ ├── src/
│ │ ├── lib.rs # Simulation traits + color system
│ │ ├── mandelbrot.rs # Mandelbrot fractal
│ │ ├── julia.rs # Julia set
│ │ ├── burning_ship.rs # Burning Ship fractal
│ │ ├── game_of_life.rs # Conway's Game of Life
│ │ ├── cellular_automaton.rs # Elementary cellular automaton
│ │ ├── langtons_ant.rs # Langton's Ant
│ │ ├── cyclic_ca.rs # Cyclic cellular automaton
│ │ ├── dla.rs # Diffusion-limited aggregation
│ │ ├── sandpile.rs # Abelian sandpile
│ │ ├── double_pendulum.rs # Chaotic pendulum
│ │ ├── reaction_diffusion.rs # Gray-Scott model
│ │ ├── lissajous.rs # Lissajous curves
│ │ ├── wave_interference.rs # Wave interference patterns
│ │ ├── slime_mold.rs # Physarum simulation
│ │ ├── falling_sand.rs # Falling sand simulation
│ │ ├── generative/ # Generative art patterns
│ │ │ ├── mod.rs
│ │ │ ├── koch_snowflake.rs
│ │ │ ├── phyllotaxis.rs
│ │ │ ├── perlin_flow.rs
│ │ │ ├── boids.rs
│ │ │ └── strange_attractors.rs
│ │ ├── lorenz.rs # Lorenz attractor
│ │ ├── rossler.rs # Rössler attractor
│ │ ├── aizawa.rs # Aizawa attractor
│ │ ├── halvorsen.rs # Halvorsen attractor
│ │ ├── dadras.rs # Dadras attractor
│ │ ├── thomas.rs # Thomas attractor
│ │ ├── chen.rs # Chen attractor
│ │ ├── dna_helix.rs # DNA double helix
│ │ ├── torus_knot.rs # Torus knot
│ │ ├── galaxy_spiral.rs # Spiral galaxy
│ │ ├── particle_attractor_3d.rs # 3D particle system
│ │ ├── boids_3d.rs # 3D flocking
│ │ ├── nbody_gravity.rs # N-body gravitational simulation
│ │ ├── fluid_sph.rs # SPH fluid dynamics
│ │ ├── magnetic_field.rs # Magnetic field visualization
│ │ ├── vortex_turbulence.rs # Turbulent vortex flow
│ │ ├── lightning_bolt.rs # Lightning generation
│ │ └── fractal_tree_3d.rs # 3D fractal tree
│ └── Cargo.toml
│
├── sim-app/ # GUI application
│ ├── src/
│ │ ├── main.rs # Application entry point
│ │ ├── viewer_2d.rs # 2D visualization renderer
│ │ └── viewer_3d.rs # 3D visualization renderer
│ └── Cargo.toml
│
└── Cargo.toml # Workspace configuration
- Rust (1.70 or later)
- Cargo (comes with Rust)
# Clone the repository
git clone <repository-url>
cd mandlebrot-visualizer
# Run the application (recommended for best performance)
cargo run --release
# Or for development (faster compilation, slower runtime)
cargo run- Select View Mode: Choose between 2D and 3D simulations
- Choose Simulation: Use the dropdown menu to select which simulation to run
- Adjust Parameters: Use sliders and controls in the side panel
- Explore Presets: Click preset buttons for interesting configurations
- Mousewheel: Zoom in/out on fractals (Mandelbrot, Julia, Burning Ship)
- Drag: Pan around the fractal when zoomed in
- Zoom Slider: Fine control over zoom level (0.1x to 10,000x)
- Color Schemes: Choose from 26 beautiful color palettes
- Rotation Sliders: Change viewing angle (X and Y rotation)
- Zoom Slider: Adjust 3D perspective (0.5x to 5x)
- Mousewheel: Quick zoom adjustment when hovering over 3D view
- Auto-Rotate: Enable automatic rotation for continuous viewing
- Rust - Systems programming language
- egui - Immediate mode GUI library
- eframe - Application framework
- rayon - Data parallelism for performance
- num-complex - Complex number arithmetic
- noise - Perlin noise generation
- QUICKSTART.md - Quick start guide for new users
- FEATURES.md - Detailed feature documentation and tips
- 26 color schemes with smooth coloring
- Zoom up to 10,000x for deep exploration
- Generalized Mandelbrot/Julia sets (powers 2-8)
- Color cycling animations
- Preset locations for quick navigation
- Game of Life with 6 rule variations
- 7 classic patterns (Glider Gun, Pulsar, etc.)
- Cell age visualization
- Real-time rule switching
- Reaction-Diffusion (Gray-Scott model)
- N-Body gravity with orbital mechanics
- SPH fluid dynamics
- Magnetic field particle interactions
- Boids flocking (2D and 3D)
- Perlin noise flow fields
- Strange attractors (De Jong, Clifford)
- Phyllotaxis patterns
- Koch snowflake fractals
This project is licensed under the MIT License.
- Built with the excellent Rust ecosystem
- Thanks to the egui community for the amazing GUI framework
