For 2d graphics rendering, the strongest matches are google/skia (Skia is a high-performance 2D graphics rendering library featuring), pixijs/pixi.js (PixiJS is a hardware-accelerated 2D graphics engine and HTML5) and goodboydigital/pixi.js (Pixi). shopify/react-native-skia and pixijs/pixijs round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore the best open-source 2D graphics engines on GitHub, ranked by stars and activity, to compare features and pick the right one.
Skia is a high-performance 2D graphics rendering library used for drawing text, geometries, and images on digital surfaces. It functions as a hardware-accelerated graphics engine that offloads drawing operations to the GPU, a vector graphics processor for SVG and complex paths, and a typography engine for shaping and drawing characters with Unicode support. The project provides a cross-platform image codec for encoding and decoding standard image formats into raw pixel data across multiple operating systems. It also enables the development of user interfaces that maintain visual consistency a
Skia is a high-performance 2D graphics rendering library featuring hardware acceleration, vector graphics, canvas surface management, text shaping, image decoding, and cross-platform support.
PixiJS is a hardware-accelerated 2D rendering engine and HTML5 canvas library. It functions as a web-based graphics engine that utilizes WebGL to draw interactive digital content, shapes, text, and images in the browser. The engine provides a specialized pipeline for high-performance 2D graphics, featuring a scene-graph hierarchy for organizing visual objects and a system for dynamic texture management. It includes capabilities for applying visual effects through masks, filters, and blend modes. The project covers broad functional areas including digital asset loading, user input processing
PixiJS is a hardware-accelerated 2D graphics engine and HTML5 canvas library that meets the visitor's requirements with WebGL rendering, texture management, and cross-platform browser support.
Pixi.js is a high-performance 2D graphics engine used to render interactive animations, sprites, and visual effects in web browsers. It functions as a WebGL 2D rendering engine and HTML5 graphics library designed to produce high-performance two-dimensional visuals. The project operates as a 2D sprite framework and a web-based visual effects engine, providing tools to apply filters, blend modes, and masks to real-time graphics. It also serves as an interactive web canvas API for handling multi-touch and mouse input to build responsive graphical user interfaces. The framework covers a broad se
Pixi.js is a high-performance WebGL-based 2D rendering engine that delivers hardware-accelerated graphics, scene graph management, and visual effect pipelines for web browsers, directly matching your search for a 2D graphics framework.
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
This repository provides a high-performance cross-platform 2D graphics framework backed by Skia, featuring GPU-accelerated rendering, vector graphics, typography, image loading, and canvas management for React Native applications.
PixiJS is a high-performance 2D rendering engine designed for building interactive visual content and browser-based games. It provides a hardware-accelerated graphics library that leverages WebGL and WebGPU backends to execute complex scenes, utilizing a hierarchical scene graph to manage object transformations and display order. The project distinguishes itself through a sophisticated architecture that decouples rendering logic from hardware APIs, allowing for consistent performance across diverse browser environments. It features a robust, asynchronous asset pipeline that handles loading, c
PixiJS is a high-performance 2D rendering engine with GPU-accelerated WebGL/WebGPU backends, asset pipelines, and scene management, making it a flagship choice for hardware-accelerated 2D graphics.
Macaw is a Swift vector graphics library and animation framework used to create and render scalable geometric shapes and text. It functions as an SVG rendering engine and an interactive vector graphics toolkit for displaying complex artwork while maintaining image quality at any scale. The framework enables the animation of shape properties and node transformations, including the ability to morph one vector path into another. It allows for the integration of external SVG files and the application of linear and radial gradients to fills and strokes. The toolkit covers a range of capabilities
Macaw is a Swift vector graphics rendering library and animation framework that provides shape drawing, text rendering, and SVG support, though it is specifically tailored to iOS and macOS rather than being a universal cross-platform solution.
Painter is a declarative rendering system that transforms JSON definitions into styled visual images. It functions as a JSON-to-image rendering engine that converts structured layout data into vector shapes, styled text, and QR codes on a canvas. The system features a dynamic image template engine that utilizes relative coordinate calculations to determine element positions based on the boundaries of other components. It supports the creation of interactive templates where users can drag, scale, and delete elements in real-time, as well as the ability to update specific element properties wit
Painter is a JavaScript-based JSON-to-image rendering engine that converts structured layout data into canvas vector shapes, styled text, and images, fitting the core 2D graphics rendering scope while operating as a template-driven system.
NanoVG is a hardware-accelerated 2D drawing engine and C graphics primitive library. It provides a lightweight renderer designed for high-quality antialiased vector graphics using an OpenGL backend. The engine specializes in the construction and rendering of complex geometric paths. It supports the definition of precise shapes using lines, beziers, and arcs, with integrated winding rules to create hollow areas and composite shapes. The library covers a broad range of vector graphics capabilities, including path composition and the rendering of antialiased shapes. These tools enable the devel
NanoVG is a lightweight, hardware-accelerated 2D vector graphics rendering engine designed for C applications, though it covers core drawing primitives rather than offering a full canvas and image-decoding suite out of the box.
Piston is a modular game engine and framework written in Rust for building two and three-dimensional graphical applications. It functions as a cross-platform windowing library and a system for managing input events and window loops across different operating systems. The project provides specialized rendering systems, including a voxel rendering engine for volumetric pixels and a skeletal animation system for deforming meshes via hierarchical bone structures. It also features an immediate mode user interface toolkit for creating responsive on-screen elements and a behavior tree AI framework t
Piston is a modular game engine and framework written in Rust that provides cross-platform windowing, input handling, and 2D/3D rendering capabilities suitable for building graphical applications.
gg is a Go 2D graphics library and vector graphics engine designed for programmatic image generation. It provides a canvas rendering API to create custom 2D shapes, paths, and visual assets, which can be exported as PNG and JPG files. The toolkit enables the construction of complex geometry using Bezier curves and custom paths. It supports a variety of rendering operations, including filling and stroking paths, applying linear and radial gradients, and utilizing surface patterns. The library covers a broad range of capabilities, including text rendering with word wrapping and dimension measu
This Go library provides programmatic canvas rendering and vector graphics capabilities, serving as a solid tool for 2D visual asset generation despite lacking GPU acceleration.
Shan-shui-inf is an algorithmic art engine designed to generate infinite, procedurally created mountain and tree scenery. It functions as a generative Chinese painting engine that mimics the style and composition of traditional ink landscapes using mathematical noise and geometric functions. The system produces a seamless and endless stream of scalable vector graphics, enabling infinite vector scrolling. It maps noise values to spatial coordinates to arrange landscape elements and calculates vector coordinates to simulate organic hand-painted strokes. All artwork is rendered as scalable vect
Shan-shui-inf is a specialized procedural art engine that generates infinite vector landscapes, fitting the 2D graphics rendering category through its use of algorithmic vector generation, though its scope is narrowly focused on traditional ink painting simulations rather than a general-purpose rendering library.
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
Two.js is a renderer-agnostic 2D vector graphics engine supporting multiple backends like SVG, Canvas, and WebGL, though it is primarily a lightweight drawing and animation library rather than a full system covering all advanced canvas and typography features.
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
EaselJS is a JavaScript library for 2D graphics and animation on the HTML5 Canvas that features WebGL acceleration, scene graph management, and vector rendering, though it is narrower than a full cross-platform engine.
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
This library provides a server-side 2D vector graphics and canvas rendering environment for Node.js using Cairo, missing native GPU-accelerated surface management while handling text, images, and vector output.
This project is a declarative visualization library and geospatial framework designed for rendering large-scale data sets within web browsers. It functions as a high-performance graphics engine that leverages hardware acceleration to display complex 2D and 3D visual layers, enabling the visualization of millions of data points through a structured, component-based syntax. The framework distinguishes itself through its ability to synchronize custom data visualizations with third-party mapping platforms. By managing camera states and coordinate systems, it allows developers to overlay high-perf
This project is a high-performance WebGL-based visualization framework that leverages hardware acceleration for rendering large-scale visual layers, though it is specifically tailored for geospatial and data-driven mapping rather than general-purpose 2D vector graphics.
This project is a declarative animation library and high-performance engine designed for creating fluid, interactive vector motion graphics on the web. It provides a specialized framework for defining, rendering, and orchestrating complex visual sequences, including custom geometric shapes and dynamic property transitions. The library distinguishes itself through a robust particle system framework that generates explosive or organic visual effects by emitting multiple shapes with randomized trajectories and paths. It utilizes a master timeline controller to synchronize independent animation i
This project is a declarative vector animation library focused on web motion graphics, which aligns with the core domain of 2D graphics rendering even though its primary emphasis is animation rather than general-purpose surface management.
Lottie is a JSON vector animation engine and cross-platform player that renders resolution-independent motion graphics. It functions as a runtime renderer that translates Adobe After Effects compositions into real-time animations using a JSON-based intermediate representation. The project distinguishes itself by enabling dynamic control over vector assets at runtime. It allows for the programmatic modification of animation properties, colors, and playback states through hierarchical key-paths and dynamic theming. This allows animations to respond to real-time application state changes and use
Airbnb's Lottie is a cross-platform vector animation player and runtime engine that renders resolution-independent motion graphics using hardware acceleration, fitting the requested category well despite focusing specifically on JSON-based animations rather than a general-purpose 2D rendering canvas.
Fabric.js is an object-oriented canvas library that provides an interactive framework for managing shapes, images, and text within an HTML5 canvas environment. It abstracts raw pixel-based drawing commands into a structured hierarchy of objects, enabling developers to manipulate, transform, and animate elements through a centralized event-driven system. The library distinguishes itself by offering comprehensive state serialization, allowing complex graphic compositions to be converted into JSON or SVG formats for persistent storage and reconstruction. It includes a built-in SVG parser that co
Fabric.js is an object-oriented canvas library for interactive 2D graphics management and SVG manipulation within HTML5, making it a well-suited framework for browser-based rendering despite lacking native GPU acceleration or a standalone surface management engine.
SDL is a cross-platform development library that provides low-level access to audio, keyboard, mouse, joystick, and graphics hardware. It functions as a hardware abstraction layer, mapping diverse operating system interfaces into a unified set of functions to ensure consistent performance across different computing environments. The library serves as a foundation for multimedia and interactive application development by providing an integrated audio processing engine and a graphics rendering framework. It manages the complexities of hardware communication by normalizing raw input events and p
Simple DirectMediaLayer is a low-level cross-platform development library that provides robust graphics hardware access and rendering foundations, though it operates primarily as a hardware abstraction layer rather than a dedicated high-level 2D vector graphics framework.
Pixel is a 2D game library and graphics engine for the Go programming language. It provides a hardware-accelerated renderer for drawing sprites, geometric shapes, and text, utilizing an optimized system of batching and transformation matrices. The project functions as a comprehensive toolkit for two-dimensional interactive applications, combining a graphics engine with a 2D vector math library for affine transformations and coordinate space projections. It includes a dedicated input manager that tracks keyboard presses and mouse movements using a polling-based system rather than asynchronous
This repository provides a hardware-accelerated 2D graphics engine and game library for Go, covering canvas management, text rendering, and image decoding, though it is tailored specifically for game development rather than general 2D graphics.
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
Processing is a Java graphics library and creative coding environment that provides cross-platform 2D and 3D rendering, canvas management, and text and image handling, though it is delivered as an all-in-one sketchbook ecosystem rather than a lightweight standalone rendering library.
Makie.jl is a high-performance Julia data visualization library and hardware-accelerated plotting engine used to create interactive 2D and 3D visualizations. It functions as a reactive visualization framework where plots update automatically via observables and compute graphs, and as a vector graphics generator for high-resolution academic output. The system is distinguished by its backend-agnostic rendering pipeline, which supports OpenGL, WebGL, and ray-traced scenes. It employs a grammar-of-graphics approach to map variables to aesthetic attributes and utilizes a hierarchical scene graph t
Makie.jl is a high-performance, GPU-accelerated graphics and plotting engine in Julia that handles interactive 2D and 3D visualisations, though its primary focus is data visualization rather than general 2D sprite rendering.
This project is a C-based multimedia toolkit and cross-platform game framework designed for building interactive applications. It provides a low-level programming interface that grants direct access to hardware-accelerated graphics, real-time audio processing, and user input handling. By utilizing an immediate-mode rendering architecture, the library processes visual state changes frame-by-frame, which simplifies the logic required for dynamic interfaces and interactive simulations. The library distinguishes itself through a zero-dependency design that avoids complex external build requiremen
Raylib provides a low-level, GPU-accelerated C multimedia toolkit and graphics framework that handles cross-platform 2D rendering, shape drawing, image loading, and text, making it a well-suited library for building 2D graphics systems.
Leafer UI is a high-performance HTML5 canvas rendering engine and 2D vector graphics library. It utilizes a hierarchical scene tree to manage shapes, paths, and text, providing a toolkit for building interactive canvas applications and expansive infinite canvases. The engine is designed as a cross-platform canvas toolkit that decouples core logic from the drawing API, allowing it to run across web, mobile, server, and mini-program environments. It distinguishes itself by providing specialized tools for interactive graphic editor development, including hit detection, event bubbling, and transf
Leafer UI is a high-performance HTML5 canvas rendering engine and 2D vector graphics library that provides robust scene tree management, vector path support, and cross-platform capabilities tailored for interactive visual applications.
Paper.js is an HTML5 Canvas vector graphics library and scripting framework used for creating and manipulating 2D shapes and paths. It functions as a vector animation framework and a headless vector graphics engine, allowing for the execution of graphics operations in both browser and server-side environments. The project features a dedicated SVG import and export engine to convert between native vector items and the SVG format. It includes a specialized boolean path operation toolkit for uniting, subtracting, and intersecting vector paths to create complex geometric shapes. The library cove
Paper.js is an HTML5 Canvas vector graphics library and scripting framework that handles 2D shapes, paths, and SVG import/export, fitting the core rendering engine category well despite lacking some advanced GPU acceleration and text formatting features.
Phaser is a comprehensive 2D game engine designed for building high-performance, interactive content that runs directly in web browsers. At its core, the engine utilizes a fixed-timestep simulation loop that decouples game logic from variable browser frame rates, ensuring consistent behavior across diverse hardware. It provides a robust framework for managing asset loading, physics, input, and audio, enabling the creation of complex, responsive visual experiences for both desktop and mobile devices. The engine distinguishes itself through a high-performance graphics pipeline that automaticall
Phaser is a powerful browser-based 2D game engine that provides canvas and surface management, image loading, and cross-platform support, though its primary design focus is game development rather than a general-purpose graphics library.
This project is a high-performance, lightweight C graphics library designed for creating interactive user interfaces on resource-constrained embedded hardware. It functions as a comprehensive framework that provides a widget toolkit, a rendering engine, and hardware-agnostic drivers to support the development of graphical displays on microcontrollers and embedded systems. The framework distinguishes itself through a flexible, object-oriented widget hierarchy and a declarative layout engine that supports responsive design patterns like flexbox and grid systems. It enables developers to synchro
LVGL is an embedded C graphics library and UI framework designed for high-performance rendering on resource-constrained microcontrollers, fitting the 2D graphics rendering engine category well despite its specific focus on embedded user interfaces.
LÖVE is a cross-platform game engine and framework for developing two-dimensional games using the Lua programming language. It provides a 2D graphics API for rendering shapes, images, and sprites across multiple desktop and mobile platforms. The framework enables the development of a single codebase that can be deployed to Windows, macOS, Linux, Android, and iOS. It utilizes a Lua-based scripting interface to control internal engine systems. The project covers 2D game development, mobile game development, and cross-platform game deployment.
LÖVE is a cross-platform 2D game framework that provides hardware-accelerated graphics and surface management using Lua, though it leans toward game development rather than a general-purpose rendering library.
Canvas is a headless vector graphics engine and two-dimensional graphics rendering library built on a native graphics library with zero system dependencies for server-side drawing. It provides a programmatic shape construction and manipulation library supporting bezier curves, boolean operations, and native rendering without requiring a display server. The library renders shapes, paths, text, and images onto virtual memory surfaces and off-screen drawing areas for server-side image generation, vector animation rendering, and PDF generation. It supports path boolean operations to compute comp
This repository provides a high-performance Skia-based canvas implementation with zero system dependencies, serving as a dedicated surface management and rendering library that supports vector and text graphics.
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
This library acts as a 2D graphics rendering engine integrated with React, offering a declarative framework for vector graphics, canvas management, and interactive shape manipulation.
| 仓库 | Star 数 | 语言 | 许可证 | 最后推送 |
|---|---|---|---|---|
| google/skia | 10.8K | C++ | BSD-3-Clause | |
| pixijs/pixi.js | 47.4K | TypeScript | MIT | |
| goodboydigital/pixi.js | 47.4K | TypeScript | MIT | |
| shopify/react-native-skia | 8.4K | TypeScript | MIT | |
| pixijs/pixijs | 47.4K | TypeScript | MIT | |
| exyte/macaw | 6.1K | Swift | MIT | |
| manycore-maas/painter | 4.5K | JavaScript | Apache-2.0 | |
| memononen/nanovg | 5.7K | C | Zlib | |
| pistondevelopers/piston | 4.7K | Rust | MIT | |
| fogleman/gg | 4.8K | Go | MIT |