Skip to content

abijithraja/Gojo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Gojo

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.

Demo GIF

Techniques

  • 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

Optimization Update

Performance

  • 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.

Smoother Animation

  • 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.

Hand Tracking Reliability Fixes

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.

Code Cleanup

  • 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.

Getting Started

Prerequisites

  • Modern browser (Chrome, Edge, or Firefox)
  • Webcam access

Run Locally

  1. Clone the repo:

    git clone https://github.com/abijithraja/Gojo.git
    cd Gojo
  2. Open with Live Server in VS Code, or open index.html directly in a browser.

Credits

This project is inspired by and gives credit to the original SAT0RU repository:

Built with MediaPipe Hands and Three.js.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages