Skip to content
Komsan Nipharat

Case study

Z-Face Rigging

Web app that tracks your face from a webcam and drives a rigged 3D face in real time, then exports the model and blendshapes.

FIG.1Research
Role
Sole developer for NECTEC (2021–2022) — ~118 commits across 4 repos
Stack
TensorFlow.jsthree.jsReactExpressTypeScriptMongoDBRedisDocker
Result
Sole author: ~118 of 122 commits.

Problem

Making a rigged, animated 3D face needed desktop 3D tools and a trained artist.

What I owned

Sole developer for NECTEC (2021–2022) — ~118 commits across 4 repos

What I built

  • Built the rigging app: male/female models, video recording, blendshape save, and OBJ / MTL / morph-target export.
  • Built sign-up, email verification, password reset, and Google/Facebook login.
  • Forked tfjs-models for the prototype character, texture cache, and async rendering.

System shape

TensorFlow.js FaceMesh drives a three.js face (blendshapes, iris-controlled eyes) in a Parcel app. React landing and account site; Express + TypeScript API with MongoDB, Redis, and Passport (local, JWT, Google, Facebook). Docker Compose behind nginx with auth-gated routes.

What changed

A browser and a webcam are enough to get a rigged, exportable 3D face.

Outcome

Sole author: ~118 of 122 commits.