{"id":23539454,"url":"https://github.com/knoblauchpilze/fractsim","last_synced_at":"2025-05-15T03:10:06.276Z","repository":{"id":124351976,"uuid":"224046513","full_name":"Knoblauchpilze/fractsim","owner":"Knoblauchpilze","description":"Best way to get some cool wallpapers","archived":false,"fork":false,"pushed_at":"2024-01-10T17:09:58.000Z","size":1912,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T08:19:40.713Z","etag":null,"topics":["cpp","fractal","mandelbrot","sdl2","threads"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Knoblauchpilze.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}},"created_at":"2019-11-25T21:39:08.000Z","updated_at":"2025-01-16T20:17:06.000Z","dependencies_parsed_at":"2024-01-10T18:43:13.008Z","dependency_job_id":null,"html_url":"https://github.com/Knoblauchpilze/fractsim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knoblauchpilze%2Ffractsim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knoblauchpilze%2Ffractsim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knoblauchpilze%2Ffractsim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knoblauchpilze%2Ffractsim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Knoblauchpilze","download_url":"https://codeload.github.com/Knoblauchpilze/fractsim/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254264767,"owners_count":22041794,"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":["cpp","fractal","mandelbrot","sdl2","threads"],"created_at":"2024-12-26T04:36:12.814Z","updated_at":"2025-05-15T03:10:01.261Z","avatar_url":"https://github.com/Knoblauchpilze.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Mandelbrot](logo.png)\n\n# fractsim\nAwesome fractals generation program, which is faster than anything existing at the moment and much more configurable. That being said it does draw fractals of multiple types with some sort of efficiency and a nice coloring.\n\n![Julia set 0.285+0.001i](pretty.png)\n\n# Installation\n\n- Clone the repo: `git clone git@github.com:Knoblauchpilze/fractsim.git`.\n- Clone dependencies:\n    * [core_utils](https://github.com/Knoblauchpilze/core_utils)\n    * [maths_utils](https://github.com/Knoblauchpilze/maths_utils)\n    * [sdl_engine](https://github.com/Knoblauchpilze/sdl_engine)\n    * [sdl_core](https://github.com/Knoblauchpilze/sdl_core)\n    * [sdl_graphic](https://github.com/Knoblauchpilze/sdl_graphic)\n    * [sdl_app_core](https://github.com/Knoblauchpilze/sdl_app_core)\n- Go to the project's directory `cd ~/path/to/the/repo`.\n- Compile: `make r`.\n- Install: `make install`.\n\nDon't forget to add `/usr/local/lib` to your `LD_LIBRARY_PATH` to be able to load shared libraries at runtime.\n\n# Usage\n\nThe application is based on a `SDL` engine allowing to render fractal on the CPU with a threaded mechanism. Several kind of fractals are handled:\n * Mandelbrot set\n * Julia set\n * Newton polynomial fractal\n\nEach type of fractal is accessible through a dedicated configuration panel and is displayed in the main rendering window. Each fractal type has its own customization possibilities.\nThe user can pan in the rendering window which will trigger a rendering of the missing tiles while the already computed ones are kept in memory. This allows to fully explore a given zoom level. Each time the user zooms in or out with the mouse wheel a zoom operation is performed where the viewing window's dimensions are divided/multiplied by `2`. An automatic recomputation of the fractal is triggered at these occasions. The user can reset to the initial viewing distance for this fractal type at any time.\n\n# Features\n\nThe application allows to explore the different fractals until decent zoom levels and with an acceptable rendering speed. Each fractal type has its own control panel, described below.\nNote that changing any control while the fractal is zoomed in will reset the viewing window.\n\n## Mandelbrot set\n\n![Mandelbrot view](mandelbrot_view.png)\n\nThe canonical mandelbrot set can be represented using this fractal type. The exponent to apply to the `z^n+c` can be defined along with the accuracy. The deeper one wants to zoom inside the set the larger this value has to be to account for very slowly diverging points.\n\n## Julia set\n\n![Julia view](julia_view.png)\n\nA large family of Julia sets can be rendered using this fractal type. The value of the `c` constant in the series can be specified through the controls, along with the accuracy. Similar behavior is provided to the Mandelbrot set.\n\n## Newton polynomial fractal\n\n![Newton view](newton_view.png)\n\nA family of fractal rising from the zeroes of a polynomial. Each area will be applied a series as described in [this](https://en.wikipedia.org/wiki/Newton_fractal) wikipedia article where some zeroes define regions where the series will converge to a certain value.\nThis fractal type takes slightly more time to compute given all the derivatives and evaluation to perform and also has a slightly less appealing palette but it's still interesting to play with.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknoblauchpilze%2Ffractsim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknoblauchpilze%2Ffractsim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknoblauchpilze%2Ffractsim/lists"}