Glad you like it! We used Three.js (
https://threejs.org) to handle rendering the icosahedron itself. Three.js actually includes an icosahedron as one of its built-in primitives, however we also wanted to add some subtle details to the model such as rounded edges. So, we created a rounded version in Cinema 4D, and then rendered both that model as well as an invisible copy of the object using the Three.js primitive. The primitive gives us easy access to things like the vertex coordinates, that are then used to position the labels, which are plain DIVs and not rendered with WebGL.