{"id":19499876,"url":"https://github.com/valeriyvan/swift-geometrize","last_synced_at":"2025-04-25T22:34:47.912Z","repository":{"id":60298082,"uuid":"542023353","full_name":"valeriyvan/swift-geometrize","owner":"valeriyvan","description":"Swift package for recreating images as geometric primitives in form of SVG files","archived":false,"fork":false,"pushed_at":"2024-09-02T14:38:09.000Z","size":22793,"stargazers_count":17,"open_issues_count":18,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-30T17:20:28.694Z","etag":null,"topics":["art","auto-tracing","geometrizing","image-generation","image-processing","svg","svg-images","swift","vector","vector-graphics","vectorization","vectorizer"],"latest_commit_sha":null,"homepage":"https://geometrize.w7software.com","language":"Swift","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/valeriyvan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["valeriyvan"]}},"created_at":"2022-09-27T10:16:35.000Z","updated_at":"2024-09-06T09:39:46.000Z","dependencies_parsed_at":"2023-12-29T22:33:40.991Z","dependency_job_id":"1361e6cd-add0-4d67-9e40-ce86d83037aa","html_url":"https://github.com/valeriyvan/swift-geometrize","commit_stats":{"total_commits":224,"total_committers":1,"mean_commits":224.0,"dds":0.0,"last_synced_commit":"8537becd3a20102720052040ae5ba2b94f19ac1e"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valeriyvan%2Fswift-geometrize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valeriyvan%2Fswift-geometrize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valeriyvan%2Fswift-geometrize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valeriyvan%2Fswift-geometrize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valeriyvan","download_url":"https://codeload.github.com/valeriyvan/swift-geometrize/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224019605,"owners_count":17242177,"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","auto-tracing","geometrizing","image-generation","image-processing","svg","svg-images","swift","vector","vector-graphics","vectorization","vectorizer"],"created_at":"2024-11-10T22:06:33.943Z","updated_at":"2024-11-10T22:06:36.162Z","avatar_url":"https://github.com/valeriyvan.png","language":"Swift","funding_links":["https://github.com/sponsors/valeriyvan","https://www.buymeacoffee.com/valeriyvan"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\" style=\"padding-bottom:50px;\"\u003e\n\u003ca href=\"https://developer.apple.com/swift\"\u003e\u003cimg src=\"https://img.shields.io/badge/Swift-5.x-orange.svg?style=flat\"/\u003e\u003c/a\u003e \n\u003ca href=\"https://github.com/apple/swift-package-manager\"\u003e\u003cimg src=\"https://img.shields.io/badge/SPM-compatible-brightgreen.svg\"/\u003e\u003c/a\u003e \n\u003ca href=\"https://github.com/valeriyvan/swift-geometrize\"\u003e\u003cimg src=\"https://img.shields.io/badge/Platforms-macOS%20%7C%20iOS%20%7C%20Linux-lightgrey\"/\u003e\u003c/a\u003e \n\u003ca href=\"https://github.com/valeriyvan/swift-geometrize/actions/workflows/build-run-tests-macos.yml\"\u003e\u003cimg src=\"https://github.com/valeriyvan/swift-geometrize/actions/workflows/build-run-tests-macos.yml/badge.svg\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/valeriyvan/swift-geometrize/actions/workflows/build-run-tests-ubuntu.yml\"\u003e\u003cimg src=\"https://github.com/valeriyvan/swift-geometrize/actions/workflows/build-run-tests-ubuntu.yml/badge.svg\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n![Geometrize logo fulltext](/images/geometrize-logo.svg)\n\n## swift-geometrize\n\nSwift package for recreating images as geometric primitives. It began as a Swift port of the [geometrize-lib C++ library](https://github.com/Tw1ddle/geometrize-lib), but it has since evolved in a distinct direction. You can give it a try in [web version](https://geometrize.w7software.com).\n\n## Usage\n\nLook [`geometrize-cli` target](https://github.com/valeriyvan/swift-geometrize/blob/main/Sources/geometrize-cli/main.swift) how package could be used to geometrize images.\n\n## Shape Comparison\n\nThe matrix below shows typical results for a combination of circles, triangles, rotated rectangles, rotated ellipses and all supported shapes at 50, 200 and 500 total shapes:\n\n|                    | 50 Shapes     | 200 Shapes    | 500 Shapes   |\n| ------------------ | ------------- | ------------- | ------------ |\n| Circles            | ![Chicken 50 Circles](/images/chicken-circles-50.svg) | ![Chicken 200 Circles](/images/chicken-circles-200.svg) | ![Chicken 500 Circles](/images/chicken-circles-500.svg) |\n| Triangles          |![Chicken 50 Triangles](/images/chicken-triangles-50.svg) | ![Chicken 200 Triangles](/images/chicken-triangles-200.svg) | ![Chicken 500 Triangles](/images/chicken-triangles-500.svg) |\n| Rotated Rectangles | ![Chicken 50 RotatedRectangles](/images/chicken-rotated-rectangles-50.svg) | ![Chicken 200 RotatedRectangles](/images/chicken-rotated-rectangles-200.svg) | ![Chicken 500 RotatedRectangles](/images/chicken-rotated-rectangles-500.svg) |\n| Rotated Ellipses   | ![Chicken 50 RotatedEllipses](/images/chicken-rotated-ellipses-50.svg) | ![Chicken 200 RotatedEllipses](/images/chicken-rotated-ellipses-200.svg) |![Chicken 500 RotatedEllipses](/images/chicken-rotated-ellipses-500.svg) |\n| All Shapes         | ![Chicken 50 All Shapes](/images/chicken-all-shapes-50.svg) | ![Chicken 200 All Shapes](/images/chicken-all-shapes-200.svg) | ![Chicken 500 All Shapes](/images/chicken-all-shapes-500.svg) |\n\n## Geometrizebot\n\nYou could try swift-geometrize in action in Telegram bot [Geometrizebot](https://t.me/geometrizebot) which is also written in Swift and [open-sourced](https://github.com/valeriyvan/geometrizebot).\n\n## TODO:\n* ✅ add stroke width for line, polyline and bezier curve;\n* ✅ multithreading;\n* add polygon as shape type;\n* filling shapes with gradient;\n* solve dealing with randomness in tests;\n* geometrize with predefined or user supplied brush strokes;\n* geometrize with characters (on output will be something which could be called ascii art or art produced by [James Cook Type Writer Artist](https://jamescookartwork.com));\n* photo mosaic;\n* [string art](https://en.wikipedia.org/wiki/String_art): [1](https://www.youtube.com/watch?v=WGccIFf6MF8), [2](https://www.youtube.com/watch?v=dBlSmg5T13M), [3](https://sites.google.com/view/virtuallypassed/home?authuser=0), [4](https://www.youtube.com/watch?v=M1gXuKFspgY);\n* [tape art](https://www.tapeartacademy.com): [1](/images/Tape-that-1.jpeg), [2](/images/Tape-that-2.jpeg), [3](/images/Tape-that-3.jpeg), [4](/images/Tape-that-4.jpeg), [5](/images/Tape-that-5.jpeg), [6](https://www.tapethatcollective.com).\n\n## License\n\nLicensed under MIT license.\n\n\u003ca href=\"https://www.buymeacoffee.com/valeriyvan\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 60px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaleriyvan%2Fswift-geometrize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaleriyvan%2Fswift-geometrize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaleriyvan%2Fswift-geometrize/lists"}