## 3 Method  
Let us assume that there are two 3D objects: \(O_{1}\) and \(O_{2}\). Each of these objects is represented by its triangular mesh. It is necessary to define whether these two objects are identical (up to some calculation error). If they are similar (this analysis considers the surface and the internal architecture), find the transformation matrix (rotation and translation) to map them. Let us reiterate that the problem to be solved is not to identify if the class of the objects is the same (for example, for two gears with different numbers of teeth) but to check whether either two objects could be transformed to each other by a rigid transformation. Initially, let us describe an overview of an identification algorithm, and every step will be explained in detail in the following sections. It is necessary to compare two 3D objects, \(O_{1}\) and \(O_{2}\), for identity. Each object's model mesh is watertight and has consistent winding and outward-facing normal vectors (hereafter, let us define this set of features as \"correct geometry\"). A corresponding 3D shortest distance function (SDF) is calculated for each object. The SDF value at the 3D point is the shortest distance from this point to the object's surface. Spherical harmonic coefficients represent the calculated SDF function. Using expansions of degree \(L\), we partially reconstruct the SDF functions related to objects \(O_{1}\) and \(O_{2}\). First, the energies of the corresponding degrees of spherical harmonic coefficients are compared to analyze the objects' similarity. Then, extrema amplification is utilized, and next, an attempt to align the most distinguishable extrema of both partial reconstructions is conducted. If the objects match with the acceptable quality, the matrix of the object mapping is calculated. **Preprocessing. ** For object \(O_{1}\), let us denote its surface as \(S\). The surface (the object's mesh) is assumed to have the correct geometry. * Shift the origin of the system of coordinates to the centroid (the center of mass of the object's surface). * Scale \(O_{1}\) so that none of its vertices are outside the sphere of radius sixteen, and at least one vertex is on the sphere surface. Let the coefficient of scaling be \(f_{\text{scale}}\). * Place \(n\) concentric spheres (shells) centered at the origin with radii \(R_{1},\,\dots,\,R_{n}\) (we use \(n=9\) and \(i=1,\,3,\dots,\,17\)). These spheres cut \(O_{1}\). * On the \(i\)-th sphere, \(i=1,\dots,n\), a continuous function \(f^{(i)}(\theta,\varphi)\) is defined, and \(\theta,\varphi\) are spherical coordinates. SDF \(f^{(i)}(\theta,\varphi)\) is the shortest distance from the point \((\theta,\varphi)\) to the surface \(S\) (see the Section 3.1 and [48]). * At each sphere, a grid of points \(\left(\theta_{j},\varphi_{j}\right)\), \(j=1,\dots,k\), is defined. For this grid, we can use, for example, a \(t\)-design [49], Fliege-Maier [50], or an icosphere [51] set of points (see Section 3.2). These points are employed for low-error integration of spherical functions. * At each sphere, using \(f^{(i)}\left(\theta_{j},\varphi_{j}\right)\), let us calculate the spherical harmonic coefficients (or Fourier-Legendre coefficients) \(f^{(i)}_{lm}\), \(l=0,\,1,\,2,\,\dots,-l\leq m\leq l\) (see the definition (3) below). Let us calculate spherical coefficients up to degree \(l\leq 10\). * At each \(i\)-th sphere, let us partially reconstruct the function \(\overset{\sim(i)}{f}\left(\theta_{j},\varphi_{j}\right)\) using these coefficients \(f^{(i)}_{lm}\) for \(l=1,\dots,10\) degrees and the icosphere grid \(\left(\theta_{j},\varphi_{j}\right)\) (see the Section 3.6).