Retro CG: Resurrecting the Parke Face: A Study in Manual Topology

Author Niebo Systems Engineering
Date Feb 21, 2026
Topic WebGL / Reconstruction

Trying to recreate the aesthetic of Frederic Parke's 1974 facial animation was an exercise in balancing early computer graphics constraints with modern browser capabilities. What started as a quick experiment turned into a study on how to mimics organic movement with simple math.

Attempt 1: The Procedural Route

My first instinct was to just use the built-in tools to fake the look. I dropped in a standard THREE.PlaneGeometry and wrote a deformation function to "bend" it into a face shape.

The result was kind of unsatisfactory. While it kind of resembled a face, it had no structure. The mesh stretched awkwardly around the nose, the eyes were just indented vertices rather than actual sockets, and the animation looked like a rubber sheet distorting rather than a moving face. I tried tweaking the aspect ratio and adding procedural "cheekbones," but it just looked like a stretched alien face.

Attempt 2: Focusing on Topology

I realized that the essence of the Parke face wasn't in the shader or the low resolution. It was in the specific arrangement of vertices. Parke had hand-measured these points from a real human face. To capture that, I needed to focus on edge flow rather than just geometry shape.

Approximating that gave a better set of 3D data, but I still needed to figure out how to manipulate it in real-time without building a complex rig.

The Hybrid Approach: Blender + WebGL

Ultimately, I tried a hybrid workflow. Instead of trying to build the entire mesh programmatically from scratch I started with an existing low-poly face model, brought it into Blender, manually removed unnecessary geometry, and edited the vertices to match the sparse, angular look of early 70s graphics.

I then exported that edited half-face as a standard .glb, and used Three.js handle loading and rendering.

For the animation, rather than pre-baked shape keys or rigging, I wrote a quick procedural vertex-deformation function in JavaScript. The code measures the model's bounding box on load, finds the "eye" and "mouth" zones, and applies some simple math to pull the vertices around. It allows the face to squint, smile, and look around randomly. It's not a true anatomical rig, but I felt it mimics the uncanny, slightly robotic movement of the 1974 original. That was the aesthetic I was going for.

Refining the Retro Aesthetic

What really made this experiment fun was trying to dial in the details, working between technical accuracy and aesthetics. I tried scaling up the geometry, tweaked the background grey to a specific "film-stock" shade, and brightened the face to a stark off-white.

To ensure the wireframe popped with high-contrast definition, I added a slight emissive glow. Finally, a custom CRT shader with simulated chromatic aberration and scanlines was added to mimic the artifacting of old monitors being filmed by 16mm cameras.

The Takeaway

The final result is a nod to the origins of computer graphics. It was a great chance to play with edge flow and vertex math, and a reminder that sometimes a simpler approach can still yield an interesting aesthetic.

Send Feedback

Suggest features, ask questions, or report bugs.

Message Received

Thanks for helping us improve Niebo Systems.