Development - Processing Community Forum https://discourse.processing.org/c/processing/processing-development/7 Topics in the 'Development' category How to develop Processing, Tools, Libraries, and Modes Tue, 03 Mar 2026 05:49:06 +0000 Gradle Template for Processing 4.x with Java 17 (IntelliJ/VS Code ready) Development Hi! I’ve been developing a cross-platform template for Processing 4.x using Gradle 9 and Java 17. This project enables the development of Processing sketches as standard Java projects within IDEs like IntelliJ IDEA, Eclipse, or VS Code. I believe many developers are looking for a more robust development environment, so I’d like to share this with the community.

Introduction

While the Processing IDE (PDE) is an excellent “sketchbook,” developers often encounter bottlenecks as projects grow. Limitations in autocompletion, refactoring, and modern version control often lead developers to seek more powerful environments.

However, running Processing 4.x outside the PDE isn’t as simple as just adding a core JAR file. You need to handle the complexities of the Java 17 module system and, when using hardware-accelerated renderers (P2D/P3D), manage OS-specific native libraries (JOGL).

Technical Solutions

To address these “engineering hurdles,” this template:

  • Automatically manages JOGL/GlueGen native libraries for Windows, macOS (including Apple Silicon), and Linux.
  • Pre-configures JVM arguments (–add-opens, etc.) required for Java 17 to prevent runtime errors.

Quick Start

You can try it out immediately with just a few commands:

git clone https://github.com/noah-devtech/processing4-gradle-template.git
cd processing4-gradle-template

# Windows
gradlew.bat run

# macOS / Linux
chmod +x gradlew
./gradlew run

Feedback: Welcome!

I am committed to continuously improving this project. If you encounter any issues or have suggestions for better Gradle practices, constructive feedback is always welcome.

P.S. English is not my first language, so feedback on the text is also welcome.

Links

You can find the project on GitHub:
noah-devtech/processing4-gradle-template

2 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/gradle-template-for-processing-4-x-with-java-17-intellij-vs-code-ready/48013 Tue, 03 Mar 2026 05:49:06 +0000 No No No discourse.processing.org-topic-48013 Gradle Template for Processing 4.x with Java 17 (IntelliJ/VS Code ready)
Building Processing with VSCode Error and Fix Development Hello folks!

I was building Processing with VSCode as per:
processing4/BUILD.md at main · processing/processing4 · GitHub

I had this issue:

> Dependency resolution is looking for a library compatible with JVM runtime version 17, but 'project :core' is only compatible with JVM runtime version 21 or newer.

I created a gradle.properties file with the directory of the Java JDK 17 I was using and that corrected the issue:

Sharing is caring.

Still exploring why this changed…

*** UPDATE***

This was not changed:

After some investigation it may be related to this:

Language Support for Java(TM) by Red Hat - Visual Studio Marketplace

Source: Microsoft Copilot (AI assistant):

VS Code’s Red Hat Java extension includes its own bundled JDK (currently JDK 21) for the Java Language Server. Gradle auto‑detects this JDK and prefers the newest version it finds, which causes Processing’s :core module to be compiled with Java 21 instead of Java 17. Adding the following line to gradle.properties forces Gradle to use the correct JDK and resolves the issue:

org.gradle.java.home=e:\\jdk-17.0.16+8

@kit Does this need to be submitted as an issue?

:)

2 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/building-processing-with-vscode-error-and-fix/47921 Fri, 20 Feb 2026 21:05:23 +0000 No No No discourse.processing.org-topic-47921 Building Processing with VSCode Error and Fix
Graphics backend in Metal for MacOS Development I have been working on a 2D graphics library following the same API used in processing, its in Metal as OpenGL has been deprecated on MacOS for years.

I don’t know if there is any interest in integrating this into the main branch, but it’s not a lot of OpenGL to replicate in Metal.

FYI, many of the calls like noFill() are not documented in the reference page, I have only found them in examples.

I should be able to finish out most of the work in a couple of weeks, I worked on the OpenGL Framework at Apple for 10+ years and replicating the immediate mode vertex model shouldn’t be that hard to do in Metal. (while it won’t be as performant as VBO and stuff.. it will work fine)

