• OO design and programming
  • Lisp (Franz)
  • C
  • C++
  • 3D graphics (Hoops)
  • IPC
  • X Windows
  • UNIX: Solaris, HP/UX, AIX
  • Porting and optimization
  • Internationalization and localization
  • ICAD was a company that wrote a KBE (Knowledge Based Engineering) CAD-like system for designing large engineering systems. "CAD-like" means it was used as a CAD system is, but parts were not drawn. Instead they were programmed in a language based on Lisp.

    The advantage is that the drawings were "smart". For instance, once you make a design for a jet engine, you could increase the power 10%, and the engine would redesign itself as necessary - maybe it would need 6 bolts to hold it on instead of 5, and brackets might need to be made out of steel rather than aluminum.

    ICAD was very expensive, not just the software and fast machine needed to run it, but also developing the custom libraries and in-house skills to use it. Companies needed to commit several good engineers full-time to learning the language and use it to build up smart libraries of their standard parts. Once they did this though the benefits were spectacular. Design time would be reduced 95% or more. Even more important, it allowed continual coordination between groups designing different parts (an automobile headlight and the body it would go in), and made possible much better designs by allowing engineers to try things they would never have had time to with traditional CAD systems.

    Customers ranged from things like jet engine design (all jet engine manufacturers were customers), refineries, automobile manufacturers, Boeing (parts of the 777 were designed using ICAD), to more imaginative applications. Corning Glass used it to custom design artificial joints. For hip replacement, surgeons normally have a selection of a few hip standard joints, and must choose the closest match for the patient. This project used a CAT scan to determine the exact dimensions of a patient's own joint, and then design one that matched exactly. It took about 45 minutes, but the output was the description to feed into a milling machine to make the joint. Last I heard, (4 years ago) this was awaiting FDA approval. The state of Massachusetts was sponsoring an architect who had been in an accident and was a quadriplegic to use ICAD for designing semicustom offices.

    The entire company was someone's doctoral thesis at MIT. When he graduated he just moved off campus a couple blocks and opened for business. With the exception of me, the development people were all MIT computer science majors. As a result, my role tended to be handling the non-core technologies. Thus, I wrote the 3-D graphics server, which involved both the server, written in C and run under a separate process, and the client side in Lisp. I did EMACS customization, since the product ran in an EMACS environment. This included adding on-the-spot ATOK7 character support to MULE (MULtilingual Emacs) when our Japanese partner required it. The change was submitted to the maintainers for inclusion in future releases. I was involved in the "ICAD External Library" project, which essentially was our own version of CORBA, (which had not yet been released at the time), and other servers such as our Oracle database interface.

    In addition I ported the product to new platforms, and supported releases on several of them. We ran under Franz Lisp, so this should have been trivial. However, ICAD was a huge program, and stressed platforms in ways they often had not been before. We were well-known by platform support for Sun, IBM, DEC, and HP, since the size of our process images and the fact that we did all our own graphics and communications meant we uncovered many bugs that had not been known before.

    The company changed directions when it changed its name to Concentra. They developed a new product, essentially a tool for semicustom design to aid sales, which was much simpler to use. During the changeover period I took over product leadership on ICAD, as well as ran a project for the "sketcher", a related application that would allow parts to be drawn in a manner similar to traditional CAD systems. This was an NT application written in C++.

    I left Concentra in 1996. They were afterwards taken over by Autodesk. The new product was never a great success I don't believe. However, funding provided by former customers for ICAD allowed that product to be revived, and I believe it was spun off into a separate company, once again called ICAD.

    Back to resume
    Go to home page