Morphic / Lore One

A digital design and manufacturing process for producing fully custom 3d-printed cycling shoes developed using Rhino Grasshopper and Python. Producing a fully custom 3d printed shoe for each customer creates enormous design, production, and logistical challenges, and is still at the forefront of what's possible with today's tech.

In the world of competitive cycling, however, such extreme customization opens up a huge opportunity in gained performance. Traditional shoe design relies on elastic materials to give the shoe enough give to fit a variety of feet. However, this elasticity causes a high degree of power lost between a cyclist's foot and the pedal.

By adapting the shoe's shape to the precise geometry of each unique foot, we are able to use more rigid materials that lead directly to higher power transfer into each pedal stroke. In a sport where thousands are spent for tiny improvements, this process provides a new and substantial advantage to athletes.

Made to fit

To enable this custom design and manufacturing process, our team developed a digital workflow to automatically create a unique digital version of the Lore One shoe custom fit to each customer's feet.

The process starts with capturing an accurate 3d scan of each foot. This can be accomplished at home by the customer using a proprietary app. The scan is sent to our system where it is run through a series of algorithms to clean up and normalize the scan data and produce a shrink-wrapped SubD surface as a result. This rectified scan surface becomes the input that drives the rest of the process.

Lore One

Latest consumer smartphone technology allows easy capturing of 3d scans at home. A proprietary app helps users through the process and ensures that the capture is as high quality as possible

Step 1: Create template shells

Based on a set of model foot scans, the primary shoe form is modelled as a series of shells using Rhino's SubD surface components. The SubD geometry represents the surface through a series of vertices with connected edges with controllable curvature. This geometry provided a good way to design, optimize, and visualize the complex curved surface of the shoe, and became the foundation of the computational algorithms as well. To control how the geometry of the template is adapted to each customer scan, the faces and vertices of the SubD shells can be embedded with parameters which tell the adjustment algorithms how each part of the shell should be treated.

Lore One

The shell templates define the general design of the shoe, as well as the physical constraints that control how the form is able to adapt to new scan geometry

Step 2: Marker-based global morph

The first stage of the digital fitting process is identifying a set of common markers on the new customer's scan. Based on these markers, all the CAD geometry that defines the shoe is transformed to fit the new scan. This is a rough fitting process that does 90% of the customization work, with remaining fine-tuning handled in the next stage.

Lore One

Diagram showing position of anatomical markers which are automatically placed on each new customer scan

Lore One

Animation of global morph process of all CAD geometry responsible for generating the base shoe form between two sets of markers

Step 3: Vertex-based local fine tuning

The final stage of the digital custom-fitting processes is done at the level of the individual vertices of the SubD surfaces that define the shoe's shell. A custom Python Class adds additional logic to RhinoCommon's SubD surface type, enabling a variety of useful functions such as shrinkwrapping (moving each vertex as close as possible to the surface without breaking defined clearances) and smoothing.

These functions were run on various parts of the shells based on parameters programmed into the SubD geometry in Rhino. The functions and parameters were developed with the design and engineering teams to achieve the final target fit across a range of test users.

Lore One

Animation of vertex-based fine tuning process including applying the shrink-wrap function to fit the shoe's dorsal area to the customer's unique foot shape

Lore One

Side by side of SubD template CAD model in Rhino and Python-based controllable shell model running in Grasshopper and using custom computational logic developed in Python

Lore One

Closeup of digital shell model encoded with parameters which control the custom-fitting functions for different areas of the shoe