It should be all accessible from C, so a FFI from Java should work fine. I am not a Java developer but it shouldn’t too hard to figure out.

Thoughts? Interest?

4 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/graphics-backend-in-metal-for-macos/47918 Fri, 20 Feb 2026 16:07:26 +0000 No No No discourse.processing.org-topic-47918 Graphics backend in Metal for MacOS
Example code for writing dxf files with arcs, circles, and ellipses Development I have seen a few questions about writing dxf files that contain arcs or circles. The processing dxf library treats these by breaking them down to lines which generates excessively long files. I recently ran across an old forum post where circles were generated but not arcs and the code was incomplete. I went back through the dxf documentation and found the needed information for creating arcs in dxf. Below is a modification of the example code from the old post, extending it to show how to create lines and arcs as well as circles. Page 86 of the autodesk dxf reference document discusses the format for ellipses, which I am sure can be treated in the same way. Points are discussed on page 123.
EDIT: Code for drawing an ellipse tacked on at the end.
This code does not use the dxf library and works in P2D.

String[] expDxf = {"0", "SECTION", "2","ENTITIES","0"};
 String fileName = "file2.dxf";
 
 float[] x = {10, 20, 30};
 float[] y = {10, 50, 100};
 float theta = 30;    // beginning of arc in degrees
 float phi = 160;     // end of arc

 float rad = 40;     // radius
 String layer = "0";

void dxfLine(float x0, float y0, float x1, float y1){
  int oldLen = expDxf.length;
  int newLen = (expDxf.length+16);
  expDxf = expand(expDxf, newLen );
   expDxf [oldLen] = "LINE";
  expDxf [oldLen+1] = "8";  // layer name
  expDxf [oldLen+2] = layer;
  expDxf [oldLen+3] = "10";   // x position of start
  expDxf [oldLen+4] = str(x0);
  expDxf [oldLen+5] = "20";   // y position of start
  expDxf [oldLen+6] = str(y0);
  expDxf [oldLen+7] = "30";   // z position of start
  expDxf [oldLen+8] = "0.0";   // z value is zero
    expDxf [oldLen+9] = "11";   // x position of end
  expDxf [oldLen+10] = str(x1);
  expDxf [oldLen+11] = "21";   // y position of end
  expDxf [oldLen+12] = str(y1);
  expDxf [oldLen+13] = "31";   // z position of end
  expDxf [oldLen+14] = "0.0";   // z value is zero
  expDxf [oldLen+15] = "0";
}


void dxfCircle(float x, float y, float rad){ // , String layer) {
  int oldLen = expDxf.length;
  int newLen = (expDxf.length+12);
  expDxf = expand(expDxf, newLen );
  expDxf [oldLen] = "CIRCLE";
  expDxf [oldLen+1] = "8";  // layer name
  expDxf [oldLen+2] = "0";
  expDxf [oldLen+3] = "10";   // x position of center
  expDxf [oldLen+4] = str(x);
  expDxf [oldLen+5] = "20";   // y position of center
  expDxf [oldLen+6] = str(y);
  expDxf [oldLen+7] = "30";   // z position of center
  expDxf [oldLen+8] = "0.0";
  expDxf [oldLen+9] = "40";     // radius
  expDxf [oldLen+10] = str(rad);
  expDxf [oldLen+11] = "0";
}

// note: theta and phi are the starting and ending angles of the arc

void dxfArc(float x, float y, float rad, float theta, float phi){
    int oldLen = expDxf.length;
  int newLen = (expDxf.length+16);
  expDxf = expand(expDxf, newLen );
  expDxf [oldLen] = "ARC";
  expDxf [oldLen+1] = "8";  // layer name
  expDxf [oldLen+2] = layer;
  expDxf [oldLen+3] = "10";   // x position of center
  expDxf [oldLen+4] = str(x);
  expDxf [oldLen+5] = "20";   // y position of center
  expDxf [oldLen+6] = str(y);
  expDxf [oldLen+7] = "30";   // z position of center
  expDxf [oldLen+8] = "0.0";
  expDxf [oldLen+9] = "40";     // radius
  expDxf [oldLen+10] = str(rad);
  expDxf [oldLen+11] = "50";     // sstarting angle
  expDxf [oldLen+12] = str(theta);
  expDxf [oldLen+13] = "51";     // endng angle
  expDxf [oldLen+14] = str(phi);
  expDxf [oldLen+15] = "0";
}

