Case studies SignBridge

SignBridge: mapping spoken video to a sequence of Indian Sign Language concepts

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.

Research prototype August 2026
What this is not

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

Status
Research prototype, run locally; not deployed
When
August 2026
Role
Built the SignBridge prototype hands-on, using Claude Code as an AI coding assistant
Stack
FastAPI, faster-whisper, React, three.js, MediaPipe
SignBridge, as the code and research notes show it. The app, the committed prototype: a pre-recorded spoken video; transcription with FFmpeg and faster-whisper; concepts extracted by meaning rather than word by word, with Gemini or a rule-based fallback; sign mapping to 209 manifest entries; sign assets, of which 2 are real ISL clips and 207 are placeholders; synced playback in a React player. Separately, isolated research that is not wired into the app: a real ISL clip from the INCLUDE dataset (CC BY 4.0); MediaPipe landmark tracking; retargeting with analytical IK; a three.js avatar on test pages. HELLO worked; THANK YOU worked with two hands; FRIEND reached a hand-tracking limit (right hand found in 34% of frames), in local, uncommitted research. Not validated with Deaf users or ISL interpreters; run locally, not deployed; 2 of 209 signs are real clips.THE APPCOMMITTED PROTOTYPESpoken videopre-recorded clipTranscriptionFFmpeg audiofaster-whisperConceptsmeaning, not wordsGemini or rulesSign mapping209 manifest entriesSign assets2 real ISL clips207 placeholdersSynced playbackReact playerISOLATED RESEARCHNOT WIRED INTO THE APPINCLUDE clipreal ISL · CC BY 4.0LandmarksMediaPipe trackingRetargeting+ analytical IKAvatarthree.js test pagesHELLOworkedTHANK YOU2 handsFRIENDtracking 34%LOCAL · UNCOMMITTEDRESEARCHNOT VALIDATED WITH DEAF USERS OR ISL INTERPRETERSRUN LOCALLY · NOT DEPLOYED2 OF 209 SIGNS ARE REAL CLIPS
  • App (committed)
  • Isolated research
  • Local, uncommitted research
  1. Problem: Spoken video is not automatically available in sign language, and captions are not the same thing.
  2. Thinking: Scope a weekend-scale MVP to test one thing: is speech to meaning to sign sequence to visual feasible?
  3. Solution: A pipeline that transcribes, extracts concepts, maps them to ISL sign entries and plays them in sync; only 2 of 209 entries are real sign clips.
  4. Execution: An app on FastAPI and React, then isolated avatar research with MediaPipe and three.js.
  5. Impact: Technical feasibility only: the pipeline works; HELLO and THANK YOU were retargeted, and FRIEND, in local, uncommitted research, exposed a hand-tracking limit. Not tested with Deaf users.
  6. Learning: Retargeting generalised across three signs; source hand-tracking was the limit, finding the right hand in only 34% of FRIEND’s frames (local, uncommitted research).

1 Problem

01 · Context

A weekend MVP, then a separate avatar research track

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.

02 · Problem

Captions are not the same thing as sign language

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.

03 · Users

Built for sign-language accessibility, not tested with Deaf users

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

04 · Approach

Prove feasibility first, and write down what it doesn’t prove

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.

05 · Scope and constraints

A weekend scope, a small vocabulary, and licences that limit what can be shown

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.

  • The backend processes one video at a time, with no authentication and no database; records are stored as JSON files.
  • ISL only, with a small curated vocabulary. Words that are not mapped fall back to fingerspelling.
  • The README rules out use for “medical, legal, emergency, or other high-stakes content without human review.”
  • The two real sign clips come from the INCLUDE dataset and are used under CC BY 4.0, with attribution.
  • The avatar model (VRoid AvatarSample_A) has an unresolved redistribution question, so this page shows no avatar renders.

3 Execution

06 · Solution

