Skip to main content

A Python package for creative coding on the web.

Project description

proceso

A Python package for creative coding on the web.

proceso provides a Pythonic interface to the p5.js library. The package is designed for Pyodide-based environments including PyScript and (soonish) JupyterLite. Similar to py5, proceso's goal is to integrate p5.js into the Python ecosystem with thoughtful choices about how to do so in the browser.

Here is an example of how to create a proceso sketch with PyScript:

<!DOCTYPE html>
<html lang="en-us">

<head>
    <title>Bouncing Ball</title>
    <meta charset="utf-8" />

    <link rel="stylesheet" href="https://pyscript.net/releases/2023.03.1/pyscript.css" />
    <script defer src="https://pyscript.net/releases/2023.03.1/pyscript.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.6.0/p5.min.js"></script>
    <py-config>
        packages = ["numpy", "proceso"]
    </py-config>
</head>

<body>
    <main></main>
    <py-script src="sketch.py"></py-script>
</body>

</html>
from proceso import Sketch


p5 = Sketch()


pos = p5.Vector(200, 200)
vel = p5.Vector.random(2)
r = 25


def setup():
    p5.create_canvas(400, 400)
    p5.background("#1e90ff")
    p5.fill("orchid")
    p5.stroke(255)


def draw():
    global pos, vel
    pos += vel

    p5.circle(pos.x, pos.y, 2 * r)

    if pos.x < r or pos.x > p5.width - r:
        vel.x *= -1
    if pos.y < r or pos.y > p5.height - r:
        vel.y *= -1

    if p5.is_mouse_pressed == True:
        p5.background("dodgerblue")


p5.run_sketch(setup=setup, draw=draw)

Roadmap

  • Improve documentation
  • Fix known bugs
  • Finish API
  • Support JupyterLite
  • Translate p5.js test suite?
  • Add CLI with hot reload
  • Add bindings for p5.js addon libraries

Acknowledgements

  • proceso is, first and foremost, an interface to the p5.js library. Nearly all of the package's documentation and examples are adapted from their p5.js counterparts. Portions of the source code are also adapted from the original JavaScript implementation.
  • The Vector class is lovingly borrowed from py5 as are most of py5's naming conventions.
  • Basthon, Py5.js, and pyp5js all pointed the way.

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

proceso-0.0.6.tar.gz (57.4 kB view details)

Uploaded Source

Built Distribution

proceso-0.0.6-py3-none-any.whl (63.4 kB view details)

Uploaded Python 3

File details

Details for the file proceso-0.0.6.tar.gz.

File metadata

  • Download URL: proceso-0.0.6.tar.gz
  • Upload date:
  • Size: 57.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for proceso-0.0.6.tar.gz
Algorithm Hash digest
SHA256 642d80c5e887fe0858ac79447729fbac7c826431e8ee224f717645213e7dfe95
MD5 4adf05522fcacfdb7dc5765e1f866954
BLAKE2b-256 c38b5d94cab43806cfe05c209a9d805cd4cd4c6fdf3cde78c0f8f5d2978cb6c0

See more details on using hashes here.

File details

Details for the file proceso-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: proceso-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 63.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for proceso-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4e7b1f468628c19fde1997a218251873649335eab2a2e149133ce14a282aac46
MD5 de50d7e605b7a4c370536156ea024ed7
BLAKE2b-256 5e06452d127e12e51f60a14b7afde7912fe2c127fdddffc4c02c62a38f266f52

See more details on using hashes here.

Supported by

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