void dxfEnd() {
  expDxf = expand(expDxf, expDxf.length+3 );
  expDxf[expDxf.length-3] = "ENDSEC";
  expDxf[expDxf.length-2] = "0";
  expDxf[expDxf.length-1] = "EOF" ;
  saveStrings(fileName, expDxf);
}

void setup(){
size(100,100);
noLoop();
dxfLine(x[0],y[0],x[1],y[1]);
dxfCircle(x[0],y[0],rad);
dxfArc(x[1],y[1],rad*2,theta, phi);
dxfEnd();
}

EDIT: ok, here is a method for generating an ellipse:

////// x and y define the center of the ellipse, 
/////   endX and endY define the end of major axis, 
/////   ratio is the ratio of minor to major axis length
void dxfEllipse(float x, float y, float endX, float endY, float ratio){
  int oldLen = expDxf.length;
  int newLen = (expDxf.length+18);
  expDxf = expand(expDxf, newLen );
  expDxf [oldLen] = "ELLIPSE";
  expDxf [oldLen+1] = "8";  // layer name
  expDxf [oldLen+2] = layer;
  expDxf [oldLen+3] = "10";   // x position of center
  expDxf [oldLen+4] = str(x);
  expDxf [oldLen+5] = "20";   // y position of center
  expDxf [oldLen+6] = str(y);
  expDxf [oldLen+7] = "30";   // z position of center
  expDxf [oldLen+8] = "0.0";
  expDxf [oldLen+9] = "11";   // x position of end of major axis
  expDxf [oldLen+10] = str(endX);
  expDxf [oldLen+11] = "21";   // y 
  expDxf [oldLen+12] = str(endY);
  expDxf [oldLen+13] = "31";   // z 
  expDxf [oldLen+14] = "0.0";
  expDxf [oldLen+15] = "40";   // ratio of axis lengths
  expDxf [oldLen+16] = str(ratio);
  expDxf [oldLen+17] = "0";
}

1 post - 1 participant

Read full topic

]]>
https://discourse.processing.org/t/example-code-for-writing-dxf-files-with-arcs-circles-and-ellipses/47754 Thu, 15 Jan 2026 15:15:03 +0000 No No No discourse.processing.org-topic-47754 Example code for writing dxf files with arcs, circles, and ellipses
Processing in the browser : one day? Development Hello :christmas_tree: ,

Today, it is possible to run a Java program in a browser through systems like TeaVM (or others), but this requires mastering somewhat complex things like Maven or Graven.

Will there be an export in Processing one day to obtain the same kind of things, that is to say running a Processing Program without having to rewrite it in P5js which remains painful as soon as a project is a little complex (that’s why Typescript exists!)?

:smiley:

17 posts - 7 participants

Read full topic

]]>
https://discourse.processing.org/t/processing-in-the-browser-one-day/47665 Thu, 25 Dec 2025 18:26:01 +0000 No No No discourse.processing.org-topic-47665 Processing in the browser : one day?
Beginner Java Developer Interested in Contributing to Processing4 Development Hi everyone! :waving_hand:
I’m Vanshika, a college student and Java backend developer. I’m interested in contributing to Processing4 and learning how to get started with open-source development.
I’ve looked through the GitHub repo but would appreciate some guidance on where to begin or which issues are beginner-friendly.
Any suggestions or links to contribution guides would be really helpful. Thank you! :blush:

1 post - 1 participant

