The Fusion Forecast: Branching & Merging
Two weeks ago, I started a series that forecasts functionality coming into Fusion 360. What? A CAD company is disclosing it’s secret sauce before it gets implemented? Yes! As mentioned in our previous Fusion Forecast, today I will nerd out on the new Branching & Merging functionality that will soon be making its way into Fusion 360. Branching & Merging will allow a team of engineers to explore multiple concepts of the same design in parallel, isolated branches. As concepts are iterated, the best design can be merged back into the final project. This process is not limited to just Fusion 360 designs. To me that description sounds a little academic, so let’s dig into the functionality and how you and your team will be able to explore design ideas without the limitation of traditional CAD file management nightmares.
Branching & Merging will bring Git like functionality to Fusion 360 projects. This differs drastically from the check in/check out process seen in today’s PDM solutions. GitHub has mastered the art of Git for software development. Unfortunately, I cannot code my way out of a paper bag, so this new idea of Branching & Merging is unchartered waters for me. I am after all a Mechanical Engineer using a Mechanical Engineering tool. That said, after giving Branching & Merging the ol’ college try I found three major workflows that will change the engineering design process.
First, let’s flashback to the traditional CAD days. In order to explore different concepts for an assembly, I would create a Pack & Go of the assembly to my local drive to make sure I didn’t blow up the production assembly. I did NOT want to be the one to explain to the boss why our assembly was broken. Next, I would repeat this process for as many design concepts I wanted to explore. Not only did this cause a file management nightmare, but it always created some interesting workflows to get my changes back into the production assembly. Especially, if I had to battle over checking out an assembly while using a PDM system. After testing out some ideas, I would grab the component that I changed on my local drive and try to use “replace components” to shove it back into the production assembly while praying to the CAD gods that the new component didn’t blow up any mates or constraints. Whether I was working by myself or as a team, we would use this workflow to explore multiple concepts simultaneously.
Concept Exploration (Sandboxing)
Branching & Merging takes the headache out of file management issues while creating duplicate assemblies across all file locations. More importantly, it keeps me from saying ten Hail Mary’s when merging changes of various files back into the production assembly. When a branch is created this creates a sandbox of your entire assembly where components can be added, deleted, or changed without harming the production assembly. There is no limit to how many branches that can be created. Better yet, I can let a team member create a branch and start iterating on a concept and then I can create a branch off his/her branch. Once our team chooses which concept to run with, we can merge the concept back into the master branch. The branched designs never lose associativity to the production assembly.
After creating several branches to explore different design ideas, I can then chose my favorite. Great! But what do I do with all the other branches that are making my Branching Tree look like Methuselah (5000 year old tree in California)? Good news…I have heard from the development team that hiding branches will come in a later release.
Staging/Development workflows (Concurrent Design)
This next workflow will change the way I design a product in Fusion 360. This workflow has three main branches: a master, staging, and development branch.
The development branch (yellow) will be where all of my concept exploration will take place. Anyone in the project can create a branch off the development branch (blue & purple) to test out various ideas. Once an idea is approved, the branch can be merged back into the development branch. This development branch will allow my design team to explore different ideas without being hindered by who has read/write access to the different files in the assembly. Most of the branching will be initiated from the development branch. In contrast, the staging branch (red) will be used as a final check to ensure everything works in my assembly, prior to moving it to the master branch (green). My production ready CAD files and manufacturing drawings will live in the master branch.
Crowdsourced Mechanical Design
Let’s step back and look at an easy example already in the world today: Wikipedia. As we all know, Wikipedia enables experts to contribute their knowledge to a particular topic. Wikipedia topics are similar to branches. When someone accepts the topic as a credible source, Wikipedia will implement that knowledge (or merge it into their site).
Now let’s think about from a product development perspective. For example, Enabling the Future is group of volunteers developing a low cost solution for prosthetic hands. Their design team is spread out across the world and they collaborate on designs using Fusion 360. With Branching and Merging, an expert working on the hinge for the knuckle can create a branch and start working on the knuckle while another member creates a branch to work on the gripping mechanism. Once the design is complete and approved, they can merge them back into the master branch. This will allow experts in different parts of the design process to work simultaneously. Folks, let me be the first to say…I predict Branching & Merging will create a crowdsourced model for engineering in the future.
There were two things that immediately jumped out at me while playing with Branching & Merging. First, the entire project (all folders and designs) is branched and merged. This makes sense in the long run, but it means that I will manage my projects better: One Product for One Project. This concept had me a little baffled at first, but then I realized not just Fusion 360 files participate in Branching & Merging. Any file (Illustrator, PDFs, SolidWorks, etc.) stored in the project can use the advantages of Branching & Merging. Second, when merging two branches the merge occurs at the Design Level. A decision has to be made between two design concepts. Ultimately, Branching & Merging will work better when using distributed design (external references).
Last but certainly not least, the Branching & Merging user interface is awesome. Even a noob to Git technology like me figured it out. I’m extremely excited the Fusion 360 development team has been working on Branching & Merging and I’m already trying to think of other ways to use this functionality. After all folks, collaboration is about the team making decisions and having the tools to do that quickly and easily.