Repository navigation
Assess pyeyesweb and Laban for #373 - #379
Merged
Merged
Conversation
ARJ asked whether the gesture-recognition work should build on Camurri's EyesWeb line through pyeyesweb, whether Laban can be part of it, and whether Labanotation can come from video. Three answers, written from the source rather than from the README. pyeyesweb is real and well-sourced --- MIT, InfoMus/Casa Paganini, a MOCO '26 paper at doi:10.1145/3802842.3802904 --- and it does NO pose extraction, so it sits on the boundary MGT and micromotion already occupy. Checked against all 125 micromotion exports, the overlap is one function: jerk. No SPARC, no phase-locking, no symmetry, no convex hull, no mass-weighted kinetic energy. So adopting it is mostly addition, and the four-toolbox rule argues for depending on it rather than reimplementing it. MEASURED, BECAUSE IT CHANGES HOW IT SHOULD BE USED. Its Smoothness is correct on the canonical case --- minimum jerk against 2 and 3 submovements gives SPARC -1.45, -2.22, -2.59 --- but the two measures it returns behave completely differently under tracker noise. Over 15 repeats per level, jerk RMS rises 8.6x at 10 per cent noise while SPARC does not move at all, and real roughness (3 submovements, no noise) also reads 9.0x on jerk. So jerk cannot distinguish tracker noise from tripling the submovements; SPARC separates them. That is not a defect, it is why SPARC exists --- but it means a smoothness claim about a performer computed from MediaPipe landmarks with jerk is largely a claim about MediaPipe. Laban: no module names it, and the mapping is mine, read from the source. Lightness is Weight and Suddenness is Time; Space and Flow have nothing, only substrates. So an Effort layer is our own operationalisation and should be named and cited as one rather than offered as "Laban Effort". Labanotation from video is thinner than it sounds and is the wrong target. The only substantial implementation is Kinect-based and unmaintained for 20 months. The notation encodes direction and level per limb, both three-dimensional, and a single static camera gives neither reliably --- so it would quantise a noisy 3-D estimate onto a symbol grid that cannot express its own uncertainty. Worth doing only with two views, where #355's fusion supplies a cross-view residual that states what the symbols cannot. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xg1f739wddu5M4s3UwdNkn
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Background for #373, written from the source rather than from the README, after ARJ asked whether the gesture-recognition work should build on Camurri's EyesWeb line, whether Laban can be part of it, and whether Labanotation can come from video.
Adds one document:
plans/2026-08-23-pyeyesweb-and-laban.md. No code.pyeyesweb is real and well-sourced — MIT, InfoMus / Casa Paganini, a MOCO '26 paper at doi:10.1145/3802842.3802904 — and does no pose extraction, so it sits on the boundary MGT and micromotion already occupy. Checked against all 125 micromotion exports, the overlap is one function: jerk. No SPARC, no phase-locking, no symmetry, no convex hull, no mass-weighted kinetic energy.
Measured, because it changes how it should be used. Its
Smoothnessis correct on the canonical case (minimum jerk vs 2 and 3 submovements gives SPARC −1.45, −2.22, −2.59), but over 15 repeats per noise level, jerk RMS rises 8.6× at 10% tracker noise while SPARC does not move — and real roughness also reads 9.0× on jerk. So jerk cannot distinguish tracker noise from tripling the submovements. A smoothness claim computed from MediaPipe landmarks with jerk is largely a claim about MediaPipe.Laban: no module names it.
lightnessis Weight,suddennessis Time; Space and Flow have only substrates. An Effort layer would be our own operationalisation and should be named and cited as one.Labanotation from video is the wrong target on one camera — the only substantial implementation is Kinect-based and unmaintained for 20 months, and the notation encodes direction and level per limb, both 3-D. Worth it only with two views, where #355's fusion supplies a cross-view residual that states what the symbols cannot.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Xg1f739wddu5M4s3UwdNkn