Read full topic

]]>
https://discourse.processing.org/t/beginner-java-developer-interested-in-contributing-to-processing4/47477 Mon, 03 Nov 2025 18:10:00 +0000 No No No discourse.processing.org-topic-47477 Beginner Java Developer Interested in Contributing to Processing4
Multiple Background processes accumulate with VS Code Development Hello @stefterv,

A new Processing task remains in my Background processes after running VS Code with the Processing VS Code Extension.

Steps to reproduce:

  • Open VS Code
  • The last Processing sketch opens.
    Assumed that it has been used last and a Processing sketch is opened.
  • Close VS Code
  • Examine the Background processes in Task Manager

A new Processing Task is added each time the above is performed:

I run a batch file to kill the tasks:

Environment:

  • W10
  • VS Code 1.104.2
  • Processing VS Code Extension 1.1.5
  • Processing 4.4.7

:)

1 post - 1 participant

Read full topic

]]>
https://discourse.processing.org/t/multiple-background-processes-accumulate-with-vs-code/47234 Fri, 26 Sep 2025 18:28:48 +0000 No No No discourse.processing.org-topic-47234 Multiple Background processes accumulate with VS Code
Export application from VScode extension Development Hi is there a way to export a project application from vscode. the processing plugin is set up and it runs my project fine but it would be nice to be able to export the app from vscode as well.

any suggestions would be appreciated. Thanks.:smiling_face_with_sunglasses:

processing vscode extension is installed

running processing 4.4.7 on Win10

7 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/export-application-from-vscode-extension/47216 Wed, 24 Sep 2025 17:29:04 +0000 No No No discourse.processing.org-topic-47216 Export application from VScode extension
Debugging in VSCode Development Are there any plans to add debugging capabilities to the official VSCode extension? Is there any way to do that currently? I have not been very successful in debugging with the PDE, and I would prefer to use VSCode anyways. The debugger in the PDE keeps freezing and saying ‘debugger busy‘, and I have not seen any solutions for that.

2 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/debugging-in-vscode/47178 Sat, 20 Sep 2025 00:34:18 +0000 No No No discourse.processing.org-topic-47178 Debugging in VSCode
Will the code be organized as this is done in Arduino IDE? VS Code extension Development Excellent development environment. If you add the “Code folding” function, it will be much easier not only for beginners but also advanced users. Instead, I found outdated videos as a Proсessing compiler to connect to Visual Code (now it does not work properly).
I ask you to add a function as on arduino ide “turn on the folding”.
(Screen Arduino IDE)

54 posts - 7 participants

Read full topic

]]>
https://discourse.processing.org/t/will-the-code-be-organized-as-this-is-done-in-arduino-ide-vs-code-extension/47135 Fri, 12 Sep 2025 14:24:11 +0000 No No No discourse.processing.org-topic-47135 Will the code be organized as this is done in Arduino IDE? VS Code extension
Proposal for a shared folder for certain tabs Development Hello all!

I have a proposal for the IDE (or for a Tool?).

Often I have different Sketches that use the same Helper Class, like a Button class, a PVector Tools class, a Menu Class, a Table Tools class… these are stored in one tab each.

When I need the functionality now in a new Sketch, I just copy the old tab. But here the problems start: when I improve a version, I end up with different versions; I would have to copy it back into all old Sketches.

Therefore I propose a Shared common folder for tabs / pdes. This folder can be used by all Sketches. Each Sketch has its own tabs of course but can access the Shared common folder (e.g. with a line in the main tab code “usageOf classPVectorTools.pde;” or so to link to the external pde).

The tabs from the Shared common folder are shown seamless as if they were a normal tab (maybe in another color). When I edit them, it gets edited in the Shared common folder. Other Sketches would profit from the other changes as well. When I run the Sketch the shared files are used (temporarily copied?) from the Shared Folder.

Remarks:

  • (this is similar to a library but much easier to handle, no compiling etc.)
  • (I am not sure whether this is a change in the IDE or could be done with a Tool where I had to register the shared pde file?)

Thank you very much!

Warm regards,

Chrisir

6 posts - 4 participants

