Back in 1993 I established a reputation for insanity by asserting that desktop applications, such as Microsoft Office, were dead. “Everything will run inside a browser and be backed by a web server,” I argued. People around me (EECS department at MIT) pushed back hard against this statement. I had to admit that not everything could run in a browser, even if the browser were augmented with the ability to interpret small computer programs downloaded from the server (browsers would get Java and Javascript capabilities about 1.5 years later). The application that I was most willing to give up on was computer-aided design (CAD). Plainly the performance could never be acceptable without running compiled software directly on the user’s personal computer (desktop Unix workstation, actually, at the time).
With Microsoft Office alive and well and iOS and Android apps being released every few seconds it seems that I was dead wrong about native applications being supplanted. And recently I learned that I was dead wrong about CAD being restricted to running in a native application. Onshape has released a collaborative server-based full-blown mechanical CAD system that runs in a browser. A lead engineer in Shanghai can design a widget and watch in real time as a junior engineer in Indiana tweaks the design. Either of them can spin a 3D model of the design around at any time. As with Google Docs, changes are saved back to the server automatically. The version control system is much more elaborate, however, and it is possible to name versions of a design.
What’s behind the wrongness of my prediction? Three things:
- anything related to 3D graphics or display in a modern computer or smartphone is done by the graphics processor (GPU), not the CPU
- companies such as Google have put tremendous resources into making Javascript execute fast within browsers
- there is a 2011 standard that lets a Javascript program running inside a browser tell the GPU what to do: WebGL
The client side of Onshape is essentially the mother-of-all-Javascript systems telling the graphics card what to do. It turns out to be more than sufficiently responsive. Other than a thin shell of an iOS or Android app, the company offers no software to download and install.
Onshape has an interesting way of pricing their system. It is free if you don’t mind the rest of the world looking over your shoulder. I.e., you don’t have to pay if your design can be looked at by others. They charge for keeping a design private.
I’ll be interested to hear from Mech. E. readers what they think about this. Current distributed work in mechanical CAD seems to be done using standard programs that write big files and then sharing those files with Dropbox or a private equivalent. This has all of the same problems as using Microsoft Office in a distributed collaborative fashion, e.g., files named “20151007-widget-design-FINAL-v2-edits-philg-FINAL”. Looking at the US News list of the best global engineering universities I note that they don’t seem to be clustered. Among the top 20, 9 are in China, Hong Kong, and Singapore, 5 are in Europe, and the remaining 6 are in the U.S. I would think a company could realize a significant competitive advantage by facilitating collaboration across those continents.
Separately, what games are making heavy use of WebGL? This seems like a useful substrate for online multiplayer video games.
[Disclosure: I have a little personal history with CAD. I was co-author of the ICAD system. This enabled the specification of a family of designs such that it was possible to go from specifications to a 3D model automatically. It was the most popular application program on the Symbolics Lisp Machine. Given that it required typing specs in a machine-readable language, my standard retrospective description became “the world’s best mechanical CAD system for people with PhDs in computer science.”]
Full post, including comments