← All ideas
  • Published 25 Jun 2025

Blendorphin: Blender Endorphin compatibility

πŸ“œ BEP-XXXX: Physics-Driven Procedural Character Animation (Blendorphin)

BEP XXXX
Title Physics-Driven Procedural Character Animation in Blender
Author(s) Cooper
Status Draft
Date 2025-06-25
Blender Version 4.x+
Target Animation, Physics, Simulation Nodes

🧠 Abstract

This proposal introduces a native, physics-driven procedural animation system for rigged characters in Blender. Inspired by legacy tools such as NaturalMotion Endorphin and modern equivalents like Euphoria , this system allows characters to dynamically respond to physical forces, collisions, and scripted behaviors in real time.

The goal is to enable realistic ragdoll behaviors, stunts, physical falls, impacts, and recovery motions β€” all without manual keyframing β€” while remaining fully integrated with Blender's animation pipeline.


πŸ”₯ Motivation

Blender currently lacks native tools for procedural character dynamics beyond passive ragdoll simulations. Other 3D tools either rely on outdated software (e.g., Endorphin) or expensive proprietary middleware (e.g., Euphoria used by Rockstar Games).

Animators frequently rely on inefficient workflows:

  • Export rigs to game engines like Unity/Unreal just to simulate ragdoll or physics-driven reactions
  • Hack together rigid body simulations with constraints that don’t map cleanly to character rigs
  • Manually keyframe stunts, impacts, and recoveries, wasting time for effects that physics could compute

πŸ”₯ This BEP seeks to:

  • Enable Blender to handle procedural, dynamic animation for rigged characters
  • Reduce dependence on third-party tools for physics-based motion
  • Allow artists to simulate collapses, stumbles, hits, explosions, weight shifts, balances, and recoveries natively in Blender

πŸ—οΈ Proposal

βœ”οΈ Key Features:

  • Physics-Driven Animation System for Rigs
  • Fully integrated with the Blender timeline, allowing playback, tweaking, and baking to keyframes
  • Behavior-driven control: switch between states like stand, stumble, fall, recover, brace, flop
  • Direct user control over bone mass, joint types (hinge, ball-socket, swing-twist, etc.), stiffness, and damping
  • Ability to apply forces (impulses, torque, explosions) to trigger physical reactions in real time
  • Bake simulated motion into Blender’s native animation data

🎯 Functional Specification

βœ”οΈ UI Layout

  • Sidebar Panel: Physics β†’ Procedural Character Dynamics
  • Tabs:
    • Rig Setup: Define physics bodies per bone (mass, collision shape)
    • Joint Constraints: Configure joint limits (hinge, ball, swing, twist)
    • Behavior FSM: Create states like Stand, Brace, Collapse, Recover
    • Force Controller: Apply impulses, explosions, wind, torque
    • Bake Panel: Convert simulation into animation keyframes

βœ”οΈ Technical Design Overview

[Armature] 
   ↓
[Rig Parser β†’ Bones become rigid bodies] 
   ↓
[Joint Solver β†’ Handles constraints between bones] 
   ↓
[Behavior FSM β†’ Controls constraint strengths over time]
   ↓
[Physics Loop β†’ Apply gravity, forces, collisions] 
   ↓
[Bone Transforms β†’ Update per frame]
   ↓
[Bake to Keyframes β†’ Save motion as animation]

βœ”οΈ Core Components

Component Description
Rig Physics Parser Converts armature bones to rigid bodies
Constraint Solver Manages joint constraints (hinge, cone twist, etc.)
Behavior FSM State machine that modulates constraint strength, muscle stiffness, or ragdoll activation
Force System Lets users apply dynamic forces like impacts, wind, or torque
Animation Baker Converts physics-driven motion into traditional animation keyframes

🧠 Technical Considerations

βœ”οΈ Solver Options:

  • Use Bullet Physics (already integrated in Blender) for initial rigid body and constraint solving
  • Longer-term: integrate with Simulation Nodes for node-based physics control

βœ”οΈ Bone ↔ Rigid Body Mapping:

  • Automatic or manual mapping from armature bones to rigid bodies
  • Support for capsule, box, or convex hull colliders per bone

βœ”οΈ PD Controllers for Muscles:

  • Implement muscle behavior via position-based controllers:
F = kp * (target_pos - current_pos) + kd * (target_vel - current_vel)

β†’ Allows for stabilization, partial ragdoll, and recoverable behaviors


πŸ”§ User Workflow Example:

  1. Select rig β†’ Enable Procedural Physics
  2. Define bone masses and colliders
  3. Set joint constraints (e.g., shoulder is ball-socket with 45-degree limits)
  4. Add behavior states:
    • Stand β†’ stiff joints
    • Fall β†’ loosened joints
    • Recover β†’ stiffness ramps back up
  5. Apply forces (like a slap or explosion)
  6. Hit Simulate β†’ Blender runs the physics-driven animation in real-time
  7. Hit Bake β†’ Generates keyframes on the timeline

πŸ”₯ Why This Is Not Just Another Ragdoll

β†’ Not just falling. It’s controlled procedural motion.
β†’ You can do:

  • Bracing for impacts
  • Controlled collapsing
  • Getting back up animations
  • Impacts with partial stiffness (floppy arms, stiff torso)
  • Stunt choreography driven by physics

βœ… Benefits

  • Native Blender solution
  • No need for external physics engines or exports
  • Fully bakeable to Blender animation
  • Huge time saver for VFX, game cinematics, stunts, and crowd animation
  • Completely open-source β€” first of its kind in a major 3D suite

πŸ› οΈ Backward Compatibility

β†’ Fully backward-compatible β€” this is an additive feature with no disruption to existing workflows.


βš™οΈ Implementation Roadmap

Phase Goal
Phase 1 Skeleton-to-rigid-body mapper + basic joint constraints
Phase 2 Behavior FSM with simple on/off ragdoll toggle
Phase 3 Full force/impulse system with baking
Phase 4 UI refinement, animation-layer integration
Phase 5 Optional: Simulation Nodes integration for node-based behavior trees

πŸ“š References

  • NaturalMotion Endorphin (archived, no longer sold)
  • MuJoCo: Physics engine for robotics simulation
  • Bullet Physics (Blender’s internal engine)
  • Open Dynamics Engine (ODE)
  • Academic papers on PD Controllers, constraint stabilization, and biomechanics

βš–οΈ Copyright

This document is placed in the public domain. All contributions to this proposal will be open-source under Blender’s GPL license.


60%

Development Status: Open

Upvote 3 Downvote 2
Koopa-Mary
25 Jun 2025

0 Comments