Read full topic

]]>
https://discourse.processing.org/t/proposal-for-a-shared-folder-for-certain-tabs/47089 Sun, 07 Sep 2025 22:05:29 +0000 No No No discourse.processing.org-topic-47089 Proposal for a shared folder for certain tabs
Interested in a library for terminal-style text? Development I’m writing up a set of classes that create an in-sketch text box in the style of a monospaced terminal with color support. Would anyone be interested in this as a standalone Processing library?

Usage would look like this:

TermText tt = new TermText(x, y, width, height, fontsize);
tt.println("Hello, world!", color(255,255,255)); // full line
tt.print("Here's ", color(255,0,0)); // prints without newline
tt.print("some ", color(0,255,0)); 
tt.print("colors!", color(50,50,255));

It handles wrap-around in a simple way (no clever word wrap, just continue the next char on the next line), bumps old text off the top of the screen when the buffer’s full. The design would make it easy to add support for printing chars to specific locations in the grid, allowing for things like old-school-roguelike graphics via text. Might also add utility functions for some Caves of Qud style color gradients on strings, or billboarding (horizontal scrolling) a long string across a single row.

Anyway, I’m having fun with this, but turning it into an actual library has an extra layer of work (converting to Java, making a web page for it, all the config file stuff, etc) so if anyone’s interested then you’re welcome to ask/nag/encourage me here to get it done! :laughing:

10 posts - 6 participants

Read full topic

]]>
https://discourse.processing.org/t/interested-in-a-library-for-terminal-style-text/47007 Fri, 22 Aug 2025 14:06:21 +0000 No No No discourse.processing.org-topic-47007 Interested in a library for terminal-style text?
Would you use PDE (Processing) sketches via pde:// links and Maven-based libraries? Development I’ve been experimenting with a new way to make it much easier to share and run Processing sketches — inspired by the pde://sketch/… link format.

I’ve created a JBang script that lets you run PDE sketches directly from pde://-style links (or files) with a single command, no setup needed. Think of it like “click and run” for Processing, even outside the PDE!

Now I’m exploring the idea of making Processing libraries available via Maven — so any Processing sketch could pull in libraries automatically, just by declaring a dependency (no more manual .zip downloading or copying .jar files!).

I’m curious:
• Would this make your life easier when writing or sharing Processing code?
• Do you currently struggle with library setup or sharing sketches with students/friends?

• Would you use a command-line tool to run or install sketches without opening the PDE?
• Any must-have features you’d expect in something like this?

I’d love to hear your thoughts before investing more time. If you’re curious to test or co-experiment, I can share the current version too!

1 post - 1 participant

Read full topic

]]>
https://discourse.processing.org/t/would-you-use-pde-processing-sketches-via-pde-links-and-maven-based-libraries/46773 Tue, 22 Jul 2025 19:16:24 +0000 No No No discourse.processing.org-topic-46773 Would you use PDE (Processing) sketches via pde:// links and Maven-based libraries?
What do I need to do to submit my library to Processing? as a "community contribution" Development I’ve been working on a GUI library for a couple of years now and would like to release it to everyone officially as a “Community Contribution”.

2 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/what-do-i-need-to-do-to-submit-my-library-to-processing-as-a-community-contribution/46480 Wed, 28 May 2025 22:43:57 +0000 No No No discourse.processing.org-topic-46480 What do I need to do to submit my library to Processing? as a "community contribution"
JavaFX Controls in Default Window Development Is there anyone in this forum who can retrieve the root pane of a PSurfaceFX window?

Currently it is not possible to place javafx controls in a default Processing window using JavaMode. It has recently been shown by @hx2A that this is possible in Py5 but requires getting the layout pane for PSurfaceFX which he found a way to do with getParent():py5 Sketch + JavaFX controls · py5coding/py5generator · Discussion #645 · GitHub. However, I am unable to do the same thing in JavaMode using the same or similar technique, eg getParent(), getRootPane(), or getContentPane(). I would like for anyone with an interest to see if they can retrieve the root layout pane from the PSurfaceFX window created for the FX2D renderer. If it can be retrieved then we should be able to proceed to place javafx controls in the default window. If it is found to not be possible then perhaps we can add a function to the runtime to retrieve the root as previously proposed and described here: Using JavaFX in processing applet · Issue #4750 · processing/processing · GitHub.

