GPU-first UI substrate
ProGPU
A lightweight GPU foundation for the next generation of .NET interfaces.
Overview
Cross-platform rendering, composition, vector, text, compute, and framework interop built directly on WebGPU and Silk.NET.
ProGPU treats device creation, retained composition, geometry, text, and presentation as explicit boundaries. Frameworks can replace one layer without inheriting an opaque renderer.
WebGPU-native pipelines
Retained scene composition
Vector, text, and compute
Avalonia, Uno, WPF, and WinForms bridges
Engineering story
The frame is a chain of contracts.
The useful unit is not a drawing API. It is the whole route from application intent to a presented frame, with enough separation that a framework, editor, or experiment can enter at the right level.
Follow one frame
- 01 · Platform
Meet the device
Window, surface, adapter, queue, and swapchain setup stay behind one backend boundary.
↗ - 02 · Primitives
Prepare the work
Vector paths, glyphs, images, and compute data become explicit GPU-ready resources.
↗ - 03 · Composition
Retain the intent
A scene records visual structure and effects so presentation is not rebuilt as ad-hoc draw calls.
↗ - 04 · Interop
Bridge the framework
Avalonia, Uno, WPF, and WinForms integrations translate existing UI contracts into the same frame path.
↗
Built for
Where it fits.
- UI framework authors replacing a renderer
- Graphics tools that need WebGPU-native primitives
- Teams exploring portable GPU composition in .NET
Compatibility & status
Preview
Preview
Preview
Design target
In the work
Real output,
not a mockup.

Architecture
Clear layers.
Replaceable seams.
Backend
Creates devices, surfaces, swapchains, queues, and platform services through WebGPU and Silk.NET.
Primitives
Vector, text, image, and compute packages prepare GPU-ready resources.
Scene
A retained visual tree records composition commands and effects.
Interop
Avalonia, Uno, WPF, and WinForms bridges connect existing UI contracts.
Inside ProGPU
One repository.
Multiple serious systems.
Explore the focused capabilities, their package boundaries, architecture, installation, and smallest useful example.
The backend owns adapter and device creation, surfaces, swapchains, command submission, resources, synchronization, and cross-platform window presentation.
1 module→02 · GPU-ready 2D primitivesVector & TextVector geometry, brushes, strokes, text shaping, glyph metrics, and layout packages prepare reusable 2D content for the GPU pipeline.
2 modules→03 · Retained visual systemScene & CompositionA retained scene, visual tree, compositor command stream, effects, transforms, clipping, and presentation pipeline organize complex interfaces across frames.
1 module→04 · Avalonia, Uno, WinUI, and WPFFramework BridgesFramework packages connect ProGPU presentation, controls, charts, and interop to Avalonia, Uno Platform, WinUI, and the LibreWPF compatibility effort.
4 modules→05 · Portable classic drawing APIsCompatibility ShimsProGPU-backed SkiaSharp and System.Drawing.Common compatibility shims let existing drawing-oriented code target the modern GPU substrate during migration.
2 modules→Quick start
From package
to first frame.
Choose the package workflow used by your repository, then start from the smallest working example. Replace VERSION with the current stable or prerelease version shown on NuGet.
dotnet add package ProGPU.Backend --prereleasedotnet add package ProGPU.Scene --prerelease<PackageReference Include="ProGPU.Backend" Version="VERSION" /><PackageVersion Include="ProGPU.Backend" Version="VERSION" />using ProGPU.Backend;
// Create the platform host and render through a retained GPU scene.// See the Gallery sample for complete window and frame setup.var options = new BackendOptions();Package surface
Start focused.
Compose as needed.
Source, docs, samples, and releases
The repository is the source of truth.
Use the current documentation and samples, inspect changes, report issues, or support continued open-source maintenance.