https://github.com/p5py/p5
p5 is a Python package based on the core ideas of Processing.
https://github.com/p5py/p5
processing python
Last synced: 7 months ago
JSON representation
p5 is a Python package based on the core ideas of Processing.
- Host: GitHub
- URL: https://github.com/p5py/p5
- Owner: p5py
- License: gpl-3.0
- Created: 2017-03-15T09:34:15.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-28T14:32:47.000Z (over 1 year ago)
- Last Synced: 2025-05-13T21:29:51.897Z (8 months ago)
- Topics: processing, python
- Language: Python
- Homepage: https://p5.readthedocs.io
- Size: 43.4 MB
- Stars: 750
- Watchers: 29
- Forks: 120
- Open Issues: 87
-
Metadata Files:
- Readme: README.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
- Support: SUPPORT.rst
Awesome Lists containing this project
README
p5
===
|Downloads| |License| |Version| |Slack| |build-tests| |downloads-month|
.. |License| image:: https://img.shields.io/pypi/l/p5?color=light-green
.. |Version| image:: https://img.shields.io/pypi/v/p5?color=blue
.. |Slack| image:: https://img.shields.io/badge/Slack-Join!-yellow
:target: https://join.slack.com/t/p5py/shared_invite/zt-g9uo4vph-dUVltiE1ixvmjFTCyRlzpQ
.. |build-tests| image:: https://github.com/p5py/p5/actions/workflows/build-tests.yml/badge.svg
.. |Downloads| image:: https://static.pepy.tech/badge/p5
:target: https://pepy.tech/project/p5
.. |downloads-month| image:: https://static.pepy.tech/badge/p5/month
:target: https://pepy.tech/project/p5
p5 is a Python library that provides high level drawing functionality
to help you quickly create simulations and interactive art using
Python. It combines the core ideas of `Processing
`_ — learning to code in a visual context —
with Python's readability to make programming more accessible to
beginners, educators, and artists.
To report a bug / make a feature request use the `issues page `_ in this repository. You can also use the `discourse platform
`_ to ask/discuss anything related to p5py.
Example
-------
.. image:: https://github.com/p5py/p5/raw/develop/docs/_static/readme.gif
p5 programs are called "sketches" and are run as any other Python
program. The sketch above, for instance, draws a circle at the mouse
location that gets a random reddish color when the mouse is pressed
and is white otherwise; the size of the circle is chosen randomly. The
Python code for the sketch looks like:
.. code:: python
from p5 import *
def setup():
size(640, 360)
no_stroke()
background(204)
def draw():
if mouse_is_pressed:
fill(random_uniform(255), random_uniform(127), random_uniform(51), 127)
else:
fill(255, 15)
circle_size = random_uniform(low=10, high=80)
circle((mouse_x, mouse_y), circle_size)
def key_pressed(event):
background(204)
# p5 supports different backends to render sketches,
# "vispy" for both 2D and 3D sketches & "skia" for 2D sketches
# use "skia" for better 2D experience
# Default renderer is set to "vispy"
run(renderer="vispy") # "skia" is still in beta
Documentation
-------------
The p5py documentation can be found here `p5 documentation
`_
Installation
------------
Take a look at the installation steps here in the `p5 installation page
`_
Contributing
------------
We welcome contributions from anyone, even if you are new to open source. You can start by fixing the existing `issues `_ in p5py. In case you need any help or support from the p5py development community, you can join our `slack group `_.
License
-------
p5 is licensed under the GPLv3. See `LICENSE `_ for more
details. p5 also includes the following components from other open
source projects:
- OpenGL shaders `from the Processing
`_
project. Licensed under LGPL v2.1. See `LICENSES/lgpl-2.1.txt
`_ for the full license text.
All licenses for these external components are available in the
``LICENSES`` folder.