StackPane was chosen as the default layout pane for PSurfaceFX and sets the origin to the center of the window. This alignment can be changed for individual controls if necessary but there are still limits to where controls can be positioned. There are several layout pane possibilities, each with their own characteristics: HBox, VBox, FlowPane, BorderPane, StackPane, TilePane, GridPane, AnchorPane, and TextFlow. In my opinion, it would make more sense to allow the user to select which layout pane they want to use, or alternatively use a regular Pane as shown in the example below and use setLayoutX()/setLayoutY() to place the control anywhere in the window.

There are two issues in my view, the first being the most important:

  1. Add a function to return the root pane of the PSurfaceFX window, assuming that there is no way to currently do this in JavaMode.
  2. Consider using a more generic pane which will allow control placement anywhere in the window as shown below, or alternatively making it possible for the user to select which layout pane is used.

Current technique creating a separate javafx window for controls:

// Uses a generic root pane and creates a separate javafx window with stage and scene

import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.layout.Pane;
import javafx.scene.control.Button;

void setup() {
  size(1, 1, FX2D);
  Stage stage = new Stage();
  stage.setTitle("JavaFX Controls");
  Pane pane = new Pane();
  Button btn = new Button("Push Me");
  btn.setLayoutX(150);
  btn.setLayoutY(100);
  pane.getChildren().add(btn);
  Scene scene = new Scene(pane, 400, 250);
  stage.setScene(scene);
  stage.show();
}

Proposed new technique to place javafx controls directly in default Processing window:

PSEUDOCODE – WILL NOT RUN

import javafx.scene.control.Button;

void setup() {
  size(400, 250, FX2D);
  canvas = surface.getNative();
  pane = canvas.getParent();
  Button btn = new Button("Push Me");
  btn.setLayoutX(150);
  btn.setLayoutY(100);
  pane.getChildren().add(btn);
}

7 posts - 3 participants

Read full topic

]]>
https://discourse.processing.org/t/javafx-controls-in-default-window/46404 Sat, 17 May 2025 14:09:49 +0000 No No No discourse.processing.org-topic-46404 JavaFX Controls in Default Window
PSurfaceFX Current Development Development I’m unable to find the current repository for PSurfaceFX; I can find the original github location, but there is a message stating that it has been moved and I can’t find the new one.

5 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/psurfacefx-current-development/46401 Fri, 16 May 2025 21:41:30 +0000 No No No discourse.processing.org-topic-46401 PSurfaceFX Current Development
Can I reuse some Processing core code? Development I’ve been studing the Nature of Code book and reached the section on Perlin Noise. I got an idea - I can use Perlin noise to generate a table of audio wave tables that I can load into sample-based music programs.

I want to write a tutorial about this. I wrote a Java program that works, but I borrowed the Perlin functions from Processing.

I want to share example on github under the LGPL. Can I use the code that I borrowed from here, if I give the proper credit? What exactly to I need to do?

6 posts - 4 participants

Read full topic

]]>
https://discourse.processing.org/t/can-i-reuse-some-processing-core-code/46321 Sat, 03 May 2025 22:12:17 +0000 No No No discourse.processing.org-topic-46321 Can I reuse some Processing core code?
SpriteManipulation Development I was thinking maybe we could update the PImage class to include graphics rendered sprite tessalation.
Example:

Pimage texture = createImage(8, 8, ARGB);
PImage spritemap = loadImage("some.png");

texture.sampleSprite(spritemap, x, y);

void sampleSprite(PImage smap, int startx, int start y)
{

// Nested for loop texture.set(x, y, smap.get(startx, starty)); and so one. But makes a gpu call to run In parallel.

}

I was also thinking related to this,
It woulf be nice to have a livrary like peasycam
That assist in making custom gpu shaders. It not particularly difficult to write opengl shaders and vulkan shaders are the same thing, but implementing them more difficult

Maybe

PushMatrix()
translate(such and such);
rotate(around);
scale(thewall);

