bike design

Drawn in SolidWorks and rendereded in SolidWorks Visualize

concept / 2020

I’m currently working in CAD to create conceptual bicycle designs. I’m using SolidWorks and Rhino surfacing tools to create organic and aerodynamic shapes typical of modern carbon fiber bicycle frames. This project will challenge my skills with these two programs and further develop my understanding of their strengths, weaknesses, and methods for using both tools to create complete products.

My plan is to create the following:

  1. Complete bike in SolidWorks

    • Design bike frame

    • Design mechanical bike components

    • Build configurations for desired frame sizes

  2. Bike frame in Rhino

    • Import frame to SolidWorks to build into complete bike using components designed in SolidWorks

  3. Frame generating algorithm in Grasshopper

    • Bake and refine in Rhino

    • Import frame(s) to SolidWorks to build into complete bike using components designed in SolidWorks


1. SolidWorks

Drawn in SolidWorks and rendereded in SolidWorks Visualize

Drawn in SolidWorks and rendereded in SolidWorks Visualize

What’s Next?

  1. Add handlebars and stem

  2. Design seatpost and seat

  3. Create core drivetrain components (cassette, chainrings, cranks, pedals, and chain)

  4. Refine wheels (add nipples, tire tread)

  5. Design brake components (calipers, rotors)

  6. Create derailleurs

  7. Add cabling

  8. Refine frame with more fluid transitions between tubes and surfaces


2. rhino

(under construction)


3. grasshopper

GH Definition Frame 7-20 complete.JPG

Grasshopper is a plugin for Rhino that allows the user to create parametric algorithms (definitions) capable of creating complex and easily adjustable geometry. My goal for this project is to create an algorithm that can design a bike frame based off standard bike frame geometries (top tube length, head tube length, seat tube angle…). The algorithm allows me to make subtle adjustments to these base geometry values and gives me control to manipulate many other elements of the design. For example, I can control how round or square the tubes are, how sharp or fluid the joints are, and how much curve the tubes have along their lengths. The algorithm can then duplicate the desired design elements across all necessary frame sizes instantly. Since a small frame isn’t simply a scaled down version of a larger frame, the use of the algorithm determines how each dimension is adjusted and how each dimension effects the overall geometry. The ability to rapidly generate and iterate frame designs could allow a bike design engineer to test and optimize concepts for structural and aerodynamic performance, manufacturability, and aesthetics.

I’ve created a simplified version of the algorithm that you can test. Click the “sample algorithm” button below to create your own custom bike frame.

Road and Mountain bike frames generated with minimal adjustments to algorithm inputs.

Road and Mountain bike frames generated with minimal adjustments to algorithm inputs.

Road frames sizes 54, 56, 58, and 61

Road frames sizes 54, 56, 58, and 61

Complete Grasshopper definition

Complete Grasshopper definition

The definition has three main sections. The first section framed with a dotted red line inputs the critical frame geometry values. This is where all specific lengths and angles can be input for dimensions like wheel base, top tube, and seat tube angle. These numbers are then evaluated and distributed into the second section (outlined in dotted blue). This section controls the shapes of each tube. An individual tube can be perfectly round, square, or a composite contour. The final section framed in purple, removes overlap between the tubes, creates continuous seams at the joints, and combines all the tubes into a single frame.

To show the definition in more detail, I’ve zoomed in on the 4 areas outlined in orange (Click thumbnails below to expand).

This first section takes 15 different input values for the base geometry of the frame. These geometries can be input as lists (as shown to left) or controlled independently. For this project, I started with the geometries from my personal Specialized Tarmac road bike. The values are then divided into different streams where various calculations are made to determine any needed geometric information (angles, relative distances, direction vectors…).

Input Geometry Sketch.JPG

In this second section, the definition is providing contour to the head tube. I didn’t want the head tube to be a simple cylinder. Instead, I created a set of curves that can be controlled to give the head tube shape. The sliders on the bottom portion of the page determine how much the head tube contours outward.

2. Create curves to define head tube shape

2. Create curves to define head tube shape

3. Create profiles for down tube

3. Create profiles for down tube

In the third portion of the definition, we create a simple circle to loft into the down tube. The circle is then divided into 9 points. I have then chosen 6 points to adjust manually. These points are responsible for determining how much the tube shape differs from the original circular profile. By adjusting these six sliders, the tube can be circular, triangular, or square with rounded corners. Each major tube has this set of controls at each end of the tube. This allows further control of how the tube transitions from end to end.

The final section creates transitions between open tube sections and merges the tubes into one complete bike frame.

4. Generate contours to blend top tube, down tube, and head tube together into complete frame.

4. Generate contours to blend top tube, down tube, and head tube together into complete frame.

Rhino GH Frame Blue 7-20.JPG

While this approach has limitations, it can be a powerful tool for exploring new designs quickly. Ultimately, I would use this tool to analyze and produce near-final geometry. I would then bake in Rhino and add additional surfacing details and features to add interest to the frame.

Next Steps:

  1. Refine the rear triangle. Explore additional methods for creating the seat stays and chain stays.

  2. Finish details at the ends of open tubes to replicate actual carbon fiber frame.

  3. Import to SolidWorks to assemble with mechanical components