Gojo is a Jujutsu Kaisen cursed technique visualizer built with MediaPipe Hands and Three.js. This version focuses on smoother animation, lower render cost, and significantly more stable hand tracking.
- Secret Technique: Hollow Purple
- Trigger: Pinch (thumb + index)
- Domain Expansion: Malevolent Shrine
- Trigger: All 4 fingers up (flat/open hand)
- Domain Expansion: Infinite Void
- Trigger: Index + middle up only
- Cursed Technique Reversal: Red
- Trigger: Index only
- Particle count reduced from 20,000 -> 12,000 for smoother FPS while preserving visual density.
- Particle generators now return flat arrays instead of object allocations, reducing per-frame GC pressure.
- Optional low-end mode: hand detection can be throttled to every other frame to cut MediaPipe compute cost.
- Only the first detected hand is processed for more stable and less jittery gesture reads.
- Detection confidence and tracking confidence increased to 0.75 / 0.75 to reject noisy frames.
- Screen shake now uses lerp easing instead of instant random jumps.
- Rotation transitions ease between techniques instead of snapping.
- Particle lerp factor tuned to 0.085 (from 0.1) for silkier transitions.
- Technique label color and glow now transition smoothly with CSS transitions.
Root issues that caused unstable tracking:
- Single-frame detection directly changed technique state (flicker).
- Overlapping gesture rules caused random switching between techniques.
- Pinch threshold was too tight.
What was added:
- Vote buffer over the last 8 frames.
- Activation threshold: gesture must win at least 62% of votes.
- Hysteresis: leaving an active state requires a higher threshold (72%) to avoid wobble-induced drops.
- Mutually exclusive priority order in gesture checks:
- Pinch -> Purple
- All 4 fingers up -> Shrine
- Index + Middle only -> Void
- Index only -> Red
- Looser pinch threshold (0.055) for more reliable pinch detection.
- Technique visuals and labels consolidated into a central technique config.
- State switching is centralized through target updates instead of redundant resets.
- Gesture logic is now explicit and non-overlapping.
- Modern browser (Chrome, Edge, or Firefox)
- Webcam access
-
Clone the repo:
git clone https://github.com/abijithraja/Gojo.git cd Gojo -
Open with Live Server in VS Code, or open
index.htmldirectly in a browser.
This project is inspired by and gives credit to the original SAT0RU repository:
- Original repository: https://github.com/reinesana/SAT0RU
- Original README reference: https://github.com/reinesana/SAT0RU/blob/main/README.md?plain=1
Built with MediaPipe Hands and Three.js.
