I love CAD! Okay, a few other things too, but ever since I first saw a wire-frame cube rotating on an 8-bit micro computer, I was hooked. And if you’re wondering, that was 1984.
A lot has changed since then: 9 summer Olympics, 6 US presidents and 3 Popes. So what has changed with CAD? It turns out that it’s either a lot or a little depending on where you look.
In aggregate, it doesn’t matter whether you are using SOLIDWORKS, Inventor, Creo, NX or Catia – fundamentally you are using installed software on a Windows workstation and generating files. If you have been around Onshape for more than 5 minutes, you will have noticed that our marketing materials discuss these first because they are strong differentiators. We also talk a lot about platform shifts, how whenever a new technology platform comes along, new business models and new market leaders evolve. Let’s not forget that when SOLIDWORKS first appeared, NT and Win95 were state-of-the-art and for the first time, professional users didn't have to have a Unix workstation and $40K worth of software to engage in “professional” CAD. That technology shift and the new business model of Value-Added Resellers (VARs) started SOLIDWORKS down a path that would later establish it as the new market leader.
So, through one lens, SOLIDWORKS took advantage of the platform shift and rose to prominence. This was good for a lot of people, but let’s not forget this was the era before Salesforce, Boxx, Workday, HubSpot and Facebook. SO what has changed since? Well, the platform of course: Cloud/Web/Mobile to be specific. I know you’ve seen our messaging elsewhere, but it’s worth repeating that the world is moving towards file-less and SaaS (software as a service) and of course, subscription-only pricing models. And on that technology wave, new leaders will again appear. We believe Onshape will take a leading role in this changing of the guard, but we also know that we have to bring even more value than simply riding this wave.
This is where I flip the argument and suggest that a lot of things still haven’t changed.
When we built Onshape from scratch, we intentionally stuck with the “parametric feature-based solid modeling” paradigm because there are millions of people already familiar with the workflow (plane-sketch-feature). We also wanted to be binarily compatible with the largest number of potential customers. To that end, Onshape chose the industry-leading geometry engine, Parasolid, the same geometry engine that powers SOLIDWORKS, NX and a number of other products. If your existing CAD data is in a system that uses the same geometry engine as Onshape, then one of the things you won’t have to worry about is whether your part and assembly migration will be fidelic. Now, this isn’t an ad for any particular geometry engine, just a demonstration that just moving to the cloud doesn’t change anything. But it should.
In fact, the cloud is where Onshape really starts to shine as an example of a technology leader taking advantage of a platform shift. The title of this blog asks whether parallelization has finally reached CAD. I’ll save you the suspense: The answer is a resounding yes. Let’s explore why.
“On the cloud,” Onshape constantly manages both the current workload as well as anticipated peaks (people starting their day in one geographic region and decay at the end of another). This ability to monitor, predict and elastically expand and contract resources ensures that “sufficient resources” are always available for our users. It's worth a quick reminder here that there is no one-to-one correlation between any one “instance” of anything, or any specific piece of hardware and any one user – we are dynamically adding and removing resources to form a pool of geometry engines and other servers. Basically, this means that “we have as many geometry engines as we desire at any given time.” Well this is a good start.
Let's move on to import and export. Anyone who has used traditional file-based CAD systems knows that once you start an import, it’s time to do something non-CAD related as this likely will take a while. But it doesn’t need to be that way. In Onshape, the import or export process just runs as another service and you carry on – even in the same Document! This takes some getting used to because it’s just so refreshingly different.
What about collaboration? Glad you asked. Collaboration (more than one person in the same Document at the same time) is a truly parallel task with each person utilizing Onshape independently (each person, for instance, has their own undo stack). And at the same time, each person is simultaneously using those parts to build assemblies. What’s especially valuable for teams is that any change to the 3D model made by anyone can be instantly seen by everyone.
There is also some very clever regeneration parallelization going on. Imagine a part from Part Studio 1 that is “derived” into multiple other Part Studios, and modifications are then built on top of those “derives.” What happens in a traditional file-based CAD system if a change is made to the base part? File-based CAD will use one geometry engine to serially update each “derived” part (and any associated modelling operations). In Onshape, each Part Studio can have its own geometry engine (yet another reason to have as few parts as possible in each Part Studio) and each is updated in parallel – Wow!
Let’s go the other way, thinking about how a part used in multiple assemblies is updated. How do you update all the assemblies that references it? I’ll spare you the comparison and just say that each assembly is updated in parallel – Wow!
Want more? How about generating section views in a Drawing? Traditionally, sectioning an assembly in a drawing view is a very expensive operation because each part must be duplicated (or at least a body generated) and then “cut.” A single modeling engine would normally be assigned to all the parts in aggregate and when they were all done, the drawing view process can start. Onshape is different – in this implementation, each Part Studio is assigned its own geometry engine and the cuts are processed in parallel. When all the “cutting” is completed, the results are combined and the drawing view creation starts. Is this faster? Oh, yes! As the TV commercials like to say, “individual results will vary,” but as you can see in the video below, it will always be faster.
So, while the just-announced Sectioning of Drawing Views is the most conspicuous example of parallelization to date, there are multiple areas of Onshape that are already parallelized. Are there other areas that would also benefit from this approach? Yes. We are in a very good position (because of our platform and architecture) to expand this to many areas of Onshape. While this list is forward looking and should not be taken as anything other than a list of things we think might be possible, it’s fun and productive to imagine the speed gains in the following areas:
- The parametric regeneration of multiple configured family members
- Hidden line removal updates in multiple drawing views
- Multiple assembly patterns updated in parallel
This is just a subset of a list that we have and we hope you agree that given the performance gains already seen in multiple areas across Onshape over traditional file-based CAD, that the (parallel universe) future of Onshape is a very bright and fast one!