A six-step pipeline from spoken video to synced signs

  1. Audio extractionFFmpeg pulls the audio track from the input video.
  2. Transcriptionfaster-whisper transcribes the speech.
  3. Concept extractionGemini, with a rule-based fallback, turns the transcript into sign concepts. Local test runs used the fallback.
  4. Sign mappingEach concept is mapped to an ISL sign entry.
  5. Asset resolutionEach sign resolves to a visual asset; unmapped words fall back to fingerspelling.
  6. Synced playbackA React player shows the current sign in step with the video’s playback time.

The backend runs on FastAPI. The frontend is React 19 with Vite and Tailwind.

Coverage: 2 real signs out of 209

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.

07 · Product decisions

Fall back, stay small, and name failures precisely

Each of these is documented in the project spec or the research notes.

  • Fall back instead of failing. Unmapped words become fingerspelling, and concept extraction falls back from Gemini to a rule-based method.
  • Keep the MVP small. One video at a time, no authentication, JSON files instead of a database.
  • Separate what a sign means from how it is shown. A dedicated mapping layer, and a renderer that picks a view per asset type: image, GIF, video or avatar.
  • Let visual review overrule a metric that can’t see clipping. A fix that made the arms look right was kept even though the metric worsened, and, in the local, uncommitted collision research, a correction that resolved more frames but looked less natural was switched off by default.
  • Name failures precisely. The FRIEND result, from local, uncommitted research, is recorded as a tracking failure and kept distinct from retargeting.
08 · Technical execution

FastAPI and React for the app; MediaPipe and three.js for the research

  • BackendFastAPI, FFmpeg and faster-whisper, with background processing and real stage and progress reporting.
  • FrontendReact 19, Vite and Tailwind. The player syncs to video time; the renderer picks a view per asset type.
  • Avatar researchMediaPipe Holistic landmark extraction from real ISL clips, retargeted onto a rigged VRoid avatar in three.js, respecting its bind pose.
  • Evaluation and collisionEvaluation scripts plot trajectories and per-frame error; capsule-based hand-collision detection and a finger-curl solver.

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

09 · Iteration and challenges

Nine stages, labelled by what the evidence showed

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)

  1. MVP pipeline

    Worked

    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.

  2. Async processing

    Worked

    Processing moved to the background, with real stage and progress reporting. It still handles one video at a time.

  3. Sign mapping architecture

    Worked

    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.

  4. Real ISL assets: HELLO and THANK YOU

    Worked, with caveats

    HELLO and THANK YOU became real sign clips from the INCLUDE dataset. They remain the only real signs among the 209 manifest entries.

  5. Avatar renderer, as isolated research

    Worked, with caveats

    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.

  6. HELLO motion retargeting

    Worked, with caveats

    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.

    Six stick-figure plots of the avatar’s retargeted HELLO arm, one per time step from t = 0.00 s to 1.60 s: the arm hangs straight down at the start, is folded up near shoulder height at 0.64 s and 0.96 s, and hangs down again by 1.60 s.
    Six-frame reconstruction of the avatar’s retargeted HELLO arm, computed from the retargeting rotations for one INCLUDE clip (first retargeting version, before the IK fix), t = 0.00 s to 1.60 s (frames 0–40). It is a plot, not an avatar render.
  7. Analytical IK

    Worked

    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.

    Two charts for HELLO after the IK fix. Left, a trajectory plot: human and avatar wrist paths closely overlap. Right, a line chart of per-frame wrist and elbow error: wrist error peaks at 0.1413 around frame 7, has a second, smaller peak near frame 34, and stays low through the middle of the clip.
    HELLO, one INCLUDE clip, right after the analytical IK fix: human vs avatar wrist trajectory (left) and per-frame wrist and elbow error as a fraction of arm length (right). Mean wrist error 0.0354, max 0.1413. Measured before the later hip-clearance change, which raised the mean to 0.0665.
  8. Bimanual retargeting: THANK YOU

    Worked, with caveats

    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.

    Two charts for THANK YOU, right hand. Left, a trajectory plot: human and avatar wrist paths follow the same downward motion, with the avatar’s lower positions further out to the side. Right, a line chart of per-frame wrist and elbow error: wrist error is highest at the start and end of the clip; mean wrist error 0.1238.
    THANK YOU, right hand, one INCLUDE clip, current version (after the hip-clearance fix): human vs avatar wrist trajectory and per-frame wrist and elbow error. Mean wrist error 0.1238; the left hand, not shown, is 0.1330.
