Skip to content

feat(demos/gnm): Added Google GNM demo of parametric avatars in XR Blocks. - #443

Merged
ruofeidu merged 2 commits into
google:mainfrom
ruofeidu:main
Jul 19, 2026
Merged

feat(demos/gnm): Added Google GNM demo of parametric avatars in XR Blocks.#443
ruofeidu merged 2 commits into
google:mainfrom
ruofeidu:main

Conversation

@ruofeidu

Copy link
Copy Markdown
Collaborator
XRBlocks.GNM.Demo.mp4

This adds an interactive XR Blocks demo of Google's Generative aNthropometric Model (GNM) v3.0, the parametric 3D statistical model of the human head that powers Android XR's Likeness.

Features include:

  • Full GNM forward function ported to JavaScript (GNMModel.js), evaluating 17,821 vertices, 253 identity, and 383 expression PCA components with sub-millisecond updates.
  • Live semantic sampling ported to JavaScript (SemanticSampler.js) for sampling gender, ethnicity, and 20 expression classes (happy, surprise, pucker, etc.) entirely client-side.
  • Synchronized UI across the desktop DOM panel and XR spatial panels (GNMSpatialUI.js), allowing users to toggle expressions, gaze, animations, and material modes from within VR.
  • Interaction and scene management (GNMControls.js, GNMScene.js) featuring joint rotation sliders, gaze tracking, animation drivers, and inspection views (studio, clay, normals, wireframe, landmarks, and skeleton).
  • Dynamic asset loading of the int8-quantized model weights (gnm_head_web.bin and gnm_samplers_web.bin) from a CDN, keeping the repository lightweight.

ruofeidu and others added 2 commits July 18, 2026 18:52
…ocks.

Demo: https://www.youtube.com/watch?v=bOFyFlFIcdU

This adds an interactive XR Blocks demo of Google's Generative aNthropometric Model (GNM) v3.0, the parametric 3D statistical model of the human head that powers Android XR's Likeness.

Features include:
- **Full GNM forward function** ported to JavaScript (`GNMModel.js`), evaluating 17,821 vertices, 253 identity, and 383 expression PCA components with sub-millisecond updates.
- **Live semantic sampling** ported to JavaScript (`SemanticSampler.js`) for sampling gender, ethnicity, and 20 expression classes (happy, surprise, pucker, etc.) entirely client-side.
- **Synchronized UI** across the desktop DOM panel and XR spatial panels (`GNMSpatialUI.js`), allowing users to toggle expressions, gaze, animations, and material modes from within VR.
- **Interaction and scene management** (`GNMControls.js`, `GNMScene.js`) featuring joint rotation sliders, gaze tracking, animation drivers, and inspection views (studio, clay, normals, wireframe, landmarks, and skeleton).
- **Dynamic asset loading** of the int8-quantized model weights (`gnm_head_web.bin` and `gnm_samplers_web.bin`) from a CDN, keeping the repository lightweight.
@ruofeidu
ruofeidu requested review from dli7319 and qxziuan July 19, 2026 01:55
@ruofeidu ruofeidu added the avatar Photorealistic and non-photorealistic avatars! label Jul 19, 2026
@ruofeidu
ruofeidu requested a review from whuang37 July 19, 2026 01:56
@ruofeidu
ruofeidu merged commit 5960246 into google:main Jul 19, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

avatar Photorealistic and non-photorealistic avatars!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants