livliv-dev/player
Media & DesignRender 2.5D characters on the web with lip sync and webcam face tracking.
What it does
LivLiv Player is a WebGL2 character renderer for web pages, stream overlays and apps. It plays LivLiv model packages, VRM avatars and PNGTuber images through one API, with optional microphone/audio lip sync and browser-based face tracking. The core is described as dependency-free at roughly 30 KB gzipped, with the voice and tracking modules loaded only when needed.
The repository includes 21 ready-to-load characters and documents the .livliv package format. It does not use Live2D software or read .moc3/.cmo3 files, so existing Live2D assets are not a supported input.
Try it and add it to a page
The quickest check is the online examples. To run locally, install dependencies, build, serve the repository folder with any static server, then open /example/demo.html; ?model=../characters/<id>/ selects a different character. The PNGTuber and VRM demos are in example/png.html and example/vrm.html.
For code integration, import Player, construct it with a canvas, and load a character folder containing model.json and textures, or a .livliv file:
import { Player } from '@livliv/player'
const player = new Player(document.querySelector('canvas'))
await player.load('characters/k01/')
player.setExpression('smile')
player.act('nod')
player.params.mouthOpen = 0.6
Lip sync and face tracking are separate imports. The voice module needs no extra package, while face tracking requires @mediapipe/tasks-vision. VRM playback requires three and @pixiv/three-vrm; PNGTuber playback takes closed/open mouth images, optionally with closed-eye variants. See the API documentation for options, parameters, expressions, actions and detailed limits.
A package is not published on npm yet: build from the repository and import dist/index.js.
Constraints and licensing
Browser support is WebGL2 and ES2023: Chrome/Edge 97+, Firefox 104+, Safari 15.4+, desktop and mobile. Face tracking runs MediaPipe in the browser and camera images stay on the device per the project documentation; the player itself calls no AI service.
The code is Apache-2.0, but the featured characters are not: LivLiv-made characters are for personal, non-commercial use with credit, and commercial use, resale or AI training are excluded. Kujira, Kujira Q and Pen come from other creators and have separate terms in characters/CREDITS.md. AI-made LivLiv characters also carry a mark and should be disclosed as AI-created when shown publicly.
HotRepo's take
The repository entered the new-project list on 2026-11-05 with 191 stars, 24 forks and 82 stars gained over the tracked window; the sampled star count rose from 109 to 191 within about two hours. That is a short observation window, so the numbers show an early burst rather than sustained adoption. The visible technical substance is concrete: a renderer API, separate voice/tracking/body modules, format documentation and browser tests. The main adoption question is distribution, since the package is not yet on npm and users currently have to build it from source.
Written by AI from the project's README, updated . The project's own docs are the source of truth.