Skip to content

Tags: AmyangXYZ/MiKaPo

Tags

v4.0.0

Toggle v4.0.0's commit message
v4.0.0 — motion worth keeping

v3.2.0

Toggle v3.2.0's commit message
v3.2.0: exports smooth in both directions; video duration resolved be…

…fore use

Live capture must filter causally and pays lag for it. A finished take has no
such excuse, so export now runs a Savitzky-Golay pass over the recorded
sequence — a local polynomial fit rather than an average, which is why it
removes shake without flattening a kick. Measured on a synthetic take carrying
an 80° spike: 59% less jitter, 99% of peak amplitude kept, zero phase shift.
The live One-Euro path is untouched; this is a second pass only the export can
afford.

Duration: browsers report Infinity at loadedmetadata for WebM and anything
streamed, and `duration || 0` kept it. That broke the readout, broke the
scrubber's range, and would have made `for (t = 0; t < video.duration; ...)`
run forever. Non-finite durations are refused, durationchange is honoured, and
an unresolved one is nudged by seeking past the end.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

v3.1.0

Toggle v3.1.0's commit message
Motion export, rebuilt

Recording captured whatever pose happened to be current at wall-clock intervals,
so a stall or a backgrounded tab silently dropped frames and the motion came out
compressed. A video is now STEPPED — seeked frame by frame at VMD's own 30 fps,
detected, solved — so a slow machine produces the same file as a fast one, and
media time drives the One-Euro filters at exact deltas, which is what they were
built for. Seek and detect overlap, so neither waits on the other.

The file itself comes from Reze Engine's VMD writer, the same one Reze Studio
exports through. Two bugs went with the implementation it replaced: every export
had been written at half speed, and all 64 interpolation bytes carried the same
value, giving each keyframe a degenerate curve instead of VMD's linear handles.

Leg IK now stands down in the file. This capture solves FK rotations, and MMD's
leg IK would otherwise override them toward IK bones the motion never keyframes —
arms moving, legs planted. Engine 0.27 reads and writes VMD's per-chain IK block,
so an export carries its own instruction rather than asking every player for a
switch.

A still exports too, as the single-frame VMD that MMD uses to carry a pose. And
a tuning panel exposes smoothing and responsiveness alongside blink, mouth and
smile — as sensitivities that all point the same way, each metered against the
live signal it gates. Face capture can be switched off entirely, and lets go of
the morphs when it is.

v3.0.0

Toggle v3.0.0's commit message
MiKaPo 3.0 — data-driven solver rewrite, worker-threaded capture, 60 …

…FPS rendering with real-time capture

v2.6.0

Toggle v2.6.0's commit message
update ui and screenshots

v2.5.0

Toggle v2.5.0's commit message
fix flashing issue and mediapipe loading

v2.4.0

Toggle v2.4.0's commit message
load user model

v2.3.0

Toggle v2.3.0's commit message
update main scene

v2.2.0

Toggle v2.2.0's commit message
add face demo

v2.1.0

Toggle v2.1.0's commit message
Migrate to RezeEngine