{"id":15057190,"url":"https://github.com/dpetrosy/fractal","last_synced_at":"2026-02-21T14:31:03.608Z","repository":{"id":244593995,"uuid":"815697673","full_name":"dpetrosy/Fractal","owner":"dpetrosy","description":"This project is a Fractal Visualizer developed in C++ with SFML and CUDA.","archived":false,"fork":false,"pushed_at":"2024-07-13T22:04:31.000Z","size":5091,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-14T10:14:27.203Z","etag":null,"topics":["burning-ship","cmake","cmakelists","cpp","cpp-programming","cpp-project","cuda","cuda-opengl","cuda-programming","fractal","fractal-generation","fractal-visualization","julia","mandelbox","mandelbrot","opengl","opengl-project","sfml","sfml-library","tricorn"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dpetrosy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-15T21:45:50.000Z","updated_at":"2024-11-27T20:26:06.000Z","dependencies_parsed_at":"2024-06-29T20:35:29.489Z","dependency_job_id":"f2c01295-c0d3-4e02-8c03-9ba8cc95c81f","html_url":"https://github.com/dpetrosy/Fractal","commit_stats":null,"previous_names":["dpetrosy/fractal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dpetrosy/Fractal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpetrosy%2FFractal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpetrosy%2FFractal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpetrosy%2FFractal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpetrosy%2FFractal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dpetrosy","download_url":"https://codeload.github.com/dpetrosy/Fractal/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpetrosy%2FFractal/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260897984,"owners_count":23079226,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["burning-ship","cmake","cmakelists","cpp","cpp-programming","cpp-project","cuda","cuda-opengl","cuda-programming","fractal","fractal-generation","fractal-visualization","julia","mandelbox","mandelbrot","opengl","opengl-project","sfml","sfml-library","tricorn"],"created_at":"2024-09-24T22:03:29.844Z","updated_at":"2025-10-15T10:55:13.502Z","avatar_url":"https://github.com/dpetrosy.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003c!-- Logo --\u003e\n  \u003ca href=\"https://github.com/dpetrosy/Fractal\"\u003e\n  \u003cimg src=\"README_files/logo.png\" alt=\"Logo\"\u003e\n  \u003c/a\u003e\n\n  \u003c!-- Project Name --\u003e\n  \u003ch1\u003eFractal Project\u003c/h1\u003e\n\n  \u003c!-- Badges --\u003e\n  \u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/github/repo-size/dpetrosy/Fractal?style=for-the-badge\u0026logo=github\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/languages/count/dpetrosy/Fractal?style=for-the-badge\u0026logo=\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/languages/top/dpetrosy/Fractal?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/dpetrosy/Fractal?style=for-the-badge\" /\u003e\n  \u003c/p\u003e\n\n  \u003ch3\u003e\n    \u003ca href=\"#-about-project\"\u003e📜 About Project\u003c/a\u003e\n      \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"#-fractals-list\"\u003e📑 Fractals List\u003c/a\u003e\n      \u003cspan\u003e · \u003c/span\u003e\n\t  \u003ca href=\"#-controls\"\u003e🎮 Controls\u003c/a\u003e\n      \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"#-usage\"\u003e👨‍💻 Usage\u003c/a\u003e\n      \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"#-screenshots\"\u003e🌄 Screenshots\u003c/a\u003e\n  \u003c/h3\u003e\n\u003c/div\u003e\n\n---\n\n## 📜 About Project\n\nA fractal is a fragmented geometrical figure that infinitely repeats at smaller scales. \\\nSo this project generates beautiful fractals from the complex numbers of an iterative mathematical construct. \\\nFor graphics, I used [SFML](https://www.sfml-dev.org/index.php) library and [NVIDIA CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) for parallel computing. \\\nProject builds by [CMake](https://cmake.org/) build system, so if you do not have CUDA Toolkit or your platform doesn't have\nCUDA support, CMake will build this project without CUDA support and computing will be done through CPU threads. \\\nBy default, there will be **40 parallel threads**, the color is rgb(21, 0, 0) and the window size is 800px.\n\n\u003e [!NOTE]  \n\u003e If you want to change color, threads count, window size, or other defaults, change them in **helpers.hpp** file.\n\n## 📑 Fractals List\n\nThe program supports these fractal sets:\n\n| Name               | Formula                                                                                                  |\n|:------------------:|:--------------------------------------------------------------------------------------------------------:|\n| Mandelbrot         | $z_{n+1} = z_n^2 + c, z_0 = 0$                                                                           |\n| Julia              | $z_{n+1} = z_n^2 + c, z_0 = c$                                                                           |\n| Burning Ship       | $z_{n+1} = abs(z_n^2) + c, z_0 = 0$                                                                      |\n| Tricorn            | $z_{n+1} = \\overline{z_n}^2 + c, z_0 = 0$                                                                |\n| Mandelbox          | It's more complex, see [this article](https://sites.google.com/site/mandelbox/what-is-a-mandelbox)       |\n| Multibrot          | $z_{n+1} = z_n^d + c, z_0 = 0, d = 5$                                                                    |\n| Mandelbar          | Take a look at **Mandelbar 5th (horizontal)** in [this image](README_files/Reference/Fractals_5th.png)   |\n| Per. Burning Ship  | Take a look at **Perpendicular Burning Ship** in [this image](README_files/Reference/Mandelbrot_set.png) |\n| Celtic Mandelbrot  | Take a look at **Celtic Mandelbrot** in [this image](README_files/Reference/Mandelbrot_set.png)          |\n\n#### Useful Links:\nhttps://www.deviantart.com/kosmic-stardust/art/Mandelbrot-ABS-Variations-Complete-Set-of-Formulas-487039852\nhttps://www.deviantart.com/kosmic-stardust/art/4th-Order-ABS-Mandelbrot-Variations-Complete-Set-601300868\nhttps://www.deviantart.com/kosmic-stardust/art/5th-Order-ABS-Mandelbrot-Variations-601484985\n\n## 🎮 Controls\n\nThe program supports the following controls:\n\n| Key           | Description                             |\n|:-------------:|:---------------------------------------:|\n| ESC           | Close the program window                |\n| Keys [1-9]    | Move to another fractal                 |\n| Key R         | Change the red component of fractal     |\n| Key G         | Change the green component of fractal   |\n| Key B         | Change the blue component of fractal    |\n| Mouse Scroll  | Zoom in and out of the fractal          |\n| ⬆️ ⬇️ ⬅️ ➡️ | Change the viewpoint                    |\n| Key L         | Lock Julia's fractal                    |\n| Zero          | Reset the fractal to its initial state  |\n\n## 👨‍💻 Usage\n### Requirements\n\nThe program is written in C++ and thus needs the **g++ compiler** and some standard **C++ libraries** to run. \\\nAlso needs to install **SFML** library and **CMake**. If you want to use your NVIDIA GPU power, you need to install **NVIDIA CUDA Toolkit**.\n\n### Instructions\n\n**1. Compiling the program**\n\nTo build the release version, run these commands:\n\n```shell\n$ cd path/to/fractal\n$ mkdir Release\n$ cd Release\n$ cmake -DCMAKE_BUILD_TYPE=Release ..\n$ make\n```\n\nTo build the debug version, run these commands:\n\n```shell\n$ cd path/to/fractal\n$ mkdir Debug\n$ cd Debug\n$ cmake -DCMAKE_BUILD_TYPE=Debug ..\n$ make\n```\n\n**2. How to run the program**\n\nRun the executable too see the help message:\n```shell\n./fractal\n```\n\nOr run with some supported fractal:\n```shell\n./fractal mandelbrot\n```\n\n\u003e [!NOTE]  \n\u003e For CUDA support, you need to install CMake version \u003e= **3.24** \\\n\u003e If you want to disable CUDA support, just uncommnet line 19 in **CMakeLists.txt file**.\n\n# 🌄 Screenshots\n\n## Mandelbrot\n![Fractal Mandelbrot](README_files/Screenshots/Mandelbrot_1.png)\n![Fractal Mandelbrot](README_files/Screenshots/Mandelbrot_2.png)\n\n## Julia\n![Fractal Julia](README_files/Screenshots/Julia.png)\n\n## Burning Ship\n![Fractal Burning Ship](README_files/Screenshots/Burning_Ship.png)\n\n## Tricorn\n![Fractal Tricorn](README_files/Screenshots/Tricorn.png)\n\n## Mandelbox\n![Fractal Mandelbox](README_files/Screenshots/Mandelbox.png)\n\n## Multibrot\n![Fractal Multibrot](README_files/Screenshots/Multibrot.png)\n\n## Mandelbar\n![Fractal Mandelbar](README_files/Screenshots/Mandelbar.png)\n\n## Perpendicular Burning Ship\n![Fractal Perpendicular Burning Ship](README_files/Screenshots/Perpendicular_Burning_Ship.png)\n\n## Celtic Mandelbrot\n![Fractal Celtic Mandelbrot](README_files/Screenshots/Celtic_Mandelbrot.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpetrosy%2Ffractal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdpetrosy%2Ffractal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpetrosy%2Ffractal/lists"}