A method comprises obtaining reference data about a 3D calibration object, the reference data comprising known coordinates for a plurality of points on the object, and obtaining measurement data comprising measurements for the plurality of points on the object, the measurement data having been generated based on scanning of the object by an uncalibrated intraoral scanner. The method comprises comparing the measurement data to the reference data to determine differences therebetween and applying the determined differences between the measurement data and the reference data for the plurality of points to a function to generate a compensation model that compensates for one or more inaccuracies of the intraoral scanner. The compensation model is then stored, wherein the compensation model causes the intraoral scanner to be a calibrated intraoral scanner and is usable to correct measurement errors of the intraoral scanner caused by the one or more inaccuracies of the intraoral scanner.