{"id":49453563,"url":"https://github.com/sureskumar/Looper","last_synced_at":"2026-05-16T16:01:40.997Z","repository":{"id":201410547,"uuid":"86965672","full_name":"sureskumar/Looper","owner":"sureskumar","description":"Looper is a sketch plugin that helps automate duplication of groups and layers. One can control properties like Rotate, Scale and Opacity while duplicating. This powerful combination enables artists and designers to create interesting geometric and organic patterns.","archived":false,"fork":false,"pushed_at":"2024-05-03T14:47:00.000Z","size":14655,"stargazers_count":497,"open_issues_count":7,"forks_count":19,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-05-25T03:05:30.885Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.sureskumar.com/looper/","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/sureskumar.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,"zenodo":null}},"created_at":"2017-04-02T05:30:56.000Z","updated_at":"2025-05-06T07:20:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"65f0ec61-d07a-4bbf-912e-856d7d6aea01","html_url":"https://github.com/sureskumar/Looper","commit_stats":null,"previous_names":["sureskumar/looper"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/sureskumar/Looper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureskumar%2FLooper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureskumar%2FLooper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureskumar%2FLooper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureskumar%2FLooper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sureskumar","download_url":"https://codeload.github.com/sureskumar/Looper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sureskumar%2FLooper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33109461,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-04-30T04:01:03.700Z","updated_at":"2026-05-16T16:01:40.991Z","avatar_url":"https://github.com/sureskumar.png","language":"JavaScript","funding_links":[],"categories":["📦 Legacy \u0026 Inactive Projects"],"sub_categories":[],"readme":"# Looper v3.1 `⌘ + L`\n\nLooper is a sketch plugin that helps automate duplication of groups and layers. One can control properties like Rotate, Scale and Opacity while duplicating. This powerful combination enables artists and designers to create interesting geometric and organic patterns.\n\n\u003ca target=\"_blank\" href=\"https://www.youtube.com/channel/UCzm9iVAvS9rVn5ZyZSbrIVQ/videos\"\u003e\n\t\u003cimg target=\"_blank\" src=\"https://github.com/sureskumar/Looper/raw/master/assets/looper.gif\"\u003e\n\u003c/a\u003e\n\n\n## Installation\n\n#### Recommended\n* Install via Sketch Runner, [Sketchpacks](https://sketchpacks.com/sureskumar/looper/install), or Sketch Toolbox by searching for Looper.\n\n#### Old-Fashioned\n\nMake sure you have the latest version of Sketch installed. **(Sketch 40+)**\n\n1. [Download the ZIP file of this repository](https://github.com/sureskumar/Looper/releases/download/v3.1/Looper.sketchplugin.zip)\n2. Double click on `Looper.sketchplugin`\n\n\n## Tutorials\n\n\u003ca target=\"_blank\" href=\"https://www.youtube.com/channel/UCzm9iVAvS9rVn5ZyZSbrIVQ/videos\"\u003eTutorials and Demo videos in Youtube\u003c/a\u003e\n\n\u003ca target=\"_blank\" href=\"https://www.toptal.com/designers/sketch/amazing-illustrations-with-sketch-and-looper#comment-3446034970\"\u003eExcellent Tutorial by Wojciech Dobry, Toptal (English)\u003c/a\u003e\n\n\u003ca target=\"_blank\" href=\"https://www.jianshu.com/p/094d3e742de3\"\u003eTutorial by Jianshu (Chinese)\u003c/a\u003e\n\n![Looper banner](https://github.com/sureskumar/Looper/raw/master/assets/banner.jpg)\n## Features\n\n### Duplication count\nDuplicate selected group or layer by providing the duplication count or Looper can automatically calculate the count based on the rotation angle to form a complete circle.\n\n### Scale\nSelected group or layer can be scaled by absolute value (px), proportional value (%) or at random. \n\n### Opacity\nOpacity of selected group or layer can be set to update at random, increase from 0 to 100 or decrease from 100 to 0.\n\n### Rotate\nRotate selected group or layer by providing a specific rotation angle or Looper can automatically calculate the angle required based on the duplication count to form a complete circle.\n\nRotation angle can be incremented in a linear fashion, randomly or can be set to increment sinusoidally.\n\n### Move\nSelected group or layer can be moved Horizontally, Vertically and Diagonally with a set increment value. Duplicated items can also be distributed randomly within a given dimension (width \u0026 height)\n\n### Form a grid\nDuplicate the selected group or layer to form a grid. Number of columns, rows, horizontal margin and vertical margin can be manipulated. You can also alter other properties like opacity, rotate and scale to the grid elements.\n\n#### \n\n\u003ca target=\"_blank\" href=\"https://www.youtube.com/channel/UCzm9iVAvS9rVn5ZyZSbrIVQ/videos\"\u003e\n\t\u003cimg target=\"_blank\" src=\"https://github.com/sureskumar/Looper/raw/master/assets/looper_2.gif\"\u003e\n\u003c/a\u003e\n\n#### \n\n\u003ca target=\"_blank\" href=\"https://www.youtube.com/channel/UCzm9iVAvS9rVn5ZyZSbrIVQ\"\u003eDemo videos\u003c/a\u003e\n\n## Want to say thanks? Share your work!\n#### Please share what you create in one of the channels below. Cheers!\n* Twitter: #builtwithlooper and/or @sketchlooper\n* [Email](mailto:sures.srinivasan@gmail.com)\n* [Facebook page](https://www.facebook.com/loopersketch/)\n\n## Examples\n![Looper sample](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_16_exp.jpg)\n\n#### Rotate (linear) \n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_18.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_25.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_10.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_26.jpg)\n\n#### Rotate (random)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_04.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_03.jpg)\n\n#### Rotate (linear) + Opacity (random)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_11.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_31.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_13.jpg)\n\n#### Rotate (linear) + Scale (linear)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_22.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_34.jpg)\n\n#### Rotate (linear) + Scale (sinusoidal)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_06.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_05.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_12.jpg)\n\n#### Rotate (random) + Scale (random)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_19.jpg)\n\n#### Rotate (sinusoidal) + Scale (sinusoidal)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_20.jpg)\n\n#### Rotate (sinusoidal) + Scale (sinusoidal) + Opacity (random)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_14.jpg)\n\n#### Rotate (sinusoidal) + Scale (linear) + Opacity (Fade to 0)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_16.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_23.jpg)\n\n#### Rotate (linear) + Scale (linear) + Opacity (Fade to 0)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_01.jpg)\n\n#### Rotate (random) + Scale (random) + Opacity (random)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_29.jpg)\n\n#### Rotate (linear) + Scale (sinusoidal) + Opacity (random)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_33.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_27.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_32.jpg)\n\n#### Rotate (linear) + Move (horizontal)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_07.jpg)\n\n#### Rotate (linear) + Move (vertical)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_08.jpg)\n\n#### Rotate (linear) + Move (diagonal)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_09.jpg)\n\n#### Rotate (random) + Move (random) + Opacity (random)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_17.jpg)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_24.jpg)\n\n#### Move (vertical) + Opacity (Fade to 0)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_15.jpg)\n\n#### Move (vertical) + Scale (linear) + Opacity (Fade to 0)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_21.jpg)\n\n#### Move (horizontal + vertical)\n![Looper example](https://github.com/sureskumar/Looper/raw/master/assets/looper_example_28.jpg)\n\n\n## Thanks\n\n* [Harish Sivaramakrishnan](https://github.com/harish-io)\n* [Shailesh Hingole](https://github.com/hingole)\n* [Siddhartha Gudipati](https://github.com/websiddu)\n\n\n## Contact me\n\nEmail sures.srinivasan@gmail.com\n\nFeel free to contact me for any suggestions or critique.\n\n## Links\n\n[Looper website](http://looper.sureskumar.com/) | [My portfolio](http://www.sureskumar.com) | [Twitter](https://twitter.com/sureskumar)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsureskumar%2FLooper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsureskumar%2FLooper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsureskumar%2FLooper/lists"}