9:16 · 1080×1920 · 24 fps

Animation test · final model

Gary glances sideways and smirks.

A 6-second silent acting beat, rendered from the final rigged model with blend shapes only. No lip-sync and no paint-overs.

  1. 0.0–1.0 sLooks at camera, breathing, tiny eye drift
  2. 1.0–1.9 sEyes dart off-screen; head, neck and chest follow, with a blink on the turn
  3. 1.9–3.1 sSizes it up: one brow lifts, eyes narrow, lips press
  4. 3.1–4.2 sEyes snap back to camera, smirk grows into a knowing grin
  5. 4.2–6.0 sSmall chuckle, blink, held smirk
76,244triangles (cap 100k)
58blend shapes
69Mixamo-named bones
1.85 mreal-world scale

The brief, checked

Every requirement, with the proof

Each line was checked on the exported files. Validator, QA script, FBX re-import and browser tests all passed. Details for each group follow below.

Files 3 / 3

“GLB/glTF preferred for Three.js. FBX is also acceptable. Include the editable source file.”

✓
GLB for Three.jsGary.glb passes the Khronos glTF Validator with 0 errors and 0 warnings, and loads in Three.js (live viewer below). A 2.1 MB web-compressed copy is included too.
✓
FBXGary.fbx re-imports cleanly with 69 bones, 58 shape keys and the animation.
✓
Editable sourceGary.blend with packed textures, plus the build scripts that regenerate the model.

Body rig 3 / 3

“Standard humanoid skeleton, ideally with Mixamo-style bone names, and finger bones for pinching, grabbing, and holding props.”

✓
Standard humanoid skeletonHips → Spine ×3 → Neck → Head, shoulders, arms, legs, feet and toes. Built in T-pose, with every mesh skinned or bone-attached.
✓
Mixamo bone namesmixamorig:Hips, mixamorig:LeftArm… (Three.js reads them as mixamorigHips).
✓
Fingers: pinch, grab, hold3 bones per finger plus the thumb, and a LeftHandProp / RightHandProp socket. All three grips are posed and rendered below.

Facial rig (priority) 8 / 8

“Blend shapes for blinks, eyelids, brows, and mouth shapes such as open, smile, frown, O, and teeth showing. An ARKit-style set works.”

✓
BlinkseyeBlinkLeft, eyeBlinkRight: the lids close fully over the eyeball.
✓
EyelidsWide, squint and look up/down/in/out for each eye.
✓
BrowsDown L/R, inner up, outer up L/R, plus cartoon browAngry and browSad.
✓
Open · smile · frown · O · teethjawOpen (teeth and tongue follow), smile, frown, funnel/pucker/mouthO, upper-lip up / lower-lip down and teethShow.
✓
ARKit-style setThe full ARKit 52, plus 6 cartoon extras (smirk L/R, teeth show, O, angry and sad brows).

Model specs 4 / 4

“Under roughly 100k polygons, scaled in meters, with PBR textures. The glasses, drawstrings, and cowlick can be separate meshes.”

✓
Under 100k polygons76,244 triangles across 14 meshes, about 24% under the cap.
✓
Scaled in metersUnit scale 1.0, feet at 0, and 1.85 m tall including the cowlick.
✓
PBR texturesBase color, roughness/metal (ORM) and normal maps on every material. Only the glass lenses use a plain transparent PBR material.
✓
Separate meshesGary_Glasses (+ Gary_Lenses), Gary_Drawstrings, Gary_Cowlick.

Animation test done

“Include a short animation test of Gary glancing sideways and smirking with the final model.”

✓
Glance + smirk on the final modelDelivered as a 1080×1920 video (above) and as the clip Test_GlanceSmirk inside the GLB. Press “Play the animation test” in the live viewer to watch it run in Three.js.

Live in Three.js

Try the actual model

This is the delivered GLB, loaded with the same GLTFLoader your Shorts pipeline uses. Drag to orbit, scroll to zoom. The expression buttons drive the real blend shapes.

Loading Gary.glb…

Animation

Expressions (blend shapes)

View

Triangles
—
Height
—
Bones
—
Blend shapes
—
Meshes
—

Numbers are read from the GLB in your browser.

Facial rig · the priority

Silent acting, shape by shape

Every expression below is a combination of the delivered blend shapes. Left and right are split, so asymmetric acting like the smirk works.

Expression sheet: neutral, blink, wide eyes, squint, brows up, brows down, mouth open, smile, frown, O, teeth, smirk, angry, sad, surprised, pucker

Eyes · 14

eyeBlink L/R · eyeWide L/R · eyeSquint L/R · eyeLookUp L/R · eyeLookDown L/R · eyeLookIn L/R · eyeLookOut L/R

Brows · 5

browDown L/R · browInnerUp · browOuterUp L/R

Jaw · 4

jawOpen · jawForward · jawLeft · jawRight

Mouth · 23

mouthClose · mouthFunnel · mouthPucker · mouthLeft/Right · mouthSmile L/R · mouthFrown L/R · mouthDimple L/R · mouthStretch L/R · mouthRollLower/Upper · mouthShrugLower/Upper · mouthPress L/R · mouthLowerDown L/R · mouthUpperUp L/R

Cheeks · nose · tongue · 6

cheekPuff · cheekSquint L/R · noseSneer L/R · tongueOut

Cartoon extras · 6

mouthSmirkLeft · mouthSmirkRight · teethShow · mouthO · browAngry · browSad

Body rig

Mixamo-named skeleton, working hands

The hands were posed on the final rig: a pinch (thumb tip meets index tip), a closed fist, and a grip on a prop placed at the hand socket.

Left hand posed: pinch, fist, and holding a prop, two views each
mixamorig:Hips
├─ Spine → Spine1 → Spine2
│  ├─ Neck → Head → HeadTop_End
│  │          ├─ LeftEye   (glance)
│  │          └─ RightEye  (glance)
│  ├─ LeftShoulder → LeftArm → LeftForeArm → LeftHand
│  │    ├─ Thumb1-4 · Index1-4 · Middle1-4
│  │    ├─ Ring1-4 · Pinky1-4
│  │    └─ LeftHandProp  (prop socket)
│  └─ RightShoulder → …  (mirror)
├─ LeftUpLeg → LeftLeg → LeftFoot → LeftToeBase → LeftToe_End
└─ RightUpLeg → …  (mirror)
Rig checkResult
Humanoid bones with Mixamo names22 / 22
Finger bones (3 per finger, 5 fingers)30 / 30
Total bones exported69
Rest poseT-pose (Mixamo standard)
Bone influences per vertex≤ 4, normalized (glTF-safe)
Eye bonesLeftEye, RightEye
Prop socketsLeftHandProp, RightHandProp

Model specs

Turnaround and budget

Clean quad topology, real-world meters and PBR materials. The glasses, drawstrings and cowlick are their own meshes.

Gary turnaround: front, three-quarter, side and back
MeshTrianglesPBR mapsNotes
Gary_Head20,048Base color · ORM · Normal58 blend shapes; mouth interior, eyelids
Gary_Hoodie14,358Base color · ORM · NormalHood, pocket, rib cuffs, folds
Gary_Jeans8,926Base color · ORM · NormalDenim twill, stitching, back pockets
Gary_Hands8,628Base color · ORM · NormalNails, knuckles, 30 finger bones
Gary_Hair6,504Base color · ORM · NormalChunky clumps, swept fringe
Gary_Shoes5,704Base color · ORM · NormalSneakers with laces
Gary_Glasses separate3,600Base color · ORM · NormalBound to the head bone
Gary_Teeth · Gary_Tongue3,700Base color · ORM · NormalFollow the jaw blend shapes
Gary_Eye_L · Gary_Eye_R2,432Base color · ORM · NormalRotate with the eye bones
Gary_Drawstrings separate1,200Base color · ORM · NormalMetal aglets
Gary_Cowlick separate844Base color · ORM · NormalHead-weighted
Gary_Lenses300Transparent PBRGlass
Total76,244Cap: about 100,000 · Height 1.85 m · Feet at 0 m

Deliverables

Files and how they were checked

The full files are delivered directly, not through this page.

FileSizeWhat it's forCheck
Gary.glb29.6 MBMain file for Three.jsglTF Validator 0 errors · 0 warnings
Gary.web.glb2.1 MBFast-loading web copy (meshopt + WebP)glTF Validator 0 errors
Gary.fbx25.7 MBAlternative formatRe-import: 69 bones · 58 shapes · clip
Gary.blend36.9 MBEditable source, textures packedQA script 23 / 23 passed
Gary_GlanceSmirk.mp41080×1920Animation test (rendered)H.264 · 24 fps · 6 s
Gary_GlanceSmirk_Toon.mp41080×1920Animation test (cartoon look)H.264 · 24 fps · 6 s
Docs—Blend-shape list, skeleton map, Three.js usage guideincluded

This build is my own interpretation of Gary. Once the reference images and videos arrive, the proportions, colors, hair and glasses will be matched to them. The rig, blend shapes and pipeline carry over unchanged.