A computer-implemented method for determining reflectional symmetry of digital 2D or 3D geometric objects stored in a computer memory, which may also contain holes, wherein the method comprises the following steps: a) reading a boundary of the geometric object, b) determining a bounding rectangle aligned with x-axis and y-axis for the 2D geometric object, or a bounding box aligned with x-axis, y-axis, and z-axis for the 3D geometric object according to the object's boundary data obtained in the step a), c) dividing the bounding rectangle or bounding box acquired in step b) into cells of equal size appropriately by a heuristic function or by a user-defined number of cells, d) rasterization of the boundary of the geometric object by identifying a set of boundary cells through which the boundary of the geometric object passes, e) determining a centroid of the set of boundary cells identified in step d), f) placing an origin of a coordinate system in the centroid determined in step e), g) placing a testing axis or plane of symmetry, preferably parallel to the selected coordinate axis, where in the case of a 3D object, it is recommended that the test plane passes through any pair of coordinate axes, i.e. the candidate planes are XY, or XZ, or YZ, h) dividing the set of boundary cells into two subsets according to the testing axis/plane of symmetry, i) calculation of centroids for both subsets determined in step h), j) testing the centroids of the pair of subsets of boundary cells and their common centroid by comparing perpendicular distances from the former two centroids to the test axis or plane of symmetry determined in step g), by comparing the sum of these two distances and the mutual distance between the two centroids, and by checking the deviation of the common centroid of both subsets from the testing axis or plane of symmetry, all within user-defined or heuristically determined tolerances, k) dividing (113 and 114) recursively pairs of subsets of boundary cells perpendicular to the axis or plane of symmetry, calculating centroids for each pair of subsets obtained by the division, and performing the test from step j) until the division interval is small enough or a non-symmetrical pair of subsets is found, wherein the geometric object is considered symmetrical if the testing of centroids in step j) is successful for all divisions. a) reading a boundary of the geometric object, b) determining a bounding rectangle aligned with x-axis and y-axis for the 2D geometric object, or a bounding box aligned with x-axis, y-axis, and z-axis for the 3D geometric object according to the object's boundary data obtained in the step a), c) dividing the bounding rectangle or bounding box acquired in step b) into cells of equal size appropriately by a heuristic function or by a user-defined number of cells, d) rasterization of the boundary of the geometric object by identifying a set of boundary cells through which the boundary of the geometric object passes, e) determining a centroid of the set of boundary cells identified in step d), f) placing an origin of a coordinate system in the centroid determined in step e), g) placing a testing axis or plane of symmetry, preferably parallel to the selected coordinate axis, where in the case of a 3D object, it is recommended that the test plane passes through any pair of coordinate axes, i.e. the candidate planes are XY, or XZ, or YZ, h) dividing the set of boundary cells into two subsets according to the testing axis/plane of symmetry, i) calculation of centroids for both subsets determined in step h), j) testing the centroids of the pair of subsets of boundary cells and their common centroid by comparing perpendicular distances from the former two centroids to the test axis or plane of symmetry determined in step g), by comparing the sum of these two distances and the mutual distance between the two centroids, and by checking the deviation of the common centroid of both subsets from the testing axis or plane of symmetry, all within user-defined or heuristically determined tolerances, k) dividing (113 and 114) recursively pairs of subsets of boundary cells perpendicular to the axis or plane of symmetry, calculating centroids for each pair of subsets obtained by the division, and performing the test from step j) until the division interval is small enough or a non-symmetrical pair of subsets is found,