{"id":20761927,"url":"https://github.com/james-p-d/fractals","last_synced_at":"2026-05-08T05:48:02.546Z","repository":{"id":170649429,"uuid":"279064615","full_name":"James-P-D/Fractals","owner":"James-P-D","description":"Fractals with zoom functionality in Python and Julia","archived":false,"fork":false,"pushed_at":"2021-11-14T08:26:48.000Z","size":5204,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T17:25:07.989Z","etag":null,"topics":["fractal","fractals","julia","julia-language","julialang","mandlebrot","pygame","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/James-P-D.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":"2020-07-12T12:56:56.000Z","updated_at":"2023-11-19T03:57:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"e105fc61-7aa3-4ac2-ba8f-4be34ee6c9a3","html_url":"https://github.com/James-P-D/Fractals","commit_stats":null,"previous_names":["james-p-d/fractals"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/James-P-D/Fractals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/James-P-D%2FFractals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/James-P-D%2FFractals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/James-P-D%2FFractals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/James-P-D%2FFractals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/James-P-D","download_url":"https://codeload.github.com/James-P-D/Fractals/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/James-P-D%2FFractals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28020072,"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","status":"online","status_checked_at":"2025-12-25T02:00:05.988Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["fractal","fractals","julia","julia-language","julialang","mandlebrot","pygame","python"],"created_at":"2024-11-17T10:27:55.657Z","updated_at":"2025-12-25T05:10:50.710Z","avatar_url":"https://github.com/James-P-D.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fractals\nFractals with zoom functionality in Python and Julia\n\n![Screenshot](https://github.com/James-P-D/Fractals/blob/master/screenshot.gif)\n\n## Usage\n\nAfter running the application you will be presented with a blank canvas and a series of buttons. Press \u003ckbd\u003eMandlebrot\u003c/kbd\u003e button to generate the [Mandlebrot Set](https://en.wikipedia.org/wiki/Mandelbrot_set) or hit \u003ckbd\u003eJulia\u003c/kbd\u003e to generate the [Julia Set](https://en.wikipedia.org/wiki/Julia_set).\n\nOnce generated you can select a section you wish to zoom to by creating a rectangle using your mouse. Once selected press the \u003ckbd\u003eZoom\u003c/kbd\u003e button to zoom to the selected section.\n\nBy default the application will zoom straight to the selected section. If you would like to increase or decrease the number of intermediate steps during the zoom process, simply use the \u003ckbd\u003e+\u003c/kbd\u003e and \u003ckbd\u003e-\u003c/kbd\u003e buttons respectively.\n\n## Python/Julia\n\nWhen I first created the application, both fractals were calculated in Python (see [MandlebrotFractal.py](https://github.com/James-P-D/Fractals/blob/master/src/Fractals/Fractals/MandlebrotFractal.py) and [JuliaFractal.py](https://github.com/James-P-D/Fractals/blob/master/src/Fractals/Fractals/JuliaFractal.py)) but was disappointed with the time taken to generate them. Since I'd heard [Julia](https://julialang.org/) is fast I decided to reimplement both fractals. Whilst the code works (see [Library.jl](https://github.com/James-P-D/Fractals/blob/master/src/Fractals/Fractals/Library.jl)), it doesn't appear to like being called on a thread, so this has been temporarily disabled.\n\nIf you want to try using the Julia-generated fractals, set `USE_JULIA` to `True` in [Constants.py](https://github.com/James-P-D/Fractals/blob/master/src/Fractals/Fractals/Constants.py).\n\n## Setup\n\nFor Python we need the following:\n\n[pygame](https://www.pygame.org/news) (Tested with v1.9.6)  \n[numpy](https://numpy.org/) (Tested with v1.18.3)  \n[pyjulia](https://github.com/JuliaPy/pyjulia) (Tested with v0.5.3)  \n\n```\npip install pygame\npip install numpy\npip install julia\n```\n\nFor Julia we need to install [pycall](https://github.com/JuliaPy/PyCall.jl):\n\n```\njulia\u003e using Pkg\njulia\u003e Pkg.add(\"PyCall\")\n```\n\nI also had to run the following from the Python REPL:\n\n```\n\u003e\u003e\u003e import julia\n\u003e\u003e\u003e julia.install()\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjames-p-d%2Ffractals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjames-p-d%2Ffractals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjames-p-d%2Ffractals/lists"}