Building public websites, portals and internal tools at PPFAS
Websites, the Gift investment platform, management portals and internal tools that let business teams manage workflows without depending on a separate tech team.
Case studies SignBridge
An accessibility research prototype that transcribes a spoken video, turns its meaning into a sequence of sign concepts, and plays the signs back in sync. This page covers the pipeline, the avatar research that followed, and the stage that exposed a limit.
In the project’s own words, SignBridge is not “a linguistically-validated or production-grade sign-language interpreter. Translations are AI-generated and have not been reviewed by Deaf/sign-language interpreters.”
The same applies to the avatar research: judging whether the motion is correct ISL “requires review by a qualified ISL interpreter, always, and hasn’t happened here.”
1 Problem
I wanted to explore how spoken-video information could be made more accessible to people who rely on sign language, starting with Indian Sign Language (ISL).
SignBridge takes a spoken video, transcribes it, maps the meaning to a sequence of sign-language concepts, and plays those signs back in sync with the video.
It began as a weekend-scale MVP. A research track followed, testing whether motion from real Indian Sign Language (ISL) clips could drive a rigged 3D avatar. That research is isolated and not wired into the app.
My role: built the SignBridge prototype hands-on, using Claude Code as an AI coding assistant. The seven commits are dated 8–9 August 2026. The later FRIEND and collision research exists only as local, uncommitted work.
The project spec states the problem in two lines: spoken video content is not automatically available in sign-language form, and captions help many people but are not the same thing as sign language.
The spec lists where that matters: YouTube videos, online courses, news, government announcements, educational content, tutorials, company training and public information.
What the spec leaves open, and this prototype does not answer, is whether automatically generated signing is accurate and useful to the people it is meant for.
The spec names one user group: people who benefit from sign-language accessibility.
No user research or testing with Deaf users is recorded.
No Deaf reviewer or sign-language interpreter has checked the translations or the avatar motion. The project notes treat review by a qualified ISL interpreter as a requirement, not an option.
2 Thinking
The project was scoped as “a weekend-scale MVP/research prototype, not a finished product,” with one aim: a pipeline proving that speech to meaning to sign sequence to visual is technically feasible.
The README sets that aim next to a plain statement of what the prototype is not.
The project spec, a master prompt for the AI coding assistant committed with the first version, sets the principle: work with meaning, not word by word. Mapping each English word to an image “does not scale and does not accurately represent how sign languages work,” so the pipeline goes from speech to meaning, then to a sign-language representation, a sign sequence and a visual.
Indian Sign Language (ISL) was the initial focus. The spec warns against treating ASL, ISL, BSL and other sign languages as the same language, and the weekend MVP targeted short videos of about 30 seconds to 2 minutes.
The avatar research ran as a sequence of questions. Can motion be extracted from a real ISL clip, frame by frame, with tools free to run locally? Can it be retargeted onto a rigged avatar? Does the same code hold on a second sign? Where does it break when the hands touch?
Each answer was measured against the source clip. The project’s own evaluation scripts compare human and avatar wrist trajectories and report error as a fraction of arm length.
The spec lists the MVP’s non-goals: authentication, payments, subscriptions, social features, a mobile app, real-time live translation, a 3D avatar, perfect sign-language translation and large-scale cloud infrastructure.
The MVP focused on pre-recorded video; real-time live translation was explicitly listed as a non-goal. Reason not recorded.
3 Execution
The backend runs on FastAPI. The frontend is React 19 with Vite and Tailwind.
The sign manifest has 209 ISL entries. Two are real sign clips from the INCLUDE dataset: HELLO and THANK YOU. The other 207 are auto-generated placeholder cards, not real signs.
Each of these is documented in the project spec or the research notes.
The retargeting code has no sign-specific hacks. For THANK YOU it was generalised to two hands within the same code; FRIEND then ran through the retargeting math and UI unchanged.
4 Iteration
Error figures are mean normalised position error, as a fraction of arm length (lower is better), measured on one clip per sign.
About the figures: generated by the project’s own evaluation scripts from INCLUDE dataset clips. INCLUDE dataset (Sridhar, Ganesan, Kumar, Khapra — AI4Bharat/IIT Madras), CC BY 4.0, INCLUDE dataset on Zenodo; the HELLO and THANK YOU clips were performed by a student at St. Louis School for the Deaf, Adyar, Chennai. Modified: landmark extraction and retargeting. The figures contain no people, video frames or avatar renders.
In the committed prototype (7 commits, 8–9 August 2026)
The first version ran the whole chain, from audio extraction to synced playback, showing the idea was technically feasible. Local test runs used the rule-based concept extractor rather than Gemini.
Processing moved to the background, with real stage and progress reporting. It still handles one video at a time.
A dedicated mapping layer now sits between concepts and visuals, so the renderer can choose an image, GIF, video or avatar view for each asset.
HELLO and THANK YOU became real sign clips from the INCLUDE dataset. They remain the only real signs among the 209 manifest entries.
three.js test pages load a rigged VRoid avatar, and MediaPipe Holistic extracts landmarks from real ISL clips to drive it.
None of this is wired into the app, and the avatar’s licence question is unresolved.
The spec had listed a 3D avatar among the MVP’s non-goals. This research track came afterwards; the reason for expanding into it is not recorded.
Landmarks from one HELLO clip were retargeted onto the avatar, respecting its bind pose.
The first, clamp-based approach left a mean wrist error of 0.2405 and a mean elbow error of 0.1954.
A two-bone IK reach correction cut mean wrist error on the same HELLO clip from 0.2405 to 0.0354, roughly 85%. Mean elbow error fell from 0.1954 to 0.0696.
THANK YOU turned out to be two-handed, discovered mid-phase rather than assumed. The retargeter was generalised to two hands with the same code and no sign-specific hacks.
Hand detection: right 45/53 frames (85%), left 40/53 (75%). Mean wrist error: 0.1238 right, 0.1330 left.
It exposed a new failure mode, the avatar’s garment hiding the hands, and two defects that were fixed: the hands converged to 16–22% of shoulder width against the signer’s about 54% (52–59% after the fix), and the resting arm clipped into the hip.
The hip-clearance fix made during the THANK YOU stage stopped the avatar’s resting arm clipping into its hip. The arms became visibly correct, but the wrist trajectory-error metric got worse: HELLO 0.0354 to 0.0665; THANK YOU right 0.0287 to 0.1238, left 0.0506 to 0.1330.
The metric only measures trajectory shape and has no concept of clipping. The visual fix was kept, and the project notes record it as an “honest result, not spun as a clean win.”
The FRIEND stress test and the collision work below exist only as local, uncommitted work in the research repository. They are shown because they are where the approach reached its limit.
FRIEND was chosen for genuine hand-to-hand contact, after inspecting real footage. The retargeting math and UI generalised unchanged, but source hand-tracking degraded: the right hand was detected in 20 of 59 frames (34%), against 36/47 (77%) for HELLO and 45/53 (85%) for THANK YOU.
A dropout of about 20 frames after contact remains unexplained and unfixed. It is recorded as a tracking failure, kept separate from retargeting.
Capsule-based collision detection found 16 frames where the hands penetrate each other. A finger-only correction resolved 8 of them but looked less natural than the uncorrected pose, so it was switched off by default. A redesigned, coordinated finger-curl solver resolved 6 of 16 (to 2 mm or less). With it, the worst remaining frame-to-frame rotation is 23° beyond the source motion’s own rate of change; earlier, before the temporal fixes, one finger joint had jumped 163° between two adjacent frames. Palm-against-palm penetration is still out of reach.
5 Impact
The same retargeting code handled a one-handed sign (HELLO), a two-handed sign (THANK YOU) and, in the local, uncommitted research, a contact sign (FRIEND) without sign-specific changes.
The weak point was upstream, in source hand-tracking. Right-hand detection fell to 34% on FRIEND, where the hands touch, from 77% on HELLO and 85% on THANK YOU.
The error metric alone was not a reliable judge: it measures trajectory shape, so a fix that removed visible clipping scored worse.
Collision correction, also in the uncommitted research, helped only in part. The version that resolved the most frames looked less natural, and palm-against-palm penetration is unsolved.
| Sign and hand | Mean wrist error | Mean elbow error | Hand detected |
|---|---|---|---|
| HELLO, right | 0.0665 | 0.0707 | 36/47 (77%) |
| THANK YOU, right | 0.1238 | 0.0839 | 45/53 (85%) |
| THANK YOU, left | 0.1330 | 0.0907 | 40/53 (75%) |
| FRIEND, right | 0.1091 | 0.0855 | 20/59 (34%) |
| FRIEND, left | 0.1478 | 0.1045 | 33/59 (56%) |
Error values are after the hip-clearance fix. “Hand detected” counts frames where the source hand-tracker found that hand. The FRIEND rows come from local, uncommitted research.
Websites, the Gift investment platform, management portals and internal tools that let business teams manage workflows without depending on a separate tech team.