Turn images into art with Python.
pip install pyfreeformRequires Python 3.10+.
from pyfreeform import Scene
scene = Scene.from_image("photo.jpg", grid_size=40)
for cell in scene.grid:
cell.add_dot(radius=cell.brightness * 0.4, color=cell.color)
scene.save("artwork.svg")That's it — four lines from photo to SVG.
Color dots |
Filled Lissajous curves |
Flowing curves |
ASCII art |
Connected networks |
Multi-layer compositions |
Dots, lines, curves, polygons, text, ellipses, custom paths — all positioned relative to a grid of cells. Sizes are fractions of the cell, so your art scales to any resolution.
Everything you need is in the docs:
- Getting Started — install and create your first artwork
- Guide — every feature, explained visually
- Recipes — portraits, patterns, typography, networks
- API Surface — complete reference
MIT — see LICENSE for details.
Built on NumPy (BSD-3-Clause) and Pillow (MIT-CMU). See LICENSES/third_party/ for full texts.