{"id":27204991,"url":"https://github.com/jofas/mgart","last_synced_at":"2025-07-05T09:34:35.358Z","repository":{"id":62060790,"uuid":"546636943","full_name":"jofas/mgart","owner":"jofas","description":"Machine Generated Art. CLI app for generating algorithmic art","archived":false,"fork":false,"pushed_at":"2023-05-21T12:12:13.000Z","size":14501,"stargazers_count":5,"open_issues_count":5,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T03:48:54.672Z","etag":null,"topics":["buddhabrot","cli","fractal-images","fractals","julia-set","mandelbrot","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jofas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-06T11:59:28.000Z","updated_at":"2024-10-15T18:46:20.000Z","dependencies_parsed_at":"2023-02-19T10:31:17.644Z","dependency_job_id":null,"html_url":"https://github.com/jofas/mgart","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/jofas%2Fmgart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jofas%2Fmgart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jofas%2Fmgart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jofas%2Fmgart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jofas","download_url":"https://codeload.github.com/jofas/mgart/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248125581,"owners_count":21051768,"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":["buddhabrot","cli","fractal-images","fractals","julia-set","mandelbrot","rust"],"created_at":"2025-04-09T23:00:35.365Z","updated_at":"2025-04-09T23:02:28.940Z","avatar_url":"https://github.com/jofas.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![mgart](static/icon.svg)\n\n# Mgart\n\n[![Build Status](https://github.com/jofas/mgart/actions/workflows/build.yml/badge.svg)](https://github.com/jofas/mgart/actions/workflows/build.yml)\n[![Codecov](https://codecov.io/gh/jofas/mgart/branch/main/graph/badge.svg?token=69YKZ1JIBK)](https://codecov.io/gh/jofas/mgart)\n[![Latest Version](https://img.shields.io/crates/v/mgart.svg)](https://crates.io/crates/mgart)\n[![Downloads](https://img.shields.io/crates/d/mgart?label=downloads)](https://crates.io/crates/mgart)\n[![Library Docs](https://img.shields.io/badge/library_docs-latest-blue.svg)](https://docs.rs/mgart/latest/mgart)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md) \n\n\n**M**achine **G**enerated **Art**, short Mgart and pronounced \n\"em-gart\" is a rust crate and CLI application for generating \nalgorithmic art.\n\n## Table of Contents\n\n\u003c!--ts--\u003e\n   * [Install](#install)\n      * [Cargo](#cargo)\n      * [From Source](#from-source)\n   * [Example](#example)\n   * [Supported Algorithms](#supported-algorithms)\n      * [Fractals](#fractals)\n         * [Mandelbrot and Julia Sets](#mandelbrot-and-julia-sets)\n         * [Buddhabrot](#buddhabrot)\n         * [Other](#other)\n      * [AI Art](#ai-art)\n   * [Contributing](#contributing)\n   * [License](#license)\n\u003c!--te--\u003e\n\n## Install\n\n### Cargo\n\nNote that you need to have the rust toolchain installed on your\ncomputer if you want to install Mgart using `cargo`.\n\nMgart is distributed via [crates.io](https://crates.io) and can be \ninstalled with:\n\n```bash\ncargo install mgart\n```\n\nIf you'd like to install a specific version of Mgart, use the\n`--version` flag:\n\n```bash\ncargo install --version $VERSION\n```\n\nIf you have an old version of Mgart already installed and wish to \nupdate it to the newest version, use the `--force` flag:\n\n```bash\ncargo install --force mgart\n```\n\nCheck that Mgart is successfully installed by running:\n\n```bash\nmgart -V\n```\n\nThis should print `mgart`, followed by the version you have installed.\n\n\n### From Source\n\nFor development or if you would like to work with the latest, unstable\nversion, you can install Mgart from source. \nNote that you need to have the rust toolchain installed on your \ncomputer, if you want to build Mgart from source.\n\nFirst, clone the Mgart repository and enter it:\n\n```bash\ngit clone https://github.com/jofas/mgart \u0026\u0026 cd mgart\n```\n\nIf you want to work inside this directory, potentially because you\nwish to contribute to Mgart, you can execute the CLI application\nlike this:\n\n```bash\ncargo run --release -- $FILE\n```\n\n`$FILE` being the path to the file containing your algorithms (see the\n[Example](#example) section).\nNote that adding the `--release` flag to the command significantly\nenhances the execution speed.\n\nYou can also install Mgart from source, rather than just working from\nthe source directory.\nDo so by running the following command in the Mgart source directory:\n\n```bash\ncargo install --path .\n```\n\nThis will compile Mgart and make the program available for your user \nto execute directly from the command line.\nCheck installation by running:\n\n```\nmgart -V\n```\n\n\n## Example\n\nIf you run `mgart -h`, you will find that Mgart takes a single file as\ninput argument.\nThe content of the file contains the configuration for the art\npieces you wish to generate.\nCurrently, Mgart supports Json and [Jsonnet](https://jsonnet.org/) \ninput files.\nThe input file contains an array of `algorithm` objects where each one\ndescribes an artwork you would like to create.\nThis is an example Json file that would generate a single artwork, a \nrendering of a [buddhabrot](https://en.wikipedia.org/wiki/Buddhabrot):\n\n```json\n[\n   {\n      \"algorithm\": \"buddhabrot\",\n      \"filename\": \"buddhabrot_20000.png\",\n      \"width\": 3800,\n      \"height\": 2000,\n      \"center\": {\n         \"im\": -0.35,\n         \"re\": 0\n      },\n      \"zoom\": 0.45,\n      \"exponent\": 2,\n      \"iter\": 20000,\n      \"rotation\": 90,\n      \"sample_count\": 500000000,\n      \"sampler\": {\n         \"r\": 3,\n         \"type\": \"uniform_polar\"\n      },\n      \"post_processing\": [\n         {\n            \"process\": \"normalize\"\n         },\n         {\n            \"bin_count\": 256,\n            \"contrast_limit\": 500,\n            \"process\": \"clahe\",\n            \"tile_size_x\": 380,\n            \"tile_size_y\": 200\n         },\n         {\n            \"h\": 0.0005,\n            \"n\": 7,\n            \"process\": \"smoothing\",\n            \"type\": \"non_local_means\",\n            \"window_size\": 21\n         }\n      ],\n      \"color_map\": {\n         \"gradient\": {\n            \"factor\": 1,\n            \"type\": \"linear\"\n         },\n         \"map\": [\n            {\n               \"b\": 0,\n               \"g\": 0,\n               \"r\": 0,\n               \"type\": \"rgb\"\n            },\n            {\n               \"b\": 255,\n               \"g\": 255,\n               \"r\": 255,\n               \"type\": \"rgb\"\n            }\n         ]\n      }\n   }\n]\n```\n\nYou simply run `mgart $FILE` and Mgart does the rest for you.\nThe resulting image looks like:\n\n![Buddhabrot](examples/buddhabrot/greyscale/buddhabrot_20000.png)\n\nYou can find more example artworks and their configuration in the \n`examples/` folder [here](https://github.com/jofas/mgart).\n\n\n## Supported Algorithms\n\nBelow you will find a list of algorithms either already supported by\nMgart or planned to be supported in a future release.\n\n### Fractals\n\nAlgorithms for creating various types of fractal art.\n\n#### Mandelbrot and Julia Sets\n\n* [ ] A lot of different rendering methods still to implement\n\n#### Buddhabrot\n\n* [x] Buddhabrot\n\n* [ ] Anti-Buddhabrot\n\n* [ ] Nebulabrot\n\n#### Other\n\n* [ ] Fractal Flames\n\n* [ ] Newton Fractals\n\n* [ ] Strange Attractors\n\n* [ ] L-Systems\n\n* [ ] Turing patterns\n\n### AI Art\n\n* [ ] DeepDream-like filter\n\n* [ ] Text-to-image\n\n\n## Contributing\n\nContributions are very welcome! See [CONTRIBUTING.md](CONTRIBUTING.md)\nfor details.\nWhen you contribute, make sure to follow the \n[Contributor Covenant v2.1](CODE_OF_CONDUCT.md).\n\n\n## License\n\nMgart is licensed under the MIT license.\nSee [LICENSE](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjofas%2Fmgart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjofas%2Fmgart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjofas%2Fmgart/lists"}