Shader.callVShader(vertex[x] somepoints)
{

vertx = vertex[x];

Vert = vertx * somestuff * matrix();


ShaderVertex(vert);

}

Shader.callPShader()
{

// Some cool math stuff;

ShaderPixel(color(somecolor));

}

Call it PeasyShader

3 posts - 3 participants

Read full topic

]]>
https://discourse.processing.org/t/spritemanipulation/45590 Tue, 14 Jan 2025 08:30:44 +0000 No No No discourse.processing.org-topic-45590 SpriteManipulation
A new Processing library template Development Hello all! Better late than never - I’d like to announce a new Processing library template, that’s been there since the beginning of this month. It uses gradle tasks to build your code, create the release artifacts, and also copy it to your Processing sketchbook folder, so that you can test the use of your new library. It also facilitates the creation of a documentation website with MkDocs with a Github workflow. In other words, this template is an amalgam of the excellent library templates that have come before, with some extra juice.

We’ve already got some bug reports and inquiries coming in, so thanks for taking a look, as we iteratively improve the resource together.

This work was supported by the Processing Foundation through the pr05 (“pros”) New Beginnings Grant 2024.

4 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/a-new-processing-library-template/45390 Wed, 27 Nov 2024 10:34:50 +0000 No No No discourse.processing.org-topic-45390 A new Processing library template
Processing Collaborative Editor (pr05 grant project) Development Hello! My name is Dora and I recently have been working on the pr05 2024 grant project, Prototyping a Collaborative Editor for Processing. The Processing Collaborative Editor (PCE) is a desktop app that aims to make collaborative coding with Processing easier, more accessible, and ideal for both beginners and educators. Built using Electron, React, CodeMirror, and Y.js, the editor allows users to co-create Processing sketches in real time, drawing inspiration from tools like Google Docs and Figma.

Project Goals

The main objectives of this project were to:

  1. Create an editor using web technologies that’s easy to expand and contribute to.
  2. Design an interface that makes Processing accessible to students and coding beginners by simplifying common challenges like file management.
  3. Enable real-time collaboration, where multiple users can work on the same sketch simultaneously.

Key Features

  • Built with modern technologies: Built on Electron + React, which has builds for Mac, Windows, and Linux, allowing a wider user base to get involved with development.
  • Simple UI for beginners: A streamlined, user-friendly interface designed to reduce distractions and let users focus on creativity.
  • Collaborative editing: Users can join a shared sketch session, see each other’s cursors, and co-create in real-time.

Current Limitations & Future Plans

As with any prototype, there are a few limitations, such as reliance on WebSocket for connections, which may limit performance at scale. In the future, I’d love to add features like library imports, WebRTC support for better peer-to-peer collaboration, and potentially an extension system to make the editor even more customizable.

Get Involved!

I’d love to hear from the Processing community! Whether you’re a developer interested in contributing, an educator who’d like to pilot the tool in your classroom, or a creative coder with feature ideas, I’d love your input. Feel free to explore the GitHub repo and share any feedback or questions below, or submit a feature request under “Issues”.

Download the app: Processing Collaborative Editor

See the Github repo: GitHub - doradocodes/processing-collab-editor: Prototype for a new collaborative code editor for Processing (2024 pr05)

Thanks,
Dora

2 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/processing-collaborative-editor-pr05-grant-project/45263 Fri, 01 Nov 2024 22:01:35 +0000 No No No discourse.processing.org-topic-45263 Processing Collaborative Editor (pr05 grant project)
Looking for a New Maintainer for the AmbientLightSensor Library Development Hello everyone,

We’re looking for anyone interested in taking over the AmbientLightSensor library for Processing. The original author, Martin Rädlinger (formatlos), has transferred the repository to the Processing Foundation’s GitHub. We’d like to thank him for his work on the project.

If you find this library useful and are interested in maintaining or updating it, you can access the repo here: AmbientLightSensor GitHub Repo.

Please note that the code hasn’t been updated in a long time. It hasn’t been tested on modern Macbooks either and will likely require significant work to bring it up to date, but we believe it’s better to keep it available in case someone finds it helpful in the future.

