From a7b75debb65281e2e479c9997665b1a0f9fba071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20de=20Courville?= Date: Mon, 15 Dec 2025 17:51:23 +0100 Subject: [PATCH] Update README from processing4 to p5.js mode --- README.md | 339 +++++------------------------------------------------- 1 file changed, 31 insertions(+), 308 deletions(-) diff --git a/README.md b/README.md index c27391e6f..b1fd5936e 100644 --- a/README.md +++ b/README.md @@ -1,323 +1,46 @@ - - +# p5.js Electron mode for Processing +Desktop Support for p5.js via a New Processing Mode -Processing Logo +image -Processing is a flexible software sketchbook and a programming language designed for learning how to code. +This mode integrates p5.js into the Processing Development Environment (PDE) and provides a desktop runtime based on Electron. -This repository contains the source code for the [Processing](https://processing.org/) project for people who want to help improve the code. +Here is a **usage- and contribution-focused README**, with background, grant framing, and personal reflections removed. -## Welcome to Processing 4.4! +## Features -We’re excited to announce the release of Processing 4.4! This update modernizes Processing under the hood to make future development easier. Key changes include switching the build system from Ant to Gradle, starting the transition from Swing to Jetpack Compose Multiplatform for the UI, and adding Kotlin support to the codebase. To learn more, check out [Changes in 4.4.0](https://github.com/processing/processing4/wiki/Changes-in-4.4). +* Run and stop p5.js sketches directly from Processing +* Electron-based embedded browser for rendering +* Error reporting in the editor +* Built-in examples (WIP) +* Syntax highlighting (Note: The current syntax highlighting system has [known limitations](https://github.com/processing/processing-p5.js-mode/wiki/Syntax-Highlighting) and may change) +* Works on Linux, macOS, and Windows +* **PNPM** for Node package and dependency management +* Automatic installation of required tools: + * PNPM + * Node.js + * Electron -We hope these updates will make it easier for more people to contribute to Processing. If you'd like to get involved, have a look at our [Contributor Guide](CONTRIBUTING.md). +### Exporting Sketches -## Acknowledgement -Processing was initiated in 2001 by Ben Fry and Casey Reas, who led the development and maintenance of the project until 2023. We are grateful for their vision and dedication to the project. Processing is also indebted to over two decades of contributions from the broader Processing community. +* Export p5.js sketches as standalone desktop apps +* Uses `electron-builder` for packaging -## Using Processing +## Installation -If you're interested in *using* Processing, head over to the [download page](https://processing.org/download), or read more about the project on the [Processing website](https://processing.org/). There are also several [tutorials](https://processing.org/tutorials) that provide a helpful introduction. They are complemented by hundreds of examples that are included with the software itself. +### Using Prebuilt Releases -## Getting Help -For assistance with your own sketches, projects, or code, please post your question on the Processing forum: https://discourse.processing.org/. Our community is full of experienced developers and knowledgeable users who are eager to help. Before you post, please take a moment to read the [guidelines on asking questions](https://discourse.processing.org/t/guidelines-asking-questions/2147) to make sure you get the best possible help. We’re incredibly grateful for the support and knowledge shared by everyone on the forum over the years. +1. Download the latest `.pdex` file from the [Releases](https://github.com/processing/processing-p5.js-mode/releases) page. +2. Opening the `.pdex` file in Processing -## Contributing to Processing -Processing is a labor of love, built over decades by people who believe in this community and genuinely enjoy contributing to it. If you want to fix a bug that’s been bothering you or give back to the project in other ways, you’re in the right place! We invite you to think of this repository as a community garden. We’re here to cultivate something beautiful together, and that takes kindness, dedication, and patience. For detailed guidelines on how to contribute, please see our [CONTRIBUTING.md](CONTRIBUTING.md). +### From Source (for contributors) -We understand that contributing to open source can be intimidating, but mistakes are part of learning—and we are all learners here. We do not assume knowledge or imply that somebody should already know any particular thing in order to contribute. Whether you’re a newcomer or an expert, your knowledge and contributions are valuable. Never hesitate to ask questions, open an issue, a pull request, or write a comment. We also encourage you to step in if you can: reply to issues, review pull requests, or help out in whatever way feels right for you. +* The mode is implemented in **Kotlin** +* Mode-specific code lives in the top-level `p5js` directory +* Build and distribution tasks are handled with **Gradle** -While we assume good intentions, and will give everyone a chance to learn, we have zero tolerance for repeated harassment, harmful behavior, or toxicity of any kind. Please read our [Code of Conduct](https://github.com/processing/processing4?tab=coc-ov-file) and join us in creating a safe and supportive environment through your words and actions. +See the wiki for [architecture notes](https://github.com/processing/processing-p5.js-mode/wiki). -## Building Processing +## Licensing -Building Processing locally on your machine will let you troubleshoot and make sure your contributions work as intended before submitting them to this repository. It also gives you the flexibility to experiment and learn more about how Processing is structured. - -For a quick start: -1. Fork and clone the repository -1. Open it in IntelliJ IDEA -1. Wait for Gradle to sync -1. Next to the run Button, select the `Processing` Configuration -1. Hit Run - -For more information and detailed instructions, follow our [How to Build Processing](BUILD.md) guide. - -## Contact Information -For technical support or troubleshooting with your project, please post on the [Processing Forum](https://discourse.processing.org/). - -For bug reports or feature requests, please [create an issue](https://github.com/processing/processing4/issues). - -For non-technical inquiries, here’s how to get in touch: - -- For press inquiries, general information about the Processing software, or other non-technical questions, contact [hello@processing.org](mailto:hello@processing.org). -- For anything related to the Processing Foundation or broader topics beyond the software, please reach out to [foundation@processingfoundation.org](mailto:foundation@processingfoundation.org). - -## License & Copyright - -- The **core library** is licensed under the GNU Lesser General Public License version 2.1 ([LGPL-2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)). -- Everything else including the **PDE** is licensed under the GNU General Public License version 2 ([GPL-2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)). -- The **reference**, including the JavaDoc comments, is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License ([CC-BY-NC-SA-4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)). - -For complete licensing information about the Processing core library and software, see [LICENSE.md](LICENSE.md) - -For licensing information about the Processing website see the [processing-website README](https://github.com/processing/processing-website/blob/main/README.md#licenses). - -Copyright (c) 2015-now The Processing Foundation - -## Contributors -The Processing project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification, recognizing all forms of contributions (not just code!). A list of all contributors is included below. You can add yourself to the contributors list [here](https://github.com/processing/processing4-carbon-aug-19/issues/839)! - -_Note: due to GitHub's limitations, this repository's [Contributors](https://github.com/processing/processing4/graphs/contributors) page only shows accurate contribution data starting from late 2024. Contributor graphs from before November 13th 2024 can be found on [this page](https://github.com/benfry/processing4/graphs/contributors). The [git commit history](https://github.com/processing/processing4/commits/main/) provides a full record of the project's contributions. To see all commits by a contributor, click on the [💻](https://github.com/processing/processing4/commits?author=benfry) emoji below their name._ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Ben Fry
Ben Fry

