# processing/processing

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/processing-processing).**

6,487 stars · 1,475 forks · Java · NOASSERTION

## Links

- GitHub: https://github.com/processing/processing
- Homepage: http://processing.org
- awesome-repositories: https://awesome-repositories.com/repository/processing-processing.md

## Description

Processing is a creative coding environment and Java graphics library designed for writing visual sketches that produce interactive 2D and 3D graphics and animations. It runs on the Java Virtual Machine, using an OpenGL-based hardware-accelerated rendering pipeline, and operates on a sketch-based execution model where programs run as continuous loops of setup and draw functions with event-driven input handling for keyboard, mouse, and window interactions.

The environment distinguishes itself as a cross-platform sketch tool that runs visual programs unchanged on desktop, web, Android, and Raspberry Pi platforms, with the ability to bundle sketches into standalone executables for distribution. It includes an addon library system for extending core functionality with sound, video, and other capabilities, and supports running sketches directly in a web browser through a JavaScript library that mirrors the core drawing API. The platform also provides accessibility features for generating screen-readable descriptions of canvas content.

Processing offers comprehensive capabilities for creating visual content, including drawing 2D primitives and 3D shapes, constructing custom vertex-based forms, rendering curves, and applying image filters and pixel manipulation. It supports loading and displaying images, mapping textures onto geometry, and applying GLSL shaders for custom rendering effects. The environment includes functions for managing the display window, setting rendering options, and printing to the console, along with color creation and fill/stroke styling.

The platform provides tools for data handling, including loading and saving data from files in various formats, converting data types, formatting strings, and managing arrays. It includes math utilities for Perlin noise, random number generation, trigonometry, and common calculations, as well as typography functions for rendering and styling text. Input handling covers keyboard, mouse, and time/date reading, while the structure and control system allows defining program flow with setup/draw loops and conditional logic. Installers are available for all major desktop operating systems.

## Tags

### Part of an Awesome List

