## 2 Natural Interactions
### Catmull-Clark Refinement Algorithm Adapted for Triangular Meshes  
The subdivision surface approach is a technique in Computer-Aided Design used to create smooth, high-resolution surfaces by iteratively refining a coarse polygonal mesh. At each subdivision step, new vertices are introduced, and existing vertices are repositioned according to specific rules to smooth out sharp edges and corners. This process produces a limit surface that appears smooth and organic, while the initial mesh provides control over the surface's general shape. During the last decades, several refinement algorithms have been proposed. The most commonly used are the Catmull-Clark [42], Doo-Sabin [43], and Loop [44] algorithms. For the present study, the Catmull-Clark algorithm is chosen due to its flexibility, generalisation, and straightforward implementation. The Catmull-Clark algorithm is designed to work with polygonal meshes composed mainly of quadrilaterals, and it generates limited surfaces with \(G^{2}\) continuity everywhere and \(G^{1}\) at extraordinary vertices. The algorithm operates iteratively, with each iteration refining the surface by adding new vertices based on the positions of existing ones, as well as the surrounding edges and faces. The number of iterations directly influences the smoothness and detail of the resulting surface: as the iterations increase, the surface converges towards a smoother approximation of the desired geometry (Figure 3a). According to the original algorithm, here summarised for the sake of completeness, at each iteration, the previous mesh is subdivided by calculating the positions of the new vertices based on the vertices of the previous mesh. For each face of the mesh, its midpoint (Face Point) \(\mathbf{F_{P}}\) is calculated as the average of the coordinates of the vertices that form  
Figure 3: (a) Catmull–Clark iteration levels in the recursive procedure, (b) an iteration of the Catmull–Clark refinement algorithm. the face. For each edge of the mesh, the Edge Point \(\mathbf{E_{P}}\) is calculated as the average of the coordinates of the two vertices \(\mathbf{V_{1}}\) and \(\mathbf{V_{2}}\) that define it, along with the two Face Points \(\mathbf{F_{P1}}\) and \(\mathbf{F_{P2}}\) of the adjacent faces:  
\[\mathbf{E_{P}}=\frac{1}{4}(\mathbf{V_{1}}+\mathbf{V_{2}}+\mathbf{F_{P1}}+ \mathbf{F_{P2}}) \tag{4}\]  
For each edge, the midpoint \(\mathbf{E}\) is calculated as the average of the adjacent vertices. For each generic vertex \(\mathbf{V}\) of the previous mesh, the average \(\mathbf{E_{M}}\) of the \(m\) midpoints of the adjacent edges is calculated as follows:  
\[\mathbf{E_{M}}=\frac{1}{m}\sum_{i=0}^{m}\mathbf{E}_{i} \tag{5}\]  
and the average \(\mathbf{F_{PM}}\) of the \(m\) Face Points \(\mathbf{F_{P}}\) adjacent to the vertex is calculated as follows:  
\[\mathbf{F_{PM}}=\frac{1}{m}\sum_{i=0}^{m}\mathbf{F_{P}}_{i} \tag{6}\]  
For each vertex of the previous mesh, its new position \(\mathbf{V_{P}}\) is calculated as the weighted average of the corresponding \(\mathbf{F_{PM}}\), \(\mathbf{E_{M}}\) and the vertex \(\mathbf{V}\) itself:  
\[\mathbf{V_{P}}=\frac{1}{m}(\mathbf{F_{P}}+2\cdot\mathbf{E_{M}}+(m-3)\cdot \mathbf{V}) \tag{7}\]  
The new mesh is generated by connecting the Face Points with the Edge Points and linking the New Vertex Points to the Edge Points. Figure 3b shows one iteration level, highlighting the previous mesh, the Face Points, the Edge Points, the new positions of the Vertex Points, and the connections between them that generate the new mesh. The Catmull-Clark algorithm is optimised for polygonal meshes composed mainly of quadrilaterals, but it has to be adapted to deal with triangular meshes to achieve general and robust results. In fact, in VR and AR applications, triangular meshes are preferred for real-time rendering efficiency [45]. Triangular meshes offer superior computational performance and are best suited for implementing models that need to be able to be viewed on standalone devices with limited hardware resources.