Skip to main content

A minimalist, art-focused Python drawing library with object-oriented design

Project description

PyFreeform logo

PyFreeform

Turn images and ideas into art with Python.

Mona Lisa rendered as dot art

Install

pip install pyfreeform

Requires Python 3.10+.

Quick Start

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.

What Can You Make?


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.

Learn More

Everything you need is in the docs:

License

GPL-3.0 — see LICENSE for details.

Acknowledgments

Built on NumPy (BSD-3-Clause) and Pillow (MIT-CMU). See LICENSES/third_party/ for full texts.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfreeform-0.6.3.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyfreeform-0.6.3-py3-none-any.whl (185.8 kB view details)

Uploaded Python 3

File details

Details for the file pyfreeform-0.6.3.tar.gz.

File metadata

  • Download URL: pyfreeform-0.6.3.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfreeform-0.6.3.tar.gz
Algorithm Hash digest
SHA256 9879b72e43c7b188b3a6c8497b965c6476a3e9da8ca2ed08827821e694ac167d
MD5 0c034bbee4420668123fc7ca88c2f8ee
BLAKE2b-256 48b374d0d97351e982a1a9d6216fedb8986073fe6bf8c93f2e0afa990a274027

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfreeform-0.6.3.tar.gz:

Publisher: publish.yml on MatheweB/pyfreeform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyfreeform-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: pyfreeform-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 185.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyfreeform-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ba621ef24ba7d4ca2fd8ba0d2b98148f5324538aea8da89a6c6ca6ed8cb4181e
MD5 fa8d18e8e9f894abc93e239d084b060c
BLAKE2b-256 110c9b16d419792a6a6d19a48acd53f3b68848b4f13f768134439a9abd23c8a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyfreeform-0.6.3-py3-none-any.whl:

Publisher: publish.yml on MatheweB/pyfreeform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page