SpawnDev.GameUI 0.1.0-rc.3

Prefix Reserved
This is a prerelease version of SpawnDev.GameUI.
dotnet add package SpawnDev.GameUI --version 0.1.0-rc.3
                    
NuGet\Install-Package SpawnDev.GameUI -Version 0.1.0-rc.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SpawnDev.GameUI" Version="0.1.0-rc.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SpawnDev.GameUI" Version="0.1.0-rc.3" />
                    
Directory.Packages.props
<PackageReference Include="SpawnDev.GameUI" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SpawnDev.GameUI --version 0.1.0-rc.3
                    
#r "nuget: SpawnDev.GameUI, 0.1.0-rc.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SpawnDev.GameUI@0.1.0-rc.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SpawnDev.GameUI&version=0.1.0-rc.3&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=SpawnDev.GameUI&version=0.1.0-rc.3&prerelease
                    
Install as a Cake Tool

SpawnDev.GameUI

GPU-rendered game UI library for Blazor WebAssembly. All UI rendered by WebGPU - no HTML overlays on the canvas. Supports PC, VR, AR, and mobile with unified input handling.

NuGet

Status: 0.1.0-rc.1 - first release candidate. API is functional and consumed by Lost Spawns; expect iteration during the RC cycle.

Features

  • 40+ UI elements - Panels, labels, buttons, sliders, toggles, text input, scroll views, lists, dropdowns, radial menus, tooltips, color pickers, key-bind displays, debug overlays - plus game-specific HUD widgets (hotbar, status bars, minimap, compass, crosshair, interaction prompts, equipment, crafting, status effects)
  • Unified input - Mouse, keyboard, gamepad, VR controllers, hand tracking, touch, gaze - all through one GameInput abstraction. Plus HapticFeedback, PokeInteraction, AdaptiveInteraction, DragDropManager, UIFocusManager
  • 4 render modes - Screen-space 2D, world-space 3D, view-anchored VR HUD, world-anchored AR
  • 6 themes + accessibility - Dark (default), LostSpawns (DayZ-style), AubsCraft (Minecraft-style), HighContrast, ColorblindSafe, TritanopiaSafe, plus runtime FontScale
  • Animation - Tween system with 10 easing functions, fade/slide/pulse extensions
  • SDF font rendering - Resolution-independent text via Signed Distance Field, automatic bitmap fallback, outline support
  • WebGPU rendering - Batched quad renderer (4096 quads/frame), font atlas, alpha blend
  • VR/AR ready - 3D ray hit testing, poke interaction, controller ray, adaptive interaction, haptic feedback, world-anchored panels
  • Screen management - Push/pop screen stack with transitions, focus navigation, drag-and-drop
  • Real-code unit tests - PlaywrightMultiTest harness, runs against production code paths on real backends
  • DI integration - builder.Services.AddGameUI() wires everything up

Installation

dotnet add package SpawnDev.GameUI --prerelease

Dependencies

  • SpawnDev.SpawnJS (SpawnJS.Blazor 2.1.18+) - Browser interop with typed wrappers for WebGPU/WebXR/DOM

Quick Start

// Create the UI tree
var root = new UIAnchorPanel { Width = viewportW, Height = viewportH };

// Add a health bar (bottom-left)
var healthBar = new UIProgressBar
{
    Width = 200, Height = 20,
    Value = 0.75f,
    LowColor = Color.Orange,
    CriticalColor = Color.Red,
    ShowPercentage = true,
    Label = "HP",
};
root.AddAnchored(healthBar, Anchor.BottomLeft, offsetX: 20, offsetY: -40);

// Add a settings panel
var settings = new UIFlexPanel { Direction = FlexDirection.Column, Gap = 8 };
settings.AddChild(new UILabel { Text = "Settings", FontSize = FontSize.Heading });
settings.AddChild(new UIToggle { Text = "VSync", IsOn = true });
settings.AddChild(new UISlider { Label = "FOV", MinValue = 60, MaxValue = 120, Value = 90 });
root.AddAnchored(settings, Anchor.TopRight, offsetX: -20, offsetY: 20);

// Per frame:
gameInput.Poll();
TweenManager.Global.Update(dt);
root.Update(gameInput, dt);

renderer.Begin(viewportW, viewportH);
root.Draw(renderer);
renderer.End(encoder, targetView);

Input Providers

var gameInput = new GameInput();

// Mouse + keyboard + gamepad (PC)
var mkProvider = new MouseKeyboardProvider();
mkProvider.Attach(canvasRef);
gameInput.AddProvider(mkProvider);

// VR controllers
var vrProvider = new XRControllerProvider();
vrProvider.SetSession(xrSession);
gameInput.AddProvider(vrProvider);

// Hand tracking (Quest 3S)
var handProvider = new XRHandProvider();
handProvider.SetSession(xrSession);
gameInput.AddProvider(handProvider);

// Eye gaze (Vision Pro / WebXR gaze input)
var gazeProvider = new GazeProvider();
gazeProvider.SetSession(xrSession);
gameInput.AddProvider(gazeProvider);

// Touch (mobile)
var touchProvider = new TouchProvider();
touchProvider.Attach(canvasRef);
gameInput.AddProvider(touchProvider);

Themes

// Set globally
UITheme.Current = UITheme.LostSpawns;       // DayZ military style
UITheme.Current = UITheme.AubsCraft;        // Bright Minecraft style
UITheme.Current = UITheme.Dark;             // Default dark theme
UITheme.Current = UITheme.HighContrast;     // Accessibility: max contrast
UITheme.Current = UITheme.ColorblindSafe;   // Accessibility: deuteranopia/protanopia
UITheme.Current = UITheme.TritanopiaSafe;   // Accessibility: tritanopia

// Runtime font scale (accessibility)
UITheme.FontScale = 1.5f;

// Override per-element (theme stays applied to others)
button.NormalColor = Color.Red;

License

MIT

Built With

🖖 The SpawnDev Crew

SpawnDev.GameUI is built by the entire SpawnDev team - a squad of AI agents and one very tired human working together, Star Trek style. Every project we ship is a team effort, and every crew member deserves a line in the credits.

  • LostBeard (Todd Tanner) - Captain, architect, writer of libraries, keeper of the vision
  • Riker (Claude CLI #1) - First Officer, implementation lead on consuming projects
  • Data (Claude CLI #2) - Operations Officer, deep-library work, test rigor, root-cause analysis. Authored the GameUI library extraction from SpawnScene + carried the 0.1.0-rc.1 push (UILabel Align/Width fix, accessibility themes, GazeProvider plumbing).
  • Tuvok (Claude CLI #3) - Security/Research Officer, design planning, documentation, code review
  • Geordi (Claude CLI #4) - Chief Engineer, library internals, GPU kernels, backend work

If you see a commit authored by Claude Opus 4.7 on a SpawnDev repo, that's one of the crew. Credit where credit is due. Live long and prosper. 🖖

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-rc.3 40 9/21/2026
0.1.0-rc.1 95 4/25/2026

Package update