GPU-first UI substrate
ProGPU
A GPU foundation that reaches from the device to complete portable application surfaces.
Overview
A cross-platform GPU-first .NET UI substrate spanning WebGPU rendering, retained composition, OpenType text, media, WinUI-shaped controls, XAML compilation, mobile and browser hosts, and compatibility layers.
ProGPU treats device creation, retained composition, geometry, text, media, controls, XAML, and presentation as explicit boundaries. Frameworks can replace one layer without inheriting an opaque renderer.
WebGPU rendering, retained composition, vector, and OpenType text
Portable WinUI controls, Fluent themes, input, and automation
Cross-platform media playback, editing, effects, and export
XAML compiler, hot reload, Avalonia/Uno/WPF/WinForms, mobile, and browser hosts
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, WinForms, Android, iOS, and browser integrations translate application contracts into the same frame path.
↗ - 05 · Application
Compile the interface
A Roslyn-first XAML pipeline, portable WinUI controls, Fluent resources, input, and automation build a complete UI layer.
↗ - 06 · Media
Move timed pixels
Playback, tracks, audio, retained effects, editing, thumbnails, and export share the GPU scene and native providers.
↗
Built for
Where it fits.
- UI framework authors replacing a renderer or portable application model
- Graphics, media, CAD, document, and data tools that need WebGPU-native primitives
- Teams building portable XAML, mobile, browser, compatibility, or NativeAOT surfaces
Compatibility & status
Preview
Preview
Preview
Native and WebAssembly hosts
Typed runtime paths
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, OpenType text, image, media, voxel, and compute packages prepare GPU-ready resources.
Scene
A retained visual tree records composition commands and effects.
Interop
Portable WinUI and XAML layers plus Avalonia, Uno, WPF, WinForms, Android, iOS, and browser hosts connect application 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, an AOT-safe OpenType shaping engine, generated Unicode data, font fallback, glyph atlases, metrics, and layout packages prepare reusable 2D content for the GPU pipeline.
4 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 and platform packages connect ProGPU presentation, controls, charts, media, and interop to Avalonia, Uno Platform, portable WinUI, LibreWPF, LibreWinForms, Android, iOS, and the browser.
7 modules→05 · Portable classic drawing APIsCompatibility ShimsProGPU-backed SkiaSharp and System.Drawing.Common compatibility shims, metadata parity gates, and retained WebGPU execution let existing drawing-oriented code target the modern GPU substrate during migration.
2 modules→06 · Controls, input, Fluent, and automationPortable WinUIA WinRT-shaped foundation and WinUI-shaped application model bring portable controls, layout, binding, input, gestures, automation, windowing, Fluent themes, charts, and designer surfaces onto ProGPU.
4 modules→07 · Compiler, source generation, and workspacesRoslyn-first XAMLLossless syntax, schema, diagnostics, binding, construction IR, Roslyn emission, source generation, workspace editing, project watch, reverse projection, preview, and hot reload form a complete XAML toolchain.
5 modules→08 · Playback, composition, effects, and exportCross-platform MediaProvider-neutral playback, timing, tracks, audio, diagnostics, retained 2D/3D presentation, GPU effects, non-destructive editing, thumbnails, and export connect native media stacks to the ProGPU scene.
6 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.
WebGPU device, swapchain, windowing, and platform services.
↗02ProGPU.VectorPaths, geometry, brushes, pens, and GPU-ready vector data.
↗03ProGPU.SceneRetained visuals, compositor commands, effects, and presentation.
↗04ProGPU.TextText layout, glyph metrics, and GPU text rendering.
↗05ProGPU.MediaCross-platform playback, audio, effects, diagnostics, and provider contracts.
↗06ProGPU.WinUIPortable WinUI-shaped app model, controls, input, automation, and composition.
↗07ProGPU.Xaml.SourceGeneratorRoslyn-first XAML compiler and incremental source-generator integration.
↗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.