Meta Viseme PNG Demo Player

This version auto-loads static files: one WAV, one JSON schedule, and one PNG per viseme using the Oculus / Meta viseme naming convention. It keeps the idle GIF mounted underneath and overlays transparent viseme PNGs during scheduled lip-sync segments.

Idle character animation Current viseme
Current viseme
Time0.000s
Segment
Duration: —
Idle GIF
./assets/idle.gif
Audio
./assets/audio.wav
JSON
./assets/visemes.json
Silence / Rest
./assets/viseme_sil.png
PP
./assets/viseme_PP.png
FF
./assets/viseme_FF.png
TH
./assets/viseme_TH.png
DD
./assets/viseme_DD.png
kk
./assets/viseme_kk.png
CH
./assets/viseme_CH.png
SS
./assets/viseme_SS.png
nn
./assets/viseme_nn.png
RR
./assets/viseme_RR.png
aa
./assets/viseme_aa.png
E
./assets/viseme_E.png
I
./assets/viseme_I.png
O
./assets/viseme_O.png
U
./assets/viseme_U.png
{ "visemes": [...], "visemeStartTimesMs": [...], "visemeDurationsMs": [...] }
{"visemes":["viseme_sil","viseme_aa"],"visemeStartTimesMs":[0,120],"visemeDurationsMs":[120,180]}
Loading…
If the page cannot fetch JSON when opened directly from disk, serve the folder with a tiny local server instead of double-clicking the file.