With the introduction of AutoLisp and the growing power of AutoCAD as a modeling system, it became clear to me that we were on to something far more powerful and significant than a drafting system. This was an attempt to place CAD in the position I believe it deserves—in the mainstream of computer science—as opposed to the backwater in which many believe it languishes. This was an internally-distributed “think piece”. I am even more convinced now of the arguments expressed herein than the day I wrote them.
Over the brief history of Autodesk, we have observed the evolution of how CAD is perceived. We have always believed that we were selling a “word processor for drawings”, suitable for anybody who draws as part of their work. The market as a whole and the analysts in particular, saw CAD as “a package for architects”, or at most a tool applicable to a small set of highly specialised markets.
Time has proven us right. We could not have sold so many AutoCADs so rapidly, nor would we have the broad and flat distribution among market segments were CAD as specialised as the pundits believed. Moreover, the fact that have continually opened new, “nontraditional” markets for CAD without even trying vindicates our belief and confirms that in this case the users are way ahead of most of the sellers.
What we once knew and took action on is now becoming the conventional wisdom. Recently, in a more general context, Carl Machover wrote that the “computer graphics” industry is disappearing as it is assimilated into the mainstream of the computer industry. What we are seeing in CAD is part of this overall trend. Thus, the head start in positioning our product that this insight gave us is no longer a competitive advantage. We should look forward now to where CAD will evolve next (keeping in mind that it might not evolve anywhere, and that our original perception was the end of the road).
In this paper, I will suggest that what we have seen so far is simply the first step of an even greater integration of computer aided design into the mainstream of computer science and the computer industry. I will point to trends and events which, I feel, confirm this, and I will suggest product and marketing directions which will position Autodesk to take advantage of this trend.
I will bypass writing 50 pages on the various definitions of CAD, the acronym. Here let's consider what we mean when we say “computer aided design” itself. I propose the following definition:
Computer aided design is the modeling of physical systems on computers, allowing both interactive and automatic analysis of design variants, and the expression of designs in a form suitable for manufacturing.
I think that this definition encompasses all of the types of work that is subsumed under the CAD umbrella, in all the various areas of application.
This definition implies that simulation is a far more important part of CAD than design description. I believe that this is true. Also, computer graphics has nothing at all to do with CAD, except as the servant of design, simulation, or presentation.
To best fulfill the definition of CAD given above, a CAD system should be a computer system that allows modeling of physical systems. To date, modeling has been done almost entirely with hard-coded dedicated systems usable only for one form of design: there's not a lot in common between ANSYS and SPICE. But, after all, the physical universe is a unified place with common rules, and it's not at all clear that one should have to write tens of thousands of lines of FORTRAN just to get started on a general-purpose modeler.
CAD systems to date have developed into general-purpose tools that understand geometry. From MacDraw to Medusa there is a continuum of knowledge about geometry and operations on either 2D or 3D primitives. What knowledge of reality exists is usually welded on as an afterthought (the very word “attribute” indicates how reality takes a second seat to geometric description).
A typical CAD system offering has a geometry processor with attached database, providing a “common design database”. Analysis and simulation sits on top of this core, embodied in a host of separate programs which intercommunicate, if at all, only by passing information through the database. If one wants to create a new analysis program, “well, we have a FORTRAN compiler and library that lets you read the database”.
Need it be this way? Can we not imagine a geometry-based CAD system evolving into a system which describes physical objects, and knows about the various ways in which they interact (and can be taught about interactions as we define new forms of geometry today)? Such a system would encompass all of what a CAD system does today, and would provide a common user interface and model for working with reality represented in a database.
Alan Kay, delivering the keynote speech at the Second West Coast Computer Faire in 1978 said, “we decided to focus on simulation in Smalltalk, because that's the only really interesting thing to do with a computer”. When I heard this, I was aghast: “Simulation”, I thought, “why in the world would people want to use personal computers to model throughput in a machine shop, or to calculate the number of toilets in a football stadium”. Certainly any rational person wanted a personal computer to do real computer science on it: to write operating systems and compilers so that others could use them to write programs, and…well, I hadn't thought that out completely.
“Simulation” had come to mean (at least in the computer science lexicon), a specific kind of modeling of systems, usually done in an odd simulation language such as Simscript or Simula. What I only realised years later was that what Alan Kay was talking about something far more grandiose when he said “simulation”: getting the whole wide world into that itty-bitty can: the computer. And yet, “simulation” in the limited computer science sense has already had a great and often little-appreciated impact on computer science as a whole. In his speech, Alan Kay exhorted people to look closely at Simula-67 for the direction of the future. Simula-67 included (in 1967!) classes, object orientation, multiple communicating processes, in fact close to a laundry list of what is currently considered the way to approach complex problems. So simulation in the small has already influenced the mainstream, and I believe that simulation writ large will have an impact many times greater.
It is time to start considering that we are in the business of bottling reality. If we accept the premises and conclusions of this paper, we should begin to undertake the representation of physical reality within our system, and provide the hooks which allow modeling and simulation to be added on to the system as easily as one adds geometric operations today.
One specific example of what I'm talking about is the concrete proposal to add dimensionality to variables in our package. But this is just a first step on a road that may be decades long. I don't have the solutions and I don't even know many of the problems, but I'm becoming convinced that this is what this business is really about.
As computers become more powerful, and tools evolve that allow us to build larger and more complex software systems on them, the artificial barriers that keep us from modeling the real world will fall. Finding the ways to do this best, and to build the systems that will be used for this is, I feel, what computer science is really about. And the company that knows this first and does the right things about it has prospects that are very bright indeed.
This drawing, created by Gary Wells, was the original AutoShade demo drawing. Literally hundreds of bugs were found by this drawing during the development of AutoShade.