💻 🤔 🚇 🧑‍🏫 🚧 🖋 📢
Casey Reas
Casey Reas

💻 🤔 🚇 🧑‍🏫 🖋 📢
codeanticode
codeanticode

💻
Manindra Moharana
Manindra Moharana

💻
Jakub Valtar
Jakub Valtar

💻
A Samuel Pottinger
A Samuel Pottinger

💻
Gottfried Haider
Gottfried Haider

💻
Akarshit Wal
Akarshit Wal

💻
Peter Kalauskas
Peter Kalauskas

💻
Daniel Shiffman
Daniel Shiffman

💻
Joel Moniz
Joel Moniz

💻
Lonnen
Lonnen

💻
Florian Jenett
Florian Jenett

💻
Scott Murray
Scott Murray

💻
Federico Bond
Federico Bond

💻
pvrs12
pvrs12

💻
George Bateman
George Bateman

💻
Sean McKenna
Sean McKenna

💻
kfeuz
kfeuz

💻
David Wicks
David Wicks

💻
Wilm Thoben
Wilm Thoben

💻
Ana
Ana

💻
Amnon Owed
Amnon Owed

💻
Gal Sasson
Gal Sasson

💻
scollovati
scollovati

💻
Yong Joseph Bakos
Yong Joseph Bakos

