{"id":17933631,"url":"https://github.com/keyan/mandelbrot","last_synced_at":"2025-03-24T06:33:23.842Z","repository":{"id":87742712,"uuid":"321805425","full_name":"keyan/mandelbrot","owner":"keyan","description":"Interactive Mandelbrot set visualizer","archived":false,"fork":false,"pushed_at":"2020-12-16T18:01:43.000Z","size":17,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-19T03:05:55.085Z","etag":null,"topics":["ebiten","mandelbrot","visualizer"],"latest_commit_sha":null,"homepage":"","language":"Go","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/keyan.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-12-15T22:33:53.000Z","updated_at":"2021-05-27T13:13:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"f2d25d8f-643a-4b1e-bbc1-29fa55bf01f3","html_url":"https://github.com/keyan/mandelbrot","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyan%2Fmandelbrot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyan%2Fmandelbrot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyan%2Fmandelbrot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keyan%2Fmandelbrot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keyan","download_url":"https://codeload.github.com/keyan/mandelbrot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245223365,"owners_count":20580348,"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":["ebiten","mandelbrot","visualizer"],"created_at":"2024-10-28T21:41:00.542Z","updated_at":"2025-03-24T06:33:23.558Z","avatar_url":"https://github.com/keyan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mandelbrot\n\nInteractive Mandelbrot set visualizer.\n\nUses the [ebiten][3] game library to run an interactive window. To allow rendering in realtime with user input, some approximation is used to skip computations for some pixels, leading to frames improving in appearance as user input stops and re-rendering happens.\n\nA still frame from the visualizer:\n![still](https://user-images.githubusercontent.com/6401746/102289976-e16ea800-3ef4-11eb-9559-23161ad58e88.png)\n\nHere is what the program looks like when used interactively, keep in mind the quality here is poor due to the low gif framerate and additional compression:\n![live](https://user-images.githubusercontent.com/6401746/102290677-5bebf780-3ef6-11eb-90d6-be43bcebf90d.gif)\n\n## Usage\n\nA live demo is available, but the performance in a browser is ~10X worse than running directly on a computer, also give it a few seconds to load: https://keyanp.com/mandelbrot/index.html\n\nTo build and run from source:\n```\nmake\n```\n\nIf you are on MacOSX there is a [precompiled binary on GitHub][release] you can run:\n```\n./mandelbrot\n```\n\nControls are explained when the window first loads, but for completeness:\n```\nArrow keys to move\nI to zoom In\nO to zoom Out\nR to reset view\nEscape to exit\n```\n\n## Resources\n\nI found the youtube channel [fractalmath][1] to be helpful for better understanding complex plane dynamics. Lode Vandevenne also has a useful [tutorial][2] as well, but as with most of his articles it can be tough to follow. The ebiten [examples page][4] was invaluable in quickly using that library for the graphical/interactive portions.\n\n[1]: https://www.youtube.com/channel/UCJ1i1TGHljQ6ETPgptchOZg\n[2]: https://lodev.org/cgtutor/juliamandelbrot.html\n[3]: https://ebiten.org/\n[4]: https://ebiten.org/examples\n[release]: https://github.com/keyan/mandelbrot/releases/download/v1.0/mandelbrot.zip\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyan%2Fmandelbrot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeyan%2Fmandelbrot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyan%2Fmandelbrot/lists"}