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
                    
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="GnOuGo.Assets.Bears" Version="0.20.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="GnOuGo.Assets.Bears" Version="0.20.0" />
                    
Directory.Packages.props
<PackageReference Include="GnOuGo.Assets.Bears" />
                    
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 GnOuGo.Assets.Bears --version 0.20.0
                    
#r "nuget: GnOuGo.Assets.Bears, 0.20.0"
                    
#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 GnOuGo.Assets.Bears@0.20.0
                    
#: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=GnOuGo.Assets.Bears&version=0.20.0
                    
Install as a Cake Addin
#tool nuget:?package=GnOuGo.Assets.Bears&version=0.20.0
                    
Install as a Cake Tool

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 = Random preserves seeded beard selection. Choose Classic, LongPoint, Cloud, Square, or Split for an explicit silhouette.
  • Static and animated rigs honor the same eye, emotion, nose, and beard selections.
  • Title and Description are XML-escaped before being written into the SVG.
  • Size must be between 64 and 1024.
  • Set SvgIdPrefix when embedding multiple mascots in one SVG document so every gradient, filter, title, and description ID remains unique.
  • Set EnableAnimationRig to 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 stable data-part name and pivot coordinates for a host to animate. Use this with Animation = None when 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 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.
  • 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
Loading failed