{"id":19989821,"url":"https://github.com/wcygan/turtle","last_synced_at":"2025-08-01T00:05:04.106Z","repository":{"id":46557996,"uuid":"396374431","full_name":"wcygan/turtle","owner":"wcygan","description":"Generative Art in Rust","archived":false,"fork":false,"pushed_at":"2022-02-08T17:15:15.000Z","size":67576,"stargazers_count":14,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-03-09T23:06:47.177Z","etag":null,"topics":["algorithmic-art","art","art-generator","artwork","generative-art","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wcygan.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-15T14:15:23.000Z","updated_at":"2023-01-08T02:29:15.000Z","dependencies_parsed_at":"2022-09-11T14:12:27.294Z","dependency_job_id":null,"html_url":"https://github.com/wcygan/turtle","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcygan%2Fturtle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcygan%2Fturtle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcygan%2Fturtle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wcygan%2Fturtle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wcygan","download_url":"https://codeload.github.com/wcygan/turtle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224391390,"owners_count":17303609,"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":["algorithmic-art","art","art-generator","artwork","generative-art","rust"],"created_at":"2024-11-13T04:50:28.467Z","updated_at":"2024-11-13T04:50:29.130Z","avatar_url":"https://github.com/wcygan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Turtle\r\n\r\nA Generative Art tool in Rust!\r\n\r\n\u003cimg src=\"examples/julia-fractal.png\" width=\"600\" height=\"600\"\u003e\r\n\r\nThis was inspired\r\nby [Isaacg1's Programatically Generated Artwork](https://isaacg1.github.io/2018/12/06/programmatically-generated-artwork.html)\r\n.\r\n\r\n## Build \u0026 Run\r\n\r\n### Installation via cargo\r\n\r\nMake sure you have [Rust](https://www.rust-lang.org/tools/install) and Cargo installed.\r\n\r\nInstall this project on any platform using Cargo:\r\n\r\n```console\r\n$ cargo install --git https://github.com/wcygan/turtle\r\n```\r\n\r\n### How to run\r\n\r\n```console\r\n$ turtle -s \u003csize\u003e -n \u003cname\u003e -p \u003cpattern\u003e\r\n```\r\n\r\n## Options\r\n\r\nThe program options that can be used:\r\n\r\n| Option      | Usage                                                                       | Example            |\r\n| :---------- | :---------------------------------------------------------------------------| :----------------- |\r\n| `-s`        | Number of pixels, N, to create an N x N image                               | `-s 10`            |\r\n| `-r`        | Seed used to initialize a pseudorandom number generator                     | `-r 1234`          |\r\n| `-n`        | Name of the output file                                                     | `-n foo`           |\r\n| `-p`        | Image pattern to use                                                        | `-p square`        |\r\n| `-x`        | Imaginary part of a complex number                                          | `-x -0.55`         |\r\n| `-y`        | Real part of a complex number                                               | `-y 0.53`          |\r\n| `-i`        | Number of times to executed iterated algorithms                             | `-i 105`           |\r\n\r\n## Output Examples\r\n\r\n### Mandelbrot Set\r\n\r\n```console\r\n$ turtle -n mandelbrot-fractal -p mandelbrot-fractal -s 8000 -x -0.5 -y 0.5 -i 104\r\n```\r\n\r\n\u003cimg src=\"examples/mandelbrot-fractal.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Julia Set\r\n\r\n```console\r\n$ turtle -n julia-fractal -p julia-fractal -s 3000 -x -0.55 -y 0.53 -i 105\r\n```\r\n\r\n\u003cimg src=\"examples/julia-fractal.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Squiggly\r\n\r\n```console\r\n$ turtle --pattern squiggly --name bar --size 1500\r\n```\r\n\r\n\u003cimg src=\"examples/squiggly.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Julia Weird\r\n\r\n```console\r\n$ turtle -n julia-weird -p julia-weird -s 8000 -x -0.596 -y 0.555 -i 60\r\n```\r\n\r\n\u003cimg src=\"examples/julia-weird.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Blobs\r\n\r\n```console\r\n$ turtle --name blobs --pattern blobs --rng 14415323423445943 --size 3000\r\n```\r\n\r\n\u003cimg src=\"examples/blobs.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Airbrush\r\n\r\n```console\r\n$ turtle --pattern airbrush --name airbrush --size 2000\r\n```\r\n\r\n\u003cimg src=\"examples/airbrush.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Tree\r\n\r\n```console\r\n$ turtle --size 2000 --pattern tree --rng 12 --name tree\r\n```\r\n\r\n\u003cimg src=\"examples/tree.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Diamond\r\n\r\n```console\r\n$ turtle --size 1000 --name diamond --pattern diamond --rng 124331\r\n```\r\n\r\n\u003cimg src=\"examples/diamond.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Snowflake\r\n\r\n```console\r\n$ turtle --size 1000 --name snowflake --pattern snowflake --rng 12494213\r\n```\r\n\r\n\u003cimg src=\"examples/snowflake.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Pixels\r\n\r\n```console\r\n$ turtle --name pixels --size 2000 --pattern pixels\r\n```\r\n\r\n\u003cimg src=\"examples/pixels.png\" width=\"500\" height=\"500\"\u003e\r\n\r\n### Square\r\n\r\n```console\r\n$ turtle --size 350 --name square --pattern square --rng 2121\r\n```\r\n\r\n![](examples/square.png)\r\n\r\n### Circle\r\n\r\n```console\r\n$ turtle --size 350 --name circle --pattern circle --radius 99479\r\n```\r\n\r\n![](examples/circle.png)\r\n\r\n## Dependencies\r\n\r\n- [clap](https://docs.rs/clap/2.33.3/clap/) to parse commands\r\n- [image](https://docs.rs/image) to create images\r\n- [rand](https://docs.rs/rand) to generate pseudorandom numbers\r\n- [rayon](https://docs.rs/rayon/1.5.0/rayon/) to parallelize execution\r\n- [num-complex](https://docs.rs/num-complex) for complex math'\r\n\r\n## Directory Tree\r\n\r\n```\r\n$ tree\r\n.\r\n├── Cargo.lock\r\n├── Cargo.toml\r\n├── examples\r\n│   ├── airbrush.png\r\n│   ├── blobs.png\r\n│   ├── circle.png\r\n│   ├── diamond.png\r\n│   ├── julia-fractal.png\r\n│   ├── julia-weird.png\r\n│   ├── mandelbrot-fractal.png\r\n│   ├── pixels.png\r\n│   ├── snowflake.png\r\n│   ├── square.png\r\n│   ├── squiggly.png\r\n│   └── tree.png\r\n├── readme.md\r\n└── src\r\n    ├── algorithms\r\n    │   ├── airbrush.rs\r\n    │   ├── blobs.rs\r\n    │   ├── circle.rs\r\n    │   ├── diamond.rs\r\n    │   ├── julia_fractal.rs\r\n    │   ├── mandelbrot_fractal.rs\r\n    │   ├── mod.rs\r\n    │   ├── pixels.rs\r\n    │   ├── snowflake.rs\r\n    │   ├── square.rs\r\n    │   ├── squiggly.rs\r\n    │   └── tree.rs\r\n    ├── arguments.rs\r\n    ├── dispatcher.rs\r\n    └── main.rs\r\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwcygan%2Fturtle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwcygan%2Fturtle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwcygan%2Fturtle/lists"}