Processing ist eine Open-Source-Programmierumgebung, die speziell dafür entwickelt wurde, Programmierung für Künstler:innen, Designer:innen, Kreative und alle Interessierten zugänglich zu machen.
Ursprünglich wurde es 2001 von Casey Reas und Ben Fry an der MIT Media Lab entwickelt und ist heute ein beliebtes Werkzeug für kreative und visuelle Projekte.
Hier gibt es jetzt einen kleinen Programmiereinstig in diese nice Software.
Starte mit dem Download und der Installation:
Erledigt? Dann kann es ja los gehen 🙂
Die wichtigsten Teile der Processing-Umgebung (IDE)

- Der Editor:
- Hauptbereich, in dem du deinen Code schreibst.
- Code-Highlighting erleichtert das Lesen und Verstehen deines Programms.
- Einfacher „Play“-Button, um dein Programm direkt auszuführen.
- Die Toolbar:
- Oben in der IDE findest du Buttons für häufige Aktionen:
- Play (
▶): Führt dein Programm aus. - Stop (
■): Stoppt die Programmausführung. - Open/Save: Öffnet oder speichert Projekte.
- Play (
- Oben in der IDE findest du Buttons für häufige Aktionen:
- Das Ausgabefenster:
- Hier wird dein Programm als interaktive oder grafische Anwendung angezeigt.
- Standardmäßig ist das Fenster eine weiße Leinwand, die du mit deinen Ideen füllst.
- Die Konsole:
- Ein Bereich unterhalb des Editors, der Textausgaben zeigt.
- Wird verwendet, um Debugging-Informationen oder Fehlermeldungen anzuzeigen.
- Sketches:
- Processing-Projekte werden „Sketches“ genannt. Jeder Sketch ist ein einzelnes Programm und wird in einem eigenen Ordner gespeichert.
„Hello, Canvas!“ – Deine erste Zeichnung
Willkommen in der Welt der kreativen Programmierung
Lerne die Grundlagen von Processing, indem du einfache Formen zeichnest und Farben hinzufügst.
Neue Befehle
size(width, height): Definiert die Größe des Zeichenfensters.background(color): Legt die Hintergrundfarbe fest.fill(color): Setzt die Füllfarbe für Formen.ellipse(x, y, w, h): Zeichnet einen Kreis oder eine Ellipse.rect(x, y, w, h): Zeichnet ein Rechteck.
Code
void setup() {
size(400, 400); // Fenstergröße
background(255); // Weißer Hintergrund
}
void draw() {
fill(255, 0, 0); // Rote Füllfarbe
ellipse(200, 200, 100, 100); // Kreis in der Mitte
fill(0, 255, 0); // Grüne Füllfarbe
rect(150, 150, 100, 50); // Rechteck über dem Kreis
}
„Lass es bewegen!“ – Interaktive Animation
Neue Befehle
mouseXundmouseY: Speichern die aktuelle Position der Maus.draw(): Wiederholt kontinuierlich den Zeichenprozess (Animationsloop).
Code
void setup() {
size(400, 400); // Fenstergröße
background(255); // Weißer Hintergrund
}
void draw() {
fill(255, 0, 0); // Rote Füllfarbe
ellipse(200, 200, 100, 100); // Kreis in der Mitte
fill(0, 0, 255); // Blaue Füllfarbe
rect(150, 150, 100, 50); // Rechteck über dem Kreis
}
„Farbexplosion“ – Dynamische Farben
Neue Befehle
random(max): Gibt eine Zufallszahl zwischen 0 undmaxzurück.mousePressed(): Wird aufgerufen, wenn die Maus gedrückt wird.
Code
void setup() {
size(400, 400);
}
void draw() {
background(0);
}
void mousePressed() {
fill(random(255), random(255), random(255));
ellipse(mouseX, mouseY, 100, 100); // Zufällige Farben bei Klick
}
„Das Tanzende Netz“ – Linien und Muster
Neue Befehle
stroke(color): Legt die Farbe für Linien und Umrandungen fest.line(x1, y1, x2, y2): Zeichnet eine Linie von Punkt(x1, y1)zu Punkt(x2, y2).for: Eine Schleife, um wiederholte Aktionen auszuführen.
Code
void setup() {
size(400, 400);
}
void draw() {
background(20);
stroke(255);
for (int i = 0; i < width; i += 20) {
line(i, 0, mouseX, mouseY); // Linien laufen auf Mauszeiger zu
}
}
„Pixel-Art“ – Dein kreatives Raster
Neue Befehle
- Verschachtelte
for-Schleifen: Zwei Schleifen in Kombination, um ein Raster zu erstellen.
Code
void setup() {
size(400, 400);
}
void draw() {
for (int x = 0; x < width; x += 20) {
for (int y = 0; y < height; y += 20) {
fill(random(255), random(255), random(255));
rect(x, y, 20, 20); // Farbige Quadrate
}
}
}
„Partikel-Tanz“ – Simulationen verstehen
Neue Befehle und Konzepte
- Klassen: Eine Struktur, um Objekte wie Partikel zu erstellen.
- Arrays: Speichern mehrere Objekte in einer Liste.
random(min, max): Gibt eine Zufallszahl im Bereich vonminbismaxzurück.
Code
Particle[] particles = new Particle[100];
void setup() {
size(400, 400);
for (int i = 0; i < particles.length; i++) {
particles[i] = new Particle(random(width), random(height));
}
}
void draw() {
background(0);
for (Particle p : particles) {
p.update();
p.display();
}
}
class Particle {
float x, y, vx, vy;
Particle(float x, float y) {
this.x = x;
this.y = y;
vx = random(-2, 2);
vy = random(-2, 2);
}
void update() {
x += vx;
y += vy;
if (x < 0 || x > width) vx *= -1;
if (y < 0 || y > height) vy *= -1;
}
void display() {
fill(255);
ellipse(x, y, 5, 5);
}
}
„Kaleidoskop-Magie“ – Symmetrie und Spiegelung
Neue Befehle
translate(x, y): Verschiebt den Ursprung des Koordinatensystems.rotate(angle): Rotiert die Zeichnung um einen Winkel.TWO_PI: Eine Konstante für 360° in Radiant.
Code
void setup() {
size(400, 400);
background(0);
}
void draw() {
translate(width / 2, height / 2);
for (int i = 0; i < 6; i++) {
rotate(TWO_PI / 6);
ellipse(mouseX - width / 2, mouseY - height / 2, 20, 20);
}
}
„Soundvisualisierung“ – Musik trifft auf Kunst
Neue Befehle und Bibliotheken
import processing.sound.*: Importiert die Sound-Bibliothek.SoundFile: Lädt und spielt Sounddateien ab.FFT: Analysiert Frequenzen eines Audiosignals.
Code
import processing.sound.*;
SoundFile file;
float[] spectrum = new float[512];
FFT fft;
void setup() {
size(400, 400);
file = new SoundFile(this, "dein_sound.mp3");
file.loop();
fft = new FFT(this, spectrum.length);
fft.input(file);
}
void draw() {
background(0);
fft.analyze(spectrum);
for (int i = 0; i < spectrum.length; i++) {
stroke(255);
line(i, height, i, height - spectrum[i] * 100);
}
}