{"id":13405674,"url":"https://github.com/sepandhaghighi/samila","last_synced_at":"2025-05-14T09:08:47.924Z","repository":{"id":37008403,"uuid":"408412375","full_name":"sepandhaghighi/samila","owner":"sepandhaghighi","description":"A Generative Art Generator","archived":false,"fork":false,"pushed_at":"2024-10-28T20:17:27.000Z","size":8846,"stargazers_count":1091,"open_issues_count":5,"forks_count":79,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-10-29T15:34:38.432Z","etag":null,"topics":["art","generative","generative-art","generativeart","matplotlib","nft","nft-gallery","nft-storage","nftables","nfts","python","python3"],"latest_commit_sha":null,"homepage":"https://www.samila.site","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/sepandhaghighi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://www.samila.site/donate.html"}},"created_at":"2021-09-20T11:15:56.000Z","updated_at":"2024-10-23T17:30:39.000Z","dependencies_parsed_at":"2023-11-27T07:40:52.953Z","dependency_job_id":"444708ff-8ce5-4a28-bca2-432cb04d2e42","html_url":"https://github.com/sepandhaghighi/samila","commit_stats":{"total_commits":359,"total_committers":7,"mean_commits":"51.285714285714285","dds":0.5264623955431755,"last_synced_commit":"6316e17d830a528cd96840d06a83dcb8899ab186"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepandhaghighi%2Fsamila","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepandhaghighi%2Fsamila/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepandhaghighi%2Fsamila/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sepandhaghighi%2Fsamila/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sepandhaghighi","download_url":"https://codeload.github.com/sepandhaghighi/samila/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248330645,"owners_count":21085754,"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":["art","generative","generative-art","generativeart","matplotlib","nft","nft-gallery","nft-storage","nftables","nfts","python","python3"],"created_at":"2024-07-30T19:02:08.107Z","updated_at":"2025-04-11T02:38:19.348Z","avatar_url":"https://github.com/sepandhaghighi.png","language":"Python","funding_links":["https://www.samila.site/donate.html"],"categories":["Python"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/logo.png\" width=400 height=400\u003e\n\t\u003cbr/\u003e\n\t\u003ch1\u003eSamila\u003c/h1\u003e\n\t\u003cbr/\u003e\n\t\u003ca href=\"https://www.python.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/built%20with-Python3-green.svg\" alt=\"built with Python3\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/sepandhaghighi/samila\"\u003e\u003cimg alt=\"GitHub repo size\" src=\"https://img.shields.io/github/repo-size/sepandhaghighi/samila\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://codecov.io/gh/sepandhaghighi/samila\"\u003e\u003cimg src=\"https://codecov.io/gh/sepandhaghighi/samila/branch/master/graph/badge.svg\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://badge.fury.io/py/samila\"\u003e\u003cimg src=\"https://badge.fury.io/py/samila.svg\" alt=\"PyPI version\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://anaconda.org/sepandhaghighi/samila\"\u003e\u003cimg src=\"https://anaconda.org/sepandhaghighi/samila/badges/version.svg\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://colab.research.google.com/github/sepandhaghighi/samila/blob/master\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Samila-Colab\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://discord.com/invite/94bz5QGZWb\"\u003e\u003cimg src=\"https://img.shields.io/discord/900055829225562162.svg\" alt=\"Discord Channel\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\n## Overview\n\n\u003cp align=\"justify\"\u003e\t\nSamila is a generative art generator written in Python, Samila lets you create images based on many thousand points. The position of every single point is calculated by a formula, which has random parameters. Because of the random numbers, every image looks different.\n\u003c/p\u003e\n\n\n\u003ctable\u003e\n\t\u003ctr\u003e \n\t\t\u003ctd align=\"center\"\u003eOpen Hub\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\u003ca href=\"https://www.openhub.net/p/samila\"\u003e\u003cimg src=\"https://www.openhub.net/p/samila/widgets/project_thin_badge.gif\"\u003e\u003c/a\u003e\u003c/td\u003e\t\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003ePyPI Counter\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\u003ca href=\"http://pepy.tech/project/samila\"\u003e\u003cimg src=\"http://pepy.tech/badge/samila\"\u003e\u003c/a\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003eGithub Stars\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/sepandhaghighi/samila\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/sepandhaghighi/samila.svg?style=social\u0026label=Stars\"\u003e\u003c/a\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\n\n\u003ctable\u003e\n\t\u003ctr\u003e \n\t\t\u003ctd align=\"center\"\u003eBranch\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003emaster\u003c/td\u003e\t\n\t\t\u003ctd align=\"center\"\u003edev\u003c/td\u003e\t\n\t\u003c/tr\u003e\n    \u003ctr\u003e\n\t\t\u003ctd align=\"center\"\u003eCI\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\u003cimg src=\"https://github.com/sepandhaghighi/samila/actions/workflows/test.yml/badge.svg?branch=master\"\u003e\u003c/td\u003e\n\t\t\u003ctd align=\"center\"\u003e\u003cimg src=\"https://github.com/sepandhaghighi/samila/actions/workflows/test.yml/badge.svg?branch=dev\"\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\n\u003ctable\u003e\n\t\u003ctr\u003e \n\t\t\u003ctd align=\"center\"\u003eCode Quality\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"https://www.codacy.com/gh/sepandhaghighi/samila/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=sepandhaghighi/samila\u0026amp;utm_campaign=Badge_Grade\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Grade/14df8ed5f8434aaea85889555b0182a9\"/\u003e\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"https://codebeat.co/projects/github-com-sepandhaghighi-samila-dev\"\u003e\u003cimg alt=\"codebeat badge\" src=\"https://codebeat.co/badges/01e6aa48-4cc2-4d9c-8288-c9fb490ad371\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003ca href=\"https://www.codefactor.io/repository/github/sepandhaghighi/samila\"\u003e\u003cimg src=\"https://www.codefactor.io/repository/github/sepandhaghighi/samila/badge\" alt=\"CodeFactor\" /\u003e\u003c/a\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n\n\n## Installation\t\t\n\n### PyPI\n- Check [Python Packaging User Guide](https://packaging.python.org/installing/)     \n- Run `pip install samila==1.5`\n\n### Source code\n- Download [Version 1.5](https://github.com/sepandhaghighi/samila/archive/v1.5.zip) or [Latest Source](https://github.com/sepandhaghighi/samila/archive/dev.zip)\n- Run `pip install .`\n\n### Conda\n- Check [Conda Managing Package](https://conda.io)\n- `conda install -c sepandhaghighi samila`\n\n\n## Usage\n\n### Magic\n```pycon\n\u003e\u003e\u003e import matplotlib.pyplot as plt\n\u003e\u003e\u003e from samila import GenerativeImage\n\u003e\u003e\u003e g = GenerativeImage()\n\u003e\u003e\u003e g.generate()\n\u003e\u003e\u003e g.plot()\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/7.png\"\u003e\t\n\nℹ️ You can change function generation seed by `func_seed` parameter in `GenerativeImage`\n\n### Basic\n```pycon\n\u003e\u003e\u003e import random\n\u003e\u003e\u003e import math\n\u003e\u003e\u003e def f1(x, y):\n    result = random.uniform(-1,1) * x**2  - math.sin(y**2) + abs(y-x)\n    return result\n\u003e\u003e\u003e def f2(x, y):\n    result = random.uniform(-1,1) * y**3 - math.cos(x**2) + 2*x\n    return result\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate()\n\u003e\u003e\u003e g.plot()\n\u003e\u003e\u003e g.seed\n188781\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/1.png\"\u003e\t\n\n### Generation mode\n```pycon\n\u003e\u003e\u003e from samila import GenerateMode\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate(mode=GenerateMode.F1_VS_INDEX)\n\u003e\u003e\u003e g.plot()\n\u003e\u003e\u003e g.seed\n883114\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/10.png\"\u003e\t\n\nℹ️ Supported modes : `F1_VS_F2`, `F2_VS_F1`, `F1_VS_INDEX`, `F2_VS_INDEX`, `INDEX_VS_F1`, `INDEX_VS_F2`, `F1_VS_X1`, `F1_VS_X2`, `F2_VS_X1`, `F2_VS_X2`, `X1_VS_F1`, `X1_VS_F2`, `X2_VS_F1`, `X2_VS_F2`, `F1F2_VS_F1`, `F1F2_VS_F2` and `RANDOM`\n\nℹ️ Default mode is `F1_VS_F2`\n\n### Projection\n```pycon\n\u003e\u003e\u003e from samila import Projection\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate()\n\u003e\u003e\u003e g.plot(projection=Projection.POLAR)\n\u003e\u003e\u003e g.seed\n829730\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/2.png\"\u003e\t\n\nℹ️ Supported projections : `RECTILINEAR`, `POLAR`, `AITOFF`, `HAMMER`, `LAMBERT`, `MOLLWEIDE` and `RANDOM`\n\nℹ️ Default projection is `RECTILINEAR`\n\n### Marker\n```pycon\n\u003e\u003e\u003e from samila import Marker\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate()\n\u003e\u003e\u003e g.plot(marker=Marker.CIRCLE, spot_size=10)\n\u003e\u003e\u003e g.seed\n448742\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/9.png\"\u003e\t\n\nℹ️ Supported markers : `POINT`, `PIXEL`, `CIRCLE`, `TRIANGLE_DOWN`, `TRIANGLE_UP`, `TRIANGLE_LEFT`, `TRIANGLE_RIGHT`, `TRI_DOWN`, `TRI_UP`, `TRI_LEFT`, `TRI_RIGHT`, `OCTAGON`, `SQUARE`, `PENTAGON`, `PLUS`, `PLUS_FILLED`, `STAR`, `HEXAGON_VERTICAL`, `HEXAGON_HORIZONTAL`, `X`, `X_FILLED`, `DIAMOND`, `DIAMON_THIN`, `VLINE`, `HLINE` and `RANDOM`\n\nℹ️ Default marker is `POINT`\n\n### Rotation\nYou can even rotate your art by using `rotation` parameter. Enter your desired rotation for the image in degrees and you will have it.\n\n```pycon\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate()\n\u003e\u003e\u003e g.plot(rotation=45)\n```\n\nℹ️ Default rotation is `0`\n\n### Range\n```pycon\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate(start=-2*math.pi, step=0.01, stop=0)\n\u003e\u003e\u003e g.plot()\n\u003e\u003e\u003e g.seed\n234752\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/3.png\"\u003e\t\n\nℹ️ Default range is $(-\\pi, \\pi)$\n\n### Color\n```pycon\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate()\n\u003e\u003e\u003e g.plot(color=\"yellow\", bgcolor=\"black\", projection=Projection.POLAR)\n\u003e\u003e\u003e g.seed\n1018273\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/4.png\"\u003e\t\n\nℹ️ Default color is `black`\n\nℹ️ Default background-color is `white`\n\nℹ️ Supported colors are available in `VALID_COLORS` list\n\nℹ️ `color` and `bgcolor` parameters supported formats:\n\n1. Color name (example: `color=\"yellow\"`)\n2. RGB/RGBA (example: `color=(0.1,0.1,0.1)`, `color=(0.1,0.1,0.1,0.1)`)\n3. Hex (example: `color=\"#eeefff\"`)\n4. Random (example: `color=\"random\"`)\n5. Complement (example: `color=\"complement\", bgcolor=\"blue\"`)\n6. Transparent (example: `bgcolor=\"transparent\"`)\n7. List (example: `color=[\"black\", \"#fffeef\",...]`)\n\n⚠️ **Transparent** mode is only available for background\n\n⚠️ **List** mode is only available for color\n\n⚠️ In **List** mode, the length of this list must be equal to the lengths of data1 and data2\n\n#### Point color\nYou can make your custom color map and use it in Samila.\n\n```pycon\n\u003e\u003e\u003e colorarray = [\n...  [0.7, 0.2, 0.2, 1],\n...  [0.6, 0.3, 0.2, 1],\n...  \"black\",\n...  [0.4, 0.4, 0.3, 1],\n...  [0.3, 0.4, 0.4, 1],\n...  \"#ff2561\"]\n\u003e\u003e\u003e g.generate()\n\u003e\u003e\u003e g.seed\n454893\n\u003e\u003e\u003e g.plot(cmap=colorarray, color=g.data2, projection=Projection.POLAR)\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/8.png\"\u003e\t\n\n\n### Regeneration\n```pycon\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate(seed=1018273)\n\u003e\u003e\u003e g.plot(projection=Projection.POLAR)\n\u003e\u003e\u003e plt.show()\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/5.png\"\u003e\t\n\n### NFT.storage\nUpload generated image directly to [NFT.storage](https://NFT.storage)\n\n```pycon\n\u003e\u003e\u003e g.nft_storage(api_key=\"YOUR_API_KEY\", timeout=5000)\n{'status': True, 'message': 'FILE_LINK'}\n```\n\nYou can also upload your config/data to nft storage as follows:\n```pycon\n\u003e\u003e\u003e g.nft_storage(api_key=\"API_KEY\", upload_config=True)\n{'status': {'image': True, 'config':True}, 'message': {'image':'IMAGE_FILE_LINK', 'config':'CONFIG_FILE_LINK'}\n```\nor\n```pycon\n\u003e\u003e\u003e g.nft_storage(api_key=\"API_KEY\", upload_data=True)\n{'status': {'image': True, 'data':True}, 'message': {'image':'IMAGE_FILE_LINK', 'data':'DATA_FILE_LINK'}\n```\n\nYou have the option to choose a specific IPFS gateway:\n```pycon\n\u003e\u003e\u003e from samila import Gateway\n\u003e\u003e\u003e g.nft_storage(api_key=\"API_KEY\", upload_data=True, gateway=Gateway.DWEB)\n{'status': {'image': True, 'data':True}, 'message': {'image':'IMAGE_FILE_LINK', 'data':'DATA_FILE_LINK'}\n```\n\n\n⚠️ This method is deprecated and may be removed in future releases\n\nℹ️ Default timeout is `3000` seconds\n\nℹ️ Default gateway is `IPFS_IO`\n\n### Save image\nSave generated image.\n\n```pycon\n\u003e\u003e\u003e g.save_image(file_adr=\"test.png\")\n{'status': True, 'message': 'FILE_PATH'}\n```\nSave generated image in higher resolutions.\n\n```pycon\n\u003e\u003e\u003e g.save_image(file_adr=\"test.png\", depth=5)\n{'status': True, 'message': 'FILE_PATH'}\n```\n\n### Save data\nSave generated image data.\n\n```pycon\n\u003e\u003e\u003e g.save_data(file_adr=\"data.json\")\n{'status': True, 'message': 'FILE_PATH'}\n```\nSo you can load it into a `GenerativeImage` instance later by\n\n```pycon\n\u003e\u003e\u003e g = GenerativeImage(data=open('data.json', 'r'))\n```\n\nData structure:\n```JSON\n{\n  \"plot\": {\n    \"projection\": \"polar\",\n    \"bgcolor\": \"black\",\n    \"color\": \"snow\",\n    \"spot_size\": 0.01\n  },\n  \"matplotlib_version\": \"3.0.3\",\n  \"data1\": [\n    0.3886741692042526,\n    22.57390286376703,\n    -0.1646310981668766,\n    66.23632344600155\n  ],\n  \"data2\": [\n    -0.14588750183600108,\n    20.197945942677833,\n    0.5485453260942901,\n    -589.3284610518896\n  ]\n}\n```\n\n### Save config\nSave generated image config. It contains string formats of functions which is also human readable.\n\n```pycon\n\u003e\u003e\u003e g.save_config(file_adr=\"config.json\")\n{'status': True, 'message': 'FILE_PATH'}\n```\nSo you can load it into a `GenerativeImage` instance later by\n\n```pycon\n\u003e\u003e\u003e g = GenerativeImage(config=open('config.json', 'r'))\n```\n\nConfig structure:\n\n```JSON\n{\n    \"matplotlib_version\": \"3.0.3\",\n    \"generate\": {\n        \"seed\": 379184,\n        \"stop\": 3.141592653589793,\n        \"step\": 0.01,\n        \"start\": -3.141592653589793\n    },\n    \"f2\": \"random.uniform(-1,1)*math.cos(x*(y**3))+random.uniform(-1,1)*math.ceil(y-x)\",\n    \"f1\": \"random.uniform(-1,1)*math.ceil(y)-random.uniform(-1,1)*y**2+random.uniform(-1,1)*abs(y-x)\",\n    \"plot\": {\n        \"color\": \"snow\",\n        \"bgcolor\": \"black\",\n        \"projection\": \"polar\",\n        \"spot_size\": 0.01\n    }\n}\n```\n\n### Command Line Interface (CLI)\nYou can easily create art directly from the command line with Samila CLI. Here's an example command to get started:\n```bash\nsamila --color=red --bgcolor=black --rotation=30 --projection=polar --mode f2_vs_f1 --save-image test.png\n```\n\nIn this example:\n- `--color=red`: Sets the primary color of the art.\n- `--bgcolor=black`: Sets the background color.\n- `--rotation=30`: Rotates the artwork by 30 degrees.\n- `--projection=polar`: Use polar projection for plotting.\n- `--mode=f2_vs_f1`: Sets the generation mode\n- `--save-image=test.png`: Saves the generated image as test.png.\n\nFor more options and detailed usage, run the following command to access help:\n```bash\nsamila --help\n```\nThis will provide additional information on all available parameters and how to customize your artwork further.\n\n## Mathematical details\nSamila is simply a transformation between a square-shaped space from the Cartesian coordinate system to any arbitrary coordination like [Polar coordinate system](https://en.wikipedia.org/wiki/Polar_coordinate_system).\n\n### Example\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/mathematical_details/transformation.png\"\u003e\n\nWe have set of points in the first space (left square) which can be defined as follow:\n\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/mathematical_details/S1.jpg\"\u003e\n\nAnd below functions are used for transformation:\n\n```pycon\n\u003e\u003e\u003e def f1(x, y):\n    result = random.uniform(-1,1) * x**2 - math.sin(y**2) + abs(y-x)\n    return result\n\u003e\u003e\u003e def f2(x, y):\n    result = random.uniform(-1,1) * y**3 - math.cos(x**2) + 2*x\n    return result\n```\n\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/mathematical_details/S2.jpg\"\u003e\n\nhere we use `Projection.POLAR` so later space will be the polar space and we have:\n\n```pycon\n\u003e\u003e\u003e g = GenerativeImage(f1, f2)\n\u003e\u003e\u003e g.generate(seed=10)\n\u003e\u003e\u003e g.plot(projection=Projection.POLAR)\n```\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/mathematical_details/S2_.jpg\"\u003e\n\n\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/images/6.png\"\u003e\n\n## Try Samila in your browser!\nSamila can be used online in interactive Jupyter Notebooks via the Binder or Colab services!\n\nTry it out now!\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/sepandhaghighi/samila/master)\n\n[![Google Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/sepandhaghighi/samila/blob/master)\n\nℹ️ Check `examples` folder \n\n## Issues \u0026 bug reports\t\t\t\n\nJust fill an issue and describe it. We'll check it ASAP! or send an email to [info@samila.site](mailto:info@samila.site \"info@samila.site\"). \n\n- Please complete the issue template\n \nYou can also join our discord server\n\n\u003ca href=\"https://discord.com/invite/94bz5QGZWb\"\u003e\n  \u003cimg src=\"https://img.shields.io/discord/900055829225562162.svg?style=for-the-badge\" alt=\"Discord Channel\"\u003e\n\u003c/a\u003e\n\n\n## Social media\n\n1. [Instagram](https://www.instagram.com/samila_arts)\n2. [Telegram](https://t.me/samila_arts)\n3. [Twitter](https://twitter.com/samila_arts)\n4. [Discord](https://discord.com/invite/94bz5QGZWb)\n\n\n## References\t\t\t\n\n\u003cblockquote\u003e1- Schönlieb, Carola-Bibiane, and Franz Schubert. \"Random simulations for generative art construction–some examples.\" Journal of Mathematics and the Arts 7.1 (2013): 29-39.\u003c/blockquote\u003e\n\n\u003cblockquote\u003e2- \u003ca href=\"https://github.com/cutterkom/generativeart\"\u003eCreate Generative Art with R\u003c/a\u003e\u003c/blockquote\u003e\n\n\u003cblockquote\u003e3- \u003ca href=\"https://nft.storage/\"\u003eNFT.storage : Free decentralized storage and bandwidth for NFTs\u003c/a\u003e\u003c/blockquote\u003e\n\n## Acknowledgments\n\nThis project was funded through the **Next Step Microgrant**, a program established by [Protocol Labs](https://protocol.ai/).\n\n## Show your support\n\t\t\t\t\t\t\t\t\n\u003ch3\u003eStar this repo\u003c/h3\u003e\t\t\t\t\t\n\nGive a ⭐️ if this project helped you!\n\n\u003ch3\u003eDonate to our project\u003c/h3\u003e\t\n\nIf you do like our project and we hope that you do, can you please support us? Our project is not and is never going to be working for profit. We need the money just so we can continue doing what we do ;-) .\t\t\t\n\n\u003ca href=\"http://www.samila.site/donate.html\" target=\"_blank\"\u003e\u003cimg src=\"https://github.com/sepandhaghighi/samila/raw/master/otherfiles/donate-button.png\" height=\"90px\" width=\"270px\" alt=\"Samila Donation\"\u003e\u003c/a\u003e\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepandhaghighi%2Fsamila","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsepandhaghighi%2Fsamila","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsepandhaghighi%2Fsamila/lists"}