technical write-up

Twenty-one points in, a named wrong finger out.

How NrityaVaani turns hand landmarks into finger-by-finger feedback on a Bharatanatyam mudra — entirely in the browser, with no video ever leaving the device.

21per hand

landmarks tracked

3per finger

joint angles read

28

mudras in the rule set

WASM

how the model runs


01

Tracking

Twenty-one landmarks per hand, read in the browser.

NrityaVaani trains no vision model of its own. It runs Google’s MediaPipe hand_landmarker task, which finds the hand and predicts twenty-one three-dimensional landmarks — the wrist plus four joints on each finger, in the standard MediaPipe ordering.

The model is compiled to WebAssembly and runs on your own machine, so frames are read from the camera, classified and discarded without being uploaded. Everything downstream of those twenty-one points is ours.


02

Classification

Readable geometry rather than a black box — which is what makes per-finger feedback possible at all.

A mudra is defined by the relationship between fingers, not by where the hand is. For each finger we compute a continuous extension score from the distances between its joints, normalised by hand size, so the reading holds whether you are close to the camera or far from it.

Each mudra is then a written rule over those scores and the distances between fingertips. Pataka asks for four extended fingers held close together; Kartarimukha asks for the same two fingers separated past a threshold. The highest-scoring rule wins, and its score is the confidence shown on screen.

This is deliberately not a neural classifier. Because every rule is legible, the engine can say which finger is wrong and in which direction — “bend your ring finger more” — instead of only returning a label. That is the difference between a demo and something you can practise with.


03

History

Your own sessions, kept on your own machine.

Each practice session records the mudra, how long you held it, and the best confidence you reached. Accuracy is the mean of those scores, and a mudra counts as mastered once you clear its threshold.

That history is written to your browser’s local storage. There is no analytics pipeline behind it and nothing is sent to a server — which also means clearing your browser data clears your history, and it does not follow you to another device.


The quickest way to read this is to hold a hand up.


MediaPipe Hands·WebAssembly·Rule-based classifier·localStorage

Who built it