https://github.com/thephoenix77/fractol
A fractal simulator implemented in C and MLX library.
https://github.com/thephoenix77/fractol
burning-ship fractal fractal-algorithms fractal-rendering julia mandelbrot mlx
Last synced: 3 months ago
JSON representation
A fractal simulator implemented in C and MLX library.
- Host: GitHub
- URL: https://github.com/thephoenix77/fractol
- Owner: ThePhoenix77
- Created: 2024-08-10T15:00:44.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-08-18T09:22:16.000Z (10 months ago)
- Last Synced: 2025-01-22T04:33:09.580Z (5 months ago)
- Topics: burning-ship, fractal, fractal-algorithms, fractal-rendering, julia, mandelbrot, mlx
- Language: C
- Homepage:
- Size: 44.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# fractol: Fractal Visualization with C and MLX
This project, fractol, is a fractal visualization program written in C using the MiniLibX (MLX) library.## What are Fractals?
Fractals are self-similar mathematical objects exhibiting intricate patterns that repeat at different scales. They often possess beauty and complexity arising from relatively simple rules or equations.## Project Overview
fractol allows you to explore various fractal sets by generating corresponding images. The program currently supports the implementation of the following classic fractals:* Mandelbrot Set: One of the most well-known fractals, famous for its intricate details and mesmerizing shapes.
* Julia Set: A related fractal family with unique features depending on the chosen complex parameter c.
* Burning Ship Set: Another intriguing fractal set characterized by its distinctive "flaming ship" appearance.## Implementation Details
The program utilizes the MLX library for low-level graphics manipulation. This allows for:* Creating a graphical window to display the generated fractal images.
* Performing pixel-level manipulation to render the different fractal sets.
* Handling user interaction for features such as zooming and color palette selection.## Getting Started
### Prerequisites:
* C Compiler (e.g., GCC)
* MiniLibX library (MLX)
### Instructions:* Clone this repository: git clone https://github.com/ThePhoenix77/fractol.git
* Install the necessary libraries. [MLX documentation](https://harm-smits.github.io/42docs/libs/minilibx/getting_started.html).
* Compile the program: gcc fractol.c -lmlx -lX11 -lm -o fractol (modify flags if needed)
* Run the program: ./fractol### Controls:
* Arrow keys: Navigate within the fractal space (zooming).
* Mouse wheel: Zoom in/out on the fractal.
* Escape key: Exit the program.## Customization:
This initial version focuses on core functionality. You can explore potential improvements:
* Implement additional fractal sets.
* Introduce color palettes for different fractal sets.
* Add user interface elements for customization options.## Contributing
I welcome contributions to this project! Please refer to the CONTRIBUTING.md file for guidelines on submitting pull requests.This README provides a basic understanding of the fractol project. Feel free to explore the code and experiment with different functionalities!