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>
import proceso as p5
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.mouse_is_pressed == True:
p5.background("dodgerblue")
p5.run(setup=setup, draw=draw)
Roadmap
- Improve documentation
- Fix bugs (i.e.,
load_model()
) - Translate p5.js test suite?
- Support JupyterLite
- 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. - Basthon, Py5.js, and pyp5js all pointed the way.
Project details
Release history Release notifications | RSS feed
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.1.tar.gz
(57.5 kB
view details)
Built Distribution
proceso-0.0.1-py3-none-any.whl
(63.3 kB
view details)
File details
Details for the file proceso-0.0.1.tar.gz
.
File metadata
- Download URL: proceso-0.0.1.tar.gz
- Upload date:
- Size: 57.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e295ea0694cab89e793b7c5bef00a8025a6519d88d2f0bd802bc90335f1c9197 |
|
MD5 | f0cfa5393ae71ca3843a89913a29bbc0 |
|
BLAKE2b-256 | 53e0da6bc3f7c92591e7cbd590055933274f14548b1eea3314b4a41a8f3b86e7 |
File details
Details for the file proceso-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: proceso-0.0.1-py3-none-any.whl
- Upload date:
- Size: 63.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a267af36b1b19698934c1569d359d1ee29b4464e860db84ad51924a5a94e1dd |
|
MD5 | 8f394effa147dc63a6cdb2d325af66c3 |
|
BLAKE2b-256 | 8be0ef2735dd6d8186d8110edac9275f798505c6713020aa31140a724a91c8ac |