reelmimic
Show it a video you love. Get a new video in the same style. An AI crew (Claude Code or Codex) plans, builds and reviews it with you.
2D talking head that reads English or Hebrew text aloud with lip sync (Web Speech API)
MediaJavaScript · CSSGitHub @benny-abramovOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A 2D female talking head that reads text aloud in English or Hebrew, with lip sync. Static site, no build step, no API keys.
index.html, or serve the folder: python -m http.server 8000 → http://localhost:8000python -m http.server 8000 --bind 0.0.0.0, then open http://<your-PC-IP>:8000 on the phone.| Part | File | Notes |
|---|---|---|
| Speech | js/app.js | Browser Web Speech API (speechSynthesis). Picks a female voice by name; changeable under Voice settings. |
| Visemes | js/visemes.js | Converts spelling to 12 mouth shapes (English rules; Hebrew letters + niqqud, guessing missing vowels). |
| Sync | js/app.js | Snaps to the engine's word-boundary events when available; otherwise a timer whose speed self-calibrates from past utterances. |
| Avatar | js/avatar.js | Original SVG character with a parametric mouth (smoothly blended), blinking, gaze and head motion. |
| Updates | js/update-check.js | Every 5 min and on returning to the tab, compares the deployed files with the loaded ones and offers a reload. Add new files to its FILES list. |
| Looks | js/looks.js | 8 selectable cartoon characters (hair, colours, accessories) sharing one head rig, plus photo avatars. Add a look by adding an entry. Male looks prefer male voices. |
| 3D avatar | js/avatar3d.js | "Mia 3D": a GLB character rendered with TalkingHead 1.7.0 and three.js 0.180.0 (from jsDelivr, via the import map in index.html). Our viseme timeline drives the model's Oculus viseme blend shapes, so the mouth, teeth and tongue are real 3D geometry. Loaded only when chosen. |
| Photo avatars | js/photo-avatar.js | Warps a portrait photo with a WebGL mesh on MediaPipe face landmarks (mouth, jaw, blinks, gaze, head sway) and paints teeth/mouth interior. "Your photo" runs face detection in the browser; the photo never leaves the device. |
photos/. Use AI-generated faces or photos of people who agreed.{ id, name, gender, photo: 'photos/x.jpg', landmarks: 'photos/x.json' } to js/looks.js.JSON.stringify(AvatarLooks.find(l => l.upload).detected) in the browser console.avatars/brunette.glb is the example avatar from the TalkingHead project, created at Ready Player Me and licensed CC BY-NC 4.0 (non-commercial use, with attribution, which the app shows on the stage). Other 3D avatars need a Mixamo-compatible rig plus ARKit and Oculus viseme blend shapes; check that their licence allows publishing on a public website.
photos/lena.jpg is a public-domain StyleGAN image from Wikimedia Commons (File:Woman 1.jpg).
Available voices depend on the device/browser: