Richard Shiffman is a computer system engineer with more than two decades of experience. He has design experience in analog and digital electronics and software systems. Mr. Shiffman's main emphasis has been in interactive graphics hardware and software. He has been employed by various departments of the University of Southern California for over twenty years.
While a lifestyle of consulting, writing technical papers for journals and MathSoft (e.g., interesting applications of metric tensors using MathCAD), reading lots of books, bicycling, sailing, and serving in the Coast Guard Auxiliary as a Flotilla Commander, and living frugally off of investments has been pleasant these past few years, Mr. Shiffman is anxious to start working again on a technically exciting, intellectually stimulating project, be it in software engineering (coding in Java, C++, C, Lisp, assembly, etc.) or in electrical engineering (IC or firmware design) where he will be appreciated by the company for his technical versatility, depth, and creativity.
Mr. Shiffman was last employed by the University of Southern California's Information Sciences Institute (ISI) where he was involved in hardware and software development for the Personal Communicator project. This work involved writing diagnostic programs to debug experimental display hardware. The goal of Mr. Shiffman's work on this project was to develop graphics driver routines for a new electrophoretic display and touch panel.
Earlier at ISI, he wrote the Interlisp interface for the Command and Control Graphics project and developed system and applications software for the MAST project. This involved designing communication between a DECsystem10 and an SBC-86/12. He also has worked on both the hardware and software for the ORLY flight simulator. This required integrating an aircraft joystick into the simulator.
Mr. Shiffman was a Research Engineer for the Dynamic Measurements group at USC. He designed a high-gain, low-noise preamplifier for silicon X-ray detectors. At USC-County Hospital Mr. Shiffman also worked on an X-ray microscope and designed an analog interface. This interface was built to make the Kevex Fluorescent Thyroid Scanner transmit scan data to the Ohio Nuclear Med-2 computer.
Earlier he was a design engineer for the Biomedical Image Processing laboratory, where he developed: a scanner for 35mm and 70mm film, a 200 watt Quartz Iodine light source for the scanner, a constant current power supply, a pair of ultra stable differential amplifiers, and a real-time television digitizer based on the Signetics 3000 microprocessor.
While working as a programmer he developed the Interactive Graphics for Lung Volume Determination program. He also acted as a teaching assistant for Man-Machine Interactive Systems course at USC.
Mr. Shiffman designed a 3D graphics system called MIGS (Muddle Interactive Graphics System) for MIT's Muddle (MDL) language (a dialect of Lisp), during which time he also became a Zork hacker, confounding the MIT programmers who wrote the now-classic MDL adventure game.
The first major software system that Mr. Shiffman designed was MIGS for MIT-DMS. MIGS, which stood for Muddle Interactive Graphics System, was an extension to the Muddle (MDL) language (a dialect of Lisp) developed at MIT. See Publications, #2. MIGS modeled a subset of the Evans&Sutherland LDS-1 in software. As a matter of fact MIGS outlasted LDS-1 by several years. MIGS was an interactive 3D line-drawing graphical system with both immediate and display compiler/display processor modes. Immediate mode output would appear on your display terminal as soon as your input was complete. The display compiler mode would build a graphical data structure or MCELL, which would later be transformed and displayed by the software display processor. MIGS also contained a on-line help system that documented its use and operation.
Immediate mode was used for simple one time graphics, such as function plotting. It also handled all of MIGS's terminal output for the different types of terminals the system could use. MIGS was capable of supporting ARDS and Tektronix storage scope, Imlacs, DEC GT-40 family of displays, and HP 2648s. Immediate mode also graphical input from the Talos Tablet on USC's GT-42.
Display compiler / processor mode was used to generate complex 3D graphical images that could be displayed, transformed and redisplayed over and over again.
The display compiler and processor used homogeneous coordinates to represent graphical objects and matrix multiplication to perform all its transformations. MIGS allowed sub-picturing and transforming to any depth. There was no conditional image termination, so recursive image definitions were not allowed.
The first beta version of MIGS was released in 1972. After that Mr. Shiffman continued refining MIGS and adding new features to it. Thanks to MIT's optimizing Muddle compiler and many carefully rewritten code Mr. Shiffman was able to get the compiler to generate total in-line code. The final version of MIGS on a DEC KL-20 would match the performance of DEC FORTRAN. The Clipping divider in MIGS was based on the code of Ivan Sutherland and Danny Cohen described in Principles of Interactive Computer Graphics by Newman & Sproull. The matrix multiplier was hand-coded by Mr. Shiffman as in-line code without loops to increase its performance. The software character generator was one of the last features added to MIGS. This allowed the users of MIGS to place text in any MCELL or picture and apply any series of 3D transforms as could be done to any MCELL.
Mr. Shiffman also developed The TOPS-20 JSYS package for MIT's Muddle programming language. This allowed Muddle programs easy access to the Tops-20 system calls. This package played a major roll in his later programs described below.
A second, but related software project was the Mybook. This was the low level graphics software written by Mr. Shiffman in PDP-11 assembler for USC's GT-42. This software used DEC's Picturebook protocols, and added support for the Talos graphics tablet. Now the tablet could be used from high level languages like Lisp and FORTRAN.
Mr. Shiffman used MIGS to develop a program for Interactive Graphics for Lung Volume Determination (see Publications, #3 ). This program would calculate the lung volume of a patient from the posterior, anterior, and lateral X-rays. The X-rays would be traced in on the Talos tablet. The user could edit his input tracing or clear and re-enter it if a gross error was made. When the user was satisfied that the X-rays were traced correctly, the program would use heuristics Mr. Shiffman programmed in to remove erroneous data points and generate its internal model of the lungs. The model for lungs used by the program was built from truncated elliptical cones. Integrating over all the cones would determine the lung volume. The program also displayed a transformable 3D image of its lung model for the user to examine.
Mr. Shiffman programmed and wrote the documentation for the TOPS-20 Interlisp interface to the GL device-independent graphics system. This interface used TOPS-20's pseudo-teletype capability for internal inter-process communication between the GL fork and the Interlisp environment. (See Publications, #6 ).
Mr. Shiffman next spent two years working on ORLY, Danny Cohen's flight simulator at USC-ISI. ORLY ran on a PDP-11/45 with a VT11 display processor and a VR17 display scope. ORLY was mostly coded in PDP-11 assembler and Bliss-11. The AR11 was programmed to read the 2-axis joystick and the throttle potentiometer for input as the pilots controls. The analog outputs of the AR11 were programmed to control the TI 76477 sound generator circuit to make airplane noises, also designed by Mr. Shiffman.
Later Mr. Shiffman used Bliss-11 to write the code which controlled that LPC vocoder from Texas Instruments. The vocoder was used in Danny Cohen's Pilot Assistant project to warn the pilot of danger or trouble.
Mr. Shiffman wrote the integer arithmetic interpreter and the pretty-printer in Interlisp for the GIST knowledge base system at ISI developed by Bob Balzer's AI group.
The next project Mr. Shiffman worked on was the Packet Radio Terminal project of Tom Ellis, Steve Sonders, and Alan Kay (renown Computer Scientist at Xerox PARC and Apple, invented Smalltalk language) at ISI. The packet radio terminal or "joule box" as it was called consisted of a RCA 1802 processor, RAM, ROM, a keyboard, a Philip's Lab's Electrophoretic (EP) display panel, and a touch panel. Mr. Shiffman was responsible for the EP panel driver and graphics software, including the DDA vector generator. Most of the 1802's software was written in PolyForth with as little as possible code written in 1802 assembler. Since the experimental version had no disk or other backup storage, Mr. Shiffman designed the communications software and file system interface from the 1802 to the DEC KL-20. The KL-20 software had two main modes; one was telnet mode, and the second was file system mode. Telnet mode allowed the user to use his terminal on TOPS-20 as the console terminal of the 1802. In file system mode the 1802 could load or store Forth disk blocks or 1802 object code. The KL-20 server program consisted of two forks, the Muddle main fork in telnet mode handled ASCII character from the user's terminal to the 1802 and controlled the lower Bliss fork. The Bliss fork would handle the transfer of ASCII data form the 1802 to the user's terminal on the KL-20. In file system mode the top level Muddle fork would freeze the Bliss fork so the Muddle fork would receive the 8-bit ASCII characters from the 1802. In file system mode the Muddle fork would use the Alternating Bit Protocol to insure accurate data transfer between the two machines. The Monitor of the 1802 and PolyForth were modified to route all disk requests through Mr. Shiffman's communications interface. Again the code was added to the1802 to handle the Alternating Bit Protocol.
The communications software played a significant role in the microcomputer crash alarm system that Mr. Shiffman developed for ISI. The software also allowed pictures generated in MIGS and routed to a file, to be plotted on a Tektronix plotter connected to a terminal port. Again this software was invaluable in communicating with the 6809 microprocessor used in the control of Mr. Shiffman's Electrophoretic display panels.
The software for ISI's microcomputer controlled crash alarm was also written by Mr. Shiffman. The crash alarm's main console used an 6809 microprocessor which was programmed in Forth. See Other Design Experience, #9.
University of Southern California - 4 years Physics
University of Southern California - 2 years Electrical Engineering
Mr. Shiffman is now 46 years-young and rides his bicycle from 60 to 100 miles a week to stay in shape. Some of his other interests include sailing on weekends, celestial navigation, computer-aided mathematics, Lisp and Java programming, and target shooting. Mr. Shiffman is a Flotilla Commander in the U.S. Coast Guard Auxiliary and holds a Coxswain rating in the Coast Guard's boat crew qualification program.
Rick Shiffman 10318 Dunkirk Ave. West LA, CA 90025 home phone: (310) 277-5370 boat phone: (310) 305-7005rrs0@earthlink.net
http://home.earthlink.net/~rrs0