30 open-source projects similar to google/skia, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Skia alternative.
ImageSharp is a .NET image processing library and manipulation framework used for decoding, encoding, and modifying digital images. It functions as a comprehensive toolkit for resizing, cropping, and applying pixel-level filters while managing color profiles and pixel data across various file formats. The project integrates a 2D vector graphics engine and a typography rendering engine to draw geometric shapes, paths, and complex stylized text onto images. It also includes a geometry boolean operation library for calculating intersections, unions, and differences between complex polygons and c
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
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
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
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
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
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
This project is a cross-platform library designed for desktop application development, providing a unified interface for window management, input handling, and hardware-accelerated graphics. It serves as a foundational framework that abstracts platform-specific windowing protocols and graphics APIs, enabling developers to create interactive software that functions consistently across Windows, macOS, and Linux. The library distinguishes itself by providing deep integration with low-level graphics APIs, specifically OpenGL and Vulkan. It manages the complexities of graphics context initializati
bgfx is a cross-platform, graphics rendering abstraction layer designed for high-performance applications. It provides a unified interface that maps high-level rendering commands to native graphics APIs, allowing developers to maintain a single codebase that executes consistently across diverse operating systems and hardware architectures. The library distinguishes itself through a multi-threaded command submission model that decouples rendering logic from the main application thread, effectively minimizing CPU bottlenecks. It utilizes a backend-agnostic command buffer and a deferred resource
Magnum is a C++ middleware suite for cross-platform graphics development and real-time data visualization. It provides a hardware-agnostic rendering layer that translates graphics commands into platform-specific calls, ensuring consistent behavior across different GPU drivers and APIs such as Vulkan. The project focuses on decoupling application logic from underlying hardware through abstract graphics and system utilities. It features a plugin-based resource importer for 3D assets and audio, a hierarchical scene graph for spatial transformations, and a high-performance signal-based event syst
Horde3D is a small 3D rendering and animation engine. It is written in an effort to create an engine being as lightweight and conceptually clean as possible.
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
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
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
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
Pygame is a framework for building interactive 2D applications and games using the Python programming language. It functions as a 2D graphics rendering engine, a game input and event manager, and a multimedia audio toolkit. The project serves as a wrapper for the Simple DirectMedia Layer, providing a Python interface for low-level access to graphics, audio, keyboard, mouse, and joystick hardware. Its capabilities cover 2D graphics rendering and image manipulation, digital audio playback and streaming, and the management of game entities and physics simulations. It also includes tools for rea
Xilem is a native user interface framework for the Rust programming language. It provides a reactive view tree that links application state to the interface to automate updates when data changes. The framework incorporates a GPU-accelerated 2D graphics engine and a dedicated text layout engine to handle complex typography and high-performance visual rendering. It is built as an accessible UI framework with integrated support for system accessibility services and screen readers. The system utilizes a retained-mode architecture with a graphics pipeline that translates drawing commands into har
Macroquad is a Rust game engine and 2D graphics library designed for developing cross-platform games and graphical applications. It functions as a rendering engine that enables the deployment of a single codebase to desktop, mobile, and web targets. The engine utilizes an immediate mode rendering model, which allows for the creation of user interfaces and game worlds that render in a single pass within the main application loop. This approach is paired with hardware-accelerated 2D rendering and automatic draw call batching to optimize the display of geometry across different hardware devices.
This project is an image processing library designed for manipulating pixel data, applying visual filters, and adjusting image appearance. It functions as a low-level tool for processing raw pixel buffers and managing image data. The library provides a toolkit for image geometry manipulation, including resizing, cropping, flipping, and rotating images. It also serves as an image format converter for encoding and decoding data between common binary file formats and as a metadata extractor for retrieving dimensions and color profiles from file headers. The capabilities cover low-level image pr
This repository is a comprehensive collection of reference implementations and sample libraries for the Universal Windows Platform. It provides practical examples of how to use Windows Runtime APIs to build cross-device applications, including detailed guidance on XAML-based declarative user interfaces and DirectX-integrated rendering. The project distinguishes itself by providing a wide array of hardware integration suites, covering low-level communication with USB, Serial, I2C, SPI, and GPIO peripherals. It includes specialized implementations for mixed reality holographic rendering, advanc
Lottie-android is a native vector animation engine and library for Android that parses JSON specification files into high-fidelity animations. It functions as a JSON animation parser and renderer, translating After Effects exported data into native draw calls to maintain design fidelity on mobile devices. The library supports dynamic user interface control by allowing the modification of animation properties, such as colors, text, and shape attributes, during runtime playback. It also integrates with system-level accessibility settings to adjust playback and visibility in accordance with redu
SFML is a cross-platform multimedia framework for C++ designed for creating 2D graphics, audio, and network applications. It functions as a unified set of libraries that provides a 2D graphics rendering engine, an audio processing library, a network socket library, and a cross-platform window manager. The framework allows for the development of interactive software by coordinating real-time 2D graphics rendering, audio playback, and user input handling. It provides a standardized interface for creating and controlling application windows across multiple operating systems. Its capability surf
JUCE is a comprehensive C++ audio framework and digital signal processing library used to build cross-platform audio applications, audio plug-ins, and high-performance user interfaces. It serves as a development kit for creating audio processors compatible with industry-standard plugin formats for digital audio workstations, as well as a tool for MIDI and Open Sound Control communication between musical hardware and software. The framework is distinguished by its ability to maintain a single codebase for native desktop and mobile applications across multiple operating systems. It provides a f
Keyframes is a cross-platform animation library and playback engine designed to render Adobe After Effects shape animations as high-quality vector graphics on mobile devices. It functions as a vector animation player that executes complex path and shape animations using a JSON-based data format, removing the need for rasterized video files. The system enables the conversion of shape-based animations from After Effects into a portable schema for delivery across both Android and iOS platforms. This ensures visual consistency by utilizing a shared framework to render the same vector animation da
Resvg is a high-compliance SVG rendering library and parsing engine designed to convert scalable vector graphics into raster images. It functions as an SVG to raster converter that resolves XML trees and manages the transformation of vector data into bitmap formats. The project ensures cross-platform visual consistency by producing identical pixel-perfect output regardless of the operating system or CPU architecture. It distinguishes itself through a text layout engine that handles complex typography, including bidirectional reordering, vertical writing modes, and color emoji fonts. The libr
Vello is a cross-platform graphics library and GPU-accelerated 2D vector renderer. It functions as an engine for drawing high-performance 2D scenes, rendering scalable vector graphics files, and playing Lottie animations. The project utilizes GPU compute shaders for rasterization and stores vector geometry in a GPU-resident scene graph to minimize data transfer. It employs a tiled rendering architecture and parallelized path rendering to process complex imagery across diverse graphics APIs. The library provides hardware-accelerated compositing and enables the output of rendered 2D visual dat
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
SFML is a cross-platform C++ multimedia library designed for building 2D games and interactive applications. It provides a unified interface for hardware-accelerated graphics, audio playback, and window management, allowing developers to create visual software that functions consistently across different operating systems. The library abstracts native windowing and graphics APIs, enabling the use of object-oriented primitives to render shapes, sprites, and text. It includes a dedicated audio engine that supports sound effects and music with controls for volume, pitch, and spatial positioning,
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
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