Trade-off: the metric got worse, and the fix stayed

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

Local, uncommitted research — not part of the committed prototype

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.

  1. FRIEND occlusion stress test

    Exposed a limit Local, uncommitted

    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.

    Two charts for FRIEND, right hand. Left, a trajectory plot: human and avatar wrist paths diverge through much of the motion. Right, a line chart of per-frame wrist and elbow error: wrist error spikes above 0.3 around frame 34; mean wrist error 0.1091.
    FRIEND, right hand, one INCLUDE clip, current version: human vs avatar wrist trajectory and per-frame wrist and elbow error. Mean wrist error 0.1091, with a spike above 0.3 around frame 34. Right-hand detection on this clip: 20 of 59 frames.

5 Impact

10 · Outcome

Feasibility shown for the pipeline and two signs; a limit found on the third

  • The core pipeline is feasible: a spoken video goes in, and a sign sequence plays back in sync with it, running locally.
  • HELLO and THANK YOU were retargeted from real ISL clips onto a rigged 3D avatar, including a two-handed sign, with the same code.
  • In the local, uncommitted research, FRIEND showed where the approach breaks: source hand-tracking during hand-to-hand contact, which is recorded separately from retargeting. Palm-against-palm penetration on the avatar also remains out of reach.
  • Not established: linguistic correctness, usefulness to Deaf viewers, or coverage beyond two real signs. The prototype is not deployed.
  • Facial and head interaction was explicitly left untested.
11 · What the evidence showed

Retargeting generalised; hand-tracking was the limit

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.

Arm and hand landmarks for the sign FRIEND at frame 41 of 59: the left hand is tracked; the right hand is not detected and is shown as an empty ring at the wrist.
Real MediaPipe arm and hand landmarks from the INCLUDE dataset clips used in the research (Sridhar, Ganesan, Kumar, Khapra; AI4Bharat / IIT Madras; CC BY 4.0), with face points removed. It shows the tracking input, not sign recognition or translation. A hand the tracker lost is shown as an empty ring at the wrist. HELLO uses the 1080p re-extraction, and its left hand is not used because HELLO animates only the right arm. In FRIEND the right hand is detected in 20 of 59 frames (34%); in THANK YOU, in 45 of 53 frames for the right hand and 40 of 53 for the left.

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.

Current results by sign, one clip each (error as a fraction of arm length)
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.

12 · What I learned

What this project taught me

  1. A metric is only as good as what it can see. The trajectory metric said the hip-clearance fix made things worse; the avatar on screen said the opposite. The fix was kept and the cost written down, because a number that can’t see clipping can’t be the only judge.
  2. Test the case you expect to break. HELLO and THANK YOU made the retargeter look general. FRIEND, picked because the hands actually touch, showed that the limit was upstream, in hand-tracking, rather than in the retargeting.
  3. Fixing more frames is not the same as looking right. The finger-only correction resolved 8 of 16 penetrating frames but looked less natural than doing nothing, so it was switched off by default and the approach redesigned.
  4. Write the limits down first. The project brief listed what SignBridge is not before any code was written, and the case study keeps those limits: 207 of 209 signs are placeholders, and no Deaf user or interpreter has reviewed the output. The brief’s own stated purpose is a foundation “that can later be validated and improved with Deaf/sign-language communities and qualified interpreters.”

Next case study

All case studies