Blog post by Jim Foster
It’s interesting how we arrived at developing a CAD-in-the-Cloud application. It’s not what we set out to do originally. At the beginning of our entrepreneurial effort, our dream was, and still is to develop mechanical design software that is easier to “design” in 3D than other systems and to remove the burden of data management. By doing this “right,” we could solve problems with top-down design, ease-of-use, data management headaches, and get more people using 3D design software. All good goals to achieve.
In our first prototype effort we tackled top-down design, and some ease-of-use issues using a standard desktop platform, written in C# and WPF, current Microsoft software development tools.
The files: When using the original prototype, designing from the top-down worked and there were no painful relationships created between the files saved to disk. But, when thinking about the different environments the software would be used in, we realized that even though we were only making half the files other CAD systems make, we were still making way too many. Just like other CAD systems before us, we would need some type of repository or vault also. Creating another PDM (aka the Police chief) application might be fun since we also get to architect the CAD application in a “PDM friendly” manner, but in the end, does the engineering community really need more CAD-specific PDM software that sits on corporate networks, costs money to be installed and requires training to implement? Also, for many organizations, PDM software, no matter how easy to use, still gets ignored during the design process and then used to vault parts and assemblies as they are ready to go to production. So, the idea of developing our CAD application with a “no PDM required” and a “no IT reliance” philosophy became an important requirement to consider.
Windows or Mac: Early-on (we are still early-on by the way) whenever we spoke to engineers and designers about our CAD software vision and showed the desktop prototype, everyone was quick to ask if we could run on Macs or Linux systems as well as Windows. I was surprised at how often people expressed a desire for the freedom to use a platform of their choice. Prior to those conversations, I would not have expected anyone to require any platform for CAD besides the Windows desktop. Would the people we worked with still use our software if it only ran on Windows? Probably, but the desire for platform independence was a real request that was hard to ignore. As we wrangled with this idea of multi-platform, I looked at one or two other desktop applications that were written for both Windows and the Mac. The problem that jumps out is that if the software is a “good” Windows implementation, by definition it is probably not a “good” Macintosh implementation and vice versa. To get around this, the vendor can develop versions for both platforms using the suggested style guides. The problem is the two versions of software will be different to a point where training and user guides written for one platform would be confusing for someone working on the other platform. For some very dated applications it may work out fine to have identical Windows and Mac versions, but new software is expected to follow the user interface style suggested for a specific platform. In our final assessment a new application should have the same interface on all desktop computing platforms.
Accessibility: Around a year ago, I saw a news article somewhere, that a college was requiring all students to have an iPad for school. This speaks strongly to the realization that the world is changing, and we needed to consider what it means for the engineering community. For a long time, the notion that mobile computing devices would only be used for consuming information, not for creation, ruled popular thinking. But in the context that a mobile device may be the only computing device someone has, it had better be able to create data as well as consume data. If it’s a fledgling engineer or designer, we certainly want to support that person’s spark of creativity and help them with their design efforts, regardless of the platform.
To me, the topic of accessibility also dovetails with the notion of installed software and the ease with which someone can start a trial, or use an application on an on-going basis. Downloads, licensing, traditional 30 day software trials and the other trappings of traditional desktop applications all make software less accessible and more difficult to get familiar with. Imagine trying to run a trial for new software in part at work and the other part at home, using two different computers. This simple goal of trialing new software can be very difficult using a desktop-based application approach.
Converging thoughts, converging technologies: As we were coming to the conclusion that we needed to take into account product requirements inclusive of 3D design, ease-of-use, PDM, and Accessibility, technology became available that solved the critical challenges associated to 3D graphics in a web browser. As our ideas converged around needing to use the web in some fashion, WebGL and HTML5 made it possible to build an affordable 3D CAD implementation deployed through a standard web browser.
As we imagine a CAD application in a browser, and think of the range of benefits, thoughts about performance and security quickly become to be the white elephants in the room that need to be understood.
Performance is critical in any CAD application, and the feeling that the web has to be slower than the desktop is a real concern. In general some things users do quite often are a little slower; some things can actually be faster! And like any CAD application, it will be a constant development effort to maximize aspects of performance. Fundamentally, heavy lifting is done in the cloud on multiple servers, graphics and other data is sent to the browser in the smallest chunks possible as the design gets added to or changes. Another consideration is the overall time it takes to create a design. Due to the workflow we are using and how we constructs parts and assemblies, if the overall time of creation and modification is significantly faster than other desktop applications, comparing the exact number of milliseconds required to sketch a line becomes less significant.
Security is the other significant concern, but, the tides turned several years ago in terms of “real” security. Most corporations if not all have more security weaknesses in their own networks, if they are connected to the outside world, than the cloud services they use. Too much combined money and talent is going to making the infrastructures for cloud applications secure for this to not be the case. As we move forward, I’ll be providing more information on our environment as well as security in general.
Next week I’ll talk more about the CAD side of our effort and what we are doing to simplify “designing” in 3D.
In the meantime, we’d love to hear your comments about the ideas presented here about CAD in the cloud! To do so, just click on the comments link below.