{"id":20898798,"url":"https://github.com/alyyousuf7/weaver","last_synced_at":"2025-12-27T05:34:45.762Z","repository":{"id":92278658,"uuid":"79243407","full_name":"alyyousuf7/Weaver","owner":"alyyousuf7","description":"Weaving algorithm based on work by Petros Vrellis","archived":false,"fork":false,"pushed_at":"2020-02-25T14:25:08.000Z","size":1715,"stargazers_count":114,"open_issues_count":5,"forks_count":28,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-01-19T12:51:46.330Z","etag":null,"topics":["algorithm","art","circle-frame","petros-vrellis"],"latest_commit_sha":null,"homepage":null,"language":"Processing","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/alyyousuf7.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}},"created_at":"2017-01-17T15:47:40.000Z","updated_at":"2024-12-19T01:44:22.000Z","dependencies_parsed_at":"2023-06-08T06:30:13.073Z","dependency_job_id":null,"html_url":"https://github.com/alyyousuf7/Weaver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alyyousuf7%2FWeaver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alyyousuf7%2FWeaver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alyyousuf7%2FWeaver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alyyousuf7%2FWeaver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alyyousuf7","download_url":"https://codeload.github.com/alyyousuf7/Weaver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243285626,"owners_count":20266849,"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":["algorithm","art","circle-frame","petros-vrellis"],"created_at":"2024-11-18T11:12:14.418Z","updated_at":"2025-12-27T05:34:45.706Z","avatar_url":"https://github.com/alyyousuf7.png","language":"Processing","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weaver\nThe idea is to take an image and come up with data to weave it using a single thread on a circular rim.\n\nBasically this: *A picture is worth a thousand words.*\n![Work by Petros Vrellis](https://user-images.githubusercontent.com/14050128/65774967-b74a9200-e158-11e9-8949-f77d1162b44e.png)\n\n## Actual result\n| Output | Input |\n|-------|--------|\n| ![Output](https://user-images.githubusercontent.com/14050128/74280548-8ef5b580-4d3e-11ea-911e-317ddced9812.jpg) | ![Input](https://user-images.githubusercontent.com/14050128/74280649-c4020800-4d3e-11ea-9fd9-e638893d009b.jpg) |\n\nNo. of pins: 254\n\nNo. of lines: 4000 (Approx. 1.75 km thread)\n\nCredit: [@larryisgood](https://www.instagram.com/larryisgood/)\n\n## Screenshots\n### Multiple colors\n![Color Circle Frame](https://user-images.githubusercontent.com/14050128/65891086-69829380-e3bd-11e9-9364-e8dadb31fef2.png)\n\n### Grayscale\n![Circle Frame](https://user-images.githubusercontent.com/14050128/65774788-663a9e00-e158-11e9-9f45-405036d38be7.png)\n![Square Frame](https://user-images.githubusercontent.com/14050128/65774834-7ce0f500-e158-11e9-941d-2204f92e5e52.png)\n\n## Basic algorithm\nThis piece of software requires 3 inputs from the user:\n- A picture to be drawn\n- Total points/nails on a circular rim, `P`\n- Total lines to be drawn, `L`\n\nAll three inputs are crucial on how the final result is going to look. The program does the following:\n1. Converts the color picture to grayscale.\n2. The picture is then cropped to a square.\n3. Places a virtual circular rim with `P` equidistant points on it.\n4. Takes the first point (`p = 0`) as the starting point.\n5. Finds the next point `p'` to draw a line from point `p` by finding the highest intensity line.\n   - The intensity of a line is calculated by adding up the all the pixel values of a line from `p` to `p'`.\n6. A new line is drawn from `p` to `p'` on the circular rim.\n7. The original image is modified such that the pixels under the line from `p` to `p'` are lightened* so that the same line is not drawn next time.\n8. `p'` is set as the new starting point `p` and then the steps from `5` is repeated until `L` lines are drawn.\n\n\\* The amount by which a line should be lightened can also be configured.\n\n## How to run?\n- You'll need to download [Processing](https://processing.org/download/). It's available for Windows / Mac / Linux.\n- Open up `Weaver.pde` using Processing.\n- Hit `Run` or press `CTRL+R` to execute the application.\n- Click anywhere on the application to start processing.\n- Click again to pause.\n- After the process is complete, a text file will be generated. This file contains the positions of each point where the thread should be knitted next.\n\n**Note:** Those of you who are downloading the repository as *.zip* file, you must rename the folder `Weaver-master` to `Weaver` before opening on Processing.\n\n## Configuration\nThe `setup()` function in `Weaver.pde` chooses one of the example configurations. Check the `example.pde` to modify the configuration of each example.\n\n## Credits\nKudos to [i-make-robots](https://github.com/i-make-robots/) for originally writting [this algorithm](https://github.com/i-make-robots/weaving_algorithm).\n\nI changed it a little bit to clean up the code, improve GUI and add some extra features.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falyyousuf7%2Fweaver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falyyousuf7%2Fweaver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falyyousuf7%2Fweaver/lists"}