ICAD

ICAD (Corporate history: ICAD, Inc., Concentra, KTI, Dassault Systemes ) was a Knowledge-Based Engineering system that was based upon the Lisp programming language. ICAD had an open architecture that can utilize all the power and flexibility of the underlying language.

KBE, as implemented via ICAD, received a lot of attention due to the remarkable results that appeared to take little effort. ICAD allowed one example of end-user computing that in a sense is unparalleled. Most ICAD developers were degreed engineers. Systems developed by ICAD users were non-trivial and consisted of highly complicated code. In the sense of end-user computing, ICAD was the first to allow the power of a domain tool to be in the hands of the user at the same time being open to allow extensions as identified and defined by the domain expert or SME.

A COE article looked at the resulting explosion of expectations (see AI Winter), which were not sustainable. However, such a bubble burst does not diminish the existence of capability that would be excellent if expectations and use were properly managed.

History
The original implementation of ICAD was on a Lisp machine (Symbolics). Some of the principals involved with the development were Larry Rosenfeld, Avrum Belzer, Pat O'Keefe, and David F. Place. The timeframe was 1984-85.

ICAD was ported to Unix when Common Lisp became compilable -- expand upon this -- and was then ported to the generic Unix machine (such as the Sun workstations) -- expand upon this evolution.

The original domain for ICAD was mechanical design with many application successes. However, ICAD has found use in other domains, such as electrical design, shape modeling, etc. An example project could be wind tunnel design. Further examples can be found in the presentations at the annual IIUG (International ICAD Users Group) that have been published in the KTI Vault (1999 through 2002). Boeing and Airbus used ICAD extensively to develop various components in the 1990s and early 21st century.

As of 2003, ICAD was featured strongly in several areas as evidenced by the Vision & Strategy Product Vision and Strategy presentation. After 2003, ICAD use diminished. At the end of 2001, the KTI Company faced financial difficulties and laid off most of its best staff. They were eventually bought out by Dassault who effectively scuppered the ICAD product. See IIUG at COE, 2003 (first meeting due to Dassault by KTI)

The ICAD system was very expensive, relatively, and was in the price range of high-end systems. Market dynamics couldn't support this as there may not have been sufficient differentiating factors between ICAD and the lower-end systems (or the promises from Dassault). KTI was absorbed by Dassault Systemes and ICAD is no longer considered the go-forward tool for knowledge-based engineering (KBE) applications by that company. Dassault Systemes is promoting a suite of tools oriented around version 5 of their popular CATIA CAD application, with Knowledgeware the replacement for ICAD.

As of 2005, things were still a bit unclear. ICAD 8.3 was delivered. The recent COE Aerospace Conference had a discussion about the futures of KBE. One issue involves the stacking of 'meta' issues within a computer model. How this is resolved, whether by more icons or the availability of an external language, remains to be seen. -- more work here.

The Genworks GDL product is the nearest functional equivalent to ICAD currently available.

ICAD Particulars
ICAD provided a declarative language (IDL) using New Flavors (never converted to CLOS) that supported a mechanism for relating parts (defpart) via a hierarchical set of relationships. Technically, the ICAD Defpart was a Lisp macro; the ICAD defpart list was a set of generic classes that can be instantiated with specific properties depending upon what was represented. This defpart list was extendible via composited parts that represented domain entities. Along with the part-subpart relations, ICAD supported generic relations via the object modeling capabilities of Lisp.

Example applications of ICAD range from a small collection of defparts that represents a part or component to a larger collection that represents an assembly. In terms of power, an ICAD system, when fully specified, can generate thousands of instances of parts on a major assembly design.

(Need to collect examples with Stanley Knutson and others)

One example of an application driving thousands of instances of parts is that of an aircraft wing - where fastener type and placement may number in the thousands, each instance requiring evaluation of several factors driving the design parameters.

Futures (KBE, etc.)
One role for ICAD may be serving as the defining prototype for KBE which would require that we know more about what occurred the past 15 years (much information is tied up behind corporate firewalls and under proprietary walls). With the rise of the functional languages (an example is Haskell) on the landscape, perhaps some of the power that is attributable to Lisp may be replicated.