Tuesday July 29, 2014

Cloud CAD is really difficult

If you believe the buzz in the blogosphere, there are a lot of engineers and designers who are not at all happy at the prospect of some day being forced to use cloud-based CAD.

The public lashback on cloud CAD started building several years ago, and it’s hardly abated since. The conversation has taken on political/religious overtones.

In the best of all worlds, clould CAD could be a revolutionary tool, allowing people to work where, when, and with whom they desire. The troika of cloud, mobile, and social offer intriguing possibilities.

Yet, there are potential problems with cloud CAD, at multiple levels.

The issues are substantial enough that it’s not practical to address them all at once. So, with this article, I’ll dig into with just one issue: the difficulty in actually creating a cloud CAD program.

cloudcad

CAD is difficult

CAD, even without being cloud-based, is difficult to create. Mike Riddle, one of the best known CAD architects, estimates that CAD is about an order of magnitude more complex than typical Office type applications. He ‘s not talking about lines of code (though CAD programs do clock-in with tens of millions of lines of code.) Rather, he’s referring to the Chess-like complexity and difficulty of creating a CAD program that can actually model the things that its users want to model.

Understanding CAD architecture

CAD programs are built up out of a large number of software components. Some, such as geometric modeling kernels, constraint managers, graphics pipelines, and translators, are developed by fairly well-known companies, and licensed to a large number of CAD developers. Other components, such as those for manipulating raster images, zip files, or unicode characters, are available through open-source repositories, such as SourceForge. Many more components are created by CAD developers themselves.

The real magic in creating a CAD program comes in how the software compenents are arranged and connected. This is the essence of software architecture. It is largely what distinguishes great programs from lousy programs.

Once the architecture for a CAD program has been set, it can be really difficult to change.

Consider, for example, how CAD programs, almost as a rule, seem to take very poor advantage of multi-core processors. This isn’t because the CAD vendors (and the programmers who work for them) don’t want to provide good multi-core support. It’s because the architecture of their software, and of the component libraries which comprise their applications (particularly the geometric modeling kernel, if we want to point fingers) were not initially designed to support concurrency (the underlying requirement to support multi-core processors.)

Though CAD vendors could rip their software down to the ground, and re-architect it to support concurrency, it’s not so easy as just putting a team of programmers on it, and giving them a budget for coffee and Red Bull.

CAD software architectures generally creep, in an organic fashion, from release to release. Initial versions of CAD programs are often architecturally consistent because they are created by small development teams comprised of very experienced CAD programmers. Yet, over time, demands to add new features and capabilities on too-short schedules, and the addition of more programmers to development teams, can lead to hacks which compromise the architectural integrity of later versions of the software.

The result can be a CAD program that works pretty well in most cases, but which has persistent instabilities that can’t be easily fixed—either because no one actually completely understands the CAD program’s architecture, or the instability has become “baked into” the architecture. (Not to point fingers, but there are a number of well-known CAD programs which suffer from persistent instability.)

For a CEO of a CAD software company, the prospect of embarking on a re-architecture project has got to be chilling. Too many of these projects (the most infamous being AutoCAD Release 13) end up being expensive disasters.

Cloud CAD architecture

There are two ways to approach cloud CAD. One way is to use an existing desktop (e.g., Windows, OSX, or Linux based) CAD program, and run it, mostly unchanged, on virtualized servers. This is the approach that companies such as Citrix and CloudSwitch enable—and it’s nothing new. The other way is to build a CAD architecture that’s optimized for use on the cloud.

An optimal cloud CAD architecture would support scalability, both in the number of concurrent users, and in the size of CAD models. That means, essentially, breaking the CAD software down in to a number of interoperable services, which can run concurrently on multiple loosely-coupled server instances.

The problem that CAD developers run into is that, even though their existing desktop CAD systems are built from a large number of software components, those components were never designed to work in a loosely-coupled environment, and they were not, except in rare cases, designed to support concurrency. It’s simply not practical to take an existing CAD program, break it down to its components, then use those to build a cloud CAD system.

