Open-source project
pafuhana1213/KawaiiPhysics avatar
pafuhana1213/KawaiiPhysics

KawaiiPhysics: bone physics for Unreal Engine 5 hair, skirts and chest

KawaiiPhysics : Simple Bone Physics for UnrealEngine 4 & 5

3,320 stars404 forksC++MIT

At a glance

What is it?
KawaiiPhysics is an MIT-licensed Unreal Engine plugin that adds a single AnimGraph node for pseudo-physics on hair, skirts and chest bones. It installs by copying a folder into Plugins, and it is not a general physics engine.
Who is it for?
Adopt KawaiiPhysics if you are building Unreal Engine 5.3 to 5.8 characters with hair, skirts or chest bones that need to swing, and you want to tune that motion inside a single AnimGraph node. Do not adopt it if you need full rigid-body simulation, cloth, or a Unity or Godot equivalent; the project is Unreal-only and its own README describes it as pseudo-physics.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What KawaiiPhysics solves, and who it is for

Unreal's built-in options for secondary motion sit at two extremes. You can drive swinging bones with animation curves, which is cheap but does not react to the character's actual movement, or you can build a full PhysicsAsset and let the rigid-body solver take over, which reacts but is heavy and awkward to author for a skirt hem. KawaiiPhysics targets the space between them. The README describes it as a simple pseudo-physics plugin for Unreal Engine whose purpose is to make hair, skirts and chest swing "easily" and "cutely".

The intended user is a character artist or technical animator working on Unreal Engine 5.3 through 5.8, not a gameplay physics programmer. The plugin is an AnimNode: it runs inside the animation graph and produces bone transforms, so it composes with whatever animation system already drives the character. The README's feature list is written for that audience, naming viewport adjustment, collision shapes, wind and gravity, and DataAsset reuse rather than solver internals.

It is also explicitly a niche tool. Nothing in the README claims it replaces Chaos or PhysX for ragdolls, destruction or cloth. If your character's hair needs to interact with a moving vehicle or a ragdolled body, this is not the layer you want.

The AnimGraph node, bone constraints and collision shapes

The mechanism is a single AnimGraph node. According to the README, you add a KawaiiPhysics node in the Animation Blueprint's AnimGraph and configure it there. The node simulates the bones you point it at, driven by the character's animation and movement, and writes the resulting transforms back into the pose.

Three features in the README are worth separating because they solve different problems. Collision supports spheres, capsules and planes, adjustable in the viewport, which is what keeps a skirt from intersecting the legs in the common case. BoneConstraint adds a distance constraint between bones, which the README says suppresses a skirt hem passing through the legs. SyncBone synchronises bones that are already under animation control, legs for example, into the swinging chain so it can follow them and reduce penetration.

The README also states that bone length is preserved, so bones do not stretch or shrink even when the calculation breaks down. That is a deliberate trade: you trade exact physical accuracy for a pose that stays readable. Wind and gravity are supported, plus an external force for effects. Parameters can be saved into a DataAsset or PhysicsAsset for reuse, and Blueprint or C++ can change parameters and external forces at runtime. The README points to the KawaiiPhysics Portal changelog for features added after the list was written.

Installing the KawaiiPhysics plugin and adding your first node

There is no package manager step. The README gives two paths: download a prebuilt plugin from GitHub Releases, FAB or Booth if you do not have a C++ build environment, or build from source. The FAB listing is described as identical in content to the GitHub version. Supported versions are UE 5.3 to 5.8; UE 4.27 users are pointed at the v1.11.1 release.

The install itself is a folder copy. The README says to create a Plugins folder at the project root and copy the downloaded KawaiiPhysics folder into it. After restarting the editor, the plugin should appear in the plugin list and be enabled for the project. The README does not document an .uplugin enable step beyond placing the folder, so if the node does not appear, check that the folder landed directly under Plugins and not nested one level deeper.

The first real use is in the Animation Blueprint. Open the AnimGraph for the character, add a KawaiiPhysics node, and point it at the bone chain you want to swing. The README's usage section is two lines: add the node in the AnimGraph, then consult the parameters documentation for detailed tuning.

What you should see is the targeted bones lagging behind the character's motion instead of following it rigidly. From there, the README directs you to the Portal's parameter documentation for gravity, wind, collision and constraint settings.

Where KawaiiPhysics is the wrong tool

The README's own framing is the first limitation: this is pseudo-physics, not a solver. Bones keep their length by construction, which means the motion cannot express compression or stretching no matter how the character moves. If your art direction depends on squash and stretch in the swinging chain, or on the chain reacting to impacts with correct mass, you are outside what this node is designed to do.

Version support is narrow and explicit. The README lists UE 5.3 to 5.8, with UE 4.27 frozen at v1.11.1. If your studio is pinned to an older engine line, you are on a release that no longer receives the features documented on the Portal. That is a real constraint for long-lived projects, because the plugin lives inside your project tree and you own the upgrade.

