A computer-implemented method for estimating a size of a foot, the computer-implemented method being performed in connection with a computer system comprising a central processing unit, a plurality of sensors and a memory, the computer-implemented method comprising: receiving foot measurement data from the plurality of sensors; using the received foot measurement data to build a 3D model of the foot; receiving a 3D model of a shoe; performing a positive or negative match of the 3D model of the foot with the 3D model of a shoe; and providing a result of the positive or negative match to a user.