top of page

About ThorVG

Thor Vector Graphics (ThorVG) is an open-source, lightweight, and high-performance 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.png

Anti-aliased Shapes

path-clipping.png

Path-Clipping

blending.png

Blending

gaussian_blur.png

Gaussian-Blur

gradient_filling.png

Gradient Filling

svg.png

SVG

texturing.png

Texturing

drop_shadow.png

Drop-Shadow

stroking.png

Stroking

masking.png

Masking

text.png

Text

scene-effects.png

Color Replacement

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:

thorvg platforms

Linux

MacOS

Windows

Tizen

iOS

Android

Web

Flutter

OpenVela

Godot

Expressif

NuttX

Structural 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.

example_structure.png

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 backend raster engines. Additionally, ThorVG is adept at handling vector images, including formats like SVG, 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.

example_flow.png

Render Backends

Today, ThorVG provides its own implementation of multiple raster engines, allowing you to choose the one that best suits your app and system preferences.

​

  • CPU/SIMD (Software)

  • OpenGL/ES

  • WebGL

  • WebGPU

​

ThorVG is ahead of the curve, particularly in the web ecosystem. WebGPU introduces next-generation APIs similar to Vulkan, leveraging compute shaders and providing low-overhead, modern GPU access for more aggressive optimization strategies and broader applications. Building on this, ThorVG fully supports vector rendering features within its specification on top of WebGPU. Additionally, by abstracting underlying hardware graphics accelerations such as Metal, Vulkan, and DirectX, ThorVG ensures seamless adoption across various systems, regardless of the installed hardware accelerations.

example_webgpu.png

Threading

ThorVG incorporates a threading mechanism that aims to seamlessly acquire subsequent scenes without unnecessary delays. It operates using a finely-tuned task scheduler based on thread pools, encompassing various tasks such as encoding, decoding, updating, and rendering. This design ensures that all tasks can effectively leverage multi-processing capabilities.

​

The task scheduler has been meticulously crafted to conceal complexity, streamline integration, and enhance user convenience. Therefore, the policy it employs is optional, allowing users to select it based on their specific requirements.

example_thread.png

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.

example_partial.png

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.

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

example_svg.jpg

SVG rendering capabilities as highlighted by ThorVG

Lottie

ThorVG supports the most powerful Lottie Animation features (see dotLottie Player). 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 the resource verification tool for the ThorVG Engine. It does immediate rendering via web browser running on the ThorVG web-assembly binary, allowing real-time editing of the vector elements on it. It doesn't upload your resources to any external server while allowing to export to supported formats such as GIF, so the designer resource copyright is protected.

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.

img8-270w.webp
thorvg sponsors

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 financial sponsors for their generous support, which drives the growth and innovation of the ThorVG project. Your contributions help us make ThorVG more powerful, efficient, and accessible for everyone.

thorvg sponsors

We are also seeking your support to ensure the continued development of the ThorVG project. Your generous donations will help cover operational costs and contribute to the growth of this open-source project. Even a small contribution can make a big difference in securing the future of ThorVG!

Copyright © 2020 - 2025 ThorVG Project

bottom of page