30 open-source projects similar to processing/p5.js, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best P5.js alternative.
Pts is a TypeScript creative coding library and data visualization framework designed for building generative art and interactive visuals. It functions as a multi-target graphics engine that outputs visual commands to HTML5 Canvas and SVG through a single unified interface. The toolkit serves as a linear algebra visualization tool, providing mathematical primitives for spatial transforms and geometric calculations. This allows for the creation of algorithmic patterns and the simulation of geometric behaviors. The framework covers a broad capability surface including the design of interactive
canvas-sketch is a JavaScript generative art framework and web-based creative coding environment. It provides a system for creating browser-based generative artwork using built-in tools for geometry and randomness. The framework functions as a high-resolution print exporter and pen plotter vector generator, allowing users to design with physical units and DPI settings for archival printing and robotic drawing machines. It also serves as a GPU shader integration tool for loading and executing shader files to achieve hardware-accelerated rendering. The project includes a development workflow f
node-canvas is a server-side 2D vector graphics and image processing library for Node.js. It provides a server-side implementation of the HTML5 Canvas API using the Cairo graphics library as its rendering engine to draw shapes, text, and paths. The library enables the programmatic generation of dynamic images and the creation of scalable vector graphics and PDF documents. It supports the registration of custom and system fonts for typography rendering and allows for the import of image assets via local paths, buffers, data URIs, and remote URLs. Capabilities include low-level pixel manipulat
Nannou is a creative coding framework for Rust designed for building interactive visual and audio sketches. It provides a loop-based API with hardware-accelerated 2D and 3D rendering, serving as a toolkit for generative art production and multimedia installation design. The framework is distinguished by its comprehensive hardware communication interface, which bridges software with physical devices via MIDI, OSC, DMX, serial, and laser DAC protocols. It also includes specialized projection mapping tools for warping visual output to fit non-standard physical surfaces and a dedicated GPU shader
react-konva is a declarative React canvas graphics library and 2D vector graphics framework. It serves as a rendering engine and interactive canvas toolset that allows for the drawing and management of complex 2D shapes and graphics using a React component model. The library maps reactive component trees to an underlying object-oriented graphics scene graph, enabling the synchronization of visual states with application data. It provides specialized tools for building interactive graphical interfaces, including support for multi-touch gestures, drag-and-drop functionality, and real-time trans
canvas-nest.js is a JavaScript animation library used to generate interactive particle networks and connected-line visuals for website backdrops. It functions as a programmatic system for rendering a web of intersecting points and lines on an HTML5 Canvas element. The library creates dynamic visual effects where particles move and form connections based on proximity and user interaction. These particle systems respond to mouse movements in real time to produce interactive background rendering. The system includes configuration options to adjust visual styles, such as particle density, line c
Cinder is a C++ creative coding library and native graphics toolkit designed for developing professional interactive media and visual art. It serves as a cross-platform multimedia framework for generating high-performance generative digital art and real-time visual rendering. The framework provides a professional suite of tools for building hardware-integrated installations and cinematic visuals. It focuses on real-time graphics programming and the production of high-quality graphics for professional displays. The library includes a cross-platform abstraction layer and a modular architecture
particles.js is a JavaScript particle animation library and visual effects engine used to create interactive, canvas-based simulations for web interfaces. It enables the generation of dynamic background animations and networked visual effects through coordinate-based particle movements. The library features a system for drawing connecting lines between particles based on proximity to create network-style visualizations. It includes mechanisms for mapping mouse movements and click events to specific particle behaviors, such as attraction or repulsion. Users can configure particle density, opa
react-native-skia is a cross-platform graphics framework that provides a high-performance 2D graphics engine for rendering shapes, paths, and images. It functions as a vector graphics engine and UI animation toolkit, allowing for hardware-accelerated visuals across mobile and web platforms. The project is distinguished by its integration of the Skia 2D graphics library, enabling a shader and filter pipeline for complex pixel-level effects. It supports the rendering of Lottie animations exported from After Effects and the execution of animations directly on the UI thread to maintain fluid moti
EaselJS is a JavaScript library for creating interactive 2D graphics and animations using the HTML5 Canvas element. It functions as a 2D animation framework, a canvas scene graph manager, and an interaction wrapper for detecting and responding to mouse and touch events. The library features a rendering pipeline that utilizes WebGL to increase the drawing performance of bitmap and cached content. It organizes visual elements into a hierarchical display list, allowing nested groups of 2D graphics objects to be transformed and animated as single units. Its capabilities cover the rendering of ve
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 Rasp
Zdog is a JavaScript graphics library designed for rendering pseudo-three-dimensional geometric models within web browser environments. It functions as a lightweight engine that draws flat, vector-based shapes onto HTML5 canvas or SVG elements by utilizing a scene graph to manage object relationships and spatial transformations. The library distinguishes itself through a unique approach to volumetric modeling, where three-dimensional depth is simulated on flat shapes by dynamically adjusting stroke thickness. This technique allows for the creation of rounded, plump visual effects without the
Two.js is a multi-backend graphics engine and vector drawing library that provides a unified API for creating two-dimensional graphics and animations. It functions as a renderer-agnostic abstraction layer, allowing users to generate vector shapes and paths that can be rendered via SVG, Canvas2D, or WebGL. The engine includes a scene graph manager to organize objects into hierarchical groups, enabling the propagation of collective transformations and parent-child relationships. It also features a headless graphics renderer, providing a node-based implementation for generating 2D drawings in se
This project is a creative coding showcase and interactive 3D portfolio template. It utilizes JavaScript and ThreeJS to render a navigable browser environment for presenting professional projects and digital artwork. The project implements a WebGL interactive gallery and immersive digital showcases. These environments use hardware-accelerated graphics to provide 3D navigation and creative web animations. The technical implementation includes a 3D scene with camera movement and lighting, supported by GLTF model loading and raycaster-based interaction. The architecture employs an entity-compon
This project is a mathematical visualization library and a collection of algorithmic art. It serves as a data visualization guide and an interactive visualizer, providing a set of implementations for rendering complex geometric shapes and mathematical concepts through code. The collection focuses on generating aesthetic patterns and precise graphic elements, including fractals, Bezier curves, and Lissajous patterns. It uses recursive functions and iterative algorithms to produce complex geometric structures and algorithmic art. The library covers a range of capabilities including interactive
This project is a generative art engine designed to create large collections of unique images by layering assets with assigned rarity weights and blending modes. It functions as an art generator that produces unique image sets and corresponding JSON metadata files for use in blockchain-based digital collections. The engine features a trait rarity manager that controls the frequency of specific visual attributes through filename-based weighting. It also includes a pixel art converter that transforms generated image collections into pixelated versions using configurable downsampling ratios. Th
css-doodle is a web component for creative coding that renders live CSS-generated patterns and animations directly in the browser. It creates generative art and visual patterns by applying CSS rules to a grid of cells, using the browser's native layout engine for positioning and styling. The component encapsulates its pattern canvas and styling within a custom element's shadow DOM, isolating it from page styles and enabling reusable instances. The tool distinguishes itself by driving pattern configuration through CSS custom properties, allowing dynamic style changes and real-time updates with
uPlot is a high-performance canvas time series charting library designed to render millions of data points with high frame rates. It functions as a high-frequency data visualizer and a real-time data stream plotter, utilizing the HTML5 Canvas API to maintain responsiveness when plotting large temporal datasets. The project distinguishes itself as a plugin-based visualization framework that allows for custom renderers to create specialized visuals such as heatmaps and box-and-whisker plots. It also serves as an interactive financial charting tool, specifically supporting OHLC charts, bars, and
Magick.NET is a C# image processing library that serves as a .NET wrapper for ImageMagick. It provides a raster graphics engine for rendering text, drawing graphics, and manipulating images using a native interface. The library handles the conversion of vector files, such as PDF, EPS, and PostScript, into raster formats. It also includes tools for extracting image metadata, such as EXIF data and raw thumbnails. The system covers a wide range of image manipulation capabilities, including resizing, format conversion, watermarking, and the merging of multiple images into static or animated file
learningPixi is an educational resource and instructional guide focused on 2D web graphics and interactive media development. It provides a structured curriculum and tutorials for building 2D games and visual applications using the Pixi.js rendering engine and WebGL for hardware-accelerated graphics. The project covers specialized workflows for sprite animation, including the use of texture atlases and spritesheet frame extraction. It also provides guidance on implementing game state management for scene transitions and rectangular collision detection systems to trigger interactive events. T
This project is a geospatial data rendering engine and OpenStreetMap road network visualizer. It functions as a vector map visualization tool that imports geocoded area data and converts road layouts into visual layers for digital or physical output. The system enables the creation of generative map art and stylized images intended for physical production via pen-plotters or laser cutters. It allows for the manipulation of line widths and colors of city streets to produce custom visual representations of urban environments. The engine provides capabilities for urban road visualization, geogr
Chart.js is a declarative data visualization framework that renders interactive, responsive charts directly onto an HTML5 canvas element. It functions as a configuration-driven engine, transforming structured datasets into complex graphical representations by merging user-defined settings with global defaults. The library utilizes a high-performance rendering pipeline that executes drawing commands during each animation frame to maintain smooth visual feedback. The project distinguishes itself through a modular, extensible architecture that allows developers to register custom scales, control
Anypixel is a web-to-hardware display framework and toolkit for building large-scale physical interactive screens and button walls. It provides a system for mapping HTML canvas graphics to physical LED arrays, combining a networked pixel controller with a management tool that translates web application data into electronic signals for microcontroller-driven display boards. The project features a browser-based hardware simulation environment that allows for testing interactive display logic, button events, and network communication without requiring physical components. This emulator enables t
Flame is a 2D game engine for Flutter and Dart. It provides a component-based game framework for managing entities and their lifecycles through a hierarchical architecture, alongside a dedicated system for game asset management and input handling. The engine distinguishes itself through a specialized integration layer for external physics engines to handle rigid body dynamics and collision detection. It also features a high-performance task model that uses isolates to offload heavy computations and prevent main thread blocking. The framework covers a broad range of capabilities including vis
Termui is a Go terminal user interface library used for building interactive dashboards and visual layouts within a command-line environment. It functions as a TUI layout engine, an interactive CLI framework, and a terminal data visualization toolkit. The library provides a set of specialized widgets for rendering charts, plots, gauges, and tables using character-based graphics. It includes a grid-based system for arranging interface elements using relative coordinates and proportional sizing to create structured displays. The toolkit covers a broad range of capabilities including data visua
CodeMirror is a browser-based code editor and extensible text editor framework. It functions as a programmable interface for rendering code and text with support for numerous programming languages, serving as a reusable component for web-based integrated development environments. The project provides a syntax highlighting engine that applies visual styles to text based on programming language rules. It includes a programming API and a CSS theming system to customize the editor's appearance and extend its functionality with custom behaviors. The framework covers capabilities for embedding tex
Walkway is a web animation framework and library designed for creating and managing drawing animations on SVG paths, lines, and polylines. It functions as a utility for executing geometric line animations within a browser, providing a system to control the playback state and timing of vector graphics. The library allows for the configuration of custom durations and easing functions to control the visual flow of drawings. It manages animation states through a system that can trigger sequences via callbacks and pause progress when the browser window loses focus. The framework covers high-level
This project is a frontend visualization library and gallery of interactive web examples. It provides a collection of implementations that demonstrate advanced visual effects through the use of stylesheets, canvas drawing surfaces, and three-dimensional graphics libraries. The collection specifically features implementations for visualizing artificial intelligence outputs and complex data patterns. It includes specialized galleries for three-dimensional scenes and spatial objects, as well as a showreel of stylistic motion effects and interface designs. The library covers a broad range of ren
Pebble is a reference implementation of wearable firmware intended for embedded system research and firmware analysis. It serves as a technical blueprint for understanding how smartwatch operating systems are structured and executed on constrained hardware. The codebase focuses on low power hardware rendering and the management of pixel data and display buffers to minimize energy consumption. It provides a historical guide for watch application development and the study of wearable software architecture. The system incorporates a hardware abstraction layer, a monolithic firmware image, and a
go-prompt is a library for building interactive command-line interfaces in Go. It serves as a cross-platform console UI framework and terminal input manager, providing the tools necessary to capture user input and execute commands through a persistent interactive loop. The library features a dedicated auto-completion engine that provides real-time command suggestions. It also supports dynamic prompt prefixes updated via callback functions and a system for managing and recalling command history. The framework covers a broad range of terminal capabilities, including keyboard shortcut mapping,