About ThorVG
Thor Vector Graphics (ThorVG) is an open-source, lightweight, and versatile vector graphics engine designed to deliver scalable graphics and rich animations across a wide range of devices. The name “Thor” reflects a dual inspiration—combining great strength with lightning-fast speed—symbolizing the project’s commitment to powerful yet efficient rendering.
Originally authored by Hermet Park (박춘언) in 2020, ThorVG began as an initiative to create a fast, compact, and developer-friendly vector graphics engine for modern applications and systems. What started as a small open-source effort has since evolved into a globally-adopted project, used across mobile, IoT, automotive, creative tools, and even game engines.
​
With a design philosophy that favors simplicity, clarity, and performance, ThorVG delivers an intuitive API, minimal overhead, and strong support for vector rendering and animation workflows. It is particularly optimized for real-time graphics, low-memory environments, and cross-platform deployment.
​
At its core, ThorVG offers a comprehensive set of vector primitives, including:
-
Lines & Shapes: rectangle, circles, and paths with coordinate control
-
Filling: solid colors, linear & radial gradients, and path clipping
-
Stroking: stroke width, join, cap, dash patterns, and trimming
-
Scene Management: retainable scene graph & object transformations
-
Composition: various blending and masking
-
Text: unicode characters and horizontal multi-line text layout using the scalable fonts (TTF)
-
Images: SVG, JPG, PNG, WebP, Raw Bitmap
-
Effects: blur, drop shadow, tint, tritone and color replacement
-
Animation: Lottie

Anti-aliased Shapes

Path-Clipping

Blending

Gaussian-Blur

Gradient Filling

SVG

Texturing

Drop-Shadow

Stroking

Masking

Text

Color Replacement
Lightweight Design
ThorVG is designed for a wide range of programs, offering adaptability for integration and use in various applications and systems. It achieves this through a single binary with selectively buildable, modular components in a building block style. This ensures both optimal size and easy maintanence.

The core library of ThorVG maintains a binary size of approximately 150KB. This is significantly smaller compared to graphics engines designed primarily for desktop environments and offers the following advantages.
-
Memory Efficiency: Thanks to its low runtime memory usage, ThorVG operates stably even on low-spec systems.
-
Fast Boot: The library loads and initializes quickly, improving the overall startup speed of applications.
-
Low Size Deployment: With its small code and resource footprint, ThorVG is well-suited for embedded systems, IoT devices, and network-constrained environments.
Broad Portability
ThorVG is based on the C++ standard and provides consistent functionality across various platforms through an abstraction layer that minimizes dependence on specific operating systems or hardware.
-
Extensive Platform Support: ThorVG supports web platforms, desktop operating systems such as Windows, macOS, and Linux, mobile platforms including Android and iOS, as well as embedded systems like Tizen and RTOS-based environments.
-
​Microcontroller Support: ThorVG has been shown to run on microcontrollers like the ESP32, demonstrating its efficiency even within environments with highly limited memory and storage.
-
Headless Rendering Support: ThorVG can perform rendering without a display server, enabling use cases such as server-side graphics processing or offline rendering tools.
If your program includes the main renderer, you can seamlessly utilize ThorVG APIs by transitioning drawing contexts between the main renderer and ThorVG. Throughout these API calls, ThorVG effectively serializes drawing commands among volatile paint nodes. Subsequently, it undertakes synchronous or asynchronous rendering via its render-backend engines. Additionally, ThorVG is adept at handling vector images, including formats like SVG and Lottie, and it remains adaptable for accommodating additional popular formats as needed. In the rendering process, the library may generate intermediate frame buffers for scene compositing, though only when essential. The accompanying diagram provides a concise overview of how to effectively incorporate ThorVG within your system.

CPU Rasterization
ThorVG is optimized for CPU-based rasterization, with a strong focus on vector rendering in environments where GPU resources are limited, unavailable, or intentionally avoided. In representative CPU benchmarks, ThorVG demonstrates an average of ~1.8× faster performance to a widely-used vector graphics engine across common vector rendering workloads. The advantage is particularly clear in geometry-heavy scenarios such as rectangles, strokes, rotations, and circle rendering.
Performance Overview

Test Conditions
-
Tested with 5k semi-transparent primitives, including shapes, strokes, and images, using alpha blending.
-
Image filtering was performed using bilinear interpolation.
-
Test Platform: Apple M1 (macOS 15)
-
Render size: 2560 × 1440 (2K) for each test case
-
Versions: ThorVG v1.0.0, Skia v144

Threading
ThorVG incorporates a threading mechanism designed to seamlessly retrieve upcoming scenes without unnecessary delays. It utilizes a finely-tuned task scheduler based on thread pools to handle a variety of tasks, including encoding, decoding, updating, and rendering. This architecture ensures efficient use of multi-core processing.
​
The task scheduler is carefully designed to abstract complexity, simplify integration, and enhance user convenience. Its use is optional, allowing users to adopt it based on their specific needs.