- [Creative Coding Environments](https://awesome-repositories.com/f/awesome-lists/devtools/creative-coding-environments.md) — A creative coding environment for artists and designers to build generative art and interactive graphics.
- [Trigonometric Functions](https://awesome-repositories.com/f/awesome-lists/devtools/utility-and-math/trigonometric-functions.md) — Provides sine, cosine, tangent, and degree-radian conversion for geometric calculations. ([source](http://processing.org/reference))
- [Visual Programming for Education](https://awesome-repositories.com/f/awesome-lists/learning/visual-programming-tools/visual-programming-for-education.md) — Teaches programming fundamentals through immediate visual feedback and creative project-based learning.
- [Pixel-Level Image Manipulation](https://awesome-repositories.com/f/awesome-lists/media/pixel-level-image-manipulation.md) — Reads, writes, and blends individual pixel values in the display window or images. ([source](http://processing.org/reference))
- [Low-Level Pixel Buffer Access](https://awesome-repositories.com/f/awesome-lists/media/pixel-level-image-manipulation/low-level-pixel-buffer-access.md) — Directly reads and writes pixel arrays in the display buffer for image processing and effects.
- [Development Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/development-frameworks.md) — Flexible language and environment for visual arts and coding.
- [Imagery and Video](https://awesome-repositories.com/f/awesome-lists/media/imagery-and-video.md) — Environment for visual arts and creative coding.
- [Media and VFX Tools](https://awesome-repositories.com/f/awesome-lists/media/media-and-vfx-tools.md) — Flexible sketchbook and language for visual arts.

### Programming Languages & Runtimes

- [Java Virtual Machine Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments/language-runtimes/java-virtual-machine-runtimes.md) — Runs on the Java Virtual Machine, enabling cross-platform execution and Java library integration.
- [Execution Flow Control](https://awesome-repositories.com/f/programming-languages-runtimes/execution-flow-control.md) — Uses conditionals, loops, and switch statements to direct program execution in sketches. ([source](http://processing.org/reference))
- [Graphics Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/java-utility-libraries/graphics-libraries.md) — Provides a comprehensive Java graphics library for drawing, images, and typography in visual sketches.
- [Sketch Lifecycle Functions](https://awesome-repositories.com/f/programming-languages-runtimes/smart-contract-languages/on-chain-program-writing-with-dsl/structured-program-writing/sketch-lifecycle-functions.md) — Defines the sketch lifecycle with setup, draw, and event functions for visual programs. ([source](http://processing.org/reference))
- [Random Number Generation](https://awesome-repositories.com/f/programming-languages-runtimes/random-number-generation.md) — Produces random floats, integers, and Gaussian-distributed values with settable seed. ([source](http://processing.org/reference))
- [String Manipulation Utilities](https://awesome-repositories.com/f/programming-languages-runtimes/string-splitting/string-manipulation-utilities.md) — Provides functions for splitting, joining, trimming, and regex operations on strings. ([source](http://processing.org/reference))

### Artificial Intelligence & ML

- [Visual Sketch Runtimes](https://awesome-repositories.com/f/artificial-intelligence-ml/in-browser-model-execution/visual-sketch-runtimes.md) — Ships a JavaScript library that mirrors the core drawing API to run sketches in the browser. ([source](https://github.com/processing/processing/wiki/Project-List))

### Development Tools & Productivity

- [Visual Sketch Tools](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-development-tools/visual-sketch-tools.md) — Runs visual programs unchanged on desktop, web, Android, and Raspberry Pi platforms.
- [Sketch Loop Executions](https://awesome-repositories.com/f/development-tools-productivity/custom-command-execution/scheduled-command-execution/continuous-loop-executions/sketch-loop-executions.md) — Programs run as continuous loops of setup and draw functions with event callbacks for user interaction.
- [Mouse Input Handlers](https://awesome-repositories.com/f/development-tools-productivity/mouse-input-handlers.md) — Tracks mouse position, button presses, clicks, drags, and wheel movements. ([source](http://processing.org/reference))

### DevOps & Infrastructure

- [Sketch Addon Loaders](https://awesome-repositories.com/f/devops-infrastructure/cluster-configuration-management/addons-management/runtime-addon-loaders/sketch-addon-loaders.md) — Loads modular libraries at runtime to extend sketch capabilities with sound, video, and more.
- [Cross-Platform Deployments](https://awesome-repositories.com/f/devops-infrastructure/cross-platform-deployments.md) — Creates visual applications that run unchanged on macOS, Windows, Linux, Android, and Raspberry Pi. ([source](http://processing.org/download))
- [Cross-Platform Executable Packagers](https://awesome-repositories.com/f/devops-infrastructure/distribution-packaging/software-distribution/compiled-binaries/binary-packaging-scripts/binary-package-generators/cross-platform-executable-packagers.md) — Bundles sketches into standalone executables for distribution on different operating systems.

### Game Development

- [OpenGL Engines](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/opengl-engines.md) — Uses OpenGL for hardware-accelerated 2D and 3D rendering with shader support.
- [Perlin Noise Functions](https://awesome-repositories.com/f/game-development/noise-based-terrain-generation/perlin-noise-functions.md) — Provides Perlin noise functions for generating organic variation in visual sketches. ([source](http://processing.org/reference))

### Graphics & Multimedia

- [2D and 3D Graphics Rendering](https://awesome-repositories.com/f/graphics-multimedia/2d-and-3d-graphics-rendering.md) — Provides a straightforward drawing API for building real-time 2D and 3D visual applications.
- [Camera Positioning Functions](https://awesome-repositories.com/f/graphics-multimedia/3d-camera-projection-systems/camera-positioning-functions.md) — Provides camera positioning functions essential for framing 3D scenes in visual sketches. ([source](http://processing.org/reference))
- [Color Construction Functions](https://awesome-repositories.com/f/graphics-multimedia/color-channel-extraction/color-construction-functions.md) — Constructs color values and extracts their red, green, blue, alpha, hue, and saturation components. ([source](http://processing.org/reference))
- [Shape Drawing](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/shape-drawing.md) — Draws basic 2D shapes like rectangles, ellipses, arcs, lines, and triangles to the screen. ([source](http://processing.org/reference))
- [Programmatic Canvas Drawing](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/shape-drawing/interactive-canvas-drawing/programmatic-canvas-drawing.md) — Draws shapes, images, and interactive graphics on a canvas using a simple programming API. ([source](https://github.com/processing/processing/wiki/Project-List))
- [Fill and Stroke Styles](https://awesome-repositories.com/f/graphics-multimedia/graphics-and-media/shape-drawing/sketchy-fill-generators/fill-and-stroke-styles.md) — Defines the interior color and outline style for shapes and lines in sketches. ([source](http://processing.org/reference))
- [Light Source Functions](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/lighting-systems/3d-lighting-models/light-source-functions.md) — Ships built-in functions for adding ambient, directional, point, and spot lights to 3D scenes. ([source](http://processing.org/reference))
- [Hardware-Accelerated Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/engines/graphics-pipeline-architectures/hardware-accelerated-rendering.md) — Uses OpenGL or WebGL for GPU-accelerated 2D and 3D graphics rendering.
- [2D Text Styling](https://awesome-repositories.com/f/graphics-multimedia/text-typography-controls/2d-text-styling.md) — Provides functions for controlling text alignment, size, leading, and width in 2D sketches. ([source](http://processing.org/reference))
- [Visual Sketch Environments](https://awesome-repositories.com/f/graphics-multimedia/visual-sketch-environments.md) — Writes Java code to produce interactive 2D and 3D graphics and animations in a simplified programming environment. ([source](https://cdn.jsdelivr.net/gh/processing/processing@master/README.md))
- [WebGL Rendering](https://awesome-repositories.com/f/graphics-multimedia/webgl-rendering.md) — Provides WebGL-based 3D rendering for interactive visual sketches in the browser. ([source](https://github.com/processing/processing/wiki/Project-List))
- [3D Mesh Primitives](https://awesome-repositories.com/f/graphics-multimedia/3d-mesh-primitives.md) — Renders 3D shapes such as boxes and spheres using tessellated triangles. ([source](http://processing.org/reference))
- [Bezier Curve Rendering](https://awesome-repositories.com/f/graphics-multimedia/bezier-curve-interpolations/3d-curve-rendering/bezier-curve-rendering.md) — Renders Bézier and curved lines on the screen with adjustable resolution. ([source](http://processing.org/reference))
- [Rendering Configuration Options](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/vector-rendering-pipelines/vector-graphics-renderers/rendering-clipping-regions/rendering-configuration-options.md) — Enables or disables anti-aliasing, high-density pixel rendering, and clipping regions for sketches. ([source](http://processing.org/reference))
- [Text Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/text-rendering.md) — Draws strings of text to the screen using loaded or dynamically created fonts. ([source](http://processing.org/reference))
- [Image File Loading](https://awesome-repositories.com/f/graphics-multimedia/image-file-loading.md) — Loads image files from disk and draws them to the screen with tinting and scaling support. ([source](http://processing.org/reference))
- [Image Filters](https://awesome-repositories.com/f/graphics-multimedia/image-filters.md) — Ships built-in image filters for converting images to grayscale, black and white, and other effects. ([source](http://processing.org/reference))
- [Visual Effect Shaders](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/visual-effects/visual-effect-shaders.md) — Runs pixel and vertex shaders to apply fast, parallelized filters and custom effects to the canvas. ([source](https://github.com/processing/processing/wiki/Project-List))
- [Shader Application Functions](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/visual-effects/visual-effect-shaders/glsl-shader-workflows/shader-application-functions.md) — Provides functions to load and apply GLSL shaders for custom rendering effects in sketches. ([source](http://processing.org/reference))
- [Sketch Extension Libraries](https://awesome-repositories.com/f/graphics-multimedia/sketch-extension-libraries.md) — Adds capabilities like sound, video, webcam input, and text handling through modular companion libraries. ([source](https://github.com/processing/processing/wiki/Project-List))
- [Vector Shape Construction](https://awesome-repositories.com/f/graphics-multimedia/vector-shape-construction.md) — Builds complex forms by defining vertices, curves, and contours for custom shapes. ([source](http://processing.org/reference))
- [Standalone Application Packaging](https://awesome-repositories.com/f/graphics-multimedia/visual-sketch-environments/standalone-application-packaging.md) — Bundles a completed sketch with its dependencies into a standalone application that runs without the development environment in Processing. ([source](https://cdn.jsdelivr.net/gh/processing/processing@master/README.md))

### Mobile Development

- [Cross-Platform Application Development](https://awesome-repositories.com/f/mobile-development/cross-platform-application-development.md) — Develops visual programs that run identically on desktop, web, mobile, and embedded platforms.

### Software Engineering & Architecture

- [Interactive Application Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/software-development-tooling/interactive-application-frameworks.md) — A framework for building real-time visual applications with input handling, animation, and multimedia support.

### User Interface & Experience

- [Event-Driven Input Handlers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/event-driven-input-handlers.md) — Captures keyboard, mouse, and window events through callback functions in the sketch loop.
- [Transformation Functions](https://awesome-repositories.com/f/user-interface-experience/grid-layout-engines/2d-and-3d-element-transformations/transformation-functions.md) — Provides transformation functions for translating, rotating, scaling, and shearing shapes in 2D and 3D. ([source](http://processing.org/reference))
- [Keyboard Input Listeners](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/secondary-modifier-keys/keyboard-input-listeners.md) — Detects key presses and releases, including special keys like arrows and modifiers. ([source](http://processing.org/reference))
- [Window Display Modes](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/layout-structural-components/interface-display-modes/full-screen-modes/window-display-modes.md) — Controls window size, position, title, resizability, and full-screen mode for sketches. ([source](http://processing.org/reference))
- [Texture Mapping](https://awesome-repositories.com/f/user-interface-experience/texture-mapping.md) — Applies images as textures onto vertex-based geometry for 3D rendering. ([source](http://processing.org/reference))

### Data & Databases

- [General File Writers](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage/file-based-storage/local-file-storage/local-file-writing/binary-file-writing/general-file-writers.md) — Provides functions to write text, JSON, XML, table, and binary data to files. ([source](http://processing.org/reference))
- [Primitive Type Converters](https://awesome-repositories.com/f/data-databases/primitive-type-converters.md) — Includes utilities for converting between primitive types and their string representations. ([source](http://processing.org/reference))
- [Real-time Visualizations](https://awesome-repositories.com/f/data-databases/real-time-data-streaming/real-time-visualizations.md) — Transforms data from files and sensors into dynamic visual representations and interactive graphics.

### Scientific & Mathematical Computing

- [General Array Operations](https://awesome-repositories.com/f/scientific-mathematical-computing/array-manipulations/array-concatenations/general-array-operations.md) — Provides functions for appending, copying, concatenating, sorting, and splicing arrays. ([source](http://processing.org/reference))
- [Math Utility Primitives](https://awesome-repositories.com/f/scientific-mathematical-computing/math-utility-primitives.md) — Executes common math operations like mapping ranges, constraining values, and computing distances. ([source](http://processing.org/reference))

### Security & Cryptography

- [General File Loaders](https://awesome-repositories.com/f/security-cryptography/dataset-loading-from-files/general-file-loaders.md) — Provides functions to load text, JSON, XML, table, and binary data from files and URLs. ([source](http://processing.org/reference))