There is also a packaging caveat the README states directly: Blueprint-only projects may hit errors when packaging, and the suggested remedies are to convert the project to C++ or follow a linked community article. For a team with no C++ build environment, that is the difference between a five-minute install and a project configuration change. Finally, the plugin is Unreal-only. Searches for KawaiiPhysics in Unity, Blender or Godot have no counterpart here; the README's related tools section lists one external utility, a converter from VRM SpringBone to KawaiiPhysics, which moves data into this plugin rather than out of it.

How it differs from a PhysicsAsset and from Control Rig

The obvious alternative inside Unreal is a PhysicsAsset driven by the engine's rigid-body simulation. The difference is architectural, not just a matter of tuning. A PhysicsAsset simulates bodies with mass, joints and motorised constraints, and the engine's solver owns the result; KawaiiPhysics is an AnimNode that runs in the animation graph and outputs a pose. That is why the README can claim light operation and bone-length preservation: there is no rigid-body solve to stabilise. The cost is that you give up genuine collision response between simulated bodies, which a PhysicsAsset provides and a constraint-based swing does not.

The second alternative is Control Rig. The README links an official note about using Control Rig to address skirt penetration together with KawaiiPhysics, which is a useful signal about the intended division of labour: Control Rig handles the authored, procedural correction, and KawaiiPhysics supplies the reactive swing. Treating them as competitors misses the point. If your problem is a hem that clips during a specific animation, Control Rig is the direct fix; if your problem is that the hem does not move at all, KawaiiPhysics is the layer you add.

The third comparison is to hand-authored curve-driven secondary motion. That approach is deterministic and costs nothing at runtime beyond the curve evaluation, and it is the right answer for a character whose swing is fully choreographed. KawaiiPhysics exists for the case where the character's motion is not fully predictable, which is most gameplay.

Maintenance, licence and the cost of upgrading

The repository is not archived, and the last push was on 2026-09-20. Releases are dated rather than semantic in the usual sense: 20260624-v1.21.0 on 2026-06-23, 20260106-v1.20.0 on 2026-01-06, and 20250718-v1.19.1 on 2025-07-18. The cadence is irregular, roughly one to two tagged releases per year in that window, with the README pointing to the Portal changelog as the authoritative list of what changed.

The practical upgrade cost is that the plugin is vendored. You copy the folder into Plugins, so upgrading means replacing that folder and re-checking your AnimGraph nodes and any DataAsset or PhysicsAsset parameters against the new version. The README mentions that parameters can be stored in those assets for reuse, which is convenient day to day and also means a version bump can change how stored values are interpreted. There is no rollback procedure documented in the README; if you need one, you are relying on your own version control of the Plugins folder.

Licensing is straightforward on paper: MIT. You can ship the plugin inside a commercial project, modify it, and redistribute it, provided you keep the licence and copyright notice. The README does not discuss support terms, and the FAB and Booth listings are described as carrying the same content as the GitHub release, so buying through a store is not buying a support contract. Note also that the sample content is not uniformly yours to reuse: the README states the sample character TA-style Saginomiya Kano is provided by TA Inc. with a copyright notice and a separate terms-of-use link. Check that page before shipping anything derived from the sample level at Content/KawaiiPhysicsSample/L_KawaiiPhysicsSample.

Editorial conclusion

Adopt KawaiiPhysics if you are building Unreal Engine 5.3 to 5.8 characters with hair, skirts or chest bones that need to swing, and you want to tune that motion inside a single AnimGraph node. Do not adopt it if you need full rigid-body simulation, cloth, or a Unity or Godot equivalent; the project is Unreal-only and its own README describes it as pseudo-physics. Before committing, verify that your engine version is inside the 5.3 to 5.8 range, check whether your project is Blueprint-only (the README warns packaging can error and suggests converting to C++ or following a linked article), and confirm your team accepts MIT-licensed plugin code inside the project tree.

Frequently asked questions

How do I install KawaiiPhysics in an Unreal project?

Download the plugin from GitHub Releases, FAB or Booth if you have no C++ build environment, then create a Plugins folder at your project root and copy the KawaiiPhysics folder into it. The README lists supported engine versions as UE 5.3 to 5.8, with UE 4.27 served by the v1.11.1 release.

How do I use KawaiiPhysics once it is installed?

Add a KawaiiPhysics node in the Animation Blueprint's AnimGraph and use it on the bone chain you want to swing. The README's usage section says to consult the parameters documentation on the KawaiiPhysics Portal for detailed tuning.

What is KawaiiPhysics?

It is a simple pseudo-physics plugin for Unreal Engine that makes hair, skirts, chest and similar parts swing in response to animation and character movement. The README describes it as an AnimGraph node, not a full physics engine.

Official sources

  1. License: MIT
  2. pafuhana1213/KawaiiPhysics on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/pafuhana1213-kawaiiphysics.svg)](https://hysenlabs.com/projects/pafuhana1213-kawaiiphysics)