Smart Rendering
ThorVG supports smart partial rendering, which enables more efficient rendering workflows by updating only the portions of a vector scene that have changed. By internally tracking modified regions, it minimizes unnecessary redraws and optimizes overall performance. This feature provides significant benefits in scenarios such as UI rendering, design tools, or applications where large parts of the scene remain static and only small elements update between frames. In such cases, avoiding full-scene rendering can greatly reduce computational workload and improve energy efficiency—making it particularly valuable on mobile and embedded systems.
​
The following figure illustrates the geometry changes and highlights the minimal redraw region (outlined in red) that needs to be updated. Only the modified area between the previous and current frames is selectively redrawn, significantly improving performance.

Please note that in highly dynamic content—such as fast-paced games or full-screen animations where nearly all objects change every frame—partial rendering provides little to no benefit and may even introduce minor overhead. In these scenarios, full-scene rendering is typically the better choice. For a practical showcase, visit this page demonstrating a performance comparison of partial rendering using ThorVG's software renderer.
Render Backends
Today, ThorVG provides its own implementation of multiple render-backend engines, allowing you to choose the one that best suits your app and system preferences.
​
-
CPU/SIMD (Software)
-
OpenGL/ES
-
WebGL
-
WebGPU
​
ThorVG is particularly ahead of the curve in the web ecosystem. WebGPU introduces next-generation graphics APIs comparable to Vulkan, offering access to compute shaders and low-overhead GPU control. This enables more aggressive optimization strategies and broader application potential. On top of this, ThorVG fully supports all of its vector rendering features within the WebGPU backend, ensuring a complete and consistent experience across platforms.
​
Furthermore, by abstracting underlying hardware graphics APIs such as Metal, Vulkan, and DirectX, ThorVG guarantees seamless integration across a wide range of systems, regardless of the specific hardware accelerations available.

Supported Platforms
ThorVG is designed to be portable across a wide range of devices, including small IoT devices, embedded systems, mobile platforms, desktop environments, and the web. It is actively under development, with ongoing efforts to expand support for essential platforms as needed. Currently, major supported platforms include:

Linux
MacOS
Windows
iOS
Android
Web
Tizen
OpenVela
Espressif
Rasberry PI
Godot
Unity
SVG
ThorVG facilitates SVG (Scalable Vector Graphics) rendering via its dedicated SVG interpreter. Adhering to the SVG Tiny Specification, the implementation maintains a lightweight profile, rendering it particularly advantageous for embedded systems. While ThorVG comprehensively adheres to most of the SVG Tiny specs, certain features remain unsupported within the current framework. These include:
-
Animation
-
Interactivity
-
Multimedia

SVG rendering capabilities as highlighted by ThorVG
Lottie
ThorVG supports the most powerful Lottie Animation features. Lottie is an industry standard, JSON-based vector animation file format that enables seamless distribution of animations on any platform, akin to shipping static assets. These files are compact and compatible with various devices, scaling up or down without pixelation. With Lottie, you can easily create, edit, test, collaborate, and distribute animations in a user-friendly manner. For more information, please visit Lottie Animation Community' website.
Lottie animations powered by ThorVG
Please check out the ThorVG Test to see the performance of various Lottie Animations powered by ThorVG.
ThorVG Viewer
ThorVG provides a resource verification tool for the ThorVG engine. The ThorVG viewer enables instant rendering directly in the web browser using the ThorVG WebAssembly binary, allowing real-time editing of vector elements. It does not upload your resources to any external server and supports exporting to formats such as GIF, ensuring that designer copyrights remain protected.
VS Code Liveview
ThorVG also provides A Visual Studio Code extension that integrates ThorVG Viewer for previewing Lottie animations and SVG files directly inside the editor.

Contributors
​Today, ThorVG stands as a purely open-source initiative. We are grateful to the individuals, organizations, and companies that have contributed to the development of the ThorVG project. The dedicated efforts of the individuals and entities listed below have enabled ThorVG to reach its current state.
Partners
Partners engage in strategic collaboration with ThorVG, working together to shape the future of scalable, high-performance vector graphics. We acknowledge organizations that have supported ThorVG’s journey through development, integration, collaboration, and community involvement.
If you’re interested in partnering with ThorVG, we’d love to hear from you. Please reach out at thorvg@thorvg.org
Sponsors
We sincerely thank our sponsors and supporters who help drive the continuous evolution of ThorVG. Your support is more than a contribution — it is an investment in a high-performance, accessible graphics engine built for real-world production.
ThorVG is designed to remain open, accessible, and community-driven. To help ensure long-term sustainability and faster technical iteration, we provide additional support channels for our corporate and professional sponsors.


