{"id":18000843,"url":"https://github.com/josecelano/mandelbrot-orbits-rust","last_synced_at":"2025-04-04T08:11:23.406Z","repository":{"id":49945886,"uuid":"518168139","full_name":"josecelano/mandelbrot-orbits-rust","owner":"josecelano","description":"Plotting Mandelbrot Set periods using Rust language.","archived":false,"fork":false,"pushed_at":"2023-04-16T10:39:27.000Z","size":4952,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-01T21:54:37.723Z","etag":null,"topics":["fractal","fractals","mandelbrot","mandelbrot-renderer","mandelbrot-set","orbits","period","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/josecelano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-MIT","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":"2022-07-26T18:06:58.000Z","updated_at":"2022-08-09T08:34:32.000Z","dependencies_parsed_at":"2024-10-29T23:45:10.674Z","dependency_job_id":null,"html_url":"https://github.com/josecelano/mandelbrot-orbits-rust","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/josecelano%2Fmandelbrot-orbits-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josecelano%2Fmandelbrot-orbits-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josecelano%2Fmandelbrot-orbits-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/josecelano%2Fmandelbrot-orbits-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/josecelano","download_url":"https://codeload.github.com/josecelano/mandelbrot-orbits-rust/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247142077,"owners_count":20890653,"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":["fractal","fractals","mandelbrot","mandelbrot-renderer","mandelbrot-set","orbits","period","rust"],"created_at":"2024-10-29T23:14:45.242Z","updated_at":"2025-04-04T08:11:23.384Z","avatar_url":"https://github.com/josecelano.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mandelbrot Orbits\n\n[![Test](https://github.com/josecelano/mandelbrot-orbits-rust/actions/workflows/test.yml/badge.svg)](https://github.com/josecelano/mandelbrot-orbits-rust/actions/workflows/test.yml) [![MegaLinter](https://github.com/josecelano/mandelbrot-orbits-rust/actions/workflows/mega-linter.yml/badge.svg)](https://github.com/josecelano/mandelbrot-orbits-rust/actions/workflows/mega-linter.yml)\n\nThis is a small project to learn Rust.\n\nIt generates an image of the Mandelbrot Set where each pixel color represents the period of the complex point if the point belongs to the Set.\n\nMore info about [Mandelbrot Set Periods](https://github.com/josecelano/mandelbrot-explorer).\n\nYou can render it in greyscale.\n\n![./docs/images/mandelbrot_2000x2000.png](./docs/images/greyscale_mandelbrot_sample.png)\n\nOr the colorized version.\n\n![./docs/images/mandelbrot_2000x2000.png](./docs/images/colorized_mandelbrot_sample.png)\n\nWith a different color depending on the period.\n\n## Requirements\n\n- `cargo`: `^1.62.1`.\n- `rustc`: `^1.62.1`.\n\n## Use\n\n```s\ngit clone git@github.com:josecelano/mandelbrot-orbits-rust.git\ncargo run ./output/mandelbrot_2048x2048.png 2048x2048 -2.0,2.00 2.0,-2.0\n```\n\n## Development\n\nExecute MegaLinter locally:\n\n```s\n./bin/ml.sh\n```\n\nRun tests:\n\n```s\ncargo test\n```\n\n[More info for developers](./docs/development.md).\n\n## Math\n\nYou can find an explanation [here](https://github.com/jeremy-rifkin/mandelbrot-orbits).\n\nAnd I'm trying to [find](https://math.stackexchange.com/q/4502546/1082376) and write a more formal explanation of the math behind the algorithm.\n\n![./docs/images/math.png](./docs/images/math.png)\n\n## Execution time\n\n```s\n16384x16384px\n4,7MB\n72m57,099s\n```\n\n```s\n32768x32768px\n15MB\n268m23,032s\n```\n\n## Credits\n\n- [Jeremy Rifkin](https://github.com/jeremy-rifkin) pointed me to the solution. I have copied/pasted part of his code to detect the period.\n- [Jim Blandy, Programming Rust Book's Author](https://github.com/jimblandy).\n- [Jason Orendorff, Programming Rust Book's Author](https://github.com/jorendorff).\n\n## License\n\n[MIT](./LICENSE-MIT).\n\n## Links\n\n### Repositories\n\n- [Same thing in C++ by Jeremy Rifkin](https://github.com/jeremy-rifkin/mandelbrot-orbits).\n- [Mandelbrot Trajectory Infima by Jeremy Rifkin](https://github.com/jeremy-rifkin/mandelbrot-trajectory-infima).\n- [Initial code to plot the Mandelbrot Set was forked from the O'Reilly Programming Rust book](https://github.com/ProgrammingRust/mandelbrot/tree/single-threaded).\n- [Mandelbrot in C language with arbitrary precision](https://github.com/josecelano/c-mandelbrot-arbitrary-precision).\n- [Periodic points of a complex quadratic polynomial using Newton method by Adam Majewski](https://gitlab.com/adammajewski/periodic-points-of-complex-quadratic-polynomial-using-newton-method).\n- [Numerical periodicity detection of a polynomial and rational Julia set](https://github.com/adammaj1/Describe-iterated-map-).\n- [Wolfram MathWorld - Mandelbrot Set](https://mathworld.wolfram.com/MandelbrotSet.html).\n\n### Papers\n\n- [An Introduction to Complex Dynamics and the Mandelbrot Set by professor Robert L. Benedetto](https://rlbenedetto.people.amherst.edu/talks/mhc_ug14.pdf).\n- [Displaying the Internal Structure of the Mandelbrot Set by Adam Cunningham](https://www.acsu.buffalo.edu/~adamcunn/downloads/MandelbrotSet.pdf).\n- [Newton's method in practice II: The iterated refinement Newton method and near-optimal complexity for finding all roots of some polynomials of very large degrees](https://arxiv.org/pdf/1703.05847.pdf).\n\n### Books\n\n- [The Beauty of Fractals](https://en.wikipedia.org/wiki/The_Beauty_of_Fractals).\n- [Programming Rust Book, O'Reilly](https://www.oreilly.com/library/view/programming-rust-2nd/9781492052586/).\n- [Mandelbook](https://mathr.co.uk/mandelbrot/book-draft-2017-11-10.pdf).\n\n### Wikibook\n\n- [Fractals](https://en.wikibooks.org/wiki/Fractals).\n\n### Demos\n\n- [Mandelbrot trajectories explorer](https://rifkin.dev/projects/mandelbrot-trajectories/).\n- [Mandelbrot orbits explorer](https://mandelbrot-set-periods.online/).\n- [Javascript Mandelbrot Set Fractal Viewer](https://mandelbrot.page/).\n- [Mandelbrot Z Orbits by Stefan ­Bion](https://www.stefanbion.de/fraktal-generator/z-orbits.htm).\n\n### Other\n\n- [Periodic points in the Mandelbrot set](https://www.ibiblio.org/e-notes/MSet/cperiod.htm).\n- [Orbit detection for the Mandelbrot set by Mark McClure](https://observablehq.com/@mcmcclur/orbit-detection-for-the-mandelbrot-set).\n- [Algebraic solution of Mandelbrot orbital boundaries by Donald D. Cross](http://cosinekitty.com/mandel_orbits_analysis.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosecelano%2Fmandelbrot-orbits-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosecelano%2Fmandelbrot-orbits-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosecelano%2Fmandelbrot-orbits-rust/lists"}