Feel free to reply if you have any questions or would like to get involved.

3 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/looking-for-a-new-maintainer-for-the-ambientlightsensor-library/45081 Mon, 23 Sep 2024 16:30:52 +0000 No No No discourse.processing.org-topic-45081 Looking for a New Maintainer for the AmbientLightSensor Library
Properly adding asm dependecy (or any other dependency) to you library Development I’m currently writing a library to reduce boilerplate code.
Instead of using registerMethod and reflection to process all events I thought it might be faster to use asm to create create Runnables instead of using reflection.

The problem is the following:
It seems Processing uses the library folder of every library as classpath. Therefore if 2 libraries use the same library as dependency processing can’t process the import anymore.
How would one go around this problem?

2 posts - 1 participant

Read full topic

]]>
https://discourse.processing.org/t/properly-adding-asm-dependecy-or-any-other-dependency-to-you-library/45068 Fri, 20 Sep 2024 16:15:52 +0000 No No No discourse.processing.org-topic-45068 Properly adding asm dependecy (or any other dependency) to you library
How to Sign a library inside core.jar, without Breaking the App? Development I exported a processing sketch to Apple Silicone. It works fine, but when I try to sign and notarize it to send to Apple, it fails, saying there’s an unsigned binary in core.jar.

I can unzip core.jar and sign the offending binary, but when I rezip it up and rename it back to core.jar, the app doesn’t work anymore.

Is there any way to get some help to sign this file?

Here’s one of the errors I get from the notarization process (there’s 4 errors, but they are all about the same file)

"severity": "error",
      "code": null,
      "path": "SceneEditorV1_1_03.zip/SceneEditorV1_1_03.app/Contents/Java/core.jar/processing/core/libDifferent.jnilib",
      "message": "The binary is not signed.",
      "docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087721",
      "architecture": "x86_64"

The file is “libDifferent.jnilib”

I can sign it no problem, but as I said, when I rezip the whole folder back and rename it to core.jar, the app no longer launches. Literally nothing happens when you double click it, and if I try to launch it from Terminal, I get this error:

Error: Could not find or load main class SceneEditorV1_1_03
Caused by: java.lang.NoClassDefFoundError: processing/core/PApplet

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

I just updated to macOS Sequoia, and I didn’t get this problem before, so I’m sure it’s related (I’ve already signed/notarized this app many times successfully without issue).

Thanks for any insights. The app is stuck in signing/notarization hell until I figure this out…

Mike

12 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/how-to-sign-a-library-inside-core-jar-without-breaking-the-app/45064 Wed, 18 Sep 2024 18:15:25 +0000 No No No discourse.processing.org-topic-45064 How to Sign a library inside core.jar, without Breaking the App?
Change error detection for custom JavaMode Development I’m currently developing a framework for Java-Based modes.

This currently has a few problems but the currently most pressing one would be fixing the issue of the error detection marking code as wrong that can be compiled by the mode.

Does anyone know how the error detection works and how to interfer with it.
Currently it only changes the Sketch-Code while compiling however I’d like to create an option for the user of the framework to provide a way to configure the error detection or to disable it.

Has anyone experience with the error detection and how to use it in a custom mode?

1 post - 1 participant

Read full topic

]]>
https://discourse.processing.org/t/change-error-detection-for-custom-javamode/44451 Mon, 20 May 2024 09:20:05 +0000 No No No discourse.processing.org-topic-44451 Change error detection for custom JavaMode
Add files/folders during export Development I maintain a Processing library that requires some specific .dll/.dylib/.so files that I include with the library when it is downloaded.

When a sketch that includes my library, how can have these folders copied into the application.windows/lib folder? In the same way that the data folder is copied to the applications.windows/ folder.

2 posts - 2 participants

Read full topic

]]>
https://discourse.processing.org/t/add-files-folders-during-export/44022 Sun, 03 Mar 2024 09:39:17 +0000 No No No discourse.processing.org-topic-44022 Add files/folders during export