The only practical way to build a scalable cloud-based CAD system is to start from scratch, with a new architecture. While some components from existing CAD systems may be reusable as is, most are not.

Where are the cloud CAD programs?

The buzz about cloud CAD started in early 2010, with DS SolidWorks Corp previewing the cloud-based SolidWorks V6 at their user conference, and Autodesk opening up Project Butterfly, a cloud-based CAD application, on their Autodesk Labs site.

SolidWorks V6, despite its name, is built on the Dassault Systems V6 platform. It won’t be available until 2013, at the earliest, and even then, it won’t be entirely compatible with today’s SolidWorks program (because, among other reasons, it will be using a different geometric modeling kernel—one that’s quite different from the Parasolid kernel used in SolidWorks for the last 17 years.) SolidWorks V6 will be a functionally different program than SolidWorks.

AutoCAD WS, the released version of Project Butterfly, is the only notable cloud CAD application currently available. Despite its name, it’s not based on AutoCAD. It’s based on technology developed by PlanPlatform, a company acquired by Autodesk in 2009. While it does read and write AutoCAD compatible DWG files, AutoCAD WS is not a functional match to AutoCAD.

What of the other cloud CAD products?

There are none that are notable. (Or, rather, I don’t know of any that are particularly notable. I expect someone will send me straight on this if I’m wrong.)

While it’s possible that Siemens PLM or PTC have secret projects to develop cloud-based CAD programs, it’s likely that, if they do, those programs won’t be a functional match to their existing desktop CAD programs. Just like DS SolidWorks and Autodesk, they’ll need to start from scratch with cloud-based CAD.

Desktop CAD is here to stay

There are many CAD-related things you can do well on the cloud, including storage, rendering, CAE, and collaborative markup. But CAD itself? It’s easier to say than to do.

