GnOuGo.Assets.Bears
0.20.0
dotnet add package GnOuGo.Assets.Bears --version 0.20.0
NuGet\Install-Package GnOuGo.Assets.Bears -Version 0.20.0
<PackageReference Include="GnOuGo.Assets.Bears" Version="0.20.0" />
<PackageVersion Include="GnOuGo.Assets.Bears" Version="0.20.0" />
<PackageReference Include="GnOuGo.Assets.Bears" />
paket add GnOuGo.Assets.Bears --version 0.20.0
#r "nuget: GnOuGo.Assets.Bears, 0.20.0"
#:package GnOuGo.Assets.Bears@0.20.0
#addin nuget:?package=GnOuGo.Assets.Bears&version=0.20.0
#tool nuget:?package=GnOuGo.Assets.Bears&version=0.20.0
GnOuGo.Assets.Bears
<a href="https://www.nuget.org/packages/GnOuGo.Assets.Bears"><img src="https://img.shields.io/nuget/v/GnOuGo.Assets.Bears.svg" alt="NuGet version"></a> <a href="https://www.nuget.org/packages/GnOuGo.Assets.Bears"><img src="https://img.shields.io/badge/.NET-10.0-blue.svg" alt=".NET 10.0"></a> <a href="https://nugettrends.com/packages?ids=GnOuGo.Assets.Bears"><img src="https://img.shields.io/nuget/dt/GnOuGo.Assets.Bears.svg" alt="NuGet downloads"></a>
Dependency-free deterministic SVG generator for the GnOuGo mascot, GnouGnou, and rounded gradient text artwork.
Install
dotnet add package GnOuGo.Assets.Bears
Usage
using GnOuGo.Assets.Bears;
var svg = GnouGnouBearSvgGenerator.Generate(new GnouGnouBearOptions
{
Seed = 42,
Role = GnouGnouBearRole.Coder,
Emotion = GnouGnouBearEmotion.Happy,
Accessory = GnouGnouBearAccessory.Laptop,
State = GnouGnouBearState.Running,
Theme = GnouGnouBearTheme.Default,
FurPalette = GnouGnouBearFurPalette.Classic,
EyeStyle = GnouGnouBearEyeStyle.BigGlossy,
NoseStyle = GnouGnouBearNoseStyle.Button,
BeardStyle = GnouGnouBearBeardStyle.Cloud,
HasBeard = true,
HasHeadphones = true,
HasBowTie = true,
Animation = GnouGnouBearAnimation.Idle
});
Rounded gradient text
Generate a static, automatically sized wordmark from text and a nominal text height:
var textSvg = GnouGnouTextSvgGenerator.Generate("GnouGo", 128);
Use GnouGnouTextOptions to customize the horizontal gradient, four-point
stars, accessible metadata, and optional animation:
var animatedTextSvg = GnouGnouTextSvgGenerator.Generate(new GnouGnouTextOptions
{
Text = "Hello GnOuGo",
Size = 120,
HorizontalMargin = 32, // Optional; null keeps automatic safe spacing.
VerticalMargin = 24,
GradientColors = ["#4F46E5", "#0EA5E9", "#2DD4BF"],
StarCount = 3,
StarColor = "#2DD4BF", // Defaults to the final gradient color.
StarScale = 0.9,
Animation = GnouGnouTextAnimation.Idle,
SvgIdPrefix = "hero-wordmark"
});
Size controls the nominal letter height; the SVG width, height, and
viewBox are calculated from the text, stars, and animation clearance.
GradientColors accepts two to eight hexadecimal colors. StarCount accepts
zero to eight stars, with zero disabling the decoration. HorizontalMargin
and VerticalMargin configure the blank space on both sides of their axis in
SVG units; leave either value unset to retain animation-safe automatic spacing.
Text animation presets are None, Idle, Wave, and Bounce. Idle gives
each Unicode text element gentle independent movement and periodically sends a
stronger motion from left to right. Wave continuously travels through the
letters, while Bounce produces a playful sequential squash-and-pop followed
by a calm pause. All presets are script-free and automatically stop under
prefers-reduced-motion.
The generator uses a rounded system-font stack and deterministic per-character fitting, so the canvas dimensions stay stable while the exact glyph design can follow the fonts installed by the SVG viewer.
Combined bear and text lockup
GnouGnouBearTextSvgGenerator composes the complete bear and text generators
into one automatically sized horizontal SVG. Both nested option records remain
independent, so either component can be static or animated:
var lockupSvg = GnouGnouBearTextSvgGenerator.Generate(new GnouGnouBearTextOptions
{
BearOptions = new GnouGnouBearOptions
{
Size = 256,
Theme = GnouGnouBearTheme.Transparent,
FurPalette = GnouGnouBearFurPalette.Classic,
Animation = GnouGnouBearAnimation.Idle
},
TextOptions = new GnouGnouTextOptions
{
Text = "GnouGo",
Size = 128,
GradientColors = ["#3F4A9E", "#348CD1", "#2EC7D3"],
Animation = GnouGnouTextAnimation.Wave
},
Gap = 28,
SvgIdPrefix = "header-lockup"
});
The bear is placed on the left and the text on the right. The text's optical
center is aligned with the mascot's visual center of gravity, independently of
its configurable canvas margins. Gap controls the distance between the two
canvases.
The composite prefix replaces nested prefixes so all gradients, filters,
titles, and animation selectors remain isolated when several lockups are
embedded in one document.
Animation controls self-playing, script-free SVG motion:
// Legacy static SVG. This remains the default.
var staticSvg = GnouGnouBearSvgGenerator.Generate(new()
{
Animation = GnouGnouBearAnimation.None
});
// A standalone animated GnOuGo.
var typingSvg = GnouGnouBearSvgGenerator.Generate(new()
{
Animation = GnouGnouBearAnimation.Typing
});
// Concentrated AI work: narrowed moving eyes, warmer face, and sweat drops.
var thinkingSvg = GnouGnouBearSvgGenerator.Generate(new()
{
Animation = GnouGnouBearAnimation.Thinking
});
Available presets are None, Idle, Walk, Typing, Waiting, Pickup,
Handoff, Delivery, Clone, Merge, Celebration, Failure, and
Thinking. Thinking adds a concentrated pose with changing eyes, inward
brows, a warm face flush, redder cheeks that vary independently in width and
height around fixed centers, animated sweat drops, and a foreground arm that
reuses the canonical right-arm geometry and rotates from the shoulder to rub
the forehead. Walk uses alternating arm and leg phases, while Failure
switches to a dedicated frown with lowered pupils, eyelids, ears, and brows.
Notes
- Pure C# string generation.
- No runtime file reads, raster assets, base64 images, or external dependencies.
- AOT and trimming compatible.
- The same options produce the exact same SVG.
- Fur palettes, eye styles, emotion-driven eyebrows and mouths, five nose styles, five explicit beard silhouettes, headphones, bow ties, and accessories can be varied without raster assets.
BeardStyle = Randompreserves seeded beard selection. ChooseClassic,LongPoint,Cloud,Square, orSplitfor an explicit silhouette.- Static and animated rigs honor the same eye, emotion, nose, and beard selections.
TitleandDescriptionare XML-escaped before being written into the SVG.Sizemust be between64and1024.- Set
SvgIdPrefixwhen embedding multiple mascots in one SVG document so every gradient, filter, title, and description ID remains unique. - Set
EnableAnimationRigto render opt-in semantic groups for the head, independently movable left/right ears, eyes, pupils, mouth, arms, hands, legs, bow tie, and action effects. Each movable group includes a stabledata-partname and pivot coordinates for a host to animate. Use this withAnimation = Nonewhen the host controls actions dynamically. - The reusable browser controller lives in
Runtime/gnougnou-animation-controller.ts. It owns walking, typing, handoff, delivery, clone/merge, celebration/failure, breathing, blinking, mouth, independent ear, and rare-yawn motion. Idle actors are balanced across six personalities: looking around, side-to-side swaying, stretching, toe-tapping, pondering, and an occasional small wave. Seeded per-actor clocks vary every gesture, blink, breath, and pause so a group does not move in sync. Hosts only choose when an action plays. - Both animation mechanisms honor
prefers-reduced-motion. - Animation is disabled by default to preserve existing static output byte-for-byte.
For an event-driven browser host, generate the bear with
EnableAnimationRig = true and Animation = None, then use the packaged
controller:
import { GnouGnouAnimationController } from './Runtime/gnougnou-animation-controller'
const animations = new GnouGnouAnimationController(
() => document.querySelector('#workflow-scene'),
)
animations.startAmbient()
animations.play('actor-master', 'walk', 1_200, 1)
animations.play('actor-master', 'type', 3_000)
// Call animations.cancelAll() when the host stops or replaces the scene.
The actor ID can identify either the semantic rig itself or an SVG wrapper containing it.
Build
dotnet build src/GnOuGo.Assets.Bears/GnOuGo.Assets.Bears.csproj
Test
dotnet test tests/GnOuGo.Assets.Bears.Tests/GnOuGo.Assets.Bears.Tests.csproj
Pack
dotnet pack src/GnOuGo.Assets.Bears/GnOuGo.Assets.Bears.csproj -c Release
| 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
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on GnOuGo.Assets.Bears:
| Package | Downloads |
|---|---|
|
GnOuGo.Assets.Animation
Autonomous deterministic SVG team animation and workflow preview simulator for GnOuGo. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.20.0 | 43 | 10/2/2026 |
| 0.20.0-dev.847 | 45 | 9/30/2026 |
| 0.20.0-dev.837 | 47 | 9/30/2026 |
| 0.20.0-dev.786 | 52 | 9/25/2026 |
| 0.20.0-dev.784 | 50 | 9/25/2026 |
| 0.19.4-dev.756 | 51 | 9/24/2026 |
| 0.19.3 | 92 | 9/24/2026 |
| 0.19.3-dev.730 | 58 | 9/23/2026 |
| 0.19.3-dev.728 | 64 | 9/22/2026 |
| 0.19.2 | 92 | 9/22/2026 |
| 0.19.2-dev.715 | 56 | 9/22/2026 |
| 0.19.1 | 134 | 8/16/2026 |
| 0.19.0 | 127 | 8/16/2026 |
| 0.18.4 | 111 | 8/15/2026 |
| 0.18.3 | 117 | 8/15/2026 |
| 0.18.2 | 118 | 8/15/2026 |
| 0.18.1 | 117 | 8/14/2026 |
| 0.18.0 | 119 | 8/14/2026 |
| 0.18.0-dev.415 | 74 | 8/14/2026 |
| 0.18.0-dev.406 | 83 | 8/12/2026 |