Geometrize Haxe is a Haxe library for recreating images with geometric primitives. Run the demo in your browser.
Geometrize Haxe is part of Geometrize, and is based on the primitive Go library.
- Recreate images as geometric primitives - rectangles, rotated rectangles, triangles, circles, ellipses, rotated ellipses and lines are supported.
- Export geometrized images to SVG, or generated shape data to JSON.
- All Haxe targets are supported.
The matrix shows typical results for circles, triangles, rotated rectangles, rotated ellipses and all supported shapes at 50, 200 and 500 total shapes:
- | 50 Shapes | 200 Shapes | 500 Shapes |
---|---|---|---|
Circles | |||
Triangles | |||
Rotated Rectangles | |||
Rotated Ellipses | |||
All Shapes |
A user provides a target image, and the algorithm finds shapes to approximate that image. To identify a good shape, the algorithm generates a large number of random candidate shapes, repeatedly improving the fit of each using a hillclimbing optimization approach, eventually choosing the best-fitting shape. The shapes are added one by one.
Get the Haxe library from GitHub or through haxelib.
- Instantiate an
ImageRunner
, passing it aBitmap
target image and a starting backgroundRgba
color. - Generate shapes by repeatedly calling
runner.step(options)
, passing in yourImageRunnerOptions
. - Export the results using the
export
methods onSvgExporter
andShapeJsonExporter
.
Refer to the library documentation. Also see the Geometrize Haxe web demo and code, or this HaxeFlixel example and code.
- See the Geometrize resources page.
Geometrized public domain artwork and photos:
For more examples, see the Geometrize gallery.