Cloud CAD is really difficult, if you want to do it right. As much as CAD company CEOs might like to talk about their visions of the future, they know that cloud CAD won’t replace desktop CAD for a very long time, if ever.

  • http://twitter.com/caddguru Emmanuel Garcia

    The good news is that each of the challenges you mentioned is being worked on. For example, the Model View Control (MVC) software development organization principle, can be broken down even further to avoid having to re-architecture CAD programs more than necessary. At some point, an exponential improvement will occur so current challenges will no longer be difficult to handle.

    As patents expire and programmers take advantage of past insights, development will become easier and speed up. It reminds me of the early days of programming without Object Orientation ad SKD’s.The Open Source project MySQL comes to mind as a potential catalyst and life-saver, if they they tackle relational database features to allow for CAD database parallel processing, work groups and collaboration. That’s a nice project to look at as an example because it’s been used to handle such large datasets that make CAD look like a picnic.Great and inspiring article, Evan! Thank you.

  • Pingback: Dezignstuff » A Less Emotional Look at CAD in the Cloud

  • Dave Ault

    Evan,
      I don’t remember where I heard this and can’t point you to a specific but I thought that the parasolid kernal was moving towards multicore capabilities. If this ever does get worked out though with the rapid advancement of desktop power is there really any economic or workflow based justification to consider the cloud for anything other than say correlation of parts VS the actual creation of parts? I am thinking here for instance of the synergy of GPU’s and CPU’s and the promise these types of things hold for autonomous workstations.

  • Ian

    The only problem with streaming any kind of high performance design software including CAD is the Bandwidth / latency….For people on the west side of the world their might be a problem. For people on the east side of the world their will be no problem. The hardware to make streaming CAD his available today, and within 3-5 years it will be the norm..!!

  • Chris Currie

    It’s a real shame AutoDesk does not take advantage of the multiple cores in the new CPUs.  You would think they would have addressed this by now.  The manufacturer’s change of focus on CPUs from speed to cores has been going on now for quite sometime.  
    http://usa.autodesk.com/adsk/servlet/ps/dl/item?siteID=123112&id=15224826&linkID=9240617 

    Considering the big push towards BIM and 3D you would think that Autodesk would have their software doing this.  Unfortunately they have not made much progress on that front either.

    http://forums.autodesk.com/t5/Autodesk-Revit-Architecture/Revit-Architecture-and-CPUs/td-p/2823822 

    If CAD software make better use of the hardware available I think this would remove some of the issues in taking the plunge into making a cloud version of CAD as you have stated.  
    On January 5, 2006, Intel launched the Core processors so when people look at the prices for this software costing anywhere from $5,000 – $15,000 I think they should be pretty upset about it.  http://store.autodesk.com/store/adskus/html/pbPage.allProductsLanding

    Considering it’s 6 years later and there still is no real movement on this front.  It does not even appear to be a priority for Autodesk to take full advantage of the hardware almost every other type of software seems to take full advantage of.  Right now it makes buying a i7 for CAD comparable to buying a Porsche and driving it 20 mph everywhere.

  • http://jonbanquer.blogspot.com/ Jon Banquer

    It won’t be the norm in machining job shops I work with. None of them have any interest in running CAD in the cloud. If they are forced into running CAD in the cloud they will change to another CAD from a company that doesn’t force them into the cloud.

  • http://jonbanquer.blogspot.com/ Jon Banquer

    It’s not just Autodesk that has this issue, it’s the entire CAD industry!

    The software components used by most CAD systems are the Simens D-Cubed constraint solvers and Siemens Parasolid geometry kernel. Neither support multi-core. Neither does Granite One (PTC Creo) or the ACIS kernel. The solvers and the geometrical kernels used by the leading CAD vendors were developed 25-30 years ago without parallelization in mind. Rewritting millions of line code isn’t going to happen anytime soon and CAD companies have no answers to this serious issue so they avoid it like the plague.

    On the bright side, Catia V5 and V6, as well as the coming SolidWorks V6 will use the CGM kernel. The CGM kernel, unlike Parasoid, does have multiple core support as the video in the following link clearly shows

    http://www.spatial.com/blog/leveraging-multi-core-hardware

    Jon Banquer
    San Diego, CA
    http://whymastercamisthewrongchoice.blogspot.com/

  • Ian

    I think you may find businesses in general in these hard times are trying to find ways of cutting costs. If their able to hire / use a choice of CAD software from the cloud, for the amount of time needed at very little cost and not fixed into a license deal, they will save money, not only on hardware, but also on man power. IE. they will be able to hire a freelancer (Or the software them selves.) to produce the concept and stress test before sending to the machine shop. This means less staff and less costs.
    The CAD software developers who are looking to get their new software to market, the cloud gives them the perfect marketing opportunity to get it out to the consumer…. 

  • http://jonbanquer.blogspot.com/ Jon Banquer

    When you are in a very cyclical business, such as machining, you can’t save money with a cloud based application because if you don’t pay the monthly fee the cloud based CAD application doesn’t work.

    For CAD vendors like Autodesk, cloud computing is all about locking their customers into paying maintenance fees which they can’t do now. If the customer doesn’t pay the fee every month they can’t use the CAD application. That’s not going to fly with any machine shop I know of. Cloud computing, as Autodesk is proposing, is a trap and a scam.

    Richard Stallman got it right:

    http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman

  • Eyares

    Just because a kernel is “thread-safe” (as are Parasolid and ACIS), doesn’t mean that they will offer significant performance improvements in a multi-threaded environment.  It just means they won’t crash in that environment.

    I’m tempted to ask the folks from Spatial and Parasolid about how many mutexes they have in their code.  But that wouldn’t be very nice of me.

    In short, none of the big commercial kernels are really ideal for running in a cloud CAD environment.  There are some in development that might be up to the task, but it remains to be seen.

  • Ian

    Theirs no monthly fee with the business model I am talking about. Just pay for the time you need the software. 12hours, 24 hours, 1 week or 1 month even 3 months…

    Iam talking not just Autodesk software, Iam talking about a multitude of design software on tap.!! on a pre booking service when you need it…!!

    I think you may find businesses will pay a subscription  if they have a multitude of design software to choose from and are not locked into maintenance fees…!!

    Thats the future…!!!

  • http://jonbanquer.blogspot.com/ Jon Banquer

    Six month and one year licenses were tried in the recent past by think3 and by SpaceClaim. They both turned out to be miserable failures. This not a futuristic idea. It’s an idea from the past. It was a bad idea then. It’s a bad idea now.

  • Dave Ault

    Evan,
    http://www.plm.automation.siemens.com/en_sg/about_us/newsroom/press/press_release.cfm?Component=115585&ComponentTemplate=822
      Was the article I was thinking of. Do you think that there will be true multicore capabilities for CAD any time soon with genuine acceleration of capabilities?

  • Ian

    Ok..Jon… maybe you are just a bit of a sceptic, when it comes to new business models…!!!  

    The fact is that streaming is the future with companies like Nivio, Onlive, Netflix that are doing it already. Technology and ideas don’t stand still for no one….!! At the end of the day we will all have to change the way we conduct our business to keep up with the technology and business models of tommrow, like it or not…!! 

    I think if you watch the space in the next 1 to 2 years you will start to see changes from all ISV’s, in the way they sell their software.

  • http://jonbanquer.blogspot.com/ Jon Banquer

    Ian, you’re right. I am a skeptic. I’m a skeptic for damn good reason. I’ve been burned by Autodesk and by SolidWorks many times. I’m tired of getting burned by Autodesk, SolidWorks and by some of their corrupt resellers. I’ve also been burned by Netflix. Most of the movies Netflix has they don’t stream and you have to get them mailed to you if you want to see them. Almost nothing I wanted to see was available streaming and yet I was paying for it.

    Machining and manufacturing in America change at a very slow pace and I don’t see that going from slow change to very rapid change. Most people in machining or manufacturing are a lot more conservative than I am.

  • Ian

    Sounds like you have not had much luck…..!!  But best of luck for the future Jon… 

  • Pingback: A Few Good Reads (5/7/12): Flooding in Great Britain » Hydraulically Inclined

  • Rachel Berry

    Dave: SMP went into Parasolid in the late-1990s I think (before my
    time). If you look at the documentation on the front page there’s a link
    to the list of concurrent APIs (100s of them) and search in the
    functional description will tell you all the various options such as
    thread per processor for SMP.

    There is a limit to what can be done in some operations in a kernel,
    customers often need fidelity and determinisic, you can’t
    check/determine the integrity of your model’s shells if you are still
    doing bits of the boolean intersection. You also have to be incredibly
    careful ensuring multi-threading doesn’t result in material changes and
    this gets hard *very* hard on imported tolerant data.

    I liked the original article a lot as it emphasised that the application
    engineering is where a lot of the product architecture is. An
    application has a better knowledge of its virtualisation model, what
    type of GPU pass through is enabled, a priori data, how to optimise de-virtualisation.

    Fundamentally CAD/CFD/CAE has problems that have sequential elements and parts of the model/operations/solvers are dependent on each other or previous operations. Add in a need for fidelity, certification, platform stability, deterministic evaluation and legacy support…. hard. Basically a lot of the task trying to be achieved aren’t well suited to parallelisation or high communication between parts of the model or problem to be solved.

    Cloud is to a large extent a market place and about how you buy/resource your processing power. Virtualisation means your application could be running in some commercial cloud or on the server on your own machine or private internet. The architecture of a modelling kernel/constraint solver needs to be concerned with a multi-threaded workflow on a theoretical machine with multiple processors.

    Similar problems exist in academic super-computing where everything is coupled to another part of the problem in bewildering recursive tangles. 

  • Dave Ault

    Rachel,
      So basically at this time with the exception of something like rendering there is nothing a server farm on the cloud can offer that we can’t do on a robust workstation considering the threads limitations? Am I correct in this assumption? If I am not correct exactly how could servers speed up things in the CAD world? In FEA, another oft mentioned candidate to benefit from the cloud, is this also limited to what one core can do?

  • Rachel Berry

    I’m not sure I fully understood – but I think the answer is not at all, it just depends on the problem under consideration. Some operations can be threaded on a per face/per body basis. Per body is pretty useless if you are dealing with one large part but some operations involve 10000 parts so a different approach can be perfect. Rendering is a natural  candidate to be at the fore front of more multi-threading approaches, it isn’t in general modelling (changing the the part), there are fairly intuitive ways to farm out operations/bits of parts, it’s something very visable, it can take a lot of time so the gains can be huge. 

    FEA is making really interesting strides in farming out bits of calculations in sane ways to effect big performance gains. DAnsys from Ansys, Altair’s offering and others.

    Virtualisation is a factor considered in modelling kernel architecture but there’s a lot of work application side also needed too leverage the full power of what is available. There are products out there whose entire user base is on beefy workstations, the products work so where has been the driver to architect at the application for an unused platform…. 

    Complete virtalisation isn’t great for CAD/CAE, having one face of an operation in China when the neighbouring one is in the US wouldn’t be great! And 100 virtual machines trying to chat to your GPU isn’t clever either. Some operations will have chunks that have to be linearly sequential. Architecting the feature groups and the parts of operations that can be multi-threaded is the trick.

    A lot is already possible, there is more that could be done. A lot that is possible hasn’t been fully exploited because of lack of need/demand.

    I’m technically unemployed this week, having left a geometric modelling kernel mentioned in the above to move to a virtualisation technology mentioned in the above – CAD and virtualisation is something I’m taking a personal gamble on….  I’m personally not overkeen on “cloud” as I think it muddles in a somewhat artificial vague resourcing, market structure and people get caught up in debates on security/reliability/internet speed etc. which have nothing really to do with the architecture or concepts of virtualisation. When applications commit to certain purchasing models I can see cloud is an issue but it’s not a technical issue with multi-threading or parallelisation. Clearly since I’m unemployed these thoughts are just personal views :-D 

  • Rachel Berry

     btw DAnsys – colloquial term for Distributed Ansys…. http://www.ansys.com/staticassets/ANSYS/staticassets/resourcelibrary/article/AA-V5-I3-Full-Version.pdf covers some CAE tricks, the mapping is interesting.

  • Dave Ault

    THANKS Rachel and I do think you understood my question completely. By far the best answer I have seen on the nuts and bolts the cloud would depend upon to succeed. Would you mind if I posted your comments to the Siemens BBS forums?

  • Rachel Berry

     @Dave:disqus : I’ve no idea what the Siemens BBS forum is (Send me a link!)- but I don’t see why not – I’ve made it pretty clear as to my commercial status affiliation.

  • http://twitter.com/kaibackman Kai Backman

    Revolutions are usually instigated by outsiders. I’m a co-founder of Tinkercad which is a cloud based solid CAD. The product is built on top of a bespoke geometry kernel that scales to hundreds of cores in a cluster. The feature set is obviously much smaller than something based on say Parasolid or ACIS, but the technology is a generation ahead of anything demonstrated by vendors like Autodesk or Siemens.

    We launched publicly a year ago, you can try it out in any reasonably recent browser:
    http://tinkercad.com

  • IDEAbuilder

    I disagree completely. Absolutely.  And while it will be really difficult for most people to implement – or even understand – it is already being worked on by hundreds of companies.  And the requisite technologies already exist.

    If you think it impossible, you are an AEC industry luddite.  Get out of the way so those of actually coding “Cloud BIM” AND “Cloud FIM” (fabrication information modeling) can continue designing and building the future.  There are millions of AEC industry professionals who think like Evan Yares – and many of them are un or underemployed.  The rest of us are too busy building the future to waste time arguing.

  • http://twitter.com/jbyrneirl James Byrne

    I agree with IDEAbuilder. Cloud BIM will happen and the sooner the better.

    If the current AEC vendors don’t step up to the plate and rebuild their products on the cloud then they will go the way of the dinosaurs.