A real-time, CPU-bound Julia Set fractal visualization engine built with Java Swing. JFractal implements continuous parameter-space exploration with dynamic color mapping, delivering a self-evolving mathematical visualization through pixel-accurate rendering.
Note
If you want to check the results of the program, follow the link to the assets folder, which contains the most interesting examples of fractals.
- Dynamic Julia Parameter Drift: The complex parameter c slowly moves and occasionally jumps to new positions, generating different Julia set shapes — from tree-like structures to scattered dust patterns.
- HSB-Based Color Mapping: Colors are assigned based on how fast each pixel escapes the fractal, using the HSB model where hue shifts over time, saturation changes with depth, and brightness indicates escape speed.
- Adaptive Iteration Depth: The number of calculation steps per pixel automatically adjusts between 55-85, balancing visual detail and performance.
- Automated Parameter Space Exploration: Every 9-13 seconds, the system randomly picks a new c value, occasionally exploring wider areas of the complex plane.
- Full-Screen Canvas Auto-Scaling: The fractal automatically fits any screen size while maintaining correct proportions.
- Real-Time Rendering Pipeline: Updates the display ~35 times per second (every 28ms), calculating each pixel individually.
- JDK 8 or higher
- Git
- Clone the repository to your local machine:
git clone https://github.com/sma1lo/JFractal.git- Navigate to the project root directory:
cd JFractal- Compile the source code:
javac org/jfractal/*.java- Run the application:
java org.jfractal.Launcher