https://github.com/francoyudica/shapeify
Recreate your images with simple shapes
https://github.com/francoyudica/shapeify
compute-shader computer-graphics genetic-algorithm godot image-generation image-processing local-search-algoirthms
Last synced: 3 months ago
JSON representation
Recreate your images with simple shapes
- Host: GitHub
- URL: https://github.com/francoyudica/shapeify
- Owner: FrancoYudica
- License: mit
- Created: 2024-11-18T13:36:43.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-03-15T14:13:30.000Z (3 months ago)
- Last Synced: 2025-04-07T05:08:38.553Z (3 months ago)
- Topics: compute-shader, computer-graphics, genetic-algorithm, godot, image-generation, image-processing, local-search-algoirthms
- Language: GDScript
- Homepage:
- Size: 103 MB
- Stars: 112
- Watchers: 2
- Forks: 8
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://youtu.be/ovkoXVkdLto "Watch on YouTube")
📺 _Click the image to watch the video on YouTube!_
**Shapeify** is a desktop application that recreates any image using smaller shapes, giving it a unique and stylized look.
## Features
Shapeify offers a powerful yet easy-to-use interface, allowing full control over the image reconstruction process with a wide range of tweakable parameters. Key features include:
- Reconstruct any image using a selected set of smaller images as building blocks.
- Save your artwork in multiple formats, including PNG, JPG, WEBP, and JSON, for integration into custom projects.
- Load various image formats, including PNG, JPG, SVG, JPEG, BMP, and WEBP.
- Animate your creations with Shapeify’s integrated animator.
- Optimize results effortlessly with predefined modes: SUPER_FAST, FAST, PERFORMANCE, and QUALITY.
- Access tested default image collections for quick and effortless artwork generation.
- Customize every aspect of the algorithm with a wide range of adjustable parameters.
- Guide the algorithm intelligently using an automatically generated weight texture, prioritizing key areas of the image.
- User input to provide a mask for guiding the algorithm.## Installation
Shapeify is available through the following options:
- [Itch.io](https://franco-yudica.itch.io/shapeify)
- The latest [GitHub release](https://github.com/FrancoYudica/Shapeify/releases)
- Building the project locally using [Godot 4.3](https://godotengine.org/download).## Settings
Shapeify provides an extensive range of configurable settings, allowing users to adjust the attributes of its algorithms through a dedicated interface. Additionally, pre-tested presets are available to produce high-quality results, offering a practical option for users who may not have prior knowledge of the underlying algorithms.

## Animator
After the image is generated, you can apply animations, which are built into Shapeify by default. These function similarly to vertex shaders, allowing you to create animations like the following:
![]()
![]()
![]()
Note that animations are exported as a sequence of images, therefore using a tool such as [ffmpeg](https://www.ffmpeg.org/) is required in order to generate a video or gif.
## Post processing
Shapeify includes a set of post-processing effects that are applied after the shapes are generated, meaning they do not interfere with the core algorithm.
Currently, the available post-processing effects include:
- Hue Shift
- Value Shift
- Saturation Shift
- RGB Shift
- CIELAB ShiftBelow are some examples showcasing the possibilities of the post-processing pipeline, achieved by combining multiple effects:
![]()
![]()
![]()
![]()
![]()
## Contributing
Contributions of all kinds are welcome! If you’re interested in contributing to this project, please take a moment to review [`CONTRIBUTING.md`](https://github.com/FrancoYudica/Shapeify/blob/main/CONTRIBUTING.md) file.
## Whitepaper
A [whitepaper](https://github.com/FrancoYudica/Shapeify/blob/v1.0.0/whitepaper_esp.md) was written for version _v1.0.0_, detailing the algorithms used in the project in spanish. While it's a bit outdated, it may be updated in the future.
## Gallery
Here are some examples demonstrating Shapeify's versatility, using different shapes to create a diverse range of artistic styles:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()