![]() |
VOOZH | about |
dotnet add package Aardvark.Dom.Giraffe --version 1.1.7
NuGet\Install-Package Aardvark.Dom.Giraffe -Version 1.1.7
<PackageReference Include="Aardvark.Dom.Giraffe" Version="1.1.7" />
<PackageVersion Include="Aardvark.Dom.Giraffe" Version="1.1.7" />Directory.Packages.props
<PackageReference Include="Aardvark.Dom.Giraffe" />Project file
paket add Aardvark.Dom.Giraffe --version 1.1.7
#r "nuget: Aardvark.Dom.Giraffe, 1.1.7"
#:package Aardvark.Dom.Giraffe@1.1.7
#addin nuget:?package=Aardvark.Dom.Giraffe&version=1.1.7Install as a Cake Addin
#tool nuget:?package=Aardvark.Dom.Giraffe&version=1.1.7Install as a Cake Tool
Aardvark is an open-source platform for visual computing, real-time graphics and visualization.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 1 NuGet packages that depend on Aardvark.Dom.Giraffe:
| Package | Downloads |
|---|---|
|
Aardvark.Portable.Shell.Desktop
Desktop shell — hosts portable Apps via Aardvark.Dom, a Giraffe server and Aardium. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.2.0-prerelease0004 | 0 | 6/28/2026 |
| 1.2.0-prerelease0003 | 109 | 6/15/2026 |
| 1.2.0-prerelease0002 | 90 | 6/13/2026 |
| 1.2.0-prerelease0001 | 162 | 6/10/2026 |
| 1.1.9 | 171 | 5/19/2026 |
| 1.1.8 | 126 | 4/28/2026 |
| 1.1.7 | 110 | 4/28/2026 |
| 1.1.6 | 98 | 4/27/2026 |
| 1.1.5 | 113 | 4/26/2026 |
| 1.1.4 | 106 | 4/26/2026 |
| 1.1.3 | 99 | 4/26/2026 |
| 1.1.2 | 104 | 4/26/2026 |
| 1.1.1 | 108 | 4/26/2026 |
| 1.1.0 | 102 | 4/25/2026 |
| 1.0.25 | 111 | 4/15/2026 |
| 1.0.24 | 124 | 4/13/2026 |
| 1.0.23 | 497 | 11/20/2025 |
| 1.0.22 | 321 | 11/13/2025 |
| 1.0.21 | 256 | 11/9/2025 |
| 1.0.20 | 230 | 10/28/2025 |
MSAA picking finally works**. Previously enabling `Samples > 1` broke picking entirely: the pick attachment was an MS-resolved `Rgba32f` buffer, and the `IntBitsToFloat`-encoded ids were denormals (1, 2, 3, …) which NVIDIA's MS resolve flushes to zero — every pickId came back as 0. Fixed by going to a single MS framebuffer with `Rgba32f` pick attachment, plain-float storage end-to-end (no bit-cast), and ≥2-of-8 same-id neighbour validation in a 33×33 spiral on the CPU. Silhouette pixels (which average two distinct ids into a non-integer) fail validation and the spiral moves on; interior pixels (all 4 samples agree) round-trip exactly.
`Sg.PixelSnapRadius : aval<int>`** — per-scope snap radius. Default `1` (absorbs the 1-pixel silhouette feather the validator rejects). Values are clamped to the global cap (16) at pick time. Snap walks a static disc of `(2R+1)²` offsets sorted by squared distance from center; first valid candidate wins. Pickable pixel hits and BVH-pickable ray hits compete homogeneously per offset (closer-in-depth wins).
BVH cone cull**: `BvhTree3d.GetIntersecting(hull : FastHull3d)` added. Built per-`Read` from the snap window's NDC sub-rect via `ViewProjection.toHull3d` so the spiral only ever ray-tests the small candidate set whose bounding boxes intersect the cone.
Pick attachment encoding rewritten** — all four channels are plain `float32`, never bit-cast:
Mode A: `(id, n24, depth, pi)` where `n24` is `Normal24.encode` (12+12 octahedron packed into ≤ 2²⁴, round-trips exactly through float32 mantissa).
Mode B: `(-id, pvp.x, pvp.y, pvp.z)` — direct per-component float32 storage of the user's `PickViewPosition`, no `(dir, length)` decomposition. Mode-B's surface normal is now estimated CPU-side from the same-id neighbours already gathered for validation (cross-product of the largest-area tangent pair, oriented toward camera).
Pick-effect cache prefix bumped from `fpick_` → `pickv3_` so older shader caches invalidate by name.
Id recycling**: `acquireId` / `releaseId` with `freeIds : SortedSet<int>` (smallest-first reuse). Per-`IRenderObject` `acquiredFor` tracks the multiset of scopes acquired during wrapping so a `MultiRenderObject` releases exactly N times when removed. Keeps the live id space dense well below the 2²⁴ float32 ceiling regardless of scope churn.
Hot path is allocation-free**: spiral inner loop (~805 iters per pointer move) uses mutable locals + a sentinel for "no winner yet" instead of `option<tuple>` chaining; `cullSet` pre-flattened to `CullEntry[]` (struct); `vp.Backward`, `proj.Backward`, `view.Forward/Backward` cached as locals; `PixelSnapRadius` `AVal.force`'d once per scope per `Read` via a small per-call cache; CPU normal estimation runs only after a winner is decided. Big win on the WebAssembly interpreter.
`ReadPickRegion`**: now returns `voption<PickRegion>` (raw `float32[]` + strides) for the new fast path, with the legacy closure-returning overload preserved for external callers.