Skip to main content

Write your p5js sketches with python and automatically launch them in a new window just by running your script.

  • no html
  • no javascript
  • just python

Also included: autoreload on save!

Installation

pip install p5two

Usage

open your favourite editor and create a new file <script.py> and save it wherever you want

from p52 import *

def setup():
    createCanvas(windowWidth, windowHeight)
    stroke(100, 100, 100, 100)
    noFill()


def draw():
    background(51)
    ellipse(mouseX, mouseY, 30, 30)

open a terminal, move to the folder where you saved the script and run it with python3 <script.py> or just use your editor "run" button if available.

A new window should popup with your sketch!

Bonus: try changing your code and saving, the changes should automatically be reflected in the sketch.

Extra functionalities

I decided to put some extra functionalities that diverge from standard python and p5js practices because I found them more convenient:

magic self

Tired of having to define vars before setup() in order to have them available inside draw()? now you can define vars inside a "fake" self object like this:

from p52 import *

def setup():
    createCanvas(windowWidth, windowHeight)
    stroke(100, 100, 100, 100)
    noFill()
    self.point = (100, 100)


def draw():
    background(51)
    line(0, 0, *self.point)

sketch saving and reloading

when viewing your sketch you can press "s" to save a screenshot of it inside the current folder. Likewise you can press "r" to reload the sketch.

utility functions

  • canvas() creates a canvas without having to specify its dimensions, defaulting to full window size
  • center() changes the coordinate system: (0, 0) is now in the center of the sketch and the y-coordinates go upwards

more to come...

inject js libraries (experimental!)

if you have a js library that you would like to use inside the sketch you can download it and put it into the same folder as your python sketch and use injectJs('library.js'). Doing so automatically include the library inside the generated html file.

How does it work?

This package is heavily inspired by the library pyp5js and leverages transcrypt to compile python to javascript behind the scenes.

Metadata

Release files for p5two 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for p5two 0.0.2
File Size Uploaded
p5two-0.0.2.tar.gz 51.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for p5two 0.0.2
File Interpreter ABI Platform
p5two-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 103.0 kB

Release files / p5two-0.0.2.tar.gz

Download URL p5two-0.0.2.tar.gz
Size 51.0 kB
Tags Source
SHA-256 checksum
How to use checksums
54ee79fbae9842c7e63ba785aef31763ca296d94a8d92c4d9db720567e8b14f5
BLAKE2b-256 checksum
How to use checksums
fc47924da68691b936608c82ba0d8c07875f872026684056eff6c71648a2cd50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.28.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.4

Release files / p5two-0.0.2-py3-none-any.whl

Download URL p5two-0.0.2-py3-none-any.whl
Size 51.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
503cfcadf4af2bf0d7bdc7203efd854c1047c9b8dd92c56d2cd1087e3028e543
BLAKE2b-256 checksum
How to use checksums
c18410b75a29d907c55404d92bece57b56a6db854f142a911590dc4d774d3671
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.28.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.4

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page