Algorithm generated custom fit eyewear

Design and implement an algorithm based on grasshopper environment to generate 3D eyewear model from given 3D head scan. Greatly improve opticians’ workflow of providing eyewear customization service. It is a step forward to introduce customized device to more human. The project was inspired by my work in Body Scan Lab in Georgia Tech.

Role: Design Researcher, Developer


  • Online eyeglass shopping cannot provide actural try-on experience.

  • Physical store has limited collection of frame design. It happens a lot that your favourite design does not fit you at all.

  • Customized wearable device modelled based on your 3D head scan leads to a perfect fit. However, It won't fit another person easily.
  • What if you could choose your favorite frame design online, and we will make sure it fits your face accurately?

    This project focus on the wearable glassware industry. The objective of this project is to develop a design tool to automatic fit a person’s face based on an imported scanned head file. The end modified eyewear will retain its original aesthetic frame and customers are able to apply design pattern in the frame.

    Current eyewear brands manufacture eyewear only in a few specific sizes. This results in a large number of people whose facial dimensions fall outside that size range and so are unable to purchase the eyewear they like due to it offering a poor fit. This project aims to parametrically adapt an existing eyewear design to fit the facial dimensions of any person using 3D scanning and 3D modeling software. An equally important aspect of the project is trying to quantify ‘fit’ at different points of contact of the eyewear on the face: to try to quantify what constitutes as tight and loose fit at these points. These values of fit were then incorporated into the parametrically customized model to obtain an eyewear that not only fits onto the face, but also provides the best fit.


    I used python script in grasshopper to achieve this automatic fitting process. After you import your head scan, a 3d printed ready eyeglass model will be generated automatically.

    The pictures on the left is the grasshopper user interface. You can use the slider to play around the eyewear parameters.

    Sliders are the basic UI Components in grasshopper environment. Opticians might need type in parameters themselves as well which is a high bar there to prevent distributing this solution to ordinary users. A more user-frienly interface is needed to make it accessible to customers.

    As a result, A more user-frienly interface is needed to make it accessible to customers.

    Before I started redesigning the interface, I interviewed 10 eyeglass users with strutured questions including ethnographic data, experience of buying eyeglass online and in-store, experience of wearing eyewear products?