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.