2026
2025
2024
2023
Loading blog post...
Written by Andre Molnar 2026-03-20
This is an experiment in simple rigging of triangulated meshes with constraints between control points. The constraints between control points are independents from the constraints within each mesh.
In the scene we procedurally generated meshes with a simple checkerboard shader for visual feedback on deformation. There are 3 control points. The range of motion between point 0 and 1 is larger than the range of motion between points 1 and 2.
This is a proof of concept using vanilla JS and WebGL to achieve the results building on learnings from an earlier experiment in GPU constraint solving.
This scene uses two shader programs (four shader stages total), each handling a different rendering problem: Internal mesh constraints now run through a multipass WebGPU compute solver by default, with no CPU fallback safety net.
mesh-constraint-compute-solver.js)
Vertex shader (MESH_VERTEX_SHADER)
Fragment shader (MESH_FRAGMENT_SHADER)
Vertex shader (WIREFRAME_VERTEX_SHADER)
Fragment shader (WIREFRAME_FRAGMENT_SHADER)