ImAnim.NET 1.0.0

dotnet add package ImAnim.NET --version 1.0.0
                    
NuGet\Install-Package ImAnim.NET -Version 1.0.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="ImAnim.NET" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ImAnim.NET" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ImAnim.NET" />
                    
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 ImAnim.NET --version 1.0.0
                    
#r "nuget: ImAnim.NET, 1.0.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 ImAnim.NET@1.0.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=ImAnim.NET&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ImAnim.NET&version=1.0.0
                    
Install as a Cake Tool

ImAnim.NET

Animation Engine for Hexa.NET.ImGui

NuGet License

ImAnim.NET is a C# port of ImAnim, bringing the same animation toolkit to applications built on Hexa.NET.ImGui. Tweens, clips, easing curves, and procedural effects from the original C++ library are available here with a familiar .NET-style API.

Version 1.0.0 — First Official Release

This is the first stable release of ImAnim.NET, mirroring the feature set of ImAnim 1.0.0.

// Animate anything in one line
float alpha = ImAnim.TweenFloat(id, channel, hovered ? 1.0f : 0.5f, 0.3f, ease, policy, dt);

Why ImAnim.NET?

  • Immediate-mode friendly — Drops straight into your existing Hexa.NET.ImGui loop
  • Zero extra native dependencies — Pure managed C#, only requires Hexa.NET.ImGui
  • Large easing collection — 30+ easing functions, including spring physics
  • Perceptual color blending — OKLAB and OKLCH support
  • Responsive layouts — Anchor-relative animations that survive window resizing
  • .NET-native ergonomics — Nullable-aware API, Span<T>-friendly overloads, and no manual memory management

Features at a Glance

Category Capabilities
Tweens Float, Vector2, Vector4, Int, Color with crossfade/cut/queue policies
Clips Timeline keyframes, looping, callbacks, chaining, stagger, variations
Easing Quad to Bounce presets, cubic-bezier, steps, spring physics, per-axis
Paths Bezier curves, Catmull-Rom splines, path morphing, text along paths
Transforms Position, rotation, scale with rotation modes
Procedural Oscillators, shake, wiggle, Perlin/Simplex noise
Colors Gradients, style interpolation, OKLAB/OKLCH blending
Advanced Layering/blending, resolved tweens, drag feedback, scroll animation
Tools Debug inspector, profiler, save/load, memory management

Quick Integration

Step 1: Install the NuGet package.

dotnet add package ImAnim.NET

Step 2: Add two lines after ImGui.NewFrame():

using Hexa.NET.ImGui;
using ImAnimNET;

ImGui.NewFrame();

// Add these two lines
ImAnim.UpdateBeginFrame();
ImAnim.ClipUpdate(ImGui.GetIO().DeltaTime);

// Your UI code...

Step 3: Animate! Here's a hover effect:

bool hovered = ImGui.IsItemHovered();
float scale = ImAnim.TweenFloat(
    ImGui.GetID("btn"), ImAnim.HashStr("scale"),
    hovered ? 1.1f : 1.0f, 0.2f,
    ImAnim.EasePreset(EaseType.OutBack),
    TweenPolicy.Crossfade,
    ImGui.GetIO().DeltaTime
);

No native build step, no interop headaches — just add the package reference and start animating.

Note: None of the original ImAnim example projects have been ported. Instead, a standalone sample using GLFW + OpenGL 4.6 is included to demonstrate integration with Hexa.NET.ImGui.

Documentation

Full API and feature documentation is built with DocFX directly from the XML doc comments in the source, plus hand-written conceptual guides. It covers every category from the feature table above (tweens, clips, easing, paths, transforms, procedural effects, colors, and advanced/debug tools) with C# code examples and API references.

📖 Browse the documentation

Interactive Demo

ImAnim ships built-in playground windows for exploring every feature. Call them directly from your UI code:

ImAnim.ImAnimDemoWindow();

Two additional windows are also available (present upstream in ImAnim as well, just not mentioned in its README):

// A gallery of UI use cases (buttons, cards, stagger lists, etc.)
ImAnim.ImAnimUsecaseWindow();

// An in-app reference for the API, shown right inside your application
ImAnim.ImAnimDocWindow();

Demo Categories

Category What You'll Find
Easing & Tweens Easing gallery, custom bezier editor, spring physics, per-axis easing
Interactive Widgets Animated buttons, toggle switches, hover cards, progress indicators
Clip-Based Animations Timeline keyframes, looping, callbacks, chaining, layering system
Procedural Animations Oscillators, shake/wiggle effects, Perlin/Simplex noise
Motion Paths Bezier curves, Catmull-Rom splines, path morphing, text along paths
Advanced Interpolation Gradients, transforms, style interpolation, text stagger
Utilities ImDrawList animations, resize-aware helpers, scroll animation, drag feedback
Debug Tools Inspector, profiler, memory stats
Stress Test Performance benchmarks with thousands of concurrent animations

Use Cases

The demo showcases practical UI patterns you can adapt directly in your own C# application:

  • Animated Buttons — Hover scaling, press feedback, icon animations
  • Toggle Switches — Smooth state transitions with easing
  • Hover Cards — Expand/collapse with spring physics
  • List Stagger — Cascading item reveal animations
  • Grid Reveal — Wave-based grid animations
  • Dropping Cards — Physics-inspired card animations
  • Health Bars — Color gradient health indicators
  • Loading Indicators — Pulsing rings, spinning elements
  • Error Feedback — Shake effects for invalid input
  • Scroll Navigation — Smooth scroll-to-section animations

Relationship to ImAnim

ImAnim.NET is an independent, community-maintained C# port of the original ImAnim by Soufiane KHIAT, adapted for Hexa.NET.ImGui instead of the native C++ Dear ImGui bindings. API names follow .NET conventions (PascalCase methods, Vector2/Vector4 from System.Numerics, etc.) but map one-to-one onto the original library's concepts, so the upstream documentation and design notes remain a useful reference. Please support the original project if you rely on this port.

Contributing

Issues and pull requests are welcome. If you're adding a new feature, please check whether it exists upstream in ImAnim first so the two projects stay in sync.

Acknowledgments

  • Soufiane KHIAT — creator of the original ImAnim, the library this project ports and builds on
  • Hexa.NET.ImGui — the C# Dear ImGui bindings this port targets
  • Dear ImGui by Omar Cornut — the immediate-mode GUI library the whole ecosystem is built on
  • Everyone who files issues, sends pull requests, or otherwise helps keep this port in sync with upstream

License

MIT License — see LICENSE for details. ImAnim.NET is a derivative work of ImAnim, also MIT-licensed; see NOTICE for attribution.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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 (1)

Showing the top 1 NuGet packages that depend on ImAnim.NET:

Package Downloads
C.ImGuiGLFW

C# class library that simplifies the creation of ImGui-rendered windows.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 37 9/20/2026