{"id":20240773,"url":"https://github.com/tashian/multiverse","last_synced_at":"2025-09-04T06:43:06.759Z","repository":{"id":44221575,"uuid":"135343575","full_name":"tashian/multiverse","owner":"tashian","description":"Adobe Photoshop scripts for making generative art","archived":false,"fork":false,"pushed_at":"2023-04-25T01:53:49.000Z","size":136,"stargazers_count":23,"open_issues_count":3,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-08-30T21:01:01.112Z","etag":null,"topics":["art","digital-art","extendscript","photoshop","rhizome"],"latest_commit_sha":null,"homepage":"http://rhizome.org/editorial/2018/may/23/seven-on-seven-2018-the-10th-edition/","language":"JavaScript","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/tashian.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":"2018-05-29T19:29:50.000Z","updated_at":"2023-09-07T17:40:43.000Z","dependencies_parsed_at":"2024-11-14T08:49:44.223Z","dependency_job_id":"a09f5fbd-24bf-41cc-9d0f-3c01b5a29f85","html_url":"https://github.com/tashian/multiverse","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tashian/multiverse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tashian%2Fmultiverse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tashian%2Fmultiverse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tashian%2Fmultiverse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tashian%2Fmultiverse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tashian","download_url":"https://codeload.github.com/tashian/multiverse/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tashian%2Fmultiverse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273567359,"owners_count":25128630,"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","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","digital-art","extendscript","photoshop","rhizome"],"created_at":"2024-11-14T08:49:37.570Z","updated_at":"2025-09-04T06:43:06.694Z","avatar_url":"https://github.com/tashian.png","language":"JavaScript","readme":"# multiverse: Generative art with Adobe Photoshop\n\nMultiverse is a collection of Adobe Photoshop scripts for making generative art,\ncreated by Carl Tashian and Petra Cortright for the 2018 edition of Rhizome's\n[Seven on Seven](https://rhizome.org/sevenonseven/) event at the New Museum\nin NYC.\n\n## Usage\n\nIf you just want to use this project in Photoshop, simply download the\ncontents of this repository. Then copy all the `*.jsx` files from the `build`\ndirectory into Photoshop's `Scripts` folder (under `Presets`) and restart\nPhotoshop. The scripts will appear in Photoshop's File \u0026rarr; Scripts menu\n\nThe scripts that run forever can be cancelled by hitting `Esc`.\n\nHere's a brief description of the individual scripts:\n\n### multiverse\n\nThis is a script that runs forever, and it combines a lot of the functionality\nof the other scripts listed here, to create a generative art piece.\n\n#### Requirements\n\nYou will need three layer groups (sets) in your document, with the\nfollowing names:\n\n`remix` — the top layers in the document. These will be shown/hidden quite\nfrequently.\n\n`midfield` — middle layers (possibly with alpha) that we don't want to have\nfloating to the top because they're too imposing\n\n`background` — these layers should cover the entire canvas and, importantly,\nthese layers have no alpha. They could be mixed together, hidden or shown at\nvarious opacities around 100%. Be sure they're _not_ marked as background\nlayers.\n\nLocked and background layers will not be touched. The script will never move\nlayers between layer sets, only to the top of the set they're in.\n\n#### How it works\n\nIt starts by fading 80% of the remix and midfield layers.\n\nThen, it alternates between two modes: **regular mode** and **scene change** mode.\n\nIn **regular mode**, we shuffle around the remix and midfield layers and adjust\ntheir opacity. Remix layers pop up on top or fade in. Midfield layers only\nfade in and out.\n\nScene change mode is a special mode that happens every 5-10 minutes.\n\nIn **scene change mode**, we fade out and hide most of the remix and midfield\nlayers. Then we bring the lowest background layer to the top of the background\nlayer set and fade it in.\n\nOnce that's done, we go back to regular mode and start building up the top of\nthe canvas again.\n\n#### Adjusting the settings\n\nThere's a lot you can change in the script that will affect its behavior. (see Development, below)\n\nSome things that will affect the experience the most:\n\n* how often remix layers pop to the surface vs. fade in\n* the final opacity of each layer when it fades in\n* how many layers we attempt to operate on at a time (more layers in play -\u003e script is slower, fewer -\u003e script is faster)\n* how many steps of opacity to move through while fading in or out\n\nIt's important to note that the slowest operations are refreshing the\ncanvas (calling `refresh()`, which happens after every tick), and adjusting the\nopacity of a layer. So, you can play with how many simultaneous changes you make\nbetween refreshes to achieve your desired pace. You can also manually insert\ncalls to `$.sleep()` if you want to slow the pace.\n\n### assign\\_layer\\_names\n\nThis script prompts you to choose any text file and will assign the names of\nlayers in the active document randomly, using lines from the file.\n\nThis is useful if you use a lot of layers and want names that are less generic\nthan \"Layer 23.\"\n\nAs an example, we've included a list of rose variatals in\n[roses.txt](https://github.com/tashian/multiverse/blob/master/roses.txt).\n\n### random\\_layer\\_visibility\n\nGo through the active document and randomly turn on and off layers.\n\n### random\\_opacity\n\nRandomly set opacity for all layers in the active document.\n\n### random\\_opacity\\_and\\_visibility\n\nA combination of the above two scripts!\n\n### random\\_motion\\_blur\n\nRandomly apply some motion blur to all layers.\n\n### shuffle\\_unlocked\\_layers\n\nLike Spotify for a Photoshop document, this shuffles all unlocked layers in the active\ndocument. This will not move layers outside of layer sets, but will shuffle\nlayers within them.\n\n## Development\n\nYou will need:\n\n* [node.js](https://nodejs.org/en/)\n\nInstall the dependencies:\n\n    npm install\n\nBuild the scripts:\n\n    npm run build\n\nLint the scripts:\n\n    npm run lint\n\n## Thank you\n\nThank you to [Rhizome](http://rhizome.org/) for supporting the creation of this project,\nand for being a champion of digital art and culture.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftashian%2Fmultiverse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftashian%2Fmultiverse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftashian%2Fmultiverse/lists"}