Bike Frame Builder

A Grasshopper script which generates bicycle frame-set geometry based on input variables for the home builder.

Public Chat
Similar projects worth following
This script is intended to be used to model foam-core bicycle frames accounting for all primary variables and constraints to only allow for practical angles and lengths to allow for an easier interface. The Grasshopper script runs in Rhino3d 6+ Think of this as a virtual jig, you can then use the files as a reference to construct a foam model for wrapping in a composite matrix. The first foam models are being constructed live via Twitch! Please see my Instagram for updates on times and dates.

V15 Script:

Output (after further design work):

Living spreadsheet of all supplies and expenses: HERE

Metric based frame building script.

gh - 81.06 kB - 04/19/2020 at 01:38


Inch based frame builder with enhanced export options.

gh - 78.40 kB - 04/17/2020 at 20:54


Inch based frame builder with foam strip insertion and advanced variables.

gh - 76.24 kB - 03/31/2020 at 20:50


Richard P. - Talbot Designing and Building Your Own Frameset_ An Illustrated Guide for the Amateur Bicycle

For reference.

x-zip-compressed - 41.04 MB - 03/30/2020 at 14:42


Script generates an Ibis Hakka MX

gh - 23.38 kB - 03/30/2020 at 14:30


View all 8 files

  • Third, fourth and fifth build session.

    David Troetschel04/17/2020 at 20:47 0 comments

    I did the third and fourth build sessions live on Twitch again and then also uploaded them to YouTube.



    The spackle didn't seem to dry, even overnight. Granted, it was super cold... Something like 30-35F overnight. I ended up using wood glue in the fifth session, I didn't bother recording me re-gluing joints and the work-session was only about ten minutes.


    I don't know if the spackle didn't dry because of the temperature, lack of air to the joint or some other factor. I'll try doing the fillets and surface finish with it again when its warmer to troubleshoot. In the meantime I'll try to get some Super77 or contact glue for the next frame. Due to measurement errors parts of the frame aren't lining up as simulated so I've been winging some joints. After I get the frame assembled I'll remeasure and check how far out of true we are. This has been an interesting learning experience but I'm excited to give this another shot already.


    That being said, I'm going to keep making foam frames and refining the script and researching everything needed to continue this project BUT it's becoming increasingly obvious that this is just going to take time. Part of this is financial, right now is a SUPER bad time to spend a third of my money. I still have work but it's definitely slowing down and I'm starting to have to find work further and further afield. If you really want to help out and have a project and money burning a hole in your pocket please hire me through Patreon!

    I've opened up my expenses for this project so you can see all the supplies I'm buying and when, it'll be linked HERE and in the supplies section of this page. Overall though, I'm putting purchases on hold and will just focus on doing research, mold construction and further preparation. To summarize this decision; it'll cost about the same to make one frame as three from a unit cost perspective, but to make that three requires an ever-greater initial investment. I'm going to want these supplies for other projects too so I might as well go big or go home. Chances are I'm going to be dropping 1.5k+ over the space of two weeks when I pull the trigger.

    Next up; I'm going to finish assembling this test frame to get an idea of overall dimensions and the true extent of errors I made and simultaneously revamp the latest script for metric output, it'll be easier to work with and will give me some opportunities to further specify the boundary design conditions for ease of use.

  • V15 live build sessions on twitch!

    David Troetschel04/16/2020 at 13:55 1 comment

    Okay; the first frame is being built. I finished the front triangle yesterday and plan on completing the rear today. The design is based on the Surly ECR ( It took me a while to get moving on Twitch but the end result looks pretty good in my opinion. I'll be advertising live stream times on my Instagram page:

    Progress so far:

    The first session is broken into two parts, hosted on Youtube this time around since I didn't know you had to tell Twitch to save past sessions prior.

    Part one:

    Part two: 


    Okay; so some lessons learned so far. First of all, I need a second monitor for my shop and some other furniture to make my life easier. Second, I need to make a metric version of the script. I hate working in inches and I made a ton of errors because of it already... I'm going to finish this frame as practice and then revamp the script likely tomorrow or this weekend. I might live stream the process, why the hell not. It could also serve as a walk-through of the script.

    I need to start buying materials; I've been shopping for a while but it's time to commit. I need the same materials for other projects anyways and who knows when shipping services and the companies I rely on will shut down, I've already seen supply chain breakdowns for another one of my projects. I plan on making a live, public spreadsheet of all expenses/purchases so that people have a solid understanding of the real cost of a project like this. Keep in mind that my goal is to make MANY, not just one frame as an art project.

    I started a Patreon this week as well to do two primary things; start sharing my work process, educational content production and also to make it easier for people to hire me to do short to long term projects without the typical challenges of finding me in the first place and then navigating contracts and such. I can be hired from a weekly basis (seven hours) to a monthly retainer of up to fifty-six hours a month. I'm doing this through patreon because it seems more appropriate for long term (unknown timeline) projects than say, Fiverr. If you want to check it out or hire me go to:

  • V12 Script

    David Troetschel03/31/2020 at 21:03 0 comments

    V12 has many advanced inputs to allow for seat tube inserts, head tube insert, frame components based on strip input, manual overrides for tube position independent of key component locations and more. Next up is bottom bracket input, chain locator, axles, custom front fork, dropout importer and more.

  • V8 Frame Builder

    David Troetschel03/30/2020 at 14:29 0 comments

    The new frame builder relies more on stack and reach for the front triangle. It still doesn't directly reference the top tube, that might be the next version. It seems like this outputs the correct geometry though, the only thing I'm not sure about is the front fork length and angle in relation to the head tube.

    Some examples; first an Ibis DV9:

    Then an Ibis Hakka MX; it doesn't look quite right...:

    And an OPEN One+


    Hopefully these examples make it more clear that the displayed head tubes are more of a suggestion for placement. The key information is locating positions and key components.

    Since the tube profiles can be changed, additional guide curves plotted, etc. This makes a good virtual design tool for then dissecting and assembling out of foam. I'm going to average a few more designs and then start on start on actual design for myself to produce in foam. I'm waiting on some bandsaw parts on the physical side.

  • Frame Script

    David Troetschel03/29/2020 at 22:43 0 comments

    I built the frame script from the cranks out; there are several systems which are used to communicate frame dimensions so this is just one approach. As of V6 you can expect a considerable amount of trial and error but the key component locations are modeled.

    Imputing a sample table like:

    You get a result of:

    Forget the extra tubes, think of them as boundaries.

    There is a pretty big error right now, this system relies on fork length to drive the top tube length. But that's the status of the builder so far, working on V7 now.

  • Research and Development Details

    David Troetschel03/29/2020 at 22:15 0 comments

    The primary dimensions needed are referenced below:

    Fork Rake Graph:

    Anatomical Considerations:

    Anatomical Correlations:

    Information from: Designing and Building Your Own Frameset by; Richard P. Talbot

View all 6 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates