Prani · animation engine

Building to answer questions

Prani is a lightweight real-time animation engine and editor, built from scratch in C++ — a laboratory for asking difficult questions about animation systems. How should poses be represented? How should solvers scale? Where should work happen? Ideas are explored, measured, and validated here, then adapted into engine plugins, production tools, or further research.

प्राणी · prāṇī — Sanskrit for “a living being”

Devlog

Build notes

Architecture decisions, engineering, and measurements from Prani's development — posted as they happen. Newest first.

#01 INTRODUCTION · EDITOR

Introducing my real-time animation engine

The first look at Prani: what it is, why it exists, and a tour of the editor it has grown into — the workbench where AnimForge's animation tech gets built and tested before it goes anywhere else.

The engine

Why build an engine to build tools?

Iterating on animation algorithms inside a full game engine means paying the full engine's cost every cycle: long rebuilds, heavyweight editors, and abstractions you have to work around instead of with. Prani exists to make the iteration loop on solver math, blending strategies, and pose pipelines as short as possible.

Algorithms are proven here first — with visualizers and tests — then ported into engine plugins. The DLS IK solver follows this path: validate in Prani, ship in Unreal.

  • Language — modern C++, built from scratch
  • Rendering — raylib, forward PBR (metallic-roughness), shadow-mapped sun, GPU skinning
  • Tooling UI — Dear ImGui with docking, viewport rendered to texture
  • Assets — glTF/GLB, FBX via Assimp (skin, skeleton, materials, baked takes)
  • Scenes — human-readable .prani text format
  • Platform — Windows, Visual Studio

Inside the editor

A small, fast editor inspired by well known tools like Maya, Unity, Unreal, purpose-built for animation tech

Prani is an engine and an editor in one: everything needed to import a character, author and inspect motion, and drive it live.

Viewport & gizmos

Orbit / pan / dolly camera, click picking, bone overlay for skinned models, and undoable translate / rotate / scale gizmos in world or local space.

Timeline & curve editor

Clips, per-channel tracks, draggable keys and scrubbing, plus Hermite curves with tangent handles and per-key interpolation.

Anim Graph

A node-graph state machine in the spirit of Unreal's Animation Blueprint: states, blackboard parameters, cross-fade transitions, exit times, live state highlighting.

Play Mode

Drive an imported character with the keyboard and watch the graph blend Idle → Walk → Run in real time.

Character pipeline

FBX import with full skinning, and animation-only files retargeted onto an already-imported character by bone name.

Diagnostics

Key-density and bone-activity heatmaps, per-channel render debug views, and a filterable log console.

Current research threads

What's on the bench

The editor ships with registries and interfaces ready for AnimForge's own animation systems. These are the threads being pulled on now.

Active

IK iteration environment

The DLS solver math running in a bare Prani node — fast rebuild cycles for solver experiments that would take minutes per iteration in a full engine.

Exploring

Motion matching & retargeting

Hooks for pose-modifier, retargeting and motion-matching systems, built on the same skeleton and clip pipeline the editor already uses.

Follow Prani's development

New devlogs land on YouTube first. Subscribe to follow along, or get in touch if Prani's research overlaps with what your team is building.

Subscribe on YouTube Follow on LinkedIn contact@animforgesystems.com