💻
Kenichi Ito
Kenichi Ito

💻
Efratror
Efratror

💻
Alexis Engelke
Alexis Engelke

💻
tyfkda
tyfkda

💻
Simon Greenwold
Simon Greenwold

💻
Rune Skjoldborg Madsen
Rune Skjoldborg Madsen

💻
Leslie Watkins
Leslie Watkins

💻
Rostyslav Zatserkovnyi
Rostyslav Zatserkovnyi

💻
Dan
Dan

💻
Daniel Howe
Daniel Howe

💻
Josh Giesbrecht
Josh Giesbrecht

💻 🐛
liquidex
liquidex

💻
bgc
bgc

💻
Mohammad Umair
Mohammad Umair

💻
T Michail
T Michail

💻
ohommos
ohommos

💻
Jonathan Feinberg
Jonathan Feinberg

💻
David Fokkema
David Fokkema

💻
liquid
liquid

💻
Kisaru Liyanage
Kisaru Liyanage

💻
BouB
BouB

💻
atk
atk

💻
Xerxes Rånby
Xerxes Rånby

💻
Will Rabalais
Will Rabalais

💻
Utkarsh Tiwari
Utkarsh Tiwari

💻
Prince-Polka
Prince-Polka

💻
jamesjgrady
jamesjgrady

💻
Raphaël de Courville
Raphaël de Courville

💻
Satoshi Okita
Satoshi Okita

💻
Carlos Andrés Rocha
Carlos Andrés Rocha

💻
Vincent Vijn
Vincent Vijn

💻
dzaima
dzaima

💻
mingness
mingness

🚇
Dora Do
Dora Do

🚇
Stef Tervelde
Stef Tervelde

💻
allcontributors[bot]
allcontributors[bot]

💻
Dave
Dave

💻
TN8001
TN8001

💻
Sigmund Hansen
Sigmund Hansen

💻
Rodrigo Bonifácio
Rodrigo Bonifácio

💻
Aidan Pieper
Aidan Pieper

💻
Liam James
Liam James

💻
james gilles
james gilles

💻
Elie Zananiri
Elie Zananiri

💻
Cosimo Cecchi
Cosimo Cecchi

💻
Liam Middlebrook
Liam Middlebrook

💻
Martin Yrjölä
Martin Yrjölä

💻
Michał Urbański
Michał Urbański

💻
Paco
Paco

💻
Patrick Ryan
Patrick Ryan

💻
Paweł Goliński
Paweł Goliński

💻
Rupesh Kumar
Rupesh Kumar

💻
Suhaib Khan
Suhaib Khan

💻
Yves BLAKE
Yves BLAKE

💻
M. Ernestus
M. Ernestus

💻
Francis Li
Francis Li

💻
Parag Jain
Parag Jain

💻
roopa vasudevan
roopa vasudevan

💻
kiwistrongis
kiwistrongis

💻
Alessandro Ranellucci
Alessandro Ranellucci

💻
Alexandre B A Villares
Alexandre B A Villares

💻
Heracles
Heracles

💻
Arya Gupta
Arya Gupta

💻
Damien Quartz
Damien Quartz

💻
Shubham Rathore
Shubham Rathore

💻
Grigoriy Titaev
Grigoriy Titaev

💻
Guilherme Silveira
Guilherme Silveira

💻
Héctor López Carral
Héctor López Carral

💻
Jeremy Douglass
Jeremy Douglass

💻
Jett LaRue
Jett LaRue

💻
Jim
Jim

💻 🐛
Joan Perals
Joan Perals

💻
Josh Holinaty
Josh Holinaty

💻
Keito Takeda
Keito Takeda

💻
Victor Osório
Victor Osório

