A system comprising: a processor for executing computer-executable instructions; one or more cameras and/or image scanners; a computer-readable storage media having stored thereon computer-executable instructions for: receiving prescription data of a patient for corrective lenses; receiving image data associated with a face of the patient from said one or more cameras and/or image scanners; determining lens attributes for the patient based upon the prescription data of the patient; determining facial attributes from the image data of the patient; and determining a subset of frames of a plurality of frames based on the determined lens attributes, the lens attributes including a lens thickness and the first subset of frames only comprising frames capable of supporting the specified lens thickness, applying the determined facial attributes to reduce the subset of frames to at least one recommended frame which satisfies the determined lens attributes and the determined facial attributes and having frame dimensions satisfying a particular range, wherein, if no frames match all the determined lens attributes, the frames that satisfy the most lens attributes are selected. a processor for executing computer-executable instructions; one or more cameras and/or image scanners; a computer-readable storage media having stored thereon computer-executable instructions for: receiving prescription data of a patient for corrective lenses; receiving image data associated with a face of the patient from said one or more cameras and/or image scanners; determining lens attributes for the patient based upon the prescription data of the patient; determining facial attributes from the image data of the patient; and determining a subset of frames of a plurality of frames based on the determined lens attributes, the lens attributes including a lens thickness and the first subset of frames only comprising frames capable of supporting the specified lens thickness, applying the determined facial attributes to reduce the subset of frames to at least one recommended frame which satisfies the determined lens attributes and the determined facial attributes and having frame dimensions satisfying a particular range, wherein, if no frames match all the determined lens attributes, the frames that satisfy the most lens attributes are selected. receiving prescription data of a patient for corrective lenses; receiving image data associated with a face of the patient from said one or more cameras and/or image scanners; determining lens attributes for the patient based upon the prescription data of the patient; determining facial attributes from the image data of the patient; and determining a subset of frames of a plurality of frames based on the determined lens attributes, the lens attributes including a lens thickness and the first subset of frames only comprising frames capable of supporting the specified lens thickness, applying the determined facial attributes to reduce the subset of frames to at least one recommended frame which satisfies the determined lens attributes and the determined facial attributes and having frame dimensions satisfying a particular range, wherein, if no frames match all the determined lens attributes, the frames that satisfy the most lens attributes are selected.