FS.GG.UI.Scene
0.15.0
Prefix Reserved
dotnet add package FS.GG.UI.Scene --version 0.15.0
NuGet\Install-Package FS.GG.UI.Scene -Version 0.15.0
<PackageReference Include="FS.GG.UI.Scene" Version="0.15.0" />
<PackageVersion Include="FS.GG.UI.Scene" Version="0.15.0" />
<PackageReference Include="FS.GG.UI.Scene" />
paket add FS.GG.UI.Scene --version 0.15.0
#r "nuget: FS.GG.UI.Scene, 0.15.0"
#:package FS.GG.UI.Scene@0.15.0
#addin nuget:?package=FS.GG.UI.Scene&version=0.15.0
#tool nuget:?package=FS.GG.UI.Scene&version=0.15.0
FS.GG.UI.Scene
Dependency-light scene vocabulary for FS.GG.UI V3 products.
FS.GG.UI.Scene is one of the FS.GG.UI distribution packages — an F# / Elmish UI and 2D
scene-graph framework for .NET 10 desktop, rendered through OpenGL + SkiaSharp.
Install
dotnet add package FS.GG.UI.Scene
Or scaffold a full governed project that wires the FS.GG.UI packages together:
dotnet new install FS.GG.UI.Template
dotnet new fs-gg-ui -o MyApp
Usage
open FS.GG.UI.Scene
// Build a small immutable scene from typed constructors.
let scene =
Scene.group
[ Scene.filledRectangle
{ X = 0.0; Y = 0.0; Width = 320.0; Height = 240.0 }
(Colors.rgb 30uy 30uy 40uy)
Scene.circle { X = 160.0; Y = 120.0 } 48.0 (Colors.rgb 200uy 60uy 60uy)
Scene.line
{ X = 0.0; Y = 0.0 }
{ X = 320.0; Y = 240.0 }
(Paint.stroke Colors.white 2.0)
Scene.textAt { X = 12.0; Y = 24.0 } "Hello, Skia" Colors.white ]
// Inspect the element kinds without touching a GPU.
let kinds = Scene.describe scene
// Export a deterministic portable package and inspect it before any renderer runs.
let package = SceneCodec.export scene
let report = SceneCodec.inspect package.CanonicalBytes
// Produce deterministic render-readback evidence for a fixed output size.
let evidence =
Scene.renderReadbackEvidence { Width = 320; Height = 240 } scene
// Build dependency-light structured inspection facts without depending on Controls or Testing.
let finding =
VisualInspection.finding
"text-contained-in-owner"
VisualInspectionSeverity.Blocking
[ "title" ]
[]
"title text exceeds its owner"
"text inside owner bounds"
"overflow"
API at a glance
Scenemodule — immutable scene constructors (empty,group,filledRectangle,circle,filledEllipse,line,path,textAt,image,clipped,picture,chart) plus inspection helpers (describe,diagnostics,measureText).Colorsmodule —Colorconstructors and presets (rgba,rgb,black,white,transparent).Paintmodule — builds and refinesPaintvalues: start fromfill/stroke, then layerwithOpacity,withBlendMode,withShader, and the filter/effectwith*combinators.Pathmodule — assemblesPathSpecgeometry (moveTo,lineTo,quadTo,cubicTo,create) and queries it (bounds,measure,segment,combine).Scene/SceneNodetypes — the core record and discriminated-union scene-graph vocabulary that every constructor produces.SceneCodecmodule — exports/imports deterministic portable scene packages, computes package identities, inspects protocol/capability/resource compatibility, and compares imported scenes.SceneEvidencemodule — renders aSceneEvidenceRequestto deterministic evidence, returningResult(render,renderHash,renderPng).LayoutEvidencemodule — derives andclassifysLayoutEvidenceReportHUD/gameplay layout proofs from render-readback evidence.VisualInspectionmodule and records — dependency-light structured inspection vocabulary for scopes, nodes, regions, text runs, paint coverage, clipping, unsupported facts, findings, artifacts, summaries, stable status tokens, finding ids, and deterministic artifact diagnostics.
Versioning
All FS.GG.UI.* libraries share one version and move together. In a generated project a
single <FsGgUiVersion> in Directory.Packages.props pins every package — upgrading is one
edit; see docs/UPGRADING.md. Pre-release versions use a -preview.N suffix.
Links
- Repository & issues: https://github.com/FS-Skia-UI/FS-Skia-UI
- License: MIT
| Product | Versions 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. |
-
net10.0
- FSharp.Core (>= 10.1.302)
NuGet packages (11)
Showing the top 5 NuGet packages that depend on FS.GG.UI.Scene:
| Package | Downloads |
|---|---|
|
FS.GG.UI.KeyboardInput
Package-owned keyboard input runtime, reducer, effect, diagnostics, and state display contracts for FS.GG.UI products. |
|
|
FS.GG.UI.SkiaViewer
Skia viewer host workflow contracts for FS.GG.UI V3 products. |
|
|
FS.GG.UI.DesignSystem
Design-system primitives: token model, Theme record, ResolvedStyle, style variants/classes, visual/validation state, and the pure Style.resolve resolver. Depends only on the scene vocabulary. |
|
|
FS.GG.UI.Layout
Pure layout and graph scene builders for FS.GG.UI. |
|
|
FS.GG.UI.Controls
Declarative Skia controls, rich rendering, chart controls, graph controls, DataGrid, and product-owned control runtime contracts. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.15.0 | 187 | 7/20/2026 |
| 0.14.0 | 171 | 7/19/2026 |
| 0.13.0 | 215 | 7/18/2026 |
| 0.12.0 | 353 | 7/17/2026 |
| 0.11.0 | 471 | 7/16/2026 |
| 0.10.0 | 2,593 | 7/14/2026 |
| 0.9.2 | 913 | 7/13/2026 |
| 0.9.0 | 1,279 | 7/11/2026 |
| 0.8.0 | 357 | 7/11/2026 |
| 0.7.0 | 305 | 7/11/2026 |
| 0.6.0 | 281 | 7/10/2026 |
| 0.5.0 | 376 | 7/10/2026 |
| 0.4.0 | 467 | 7/9/2026 |
| 0.4.0-preview.1 | 120 | 7/9/2026 |
| 0.3.0-preview.1 | 119 | 7/7/2026 |
| 0.2.0-preview.1 | 114 | 7/6/2026 |
| 0.1.64-preview.1 | 152 | 7/5/2026 |
| 0.1.63-preview.1 | 135 | 7/4/2026 |
| 0.1.62-preview.1 | 117 | 7/4/2026 |
| 0.1.61-preview.1 | 109 | 7/2/2026 |