💻
Torben
Torben

💻
Tobias Pristupin
Tobias Pristupin

💻
Thomas Leplus
Thomas Leplus

💻
Arnoud van der Leer
Arnoud van der Leer

💻
Stanislas Marçais / Knupel
Stanislas Marçais / Knupel

💻
Sanchit Kapoor
Sanchit Kapoor

💻
Miles Fogle
Miles Fogle

💻
Miguel Valadas
Miguel Valadas

💻
Maximilien Tirard
Maximilien Tirard

💻
Matthew Russell
Matthew Russell

💻
dcuartielles
dcuartielles

💻
Jayson Haebich
Jayson Haebich

💻
jordirosa
jordirosa

💻
Justin Shrake
Justin Shrake

💻
Kevin
Kevin

💻
kgtkr
kgtkr

💻
Mark Luffel
Mark Luffel

💻
Никита Король
Никита Король

💻
raguenets
raguenets

💻
robog-two
robog-two

💻
teddywing
teddywing

💻
chikuwa
chikuwa

💻
ಠ_ಠ
ಠ_ಠ

💻
Abe Pazos
Abe Pazos

💻
Alex
Alex

💻
Alexander Hurst
Alexander Hurst

💻
Anıl
Anıl

💻
Barış
Barış

💻
Brian Sapozhnikov
Brian Sapozhnikov

💻
Carlos Mario Rodriguez Perdomo
Carlos Mario Rodriguez Perdomo

💻
CyberFlame
CyberFlame

💻
Dhruv Jawali
Dhruv Jawali

💻
FlorisVO
FlorisVO

💻
Frank Leon Rose
Frank Leon Rose

💻
Greg Borenstein
Greg Borenstein

💻
Guillermo Perez
Guillermo Perez

💻
Henning Kiel
Henning Kiel

💻
J David Eisenberg
J David Eisenberg

💻
Jordan Ephron
Jordan Ephron

💻
Jason Sigal
Jason Sigal

💻
Jordan Orelli
Jordan Orelli

💻
Kalle
Kalle

💻
Laureano López
Laureano López

💻
Lesley Wagner
Lesley Wagner

💻
Mark Slee
Mark Slee

💻
MARTIN LEOPOLD GROEDL
MARTIN LEOPOLD GROEDL

💻
Martin Prout
Martin Prout

💻
Mathias Herberts
Mathias Herberts

💻
Diya Solanki
Diya Solanki

🚇
Neil C Smith
Neil C Smith

🚇
kate hollenbach
kate hollenbach

💻 📦 🧑‍🏫 🐛
Rishabdev Tudu
Rishabdev Tudu

📖 💻
Pau
Pau

📖
Junology
Junology

💻
Jaap Meijers
Jaap Meijers

📖
Xin Xin
Xin Xin

📋 🤔
Benjamin Fox
Benjamin Fox

💻
e1dem
e1dem

💻
Aditya Chaudhary
Aditya Chaudhary

💻
Rishab Kumar Jha
Rishab Kumar Jha

💻
Yehia Rasheed
Yehia Rasheed

💻
Subhraman Sarkar
Subhraman Sarkar

💻 ️️️️♿️ 📖
SushantBansal-tech
SushantBansal-tech

🤔 💻
Konsl
Konsl

📖
Mario Guzman
Mario Guzman

📖
Aranya Dutta
Aranya Dutta

💻
ovalnine
ovalnine

💻
Joshua D. Boyd
Joshua D. Boyd

📖
Vaivaswat Dubey
Vaivaswat Dubey

💻
jSdCool
jSdCool

💻 📖
AhmedMaged
AhmedMaged

💻
Nico Mexis
Nico Mexis

💻
charlotte 🌸
charlotte 🌸

👀
Joackim de Bourqueney
Joackim de Bourqueney

💻
Tonz
Tonz

💻 📖
Andrew
Andrew

💻
Ngoc Doan
Ngoc Doan

💻
Manoel Ribeiro
Manoel Ribeiro

📖
- - - - - +License information can be found in [LICENCE.md](LICENSE.md).