Professional Documents
Culture Documents
COMPUTER
GRAPHICS
ADVANCED
COMPUTER
GRAPHICS
Economics Techniques
and Applications
Edited by
R. D. PARSLOW
and
R. ELLIOT GREEN
Department of Computer Science,
Brunei University, Uxbridge, England
SBN: 306-30517-8
Library of Congress Catalog Card Number: 7.7-137740
S. E. ANDERSON, The John Hopkins University, Applied Physics Laboratory, 3631 Georgia Avenue,
Silver Springs, Maryland, U.S.A.
A. P. ARMIT, The University Mathematical Laboratory, Corn Exchange Street, Cambridge CB23QG,
England.
J. ATIYAH, Racal Research Limited, Newtown, Tewkesbury, Glos., England.
A. W. BEEBY, Research and Development Division, Cement and Concrete Association, Wexham
Springs, Slough, Bucks., England.
D. A. BELL, Division of Computer Science, Ministry of Technology, National Physics Laboratory,
Teddington, Middlesex, England.
E. D. BERHOLD, Dept. of Engineering, University of California, Los Angeles, California 90024, U.S.A.
M. P. BERHOLD, Dept. of Engineering, University of California, Los Angeles, California 90024, U.S.A.
A. BERN HOLTZ, Laboratory for Computer Graphics and ~patial Analysis, Memorial Hall 114, Grad-
uate School of Design, Harvard University, Cambridge, Mass. 02138, U.S.A.
R. D. BERGERON, Center for Computer and Information Sciences, Brown University, U.S.A.
A. BIJL, Architecture Research Unit, Department of Architecture, The University of Edinburgh, 55
George Square, Edinburgh, EH8 9JU, Scotland.
H. G. BOWN, Department of Communications, Shirley Bay, P.O. Box 490, Terminal 'A', Ottawa 2,
Ontario, Canada.
G. BRACCRI, Istituto di Elettrolecnica ed, Elettronica, Politecnico di Milano, Piazza L. da Vinci 32,
20133, Milano, Italy.
V. M. BRIABRIN, Assistant Professor, Computer Centre of the Academy of Sciences of the U.S.S.R.,
Vavilova40, Moscow, U.S.S.R.
A. BRITCH, Department of Building Science, University of Liverpool, Musprat(Laboratory, Liverpool,
England.
G. A. BUTUN, University of Leicester, Department of Engineering, Leicester LEI 7RH, England.
D. W. CARDWELL, Oak Ridge National Laboratory, Oak Ridge, Tennessee 37830, U.S.A.
M. A. CHACE, Concomp Project, University of Michigan, 611 Church Street, Ann Arbor, Mich. 48104,
U.S.A.
S. H. CHASEN, Senior Staff Scientist, Head, Man-Computer Systems, Lockheed Georgia Company,
Marietta, Georgia 30060, U.S.A.
D. COHEN, Professor of Computer Science, Aiken Computation Laboratory, Harvard University,
Cambridge, Mass., U.S.A.
I. W. COTTON, Sperry Rand Corporation, Univac Data processing Division, P.O. Box 8100, Phila-
delphia, Pennsylvania 19101, U.S.A.
S. W. CRAWLEY, Professor of Architecture, Department of Architecture, The University of Utah,
Salt Lake City 84112, U.S.A.
J. D. CUTRELL, Civil Engineering, University of Colorado, Boulder, Colorado 80302, U.S.A.
R. J. DOWE, Applications Development Dept., Control Data Corporation, Northwest Industrial Park,
3rd Avenue, Burlington, Massachusetts, 01804, U.S.A.
v
D. K. EWING, Computer-aided Design Division, Ministry of Technology, East Kilbride, Glasgow,
Scotland.
W. S. ELLIOT, Imperial College, Centre for Computing and Automation, Royal School of Mines
Building, Prince Consort Road, London, S. W.7, England.
P. FALK, c/o Dr. B. J. Shepherd, IBM, P.O. Box 66, Los Gatos, California 95030, U.S.A.
L. J. FEESER, Associate Professor, Civil Engineering, University of Colorado, Boulder, Colorado 80302,
U.S.A.
J. FERENCZY, Research Institutefor Automation of the Hungarian Academy of Sciences, Budapest XI,
Kendeu,13-17,Hungary.
D. FERRARI, Istituto di Elettrotecnica ed, Elettronica, Politecnico di Milano, Piazza L. da Vinci, 32,
20133 Milano, Italy.
J. D. FOLEY, Information Control Systems, 109 E. Madison, Ann Arbor, Michigan, U.S.A.
A. R. FORREST, University Mathematical Laboratory, Corn Exchange Street, Cambridge, England.
S. FOSBURG, Laboratory for Computer Graphics and Spatial Analysis, Graduate School of Design,
Harvard University, Cambridge, Mass. 02138, U.S.A.
R. A. FREEDMAN, Control Data Corporation, Digigraphics System Division, Northwest Industrial
Park, Third Avenue, Burlington, Mass. 01804, U.S.A.
R. G. GILLESPIE, Associate Director, Computer Center, University of Washington, Seattle, Wash-
ington 98015, U.S.A.
A. GIORGINI, Assistant Professor of Hydromechanics, Purdue University, School of Civil Engineering,
Lafayette, Indiana 47907, U.S.A.
W. J. HANSEN, Applied Mathematics Division, Argonne National Laboratory, 9700 South Cass
Avenue, Argonne, Illinois 60439, U.S.A.
L. HAZLETT, Motorola Semiconductor Division, 5005 East McDowell Road, Phoenix, Arizona 85008,
U.S.A.
N. M. HERBST, I.B.M., Thomas J. Watson Research Center, P.O. Box 218, Yorktown Heights, N. Y.
10598, U.S.A.
R. J. HUBBOLD, University of Leicester, Department of Engineering, Leicester LEI 7RH, England.
K. B. IRANI, The University of Michigan, Systems Engineering Laboratory, Dept. of Electrical
Engineering, Ann Arbor, Michigan 48104, U.S.A.
J. H. JACKSON, The University of Michigan, Systems Engineering Laboratory, Dept. of Electrical
Engineering, Ann Arbor, Michigan 48104, U.S.A.
A. P. JENKINS, Imperial College, Centre for Computing and Automation, Royal School of Mine
Building, Prince Consort Road, London, S. W.7, England.
C. B. JONES, Imperial College, Centre for Computing and Automation, Royal School of Mine Building,
Prince Consort Road, London, S. W.7, England.
M. E. KORYBALSKI, Concomp Project, University of Michigan, 611 Church Street, Ann Arbor,
Mich. 48104, U.S.A.
E. R. KINEGER, Computing Center, University of Colorado, Colorado. U.S.A.
J. LAVICK, Supervisor, CAD, McDonnell Automation Center, Bldg. 105, Level 3 232-8043, P.O. Box
. 516, St. Louis, Missouri 63166, U.S.A.
F. A. LECKIE, University ofLeicester, Department ofEngineering, The University, Leicester LEI 7RH,
England.
T. M. P. LEE, Mail Station 8611, Sperry Rand Corporation, Univac, P.O. Box 3525, St. Paul, Minne-
sota55101, U.S.A.
P. A. LUNDAY, I.B.M. Limited, Los. Angeles, Development Center 1930 Century Park West, Los
Angeles, California 90067, U.S.A.
vi
K. J. MACCALLUM, Imperial College of Science and Technology, Centre for Computing and Auto-
mation, Prince Consort Road, London, S. W.7, England.
J. W. MACHANIK, President, Merlin Systems Corporation, Computer Research and Time-Sharing,
1044 Northern Blvd., Roslyn, New York 11576, U.S.A.
M. A. MACLEAN, Department of Communications, Shirley Bay, P.O. Box 490, Terminal 'A', Ottawa
2, Ontario, Canada.
L. P. McNAMEE, Room 3731 BH, Dept. of Engineering, University of California, Los Angeles,
California 90024, U.S.A.
J. C. MICHENER, Center for Computer and Information Sciences, Brown University, U.S.A.
R. L. PHILLIPS, Associate Professor, The University of Michigan, College of Engineering, Dept. of
Aerospace Engineering, Gas Dynamics Laboratories, Building 422, Ann Arbor,
Michigan, U.S.A.
R. F. D. PORTER GOFF, University of Leicester, Department of Engineering, The University,
Leicester LEI 7RH, England.
P. A. PURCELL, Royal College of Art, Industrial Design (Engineering) Research Unit, KensingtOn
Gore, London, S. W.7, England.
J. J. QUANN, Head, Experiment Computation Section, Code 565, National Aeronautics & Space
Administration, Goddard Space Flight Center, Greenbelt, Maryland 20771, U.S.A.
M. P. RANA WEERA, Department of Engineering, University of Leicester, Leicester, England.
J. ROHN, Sussex Research Associates Ltd., 25 Duncan Street, Toronto 2B, Canada.
A. R. RUNDLE, Elliott-Automation Systems Ltd., Elstree Way, Borehamwood, Herts., England.
M. A. SABIN, Project Applications Engineer, Mathematical Services, B.A.C., Weybridge, Surrey,
England.
L. J. SCHAEFER, Adage Inc., 1079 Commonwealth Avenue, Boston Massachusetts, 02215, U.S.A.
R. L. SCHIFFMAN, Computing Center, University of Colorado, Colorado, U.S.A.
D. SEWELL, Computer Systems Consultant, Computer Communications Department, Mobil Oil
Corporation, 150 East 42nd Street, New York, 10017, U.S.A.
G. SHEARING, Senior Research Scientist, Division of Computing Research, CSIRO, Australia.
B. J. SHEPHERD, I.B.M., P.O. Box 66, Los Gatos, California, 95030, U.S.A.
S. SHERR, Manager Display Planning, Advanced Planning Department, Hazeltine Corporation, Little
Neck, N. Y.1l362, U.S.A.
P. SMITH, Computer-Aided Design and Manufacture, Rolls Royce Limited, Aero Engine Division,
P.O. Box 31, Derby, England.
J. R. STEIN, Computing Center, University of Colorado. Colorado, U.S.A.
P. STEUBER, Sun Printers, Whippendell Road, Watford, WDI 7QH, Herts., England.
H. P. J. TAYLOR, Research and Development Division, Cement and Concrete Association, Wexham
Springs, Slough, Bucks., England.
D. W. TEDD, Computer-Aided Design Division, Ministry of Technology, East Kilbride, Glasgow,
Scotland.
B. T. TORSON, Project Manager, Computer-Aided Design and Manufacture, Rolls Royce Limited,
Aero Engine Division, P.O. Box 31, Derby, DE2, 8Bl, England.
A. VAN DAM, Center for Computer and Information Sciences, Brown University, U.S.A.
P. K. WALL, Technical Manager-REDAC, Racal Research Limited, Newtown, Tewkesbury, Glos.,
England.
vii
V. L. WALLACE, Academic Visitor from University of North Carolina, Imperial College, Royal School
of Mines Building, Prince Consort Road, London, S. W.7, England.
P. E. WALTER, County Architect's Department, West Sussex County Council, Sussex, England.
P. M. WILL, I.B.M., Thomas J. Watson Research Center, Yorktown Heights, N. Y. 10598, U.S.A.
J. H. WILLIAMS, I.c.G. Systems, Interactive Computer Graphics, 6 St. James Avenue, Boston,
Massachusetts 02116, U.S.A.
R. WILLIAMS, Dept. of Electrical Engineering, School of Engineering & Science, New York University,
University Heights, Bronx, N. Y.10453, U.S.A.
M. S. WOLFBERG, Massachusetts Computer Ass. Inc., Lakeside Office Park, Wakefield, Mass. 01880,
U.S.A.
A. G. YOUNG, University ofLeicester, Department of Engineering, The University, Leicester LEI 7RH,
England.
viii
Contents
Contributors v
Introduction xiii
PART 1
Fundamental Issues Facing Computer Graphics
The Lessons of the "60's" P. A. Lunday 3
Fundamental Problems Facing the Growth of
Man/Computer Graphics S. H. Chasen 17
Aspects ofInteractive Graphic Systems R.J.Dowe 27
Some Comments on Supporting Multiple
Interactive Graphic Consoles in a Productive
Environment P. Smith, B. T. Torson 41
Digital Television: a low cost approach to
multi-terminal graphics S. Sherr 49
PART 2
Computer Aided Design - General Applications
An interactive Graphical System using Computers W. S. Elliott,
linked by Voice Grade Line A. P. Jenkins, C. B. Jones 71
Conversational Design of Stochastic Service K. B. Irani
Systems from a Graphical Terminal L. Wallace, J. H. Jackson 91
Anatomy of an interactive Graphics Display
Project: an Engineering Tool R. G. Gillespie ... 103
Computer Graphics in the Dynamic Analysis M.A. Chace,
of Mechanical Networks M. E. Korybalski 115
Structural Operational Data Sets from Arbitrarily E. D. Berhold,
Arranged Computer Graphic Symbols M. P. Berhold, L. P. McNamee 161
A CAD approach to Blanking Die and
Technology Design J. Ferenczy 179
Computer-Aided design at McDonnell-Douglas J. J. Lavick 195
Graphics Oriented Fractionator Analysis and
Simulation Tool (GOFAST) D. Sewell 219
A Display System for Processing Engineering D.K.Ewing
Drawings D. W. Tedd 245
PART 3
Electronic Design Applications
A Graphic Language for Describing and G. Bracchi,
Manipulating two-dimensional patterns D. Ferrari 263
ix
Interactive Graphical Input for Circuit Analysis M. A. Maclean, H. G. Bown 279
Practical Layout of Printed Circuit Boards
using Interactive Graphics J. Atiyah, P. K. Wall 301
Computer Graphics for integrated Circuit Design L. Hazlett 313
PART 4
Civil Engineering Applications of Computer Graphics
Perspective Views and Computer Animation
in Highway Engineering L. J. Feeser, J. D. Cutrell 327
The use ofInteractive Computer Graphics in J. R. Stein,
Soil Engineering Analysis and Design E. R. Krueger, R. L. Schiffman 345
Structural Design Using Interactive Graphics A.G. Young 367
Computer Representation Display and
Interrogation of Structural Building Data R. F. D. Porter Goff 381
Interactive Use of the Light-Pen in finite
Element Limit Load Analysis M. P. Ranaweera, F. A. Leckie 397
Computographical Description of the Dynamics
of a Turbulence Model A. Giorgini 407
PART 5
Architectural Applications
Computer Aided Architectural Design A. Bijl 433
A Generalised Program for Transforming
Relationship Values into Plan Layouts A. Bernholtz, S. Fosburg 449
An Associative Data Structure to Describe
Building Component Assemblies A. L. Britch 463
The Computer as an aid for the Architect P. E. Walter 477
Computer Graphics System for School Design P. A. Purcell 487
Computer Graphics in Architecture J. H. Williams 513
The Craft Program Improvements and
Proposed Improvements J. Rohn ... 531
Building Design by Computer Graphics S. W. Crawley 541
PART 6
Nuclear and Space Science Applications
The application of Computer Generated Graphs
and Diagrams to the Development of
Advanced Nuclear Reactors D. W. Cardwell ... 555
A Laboratory for Interactive Programming,
Processing and Display in Space Science J.J.Quann 577
x
PART 7
Pattern Recognition Developments
Design of an Experimental Laboratory for
Pattern Recognition and Signal Processing N. M. Herbst, P. M. Will 595
Display Assisted Design of Sequential Decision
Logic for Pattern Recognition D.A. Bell 629
Interactive Signal Processing R. A. Freedman 635
PART 8
Text Processing with On-Line Visual Display
A demonstration of magazine page layout using
a graphic display terminal P. Steuber 655
Graphic Editing of Structured Text W.J. Hansen 681
On-Line text editing using visual display V. M. Briabrin 701
PART 9
Computer Generated Animation
Generating Computer Animated Movies from
a Graphic Console S. E. Anderson 717
Production of Computer Animated Films from a
Remote Storage Tube Terminal R. L. Phillips 723
PART 10
Developments in Display Systems
Project Merlin: A Graphics Operating System M. L. Berman,
J. W. Machanik, S. Shellans 735
On the Application of Graph Theory to Computer
Data Structures R. Williams 775
Design of Software and Formats for
Interactive Graphics Support L. J. Schaefer 803
Software Capabilities of the Adage Graphics
Terminals A. van Dam, R. D. Bergeron 831
Storage Tube Graphics-a Comparison of Terminals A. van Dam, J. C. Michener 851
Microcoded Multiprogramming Display B. J. Shepherd
Control Unit A. S. McAllister and P. Falk 887
An Interactive Graph Theory System M. S. Wolfberg 905
Development and Production of Design Charts
Using a Digital Plotter A. W. Beeby, H. P. J. Taylor 923
PART 11
Graphic Languages
A Fortran package for Interactive Graphics G. A. Budin 947
Visplay, the C.S.I.R.O. Graphical Fortran System G. Shearing 967
Software for Satellite Graphics A. R. Rundle 995
xi
Optimum Systems Design of Computer Driven
Graphics Terminals J. D. Foley 1007
TDD-An Interactive Three Dimensional Drawing
Program for Graphical Display and Lightpen R. J. Hubbold 1035
Languages for Graphic Attention-Handling I. W.Cotton 1049
PART 12
Computer-generated Geometric Shapes
Interrogation Techniques for Parametric Surfaces M. A. Sabin, B. A. C. Weybridge 1095
Analysis of an Efficient Homogeneous Tensor
Representation of Surfaces for Computer Display T. M.P. Lee 1119
On Linear Differences Curves D.Cohen 1143
Interactive Surface Design A. P. Armit, A. R. Forrest 1179
The use oflnteractive Graphics for the
Preliminary design of a Ship's Hull K. J. MacCallum 1203
PART 13
For Reference
Some Commercially Available Computer
Graphics Systems 1217
Index 1225
xii
Introduction
Computer graphics is no longer merely a technique of promise. The case studies in this book prove that
it is a technique which has already identified itself with progress in an astonishingly wide range of app-
lications, to the extent that it has been necessary to group many chapters into sections dealing with
specific categories, such as the design of electrical circuits, civil engineering, architecture, nuclear and
space science and text editing.
In the last couple of years, computer graphics has blossomed out from the stage in which it was
confined almost exclusively to the large scale industries of aircraft and automobile engineering. It has
also developed additional advantages, mote than the simple idea of doing the same thing more quickly.
Now the technique offers entirely new ways of doing old things, with consequent greater efficiency and
accuracy; and it also brings a way of doing new things, which were previously not possible. In the
introduction to their paper in Part 12, Armit and Forrest state: "We do not discuss those systems which
are merely computer versions of existing design methods, but rather those systems which make use of
techniques for design which are beyond the possibilities of conventional drafting." Similarly, Ranaweer3;
and Leckie end their paper in Part 4 with the comment: "Thus the man and the machine can work as
a team to arrive at a solution better than that which can be arrived at by either one alone".
Naturally, the major concern of most of those who are working or who would like to work with
computer graphics is the question of economics. What is it worth to a company to take advantage of
the benefits to be achieved through the technique? Many of the chapters in this volume trace the pro-
gress made in evaluating the worth of computer graphics and many describe the current attitude to
computer graphics of firms which have investigated the economics of their applications. In almost every
chapter, the standpoint is one of regarding computer graphics as a practical industrial tool or research
instrument and then showing how it is best applied and how it can be used most effectively and econ-
omically.
There is an urgent need for the cross-fertilisation of ideas from one industry and application to
another. This is a major objective of this volume and of the symposium from which the material has
been compiled. At the Computer Graphics 70 International Symposium staged by BruneI University,
Uxbridge, Middlesex, in April 1970, no less than 110 renowned experts presented papers or chaired
discussions, sharing their experiences with delegates from not only the world of computers but also from
every major branch of industrial, commercial and professional activity. To ensure an even wider audience
so that the information presented would be of the utmost assistance in furthering the development of
computer graphics, the papers have been selected and edited specially for this volume and a smaller
companion volume entitled "Computer Graphics in Medical Research and Hospital Administration"
now available from Plenum Press.
This main volume, "Advanced Computer Graphics - economics, techniques and applications",
is, as far as can be ascertained, the most comprehensive work on the subject ever published. It is con-
cerned with computer graphiCs as the most efficient man-machine interface. Most of the chapters are
based on design work requiring highly sophisticated vector display terminals or hard-copy plotters for
high accuracy output. Other chapters are concerned with the use of alphascope terminals; here the
emphasis is on visual man-machine interaction by means of text alone.
A volume of this size, with its complex text and its wealth of illustrations, would normally not see
the light of publication for at least 18 months from the date of completion of the editing. However, as
speed in the dissemination of the data contained here, is so vital in what must be the most rapidly
developing sector of modern industry, we have opted for the direct reproduction by photographic
means of the original author's typescripts. This has resulted in cutting at least twelve months off the
production time.
xiii
We are extremely grateful for the excellent co-operation we have received from the individual
authors whose papers are published here, and to their various organisations which have agreed to
publication of work done on their premises. Thanks are also due to those session organisers from
Computer Graphics 70 who were so effective in helping to arrange for so many authoritative people
to contribute their material. The session organisers were:
We should also like to express our gratitude to Sydney Paulden, for his invaluable help in prepar-
ing the material for press.
ROBERT D. PARSLOW
R. ELLIOT GREEN
September 1970
xiv
PART I
P. A. Lunday
In the five years since this conference, there are still a great many
questions and problems that seem to have been unanswered. Not
the least of these questions is why this dramatic and dynamic field
has not exploded as people anticipated that it would. I think it is
generally accepted that the expansion of the field has been a dis-
appointment to a great many people. We are still looking for
answers to questions associated with the types of applications that
appear to be profitable, the method of justifying the equipment,
types of software that are required, the nature and type of hardware
that is most appropriate, the costs of installation, etc.
3
Many of these questions still appear truly unanswerable. On the
other hand, it may be possible to assist us in our course of the 70's
by examining the experiences of the past five years. Even though
specific questions may not be answered, certainly the scrutiny of
the problem can be useful. Furthermore, in cases where we cannot
answer the question then maybe it is appropriate to understand why
the questions can't be answered.
The implication is that the user is interacting with the computer system
and programs during the solution to his problem. Carried a step further,
we find that the" user can deal with the problem in his terms rather than
those of the computer. In fact, I believe our experience of the last
several years begins to indicate that we are dealing with a subtly but
dramatically different approach to the solution to problems on computers.
While there does not seem to be any great consistency or trend in appli-
cations, there are several which appear to have proven profitable in a
production environment. These would include:
1. Numerical control
2. Electronic circuit des ign
3. Circuit layout
4. Structural analys is
5. Optical deSign
4
savings of something greater than six to one, and a turnaround improve-
ment of ten to twenty to one, the applications can become very attractive.
On the other hand, we examined some very low use applications which
turned out to have extremely high potential for manpower savings. These
applications were not frequently used on computers because the turnaround
time provided was inconsistent with the requirements of the user. These
programs were used in the solution of basic engineering design problems.
Their appeal to the user was reflected in his ability to easily communicate
the input data and understand the procedures required by the application
programs. In other words, we had high economic potential, user appeal,
and a mass market.
The benefits achieved by these approaches involve the concept that the
programmer can generate his results while interacting with the central
5
computer. Is it not reasonable for us to look at conversational
compilers, as semblers, etc., as the "applications" of the programmer.
Data base records that exceed a million bytes in length will not be
uncommon. When you couple the size requirement with dynamic
access, the task is rather imposing. It is not my intent to imply
that the problem won't be solved but it certainly must be identified
I
6
user-defined language. It allows the user to define the language in
his own terms. In addition, we have done a great deal of work on
data base support in the form of the IMS/360 System. Embedded in
IMS/360 is Data Language/I (DL/I) which was designed to separate
the structure from the application program.
Both of these programs cannot help but provide us with a much better
understanding of the kind of techniques that are necessary for solu-
tions to these problems. What is really important about these two
systems is that they evolved from studies of a broad range of
manufacturing and engineering application programs. Not because
of one application - but because we needed a broad based method-
ology to addres s a wide range of problems.
7
EVOL UTION OF THE SYSTEM SUPPORT
attached I how the data can be managed I how the computer resources can
be shared how demands are serviced etc. In the world of batch
I I
computing I these problems are not too germain. In the world of interac-
tive problem solving these functions carry far greater significance to
I
each one looked to the user like a computer of its own. This system
permitted us to operate two 2250's in separate partitions with a batch
program in the background.
8
in serially reusable form and natural I/O waits allowed for uniform
servicing of the consoles. As the number of consoles or CPU load
increase, the need for time slicing evolves. Several techniques to
provide this facility were designed and the function is now supported
under OS/360.
The fact that these facilities exist under OS/360 has proven to be one
of the major factors allowing graphics experimentation in recent years.
Without them, dedication of the CPU would be required. With them,
the resources are shared at virtually no cost to the main line batch
user.
Our attention was next directed to the question of user interface to the
system. When confronted with the recognition that the 2250 consoles
will, in all probability, be located remotely from the computer a new
I
problem arises. How does the user activate his console? How does
he select his job? How is accounting controlled? How are files
identified? How does he terminate his session? etc. Here again we
were confronted with a problem with no previous experience in the
OS/360 environment.
1. Logon
5. Logoff
There are numerous other system considerations that can have an effect
on the success of the installation. Conservation of core storage is
perhaps one of the most difficult. As the number of consoles and
9
applications grow, this becomes more of a factor. Under almost any
circumstances the need for rather specific constraints must be placed
on the application architect. This includes the size of resident
executors, trans ient modules, data blocks, common res ident code, I/O
routines, system control blocks, buffers, etc.
I believe that the role that the interactive graphics terminal plays in the
systems environment needs to be put into perspective. Let's consider
some of the device-oriented functions required by the system. These
would include: buffering, light pen tracking, incremental vectors,
absolute vectors, alphanumeric data entry, light pen interrupts, function
key attentions, alphanumeric display, interrupt identification, channel
load, CPU load, display resolution, refresh cycles, etc. These are but
some of the functions that immediately come to one's attention.
10
If one is motivated primarily by a requirement to reduce the price of the
device ,the software approach would appear favorable. This means, of
course, that the functions required for the interactive graphics systems
would have to be totally software oriented.
On the opposite side, of course, is the fact that the functions can be
implemented in the hardware and produce a higher device cost with a
lower software requirement.
The most common solution we have found to this problem is the attach-
ment of what are known as channel extenders to the system. This
allows the user to extend his device up to ·about 12, 000 feet from the
computer system.
I believe it is safe to say that the computer explosion in the last ten years
has been primarily associated with record keeping functions. It is some-
what paradoxical that the early stimulus for the market of large commercial
11
computer systems was provided by the scientific community. It is true,
however, that one can hardly rent a car, cash a check, fly an airplane,
buy stocks, etc. , without becoming either directly or indirectly involved
with a computer record keeping system.
This is, of course, all well and good except that a question is typically
asked, "who can afford it?" This is a perfectly valid question and
certainly deserves attention. I believe this question carries much the
same connotation as it did to general purpose computers 15 years ago.
Certainly the high cost of the computer graphics environment has been a
deterrent to a number of potential users. Most of the early users have,
in fact, spent conSiderable sums of money in developing these
12
capabilities. In light of the apparent slow progress and the level of
investment required ,one would normally expect a regres s ion in develop-
ment. . My impression is that just the OPPOSite is true - the development
activities of the early users have continued at an equal or higher rate
than in the past. It appears that the advantages cited five years ago
have been achieved in a sufficiently broad range of applications that the
efforts are continuing.
high.
This leaves the question open relative to the smaller user. He certainly
has the same problems as our larger customer but not on so grand a
scale. How then can he afford to become profiCient with the techniques
implied. We have atte,mpted to address this question with a system
previously mentioned known as PLAN.
PLAN was originally designed for the IBM 1130 computer. For those who
are not familiar with the 1130 it is a small binary computer which is
I
While PLAN was not originally designed for graphics it was deSigned
I
and index these modules the ability to dynamically load the modules
I I
and the ability to define the language of use in the user's own terms.
We have used the system to great advantage for the development of a
number of our application programs.
The PLAN System not only provides the user with an inexpensive way of
deSigning conversational application programs but gives him a tool
which will permit a better understanding of the technologies being
discussed.
An extension of the PLAN System known as PLAN Graphics Support (PGS)
I
13
I previously mentioned our selection of Operating System/360 as the
major vehicle for our development. We looked at a number of highly
specia:lized systems programs and rejected them because of user cost
considerations. Our main thrust has been to integrate the interactive
graphics funcUons within the framework of our customers' main line
teleprocessing and batch systems environment. This, of course I is
OS/360.
14
While there are still many problems that have not been resolved, I
remain confident that the potential for profit in the field is huge. To
me it is significant that the problems have been identified as rapidly
as they have. A great deal of support has been provided during the
past several years. There is certainly sufficient capability to permit
one to get started in the field. I believe the progress of the last five
years represents far greater advances than all the previous years
combined.
Our major chores during the coming years will be to consolidate and
expand on this support. This will require further experience and
analysis in order to continue to address the basic problems.
Five years ago we predicted it would be ten years before we came close
to our ultimate objectives -- I still believe this to be a realistic predic-
tion.
15
FUNDAMENTAL PROBLEMS FACING THE
GROWTH OF MAN COMPUTER GRAPHICS
S. H. Chasen
Senior Staff Scientist, Head, Man-Computer Systems,
Lockheed Georgia Company, Marietta, Georgia 30060,
U.S.A.
ABSTRACT
The paper describes four broad problem areas which face the growth of
man computer graphics. They are economics, the realization of the
true potential, software, and implementation. Some solutions are
suggested. For example, economics can be attacked through better
system utilization, better system integraticn, and by assessing other
attributes. The problem of realization of potential is addressed
through a discussion of the principles of computercentrics and optimal
design and analysis is explained.
17
FUNDM~NTAL PROBL&~ FACING THE GROWTH OF l~-COMPUTER GRAPHICS
In mid October of last year, for example, there was a major confer-
ence in the U. S. that treated the subjects of Computer Aided Design
(CAD) and Computer Aided I1anufacturing. This conference was spon-
sored by the Department of Defense and the principal industry associ-
ators. Experts were gathered from about the country to form working
panels that would set forth positions on a number of relevant topics.
Since interactive computer graphics is closely aligned with CAD, many
of the statements about CAD apply to graphics. This is particularly
t~ue of the introductory statement of the panel position on CAD state-
of-the-Art. It stated lllike many other areas of computer usage, CAD
is at an interesting adolescent stage. If we regard ourselves as
parents of this adolescent, we feel the same concerns over its growth
as we would toward any charges we brought into the world. We can
only barely remember how we conceived it; we recognize that its growth
is inevitable and we feel that we should be guiding it in a way that
encourages it to ripen into a responsible and respected member of
societyll. This very descriptive passage certainly applies to MCG
except, perhaps, an adolescent status may be too generous. Only a
very few activities have had iive years of experience. Therei'ore, a
kindergarten stage might be more appropriate.
18
It is not without a deep appreciation of the youth of MCG that we face
the problems that it must overcome in its growing process. Perhaps
the most prevalent and the most fundamental problem is that of eco-
nomics.
The question is often asked, "what would be the cost level required
to bring about heavy utilization?" That is, of course, a qualitative
question which might be addressed by making an analogy to an entirely
different problem--a flood. When a river rises out of its banks,
each foot of further rise results in coverage of vast areas of land.
The coverage is a function of the statistics of the terrain. In a
similar way, any decrease in system costs for graphics will result in
tremendous increases in utilization. Correspondingly, the amount of
justification required prior to implementation would be drastically
reduced. The expected exponential expansion in utilization as a
function of reduced costs is depicted in Figure 1.
19
saving of $250,000 using MCG for structural analyses on the C-5A in
lieu of using conventional computing procedures. It is interesting
to note that the saving was a result of reduced man hours for data
reduction. Based on a less than optimal graphic console rate of
$75/hour, purely computational costs were approximately equivalent.
20
Another major problem facing the growth of MCG is the full realization
of its true potential. Of course, no one can anticipate the many
innovative ways in which the MCG system will be manifested. In fact,
only the more experienced can see beyond the near term values as
applied to specific applications. Certainly, specific applications
are useful in demonstrating to management the nature of the concepts
and in stimulating their minds towards MCG use on a wider spectrum
of applications. But relatively few realize that such MCG benefits
are comparitively minor in terms of a more comprehensive computer-
centric potential. In such a system, it will be possible to view
multiple applications in proper perspective. In industry's present
mode of highly specialized operations, we tend to optimize in short
linear steps as exemplified by the chain of Figure 2.
21
In this chain, the operation is characterized by the three specialty
areas, A, B, and C. Each specialty performs its analyses and design
contribution in the best way it can. The process toward project
completion is passed on from one specialty to another with frequent
repeated efforts on the part of each specialty. The actual sequence
or order of specialty action may differ from project to project, but
the objective is to complete the total project in minimum time and
minimum cost with maximum quality. The "daisy chain" is quite eratic,
in general, and is ripe for straightening.
22
giving him the best of possible opportunities for technical, communi-
cation and computational power. It is certainly true that some of the
more mundane jobs may be gradually eliminated. However, a gradual
C
D
EXISTING SEQUENCE
D
PROPOSED SEQUENCE = 1/2 EXISTING SEQUENCE
23
priority. This is in the area of software. With the proliferation
of hardware devices, there is a veritable infinitude of configuration
possibilities. Along with this hardware are the ever increasingly
sophisticated executive systems which attempt to blend the best fea-
tures of the hardware, the application program, and the console oper-
ator in such a way that the console operator is permitted to do what
comes naturally to him in a harmonious diologue between man and com-
puter. Unfortunately, there seems to be no scientific approach which
dictates specifications for software systems that adapt to changeable
hardware and applications. Ideally, it is desirable to create a
general software package which can adapt to most anything, but too
much generality leads to severe problems in capacity and in acceptable
on-line response times. Unquestionably, this is a delema. When we
get one attribute within tolerances, other attributes are likely to
fall outside of tolerances. We have a significant problem in getting
sufficiently versatile software with adequate capacity and acceptable
on-line response times at prices we can afford. In other words, the
practical system is inherently expensive.
The increased complexity of the software, the hardware, and the appli-
cations'makes trouble shooting or debugging somewhat more difficult.
WIlen an error occurs on an MCG system, it is by no means always clear
as to what failed. For example, on a prototype structures problem
at Lockheed-Georgia, the screen would "bomb out" whenever a vector
went through the center of the screen at coordinates, zero, zero. It
was not known whether or not an overflow condition was caused or
whether there was some peculiarity in the scope. It was eventually
determined that there was a loose wire in the scope that set up tran-
sients whenever the vector went through the scope center. These
transients can play havoc with hardware and are often set up by
nothing more than a power surge.
24
As systems become more complicated, the opportunity to make precise
analytical assessments becomes increasingly difficult. Perhaps 90%
or better of our decisions are largely judgemental in nature. We
are forced into relying more and more on the technical judgements of
those in whom we have either recognized their judgemental ability or
in whom we have designated the judgemental responsibility. Character-
istically, the latter case is far more prevalent. As our technical
personnel mature, it is most essential that we learn how to figure
their "scoring potential", as in English football. We must be careful
to avoid persuasive theories from those who have a history of inaccuracJ
On the other hand, we must be careful not to criticize the kicking
techniques of those who have demonstrated a superior ability to score
goals. It is essential that we learn how to identify high quality
judgement and expertise.
25
In summary, the principal problems have been cited as economics,
realization of full potential, software, and implementation. Some
solutions have been suggested. The economics problem can be attacked
through better system usage, better system integration, and by assess-
ing the value of other attributes. The problem of realization of
potential can be addressed by emphasizing the very nature of inter-
act.ive computation. The concept of computercentrics promises the
breadth of understanding necessary for more optimal design and analysis.
The ever increasing problem of developing complex software can be
attacked to some extent through modeling and simulation. Dependence
on judgement is becoming increasingly essential in assessing software
potential. Therefore, it is suggested that more emphasis be given
to the recognition of those who have developed a proficiency in
applying good judgement. The last treated problems are transition
and implementation. They can be attacked by getting concerned organ-
izations to have vested interests and by picking initial applications
where technical interfacing problems are minimal.
In conclusion, the problems facing the growth of MCG are quite sig-
nificant. Whereas we might expect to take a few discouraging back-
steps on the steep climb to success, the very nature of MCG portends
its inevitable success.
26
ASPECTS OF INTERACTIVE GRAPHIC SYSTEMS
Richard J. Dowe
1. INTRODUCTION
During the last decade, were you a clock watcher? Leonard da Vinci
wrote" A clock (is) to be used by those who grudge the wasting of time. " 1
Those of us who were involved in the advancement of computer graphics
during the last decade might ponder that question. How many of us were
clock watchers? Was there a wasting of time?
27
II. CRITICAL SYSTEM FEATURES
3. An Approach to a Solution
28
development provided the impetus for improvements in interactive
graphic display systems in both hardware and software capabilities.
29
of memory. Latter are described the features of this system and the
types of activities performed by this resident executive. However, it is
reasonably certain that this amount of resident executive space is a
maximum requirement because in the next generation of graphic systems
more of these functions will be performed at the terminal.
Transfer Distance
Worst Case
Transfer Avg. Response Response
Rate 3K Bit Count lOOK Bit Count
2000 BPS 1. 500 SEC. 50.00 SEC.
2400 BPS 1. 200 SEC. 41.00 SEC.
40800 BPS . 070 SEC. 2.45 SEC.
6xl0 6 BPS .005 SEC. D.16SEC.
Figure 2. 2 System Response ... Time per Transfer
30
is evident that in those interactive graphic systems where both a rapid
response and a remote terminal capability is necessary the communica-
tion costs are going to be high. Ideally one would like to configure a
total system such that applications requiring high response rates are
performed by locations adjacent to the host computer and those activities
tolerant of slower response rate are performed at remote locations.
31
3000 IGS - DIRECT CHANNEL COMMUNICATIONS
- - HOST COMPUTER - - -
MASTER OPERATING
SYSTEM
APPLICATION
• SOFTWARE INTERRUPT
PROGRAM HANDLER
• HARDWARE INTERRUPT
HANDLER
FORTRAN
CALL
INTERFACE
~ BUFFER INTERFACE
- - - HOST COMPUTER - - -
SCOPE
APPLICATION OPERATING
SYSTEM
PROGRAM COMM.
•
PACKAGE
•
(IMPORT)
• COMM. PACKAGE
GRAPHIC
(EXPORT)
SUBROUTINES
•
FORTRAN
' - - - - - CALL
INTERFACE
~ BUFFER INTERFACE
32
- - DISPLAY SUBSYSTEM--
CONTROLLER
• 4.16K BUFFER
8
• HARDWARE
TRACKING
~
• HARDWARE MOVE
• MACRO FUNCTION
• SUBROUTINE
FUNCTION
UP TO EIGHT
_I.--
L
DISPLAY SUBSYSTEMS
PER CHANNEL
• INTERRUPT PROCESSOR
..-- • 4-8K
8
BUFFER
• SOFTWARE TRACKING
roo !---
• MACRO
• A/N QUEUING
FUNCTION
• DISPLAY ITEM QUEUING
[ BUFFER INTERFACE
I--
L-
UP TO SIX
DISPLAY
SUBSYSTEMS
SOFTWARE FUNCTIONS
33
III. CDC's CURRENT INTERACTIVE GRAPHICS SYSTEM DESIGN
PHILOSOPHY
34
Functionally, the basic graphics package is divided into these parts:
application executive routines, graphic utility routines, graphic interface
routines, and the resident executive interrupt handler routines. Of these,
the first three types of basic graphics subroutines are co-resident with
the graphics application instructions and data. The application executive
is a set of library routines that provides the control mechanism for
segmenting and sequencing application tasks or overlays. This
capability allows for efficient random accessing of application tasks.
The graphics utility routines are a set of library subroutines of general
application to graphics. These encompass scissoring, list processing,
and byte stream generation. Graphic interface routines provide tasks
for editing the display buffer, for controlling light pen and keyboard
inputs, for light pen tracking, and for alphanumeric text inputs. The
resident executive interrupt handlers consist of subroutines for
processing both hardware and software (that is, application-program-
generated) interrupts.
35
command from the central processing unit. Both of these features place
little or no load on the CPU while providing an immediate response to
the console operator.
36
9. Low priority batch jobs are able to co-exist with graphic jobs
with no appreciable effect on console response.
V. SUMMATION
37
graphics, it seems that in the early to mid 1960 time period the limiting
factors were:
REFERENCES:
38
4. Hart, D. E., Keydata Symposium, Interactive Graphics;
Boston, Massachusetts; May 13, 1969; pp. 112
BIBLIOGRAPHY:
39
SOME COMMENTS ON SUPPORTING MULTIPLE
INTERACTIVE GRAPHIC CONSOLES IN A
PRODUCTIVE ENVIRONMENT
41
assistance from the computer operator. The Graphic Terminal
Services package (G.T.S.), which enables job scheduling as above
via the 2250, is used for both 2250 programs and also for scheduling
certain batch programs.
2. User Considerations
The majority of the users of our 2250's know very little about
computing, their most common contact with computing is via a 2250.
This must be remembered when considering the following paragraphs.
42
At no point in the execution of the program is the user
left in doubt as to what is happening and what options
are available to him. Where appropriate, messages are
displayed which provide guidance as to the effect of
particular options. In addition if the user selects
the PRINT (PLOT) option the displayed word changes to
PRINTED (PLOTTED).
(iv) All programs are written in such a way that poor input
data cannot cause program termination, either an error
message indicating invalid input data is displayed or the
program must complete the calculation and display answers
from which the user will realise that something is wrong.
3. Programmer Considerations
44
The programmers also plan implementations with testing on the
2250 in mind. In addition to the obvious modularity of program
this implies such things as displaying diagnostics on the screen,
providing a data dump option at all program waits and in extreme
cases including a routine which allows scanning and modification
of core at selected points are used.
4. Evaluating Economics
45
4. Evaluating Economics (Continued)
46
to include recently developed methods of analysis; in addition
work is being carried out to assist in the design of the blade overall.
References
47
DIGITAL TELEVISION
A LOW COST APPROACH TO MULTI TERMINAL
GRAPHICS
Sol Sherr
Abstract
INTRODUCTION
49
the low cost single terminal system; and with performance equiv-
alent to or better than that attained with other approaches usir
either random inputs to the CRT or analog television derived
from a vidicon camera or an analog scan converter.
The advantages of television techniques in general (which
will be discussed in detail a little later) as a means for
achieving low cos~ displays in a multi-console system have been
described in several other papers, (2, 5, 6) and examples of
such systems are the display/control system for the manned
space center (6) and the University of New South Wales Graphi-
cal Data System (5, 7). However, the first uses a vidicon
camera to convert fO television format from the image produc€d
on a Charactron R (8), and the second uses an analog scan
converter to provide video signals which are stored on a video
disc. In both cases, the conversion process used leads to
degradation of the image due to the Kell factor (described late)
and image smearing due to the retentivity of the vidicon and
scan converter. Thus while operational experience with these
systems has been excellent, and has substantiated the claims as
to the advantages of TV systems, digital TV retains these advan-
tages while removing the specific disadvantages just adduced.
As an example of digital TV replacing analog TV techniques,
the present Manned Space Flight Center system was certainly
good enough to help land men on the moon, but it is in the
process of being partially replaced by a digital TV system as
the result of experience with a small evaluation system.
While it is true that there are some small deficiencies
associated with digital television (as will be covered more
fully later), these have not proved to be detrimental and are
far outweighed by the performance improvements and low terminal
cost attainable with this technique. The deficiencies are
primarily in the esthetics of the characters and images re-
sulting from digital techniques, (although even these may be
overcome by appropriate design) and usually do not detract
from the legibility, usefulness and total quality of the dis-
played information. These factors will become more apparent
after I describe the basic technique and illustrate it by means
of specific applications.
TECHNICAL DISCUSSION
50
means of the block diagram shown in Figure 1. The unique parts
of this diagram are the blocks termed Data Processing Unit and
Picture Assembly Unit which accept digital inputs in any com-
patible computer language and convert them into a video pic-
ture in the picture assembly memory with a memory location
corresponding to each element of the visual image. Several
designs have been described (3, 9, 10) for performing this con-
version, but in general, the process may be understood by ex-
amining the expanded form of the Digital Television Display
System given in Figure 2. For example, if the input contains
a 26 bit code with 6 bits defining an alphanumeric at a par-
ticular location, the character generator logic converts it
into a dot matrix character by causing the appropriate lines of
the program logic to be in the "ONE" state. The program and
address logic similarly selects the designated memory locations
to be driven by the character generator logic and the output
lines are routed to the correct location by means of the address
logic operating on the position bits in the computer word.
r--------------,
FROt.l ENCODED
DIGITAL {
COMPUTER
T DATA
PROCESSING
CHARACTERS
lINES,SYt.lBOlS PICTURE
ASSEt.lBLY
PICTURE DATA PICTURE
REFRESH J.-I VIDEO/SYNC
-t-I
SIGNALS
DATA TO UNIT UNIT UNIT TO DISPLAY
COt.lPUTER
I
I I
I I
I DISPLAY
ENTRY
I
I CONTROLS
I
L ______________ ,-1
Figure 1 - Digital Television System Block Diagram·
Once the starting point is selected, the write lines are con-
nected to the correct memory locations and energize them as
directed. The operation is performed on each computer word in
sequence until the entire frame is stored in the picture
assembly memory at which time the computer may be disconnected
and move on to other tasks until another frame is ready for
generation or some change is to be made in this frame. At this
point a complete equivalent of the visual information is con-
tained in the picture assembly memory, with each memory element
in the state corresponding to its associated element in the
visual image. The information is then transferred from the
51
video assembly memory to the appropriate tracks on the re-
fresh memory, and the system is now prepared to process the
data for another display. This procedure is followed until
processing for all display consoles is complete and all are
being driven from the refresh memory.
I CHARACTER
II II II I
I
CIRCLE,GRID CORE
II MAGNETIC TV
I
INT/EXT
II
& VECTOR MEMORY DRUM SYNC SYNC
I GENERATORS ,,
FROM I II II :
DIGITAL {
COMPUTER I INPUT
BUFFER
PROGRAM
LOGIC &
II WRITE,
READ,&
II DECODE TO SERIAL
COMPOSITE,
} NON-COMPO
DATA
TO
I MEMORY COORDINATE, I ADDRESS II LOGIC VIDEO VIDEO & SYI
TO MULTIPLI
L ______ :..1 L __ ~ L ______ :.J
CONVERSION LOGIC CONVERSION
COMPUTER DISPLAYS
CURSOR DATA
r.- -.-----,
A/N &FUNCTION DATA I· KEYBOARD
~----4-'-;';"';;":;';"":';';':"':"';":''''-=-''''-----.:.t 'MESSAGE
DATA ENTRY
CONTROLS
.,'
ORGANIZER (AT EACH I
L
' ______ DISPLAY)
-~
53
Large screen displays of the TV projector or Light Valve variety
can be included readily, since they can be treated as simple
additional monitor stations. Various data entry devices are
also included in several of the systems to be described such
as light pens, keyboards, and track balls.
Finally, the technique is inherently compatible with the
matrix displays presently under development, whether they use
light emitting diodes (LED) plasma panels or liquid. crystals.
Thus there appears to be no reason why these cannot be incor-
porated as they become available.
DISADVANTAGES
Since nature abhors an optimum solution, if I may be
permitted to paraphrase a common bit of conventional wisdom,
the advantages just described must have at least a few asso-
ciated disadvantages. Prominent among these is the need for
relatively large memory capacity. Given the need for a million
data points or 1000 x 1000 TV lines of resolution, the memory
capacit~ needed is 10 6 bits per channel in the refresh memory
plus 10 bits in the frame or video assembly unit. The situ-
ation would be even worse if a separate video assembly memory
were used for each channel system. In that case, which is the
equivalent of a single channel system, the memory costs could
be much too high. As a result, the digital TV approach is
generally not economical for single channel systems, although
even all core systems have been found preferable to non-TV
systems due to certain other special requirements such as
mixing TV inputs and providing remotely located slaves. How-
ever, it should be noted that memory costs are dropping rapid-
ly, and the time is probably not too distant when large scale
random access memories will be low enough in cost ( 5 cents/bit)
to be used extensively in this type of system, (13) while
large capacity rotating memories are anticipated at less than
0.01 C/bit (14). At present the approach is to minimize random
access cost by using a common assembly memory and a low cost
drum or disc memory for multiple channel refresh. The cross-
over point appears to lie between 2 and 5 channels, and has
come down from the 8 to 10 channels of a few years ago.
Another potential limitation is in the resolution that can
be attained practically. While theoretically any resolution up
to the spot size of the CRT is possible, in practice the rapid
growth in memory size (as the square of the resolution increase]
and in video bandwidth makes anything beyond 1000 x 1000 lines
rather impractical. Thus line widths of about 16 mils on a 16"
diameter viewing area, or a minimum character height of about
0.1" are the best attainable at present. This has not been a
significant limitation in most applications to date, (since
smaller characters are generally not desireable for human engi-
54
neering reasons) and it may be anticipated that advances in the
technology will allow 2000 line systems to be built before too
long if required. Remember that a 0.111 character on a 1211 x 1211
viewing surface allows maximum character density of over 10,000
characters, and the human is probably not capable of using more
than 4000 at anyone time. Figure 3 is an example of a 4000
character display and it is apparent that much greater data
density would be self-defeating from the human factors (English
translation - ergonomics) point of view.
55
that legibility is not affected, if this larger matrix (7 x 9
or 9 x 11) is used (15, 16) but the appearance is still some-
what different from that found in high quality cursively
ABCDEF
GHIJKL
MNOPQR
STUVWX
YZ1234
56789-
?&/+ 1 •
Figure 4 - Dot Matrix Characters
56
is at least as good as that attained from cursive writing tech-
ques in any practical sense. Thus the deficiencies of the TV
character are more apparent than real, and once the user has
climbed over the esthetic barrier, recognition of over 95% will
be achieved. Thus while it may not satisfy esthetes it is more
than adequate for~operational needs.
ABCDEFGHIJKLMNOPQRSTUVWXYZ1234?&/+,.
a
xy Z [ ] b. 181
P Q RS T U VW
H I J K L MN e RK[]EF5HI JKLMNDP
@AB C DE F G QR5TUVWXYZI~3Y~6
b
Figure 5 - Comparison of DTV and Cursive Characters
57
high voltages (2-4KV) must be switched at high speed (30ns) in
the television format, so that it may be necessary to organize
the data on a color basis and use a sequential rather than
parallel technique. Alternates are possible such as higher
resolution shadow masks, the current sensitive color CRT (18),
or even the discarded color wheel, and if the need arises they
will probably become available so that this restriction does
not appear significant.
DESCRIPTION OF OPERATING SYSTEMS
A number of systems have been installed which use the
digital TV technique and have had a considerable amount of
operating experience. Table 1 lists a set of nominal para-
meters for one of these systems, and I have selected 5 as rep-
resentative of differing levels of complexity and performance
capability. These do not include all aspects of possible mech-
anization, but are sufficient to illustrate the use of digital
TV in actual applications and provide adequate performance
history to determine reliability, maintainability and ease of
use. o.ther configurations are feasible and can be adapted to
user requirements.
FEDERAL AVIATION AGENCY - AIR TRAFFIC CONTROL (3)
Several years ago the Federal Aviation Agency had a need
for a system which could add alpha numeric blocks, lines and
vectors to the radar data being presented on the CRT, and re-
place the small plastic chips used to manually track the radar
targets. The radar was scan converted by means of an analog
scan converter to a 945 line television format, and the sym-
bology needed to be in the same format and capable of being
mixed with the scan converted radar. The technique developed
by Hazeltine Corporation for accomplishing this was essentially
the one briefly outlined in the technical discussion, and sub-
sequent systems evolved into that shown in Figure 6, where the
block labelled ANG-3 (Alpha Numeric Generator 3) may be ex-
panded into Figure 2. This system is presently operative at
the common IFR room at J.F.K. International Airport, New York,
New York, U.S.A. and the Air Traffic Control Centers at
Atlanta, Georgia; Jacksonville, Florida; and Atlantic City,
New Jersey. The ANG-3 accepts inputs from the computer and
converts them into the symbols, alpha-numerics, lines and vector,
in the TV format, which are then mixed with the scan converted
radar and presented on both the CRT's and large screens. This
is a fully interactive system ".~ith as many as 12 channels driven
independently f~om a single ANG-3 and input functions accom-
plished by an AN Keyboard, trackball and function module, one
set for each operator or controller. Update rates for all dis-
plays are between 0.6 and 2.4 seconds depending on the amount
58
of data and the number of displays being updated. Figure 7 is
a photograph of the appearance of the display on both the CRT
and the large screen, which latter uses an Eidophor light valve
---:1
ATC
RADAR & I SCAN
CONVERTERS
TV
VIDEO r---
DISPLAYS
(CRT 1
BEACON I MIXER LARGE -SCREEN)
- - ::J
~----,
I ---, I
RADAR & TRACKING
r---r - ---I
I
ATC
RADAR &
I BEACON
r---. 1 DISPLAY
IANG-3 I
VIDEO
I I
BEACON DIGITIZERS
PROCESSING
COMPUTERS ~ ___ .J
L.:_ _:J
Figure 6 - Air Traffic Control System
"Type:
59
Character Parameters:
a) Character Generator - Dot Matrix size is proqrarmnable, any
size up to 16 x 16
b) Character Repertoire - 128
c) Character Size - 1/8 11 high with desirable 3 x 4 aspect ratio
on 8 11 to 1411 TV Monitor (other sizes as
proqrarmned)
d) Maximum characters per line - 146 non-overlapping, over 1000
overlapping characters
.) Maximum lines of characters per display - 68 non-overlapping
seven line high characters
ptsplay Parameters:
I
60
was available to do the conversion to digital TV format, and the
display system was limited to a Picture Refresh Unit, interfacing
61
monitors and on Eidophor projectors. The system obtains data
from the Kennedy Space Center and supplies outputs for ten in-
dependent displays. Figure 9 is a block diagram of this system,
PICTURE
REfRESH
UNIT
r------~
I I
I
MAGNETIC TV
SYNC
DRUM SYNC
I
I
DIGITAL INPUT I
OUTPUT
I
....---1. .
ENCODE,
COMPOSITE
} VIDEO l SYNC
DATA TO MULTIPLE
INTERFACE DISPLAYS
r.- ------,
DISPLAY
ENTRY I TRACKBALL TRACKBAL L I
CONTROLS I LOGIC (PER DISPLAY> I
L ______ ~
62
up to 64 consoles and 64 group displays. This system is shown
in block diagram form in Figure 10. It includes a number of in-
put devices, with digital maps and background storage which
INSTRUCTIONS
'110" COMPUTER
(DlllfCT CONNECTIONI
I'''UT
INSTIIUCTIONS DATA-sn INTE~fACE fOR
"
IN'UTS VIA COMMUNICATIONS LIN"
" *
MCl9"·hc-di,C
SYSTEM OUTPUT
REFRESH
CONTRO~ BuFFERS
"["OR'[S
CHAHNE l UPOA T E
TO
VIDEO RECORDER
" OPTlONA~
CO .. POSITE VIDEO
TO MONITORS
(VIA SWITCH M'TAllI:, MIXERS
a TRA .. SMIS$ION liNKS
AS R[I/UIR[DI
63
single symbol format, draw line segments between any pair of
points as specified by computer, display connected line segmentE
connecting all points specified in a computer generated list ane
has two completely interactive channels for editing and data
Manual Inputs
Hard Copy Requests ~
r--j---, r------,
Cursor. r- Dig;t;l--' r - [)i;;ital - 1 r - - ~- -l r - - - - - -,
~ Keyboard , I I I
Op'~'
: Keyboards , Map and , , Map and , , Hard Copy
r - - - - - - JI I
I
and I
Track Ball ,
, Background
, Storage
,
I
I Background'
, Storage ,
I
,
Selection
LogiC and
~
, I
Console
Hard
I
, }
I Track Balls ~ Control I I Computer , I Picture , , Bc~;e I , Copiers ,
L ---f-- J L J L El"ments J L J L
L
-r---
Logic.J Language
1---r 1- -"1- - -1- -
er J
- -§- -C:lsole Display No. I
Manual Inputs
f Console Display No.2
Console Display No.3
BASIC SYSTEM I r---
Console
Console
Display
Display
No.4
No.5
Picture ~ Console Display No.6
Digital , Element Picture
From Computer :---.
Interface Element r----o Console Display No.7
Symbol and Assembly
Other +- Logic Vector and Symbol and Recall
Digital Source ---. Generator Library -Core Data ~ Console Display No.6
Recirculators
1
Memory
J,;r---------'i
~ Group Display No. I
I 1 ~ Group Display No.2
Lr-
~ ~ Group Display No.3
_1_ --, J- 1
Manual
Inputs
r--l--,
,
.1
I
I
Background I
Digitizer I
r-
II Input
Data
Recall
I
I
1
r- - -
,
I
I
Video'
Color 1
I
I
Video
Switch
I
1
I 1
1 ---=- Gr~~ Display No. 64
Options
, Core I I Encoders J ., Matrix I
L ____ ..JI
1 I Memory I
L--f--~ L _____ J
I ,
L _____ J
_ Inputs from TV Cameras
OTHER SYSTEMS
64
Teletype Data
Prom D!'.TA
IIOn:l,torinq ~
.~
SET
And Traclt1n
Stations
Composite
~ Computer
, Digital
" Display
, Generator j
Video
Iwitchinq
& Distri-
~
Video & Synch
--" To 20 In-
-) DDG-3 ~ bution \., dependent
I Network
Displays
IlI'.TA
fWlK ~
CONCLUSION
REFERENCES
65
(4) Monitor Systems - Monitor 8500 Digital Display Generator
Data Sheet. News Release, December 5, 1968.
(5) Malcolm Macauley, IIA Low Cost Graphic 'rerminal, II AFIPS
Conference Proceedings, Vol 33, Part I, December 1968,
Thompson Book Company, Washington, D.C. pp 777-785
(6) H. C. Hendrickson, liThe Display Control Complex of the
Manned Space Mission Control Center, II Information Display,
Vol 4, No 3, May/June 1967, pp 52-58.
(7) G. A. Rose IIComputer Graphics Corrununication System ll IFI.r)
Congress 68, Vol 1, August, 1968, pp 211-220
(8) R. E. Thoman, IIA Computer Generated Display System,1I
Proceedings, Third National Symposium, Society for Infor-
mation Display, San Diego, California, February, 1964 pp
146-167
(9) W. J. Dunn, E. F. Linsky and R. A. Battaglia, IIAlpha-
numeric Generator Operation ll Proceedings, Sixth National
Symposium, Society for Information Display, September 1965,
New York City pp 155-166
(10) V. E. Hupp and H. F. Horseman, IIDigi tal Television Message
Generator, II Proceedings, Fourth Na.tional Symposium, Societ~
for Information Display, Washington, D.C., October, 1964,
pp 353-370
(11) R. A. Metzger, IIComputer Generated Raster Segments in a
Raster Display, II AFIPS Conference Proceedings, Vol 34, 1965
pp 161-172
(12) H. R. Luxenberg and R. Kuehn, Eds., IIDisplay System Engi-
neering, II McGraw Hill Book Company, New York, 1968, pp 157-
158
(13) L. C. Hobbs, !'Present and Future State of the Art in Com-
puter Memories,1I IEEE Transactions on Electronic Computers,
Vol EC-15, No 4, August, 1966 P 545
(14) B. Segallis, IISpecial Report on Memories,1I Electronic Pro-
ducts, January, 1968, p 28
(15) D. A. Shurtleff, IIStudies in Television Legibility - A
Review of the Literature, II Information Display, Vol 4, No ]
January/February 1967, pp 43-48
(16) G. C. Kinney, M. Marsotta and D. J. Showman, IIStudies in
Display Feasibility XII. The Legibility of Alphanumeric
66
Symbols for Digitalized Television, II Mitre Technical Re-
port, MTR-206, April 1966
(17) S. Sherr, IIFundamentals of Display System Design, II John
Wiley and Sons, New York, 1970, pp 82-84
(18) T. E. Sisneros, P. A. Faeth, J. A. Davis and E. H. Hilborn,
IIA Current Sensitive, Single-Gun Color CRT, II Presented at
1968 National Technical Conference of SID, November, 1968.
(19) G. W. Oprea, Jr. IIControl Center Computerizes Energy Dis-
play Operation Electrical World, August 26, 1968 pp 73-
ll ,
76
67
PART 2
1. INTRODUCTION
Ninke (Ref.1) has reviewed the different approaches which
have been taken to the design of computer configurations
having gr~phical input-output. Since the advent of single
display consoles attached to a large computer (DAC-1 and
Sketchpad) development has aimed at allowing more consoles
to be attached to a large central computer, minimising the
hardware and operating costs of each console and allowing
the location of consoles to be remote from the computer. In
GRAPHIC-1 (Ref.2) a small general-purpose computer was
interposed betvveen the central computer and. the display
console; Ward (Hef.3) describing the ESL Display at .M.LT.,
also concluded that a small computer must be used bet'v'leen a
display console and a central time-shared computer.
Ninke (Ref.1) states that GRAPHICS-2 achieves satisfact-
ory performance with a 2000 b.p.s. line; two London
University projects (Ref.4) are to use 2400 and 4800 b.p.s.
respectively.
The present paper describes in detail the Imperial
College system in which the satellite graphics configuration
is a PDP-9 and 3L~0 display, the cent ral computer is the
Univac 1108 at the National Engineering Laboratory, East
Kilbride, and the link is a voice-grade line, during 1968 a
dialled-up asynchronous 1200 b.p.s. circuit and later a
4800 b.p.s. private, synchronous circuit.
71
The PDP-9 configuration (Appendix A) has a 16K core
store (18 bits, 1.25~ cycle time), with hardware multiplier,
two 'DEC tape' magnetic tape transports, Type 340 display,
lightpen and communications interface equipment. A 166K
word disc file is being added.
Preliminary work on interactive graphics (Refs. 5 & 6)
was done on a PDP-7 with 8K core store and no backing store.
Experience in this work pointed to the need for a 16K core
store and for back-up by DECtape and disc.
For asynchronous data transmissions via Post Office Datel
200 or Datel 600 modems, a DEC Type 636 Communications
Adaptor was used. For synchronous' transmission at 4800 b.p.s.
a Recal/Milgo modem is used, and the Adaptor to interface the
PDP-9 to this transmission system was built by the project
team.
Of the computers available for connection to the PDP, the
Univac 1108, with the time-sharing operating system, 'EXEC 8',
seemed the most suitable. An offer of facilities on the
1108 at the National Engineering Laboratory in East Kilbride,
Scotland, 'liaS therefore accepted, under an arrangement to
collaborate in CAD work with that Laboratory. The NEL 1108
(Appendix A) is a single processor system with 128K core
(36 bit s, 750r cycle time , effective access time 375r by
interleaving), six FH 432 fast drums (262K words) and two
FASTRAND drums (22M words, 92 ms access time).
Tests with asynchronous transmission at 1200 b.p.s.,
dialled up, were carried out in 1968. At the same time,
plans were made for a synchronous 4800 b.p.s. private line to
NEL, (shared with Chilton Atlas Laboratory) and this, it is
expected, will be commissioned early in 1970.
The system was designed to be used for CAD research,
with 'weak' interaction between the PDP and the 1108,
(that is, initiating, from the satellite, an analysis run
in the 1108, observing the results, and initiating are-run
with changed parameters; this has been named 'iterative
design'). System resources were decided at an early stage,
and were determined by what was available for use, or by
what could be purchased with strictly limited funding.
Study of the optimum arrangement of system resources in a
satellite graphics system reported in a thesis by Foley
(Ref.7) shows that the balance of resources in the present
system is not a long way from the optimum.
This particular system was developed for the CAD research
because no large time-sharing machine was available for use
at Imperial College. Since the development was initiated,
70
arrangements were made for the College Computer Unit to hav6
a Control Data Corporation 'Digigraphics' Display System,
linked through the College CDC 1700 terminal computer by
wideband line to the London University CDC 6600. Some
applications (Section 9) will be investigated on the CDC
system, thus giving a comparison of cost-effectiveness between
the PDP/1108 facility with voice grade line and the CDC 274/
6600 system with wideband line.
The CDC Graphics terminal system, like the IBM 2250/1130,
has good facilities but is relatively costlyQ For the CAD
research, having in mind eventual application outside the
largest units of industry, it was required to keep a strict
limitation on the capital cost of the satellite station; this
consideration restricted choice to the PDP-9/340, the Elliott
905/928, and similarly priced computer/display SUbsystems.
The PDP-9 was chosen on the grounds of availability of
cassette tapes and of a disc store and because prior work had
been carried out on a PDP-7.
An additional and important reason for developing the
system, rather than purchasing 'ready made' from a manufact-
urer was to permit the tailoring of it to the particular needs
of the CAD research.
2. SYSTEM ENVIRONMENT
2.1 THE 1108 SYSTEM
The Operating System in use on the 1108 is EXEC 8, a
time-sharing executive supporting two kinds of user, Batch
and Demand. Batch work is normally entered via a card-reader,
with output appearing on a line-printer, while Demand use is
currently restricted to teletype terminals, although the
software is being extended to handle alphanumeric displays as
well. Demand users have access to almost all the executive
facilities available to Batch users, but because of the
on-line mode of working, errors which would cause a Batch
run to terminate are not fatal to a Demand run.
A run cannot communicate with any other run directly,
but it can cause any number of Batch runs to be initiated.
(It can communicate indirectly with another run via a common
data file on a backing store.) The run to be initiated must
be in a catalogued file on Fastrand.
A Batch run may raise itself to Real Time status with a
priority ranging from three to thirty-five (levels one and
two are reserved for interrupt handling and executive actions
73
respectively). This means that the run will not be swapped
out of core, and will have priority over Demand runs. This
is necessary for software which has to handle communications
equipment. The executive contains handlers for all standard
peripherals, and, in addition, will handle arbitrary devices
connected to a Multiplexor (the CTMC). When the system is
configured, details of the devices attached to the CTMC are
defined, e.g. data transfer rate. The user has then to
assign a device to his run and initialise communications by a
call to an executive function (CMS). He may then transfer
data to and from the device by calls to other executive
functions CCMO and CMI). A Line Terminal Table must be
associated with the device, the address of the buffer to or
from which data is being transferred, the number of
characters to be transferred, and the address to which control
will be transferred on completion of the operation. A time
may also be specified within which the operation is to take
place, and a status code is returned on completion which will
indicat~ whether the transfer was successful, was terminated
due to a time-out, or failed for other reasons. The data
buffer must be organized for two 8-bit characters per word.
The hardware and the system I/O routines impose no
restrictions on the character set used, and make no error or
parity checks. All 8 bits of each character are therefore
available for useful information.
The executive allows for a program to be divided into
independent Activities, which may be named. Any Activit~
may suspend itself by calling an executive funct~on (DACT).
It may be reactivated when another Activity makes an
executive request (ACT) supplying the name of the suspende.d
Activity; it will then proceed from the point of deactivation.
Some Activities will be registered as Interrupt Activities and
will be given control by the executive interrupt handler, on
the occurrence of externally specified interrupts. These
Activities have a very high priority and consequently they
are terminated when they make any executive request. They
can therefore, do little more than some elementary error
checking; and reactivate some lower priority activity.
This facility takes the burden of interrupt handling off the
user, whilst still enabling him to provide his own I/O
completion routines.
Another type of activity allows the user to retain
control in the event of certain errors. This activity must
oe registered with executive together with a mask, which
defines the types of error to be handled; other errors cause
termination of the run. When this routine is activated by
the system, a two-word packet is set to indicate the cause of
failure, and the address at which the error occurred. The
routine may take appropriate action, for example to correct
74
the error, and resume the interrupted activity, or to clear
up outstanding details and make a controlled exit. This is
obviously a very useful facility.
2.2 THE PDP SYSTEM
The initial version of the PDP Line Handler was imple-
mented with the PDP-7 Programming System (Ref. 8). This
T~E
1108
~
N~E
PDP
- N~E
-
DATA
~
LENGTH
-
CHECK-
~
S~
-
Fig. 1. Format of control messages
75
by normal peripheral devices, namely 1108 and PDP program
names, so that the standard I/O calls could not be used.
Instead, a basic device handler has been written for
the Link which simply sends and receives buffers in Image
Alphanumeric mode i.e. containing 8-bit alphanumeric
characters, one to a word. The more elaborate functions of
packing and message sequencing are performed by a separate
package which is intermediate between the user program and
the basic device handler. The device independent feature
is still useful in permitting a program designed for the
Link to be assigned other devices for debugging purposes;
it can be made to read from and punch onto paper tape, for
example.
77
being written. These routines will be available to the Batch
programs running in the 1108 and will appear as Fortran
subroutines. They will also be available to the PDP user via
the Line Handler, giving him immediate access to a large
backing store. It is hoped that the response time for this
direct use will be limited only by the line speed and by the
mean access ....time of the backing store (92ms for Fastrand).
The PDP makes requests to the File Handler in the form of
9-character messages, of which the first character defines the
operation to be performed, and the last two characters
constitute a checksum. The remaining characters, or 48 bits,
will be used for the various parameters for the different .
operations.
A new data file may be created by a call to the SETUP
routine, specifying the file's name and size, the maximum
size of Block required, and whether the file is temporary or
permanent. A file may not be used until it has been ASSIGNed
to a Batch run (or the equivalent for direct use from the PDP).
A parameter fer the Assign eperatien will determine whether
the file is te be shared between a Batch run and the PDP
simultaneeusly, .or whether this assignment is fer exclusive
use. The Assign .operation alse cepies the User's.Directery
frem Fastrand, where it must be kept while the file is net
in use, ente fast drum,where it may be accessed mere
efficiently. A further request, RELEASE, perferms the
reverse eperatien.
The data files may be split inte Blecks .of (n + 3)
different sizes, where n is a user-defined parameter. The
sizes are restricted te 2 m secters, where m = -2, -1, 0, 1,
---n, and one sector is 28 words. (This is, in effect,
the physical recerdslze.) The user may call fer a Bleck .of
a given size and may assign a 12-bit name te it. A Directery
asseciating user-defined names with Fastrand addresses and
lengths is kept en fast drum (FH 432).
The user may subsequently read .or write the entire bleck
inte .or frem his cere area (i.e. in the 1108 .or the PDP cere
area, depending upen whether the call was made frem an 1108
Batch pregram .or directly frem the PDP). He is respensible
fer returning it te free sterage when he ne lenger requires
it.
The bleck may be further subdivided inte Facters by
asseciating a user-defined Facter-name with an .offset
pesitien within a particular bleck. A Facter may then be
used fer reading and writing as a Bleck, but can .only be
deleted when the Bleck centaining it is returned te free-
sterage. Nete that a Facter-name, like a Bleck-name, is
78
associated with a unique Fastrand address, rather than with
an offset, and is therefore used in place of a Block-name,
rather than as (Factor-of-Block).
It is believed that in addition to providing a multi-
level implicit structure to the file, the provision of
Factors effectively counterbalances the disadvantages of the
restricted block sizes. It is hoped that it will encourage
users to have large Blocks, thereby necessitating fewer
accesses to Fastrand, and improving efficiency.
When a file is set up it will be immediately split into
blocks of the largest size needed by the user. Whenever a
request is made for a block of given size, and there are no
blocks of that size available, a larger block is split to
provide it. Free storage will therefore eventually become
split into small blocks, and garbage collection will be
necessary. Two routines will be provided for this purpose:
Normal Garbage Collection, which will search through free
store and build contiguous small blocks into larger ones,
producing blocks of maximum size wherever possible, and
Panic Gar~age Collection, which will relocate all used
blocks into contiguous sectors, and divide the remaining
space into blocks of maximum size.
The File Handler will maintain (n + 3) chains of pointers,
the ruth chain containing all free blocks of size 2m sectors
(m = -2, -1,0, 1, --, n), and a table in core will contain
pointers to the beginning of each chain. A request for a new
block, or for returning an old block, will therefore require
only one access to Fastrand.
The details of the organisation of the directory have
not been finalised, but it will be such that the Standard
Univac search and random-read software may be employed to
advantage. Seven-word blocks will always occur 4 to a
sector, and 14-word blocks 2 to a sector, so that the larger
blocks never occupy fractions of sectors.
With a facility' of this natu~,it is likely that the
user will make errors of various kinds, for example,
duplicating a Block or Factor name, writing beyond the end
of a Block, etc. A means must be provided, therefore,
whereby he is informed of such errors BO that he may recover
from them without fatal results. For Batch programs this is
achieved by the user supplying the name of one of his
subroutines when he assigns the file at the beginning of a
program. In the event of an error this routine will be
called, and an error code will be supplied indicating the
cause of error. For direct use from the PDP a 9-character
79
message will be returned following acknowledgement of the
request, indicating success or failure of the operation, and
in the latter case, the cause of failure. Receipt of this
message will, of course, be acknowledged by the PDP.
5. OPERATING REQUIREMENTS
To connect the machines over the asynchronous line the
user has to dial the number of the phone attached to the
modem in the computer room at NEL. A computer operator
will answer it, and the DATA button on each telephone must be
depressed. If the connection proves noisy the operator has
to be informed and a new line dialled. It sometimes is
possible to secure a better line by dialling from NEL. The
1108 operator must additionally check that the multiplexor
controlling the line is in the READY state. This last
operation is the only one necessary to use the synchronous
line, since there is a permanent connection between the
modems at each end.
The software to handle the 1108 end of the line resides
on backing store.
A teletype connected direct to the 1108 via Datel 200
link is used to initiate the operation of the Handler, and
is available for program preparation and full 'Demand' use
of the 1108. It has been of particular use in debugging the LiI
Handler, as it was possible to follow the operation of the
handler in real time and dump each message received at or
sent from the 1108 on the on-line teletype. Since this was
situated alongside the PDP-9 it was a very simple matter to
monitor the complete sequence of events. Development was
carried out by the programmer of the 1108 handler and the
programmer of the PDP handler, working side by side at the
teletype to NEL and the PDP console teletype respectively.
There will eventually be no need for this teletype, as
it is hoped that the .1108 line handler will be built into
the Executive, and will be initiated on receipt of a code
sent from the PDP-9 over the link.
6. ERROR CHARACTERISTICS OF THE LINE
The frequency and pattern of mis-transmission of
characters on the dialled-up line from Glasgow to London has
been investigated. During a number of sessions,a fixed 256
character buffer was transmitted repeatedly from the 1108
to the PDP, and a record of received characters was punched
for subsequent analysis. The results indicatlt that the bit
error rate was of the expected order, 1 in 10 (Ref.10), but
80
Fig. 2. Examples ot bit streams, interpreted as sent
and as received with errors
/ stop bit
,I
• idle bit
Example .B
Example A
•
• ., .. / (1) ( 7 ) ( • /.(1) ( 7 ) ( 0 ) 0 • • • • ...
1 ) @ • • • • •
Sent 1 1 1 101 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 1
Error X
Example C
00
...... FIGURE 2.
they also reveal some interesting consequences of the
formatting scheme employed for asynchronous transmission. A
bit sequence is transmitted by frequency-~odulation, using
one or other of two particular frequences fo r 0 and 1 bits.
The receiving modem converts this signal into a sequence of
voltage levels, corresponding to 0 and 1 bits. An 8-bit
character to be transmitted is framed by the interface
hardware with 3 formatting bits; a start bit (0) preceding
the character, and two stop bits (1) following it. This
bit stream is fed to the modem, which then remains in an
idle state, effectively transmitting 1 bits, until the
next character is supplied.
Thus an arriving bit stream may be represent ed as in
Fig.2 where the examples read from right to left in order
of arrival of the bits. The interface logic can be thought
of as starting in an idle state in which it is awaiting a
zero start bit, then counting off 8 bits and assembling a
character, then ignoring one stop bit, before reverting to
the initial idle state.
The simplest type of error occurs when any of the data
bits are corrupted, as in exampleB. Corruption of a start
bit or an idle bit can lead to a character being assembled
too late or too early, as in example A. In this example,
correct interpretation is resumed after the bad character,
but it is possible, as example C shows, for the original
error to propagate, and to give a series of spurious
characters, before returning to correct synchronisation.
In this example three characters are discovered where
only two were sent. These considerations make it less than
straight forward, from a comparison of received and trans-
mitted characters, to infer the incidence of errors in the
bit stream. Moreover, since transmission is asynchronous,
and any number of idle bits can occur between characters,
there is no precise correspondence between the character
rate and the bit rate. Assuming however, that characters
are supplied as fast as the modem can accept them, and that
there are 11 transmitted bits per 8-bit character, the bit
error rate was calculated as 0.79 x 10-4 , corresponding to
a character error rate of 0.86 x 10-3.
The bit error rate was expected to be about 1 x 10-4
for the 1200 b.p.s. dialled up line, but for a leased line,
which avoids exchange switching (the principal cause of
line noise), a rate of the order of 10-6 can be expected
(Ref.10).. Considerable variation in the quality of dialled-
up lines has been experienced, and whilst the system has
built-in re-send mechanisms to combat noise, it can become
82
paralysed when noise is particularly bad. This has often
necessitated re-dialling the connection. Both the improved
overall error rate and the avoidance of redialling have
been strong considerations in deciding to use a leased line
for further development of the system. It is known (Ref.10)
that even with the leased line there can be wide temporal
variations in error rate.
7. SYSTEM PERFORMANCE
As with any project of this nature, teething troubles
were experienced in both the software and the hardware. It
was often difficult to locate faults in the software of
either machine, in the hardware interfaces at either end,
or due to noise on the line. There was also considerable
delay due to faults in the 1108 operating system, although
this is now reasonably reliable.
As 1108 program was written to receive a block of data
from the PDP, reflect it back down the line, and also dump
it on the on-line teletype. A PDP program was written to
interface to this, and the operation of these enabled hard-
ware faults to be diagnosed.
The debugging of the software in both machines was
facilitated by the use of the teletype, as mentioned in
Section 5.
It is difficult to assess the average turn-around time
for analysis programs initiated by the PDP. It varies
enormously according to the load on the 1108, the size of
program, and the amount of peripheral usage required by the
program.
If there are several batch runs currently active in
the 1108, the analysis program may be kept in the backlog
for some time, despite the fact that it is entered as high
priority and therefore rises to or near to the top of the
queue. Once the run is scheduled, its running time is
affected considerably by Demand runs, which have priority
over all batch jobs, and which may use up to 80% of CPU
time. With our limited usage to date, whilst running
small batch programs to demonstrate the use of the link,
turn-around times of 20 seconds have been experienced under
favourable conditions. Times of the order of 2 minutes are
to be expected when there is a moderate load on the 1108 and
under very bad conditions a wait of half-an-hour would not
be impossible.
It should be noted that under all conditions other than
a failure of the Executive, the 1108 Line Handler will
83
respond immediately to messages received from the satellite
machine.
8. AOOPl'ION OF 1108 LINE HANDLER BY OTHER USERS
Consideration has been given to the use of the 1108
Line Handler by the Computer-Aided Design Division of NEL,
to handle an Elliott 905, with Graphic Displ~" over a
synchronous 4800 b.p.s. link. Because this machine has the
same word-length as the PDP-9 (18 bits) the alterations
necessary reduce to one card image, which ~ecifies the
channel and unit number 0 f the line terminal, together with
some minor changes for accounting and administrative pUIposes.
It would be an equally simple matter to interface any other
l8-bit word-length machine to the 1108. Software equivalent
to that used in the PDP-9 would, of course, have to be written
for the Elliott 905 and for any other machine.
Initially each satellite machine would have its 'own'
copy of the Line Handler resident in the 1108, but it may
prove desirable to make the Handler re-entrant so that all
satellites use the same one. This should not be an inordinately
difficult undertaking as 1108 system routines are available for
this purpose.
9. USE OF THE SYSTEM FOR INTERACTIVE GRAPHICS
The system was designed for use by research projects in
computer aided ship design, circuit design and architectural
design (CASD, CACD and CAAD).
Each project is making assumptions about the best
assignment of tasks to each computer. Basic software
(Display, Link and File Handlers) is where desirable, shared;
each project can develop in its own way, building on the
basic Handlers if by so doing programming effort will be
reduced.
In the Ship Project, MacCallum (Ref.11) has implemented
surface definition routines in the PDP-9, enabling a naval
architect to define a first approximation to hull form by
lightpen. Parameters from this definition will be sent by
the link to the 1108 where a program by Jenkins (Ref.12)
will use the parameters to define the surface in a form
suitable for analysis programs. Performance curves will be
calculated by Fortran programs in the 1108. Output data
from these programs, in Fortran afr~ys, will be accepted by
an Output Graphics Package (Khan' 3) and resulting PDP
display file will be placed in a buffer area for the Link
Handler to transmit for display by the PDP-9.
84
Other uses in the Ship Project, for which preparations
are in hand, are Longitudinal Strength Ana~is and Steelwork
Detailing.
A Longitudinal Strength Program (Ku0 14 ) has been run
on the 1108. Input data for the Program will be a represent-
ation of a compartmented cargo ship; different loads will be
placed by the designer, using the lightpen or teletype, into
different compartments. Graphical output from the program,
seen on the PDP Display, will indicat e, for different stations
along the ship, the shear force and bending moments. The
loading distribution may then be altered for a re-run of the
program.
The CACD project has developed a Linear Analysis Program
with Output Graphics, working in the PDP-9 (Drew, 16).
An Input Graphics package for this or other circuit
analysis programs is being tested. The link is to be used
to allow larger analysis programs to run in the 1108, input
data having been prepared in the PDP-9.
Use of the system for architectural design is possible
but unclear. Sections of the architectural profession and
the construction industry are 0 f the opinion that interactive
graphics will be an important aid to architecture. The
M.o.P.B.W. Report on C.A.C.D. (Ref.16) presents this finding
but is not specific as to applications which can now be
implemented and which would be cost-effective. \vhen such
an application emerges, it could be implemented on the link.
The overall objective in setting up and using the linked
computer system is to get experience of' its application to a
few real-world problems. It is hoped by this to gain
information on (i) the balance bet !rJeen ergonomic factors,
(such as response time) and system resources (such as band-
widths and satellite computer pm'Jer), (ii) the extent to
which software can be shared bet\Jeen applications as diverse
as for example, ship design and circuit design, and (iii)
design considerations and operating problems of a system
based on a voice-grade data link to a distant computer.
85
the arrangements for and setting up the hardware elements of
the data links. Mr. Fenwick designed the Data Adaptor for
the synchronous link.
The work is being done under Science Research Council
Grant B/SR/2071 and a Ministry of Technology Contract
entitled IIApplication of Computer Graphics to Ship Designll.
REFERENCES
1. Ninke, W. H. I1A Satellite Display Console System
for a Multi Access Central Computer ll
Proc. IFIP Congress 68 August 1968.
2. Ninke, W. H. I1GRAPHIC - 1 - A Remote Graphical
Display Console System l1 • Proc.
FJCC, 1965 pp. 834-846.
3. Ward, J. E. I1Systems Engineering Problems in
Computer-Driven CRT Displays for
Man-Machine Communicationl1. IEEE
Transactions on Systems Science
and Cybernetics June 1967.
4. Linders, J.G. "Two London University Display and
Kirstein, P.T. Remote Access Projects".
5. MacCallum, K. J. "Display and Manipulation of 3-
Dimensional Surfaces", Imperial
College Centre for Computing and
Automation Report CTG 67/5, and
"Further Use of a Display for
Surface Design", CCA Report CTG 68/1.
6. Newman, W. M. "A System for Interactive Graphical
Programming" AFIPS Conf. Proceedings
Vol. 32 1968 SJCC. pp.47-54.
7. Foley, J. D. 110ptimal design of Computer-Driven
Display Systems". Technical Report
34. Systems Engineering Laboratory,
EE Department, University of Michigan
Ann Arbor, March 1969.
8. PDP-7 User's Handbook. DEC Manual F-75.
9. Advanced Software System Monitors. DEC Manual DEC-9A-
l1ADO-D.
10. Private communications from the GPO
and ICL and "Telecommunications and
86
the Computer", Martin J. p.360 et.
seq. Prentice Hall, 1969.
APPENDIX A
HARDWARE CONFIGURATION
By P. W. Fenwick
87
counter enabling mu1ip1ication to be done in 15 •
Backing store is DECtape (2 transports); a 166K word
disc file is to be added shortly. The display is a
DEC type 340 point-plotting display using a binary rate
multiplier to generate vectors. Data words are taken
from PDP-9 core store by autonomous transfer with sub-
routine jump capability. Display interaction is by
light pen. The PDP-9 is interfaced to asynchronous
modems (Datel 600 or 200) by a DEC 636 Communications
Adaptor. For synchronous line communication a Racal
4400/48 modem is connected to a purpose-built interface
which recognizes and strips off initial tlsync tl
characters at the start of a block of data. The Racal
modem uses an eight phase-shift modulation system
encoding three bits at a time. This enables 4800 b.p.s.
transmission in a 1.6KHz bandwidth centred on 1.7KHz.
The Univac 1108 at NEL is a single processor
~onfiguration with a core store of 128K 36 bit words, of
750 access time. Store accesses are interleaved,
giving an effective 375 access time. Successive
instructions are overlapped, and instructions can operate
on double full, half, third, quarter or sixth words.
128 integrated circuit 120 registers are addressed as
the first few words of store. These control registers
include 16 accumulators and 15 index registers, 4 of
which overlap the accumulators. Backing store consists
of six fast drums, storing 262K words with 4.3 m sec
access time, and two slower drums storing 22M words with
22 m sec access time. Six 800 b.p.i. tape transports
provide a 6K word/sec transfer rate with backward read
facility.
APPENDIX B
HANDLING ROUTINES
88
1108, to which control will be given by the 1108 Handler,
and which will cause the user's program to be run. IDB
identifies this particular request from the PDP,and will
subsequently be used when requesting the corresponding
output.
1108/ CALL PDPIN (A,N,M)
Reads into array A N words, beginning at the Mth word, of
the data received from the PDP.
1108/ CALL PDPOUT (A,N,M)
Writes N words from array A into the output file, starting
at the Mth word.
1108/ CALL PDPFIN
Indicates to the Handler that the output file is complete.
PDP/ CALL IFLLK1 (IDB,N)
Requests number of words N in the output file for PDP
program IDB, returns -1 if the output file is not yet
ready.
PDP/ CALL IFLLK (IDB,A)
Requests transmission of output file for PDP program IDB
from the 1108 into PDP core, starting at address A.
PDP/ CALL EOT
Removes the 1108 Handler from core and ends the session.
89
CONVERSATIONAL DESIGN OF STOCHASTIC
SERVICE SYSTEMS FROM A GRAPHICAL
TERMINAL
K. B. Irani, V. L. Wallace, J. H. Jackson
91
One of the major hopes for significant improvement of design
capabilities using queueing models lies in the so-called "conversational"
computer techniques, whereby the calculating power of a computer
can be closely coupled to the creative power of a design engineer.
If a designer can freely pose alternative models to a computer and
get immediate evaluation of various performance criteria, he may
then generate enough insight (via cut-and-try procedures) to guess a
near-optimal design for a system far too large or tightly interrelated
to be treated by conventional optimization techniques.
93
Input Port
/ Output l'ort
Parameter Dot
Queue
Output Port
yt/
•
Server
Parameter
Dot
Input Port
Output "Port
~/ Exit
Source
Figure 1
Element Symbols
94
pen in a manner which is indicative of the operation to be performed.
For example, the operations which may be performed on unconnected
element symbols are shown in Figure 2. A symbol is deleted by
pointing the light pen at it, and then stroking vertically across it.
However, if the user instead moves the pen away from the symbol,
the symbol is moved with the light pen.
(
f
\
~
.' \
I ',
/
i \
\
I I
,
I I
,,
\
I
\
I \
I
I
I
/. -
\
I
\
I
, / \
, I
~, I ,,f,,
\ '
"
(
Deleting a Symbol
--- - - - -)'
-----
- • -
Moving a Symbol
Figure 2
Operations on Unconnected Element Symbols
95
In addition to these operations on unconnected element symbols,
all operations which are required to connect and disconnect elements
are performed with motions of the light pen. However, before these
operations can be described, the types of connections which may be
formed must be described.
1) simple connection,
2) random branch,
3) priority branch,
4) random merge, and
5) priority merge.
96
which later may be extended to form branches or merges. The drawing
of a simple connection is started by pointing to an unconnected output
port of an element symbol. The connection is completed by drawing
a line from this output port to an unconnected input port with the light
pen. As the user moves the light pen, the actual line that is drawn is
not a straight line between the output port and the position of the light
pen, but it is a sequence of horizontal and vertical line segments which
approximates the path of the light pen.
The light buttons for creating symbols, the light pen motions which
are used to modify the diagram, and the push button facility for
inputting parameter values are sufficient tools for generating the
diagram. However, a queueing network may become so large that its
diagram will not fit onto the display screen. For this reason, the
97
~ . .I I
I
I
I
I · ~ 8 II
• I--
\Y
( 1)
8- -8-
I
I
I
~---)
.
(2)
- • .{~
/
.~
/ •
(3)
I
I
/-, {J
.-\
)
Random Branch
-/- I \~/
1
I
I
'I
I
----) 8
I
\I
(1)
(2)
- • /""-.
'\,v
• • r-
• •
[ ~
Priority Branch
Figure 3
Generation of Branches
98
-1 • I [ .r -1 • I • 1-
-8 (1)
- •
(2)
Light pen
remo ved here
~. I I• 1-
-8 1
----1
(3)
Random Merg e
-1·11--- &
.
1:\
-8-(:)J
I
(2)
• • •
•
(3)
Prior ity Merge
Figur e 4
Generation Merg es
99
diagram is considered to be drawn on a 75"x 75" piece of "paper" which
may be moved to various positions under the screen through the use of
a light button.
In the event that the user requests a solution and the diagram is
either incomplete or incorrect, a large flashing arrow is placed on the
diagram to indicate the location of an error, and an appropriate comment
is typed on the teletype. The flashing arrow is removed from the
diagram when the error is corrected.
In addition to the light pen and push button operations, SELMA also
supports several operations which are invoked by keyboard commands.
These operations allow the user to save queueing, networks on files
at the IBM 360/67, to retrieve queueing networks from these files, to
destroy the current network in preparation for beginning a new one,
and to terminate execution of both SELMA and QAS.
100
References
101
THE ANATOMY OF AN INTERACTIVE
GRAPHICS DISPLAY PROJECT:
AN ENGINEERING TOOL
R. G. Gillespie
INTRODUCTION
103
1. Problem(s)
104
The judgment was made to risk the investment because of the po-
tential payoff. Since it was realized that we needed more than
a demonstration, we needed to choose a strategy that increased
the chance that the tool developed (interactive graphics) matched
the requirements of the tool users.
2. Background
3. Management Approach
105
Size Reviewed for:
Design 2-3 What is the goal of the task?
Objectives pages What functions will it provide?
What resources will it take?
What technical approach w1ll be followed?
Prelimi- 10-15 What interfaces are there with other software?
nary De- pages What functions and operating sequence will
sign there be?
What schedule is proposed?
Des1gn l5-? Deta1l spec1f1cat1on of des1gn.
pages
A necessary condition for meeting requirements is the adequate
representation of the users on the review boards which should
function after each document. This provides the proper feed-
back from the potential users at a state which allows change.
(The cost of adding a room to a house after it's half built is
high! )
The initial review of the design objectives is important in
order to make sure that the resources will come in order to
support the project. In this project, applications program-
mers familiar with engineering areas joined the project at the
start, but no members of the engineering staff.
The design review sessions were publicized ~nd meant to be a
time for argumentative exchange rather than rubberstamping.
Comments from outside the group developing a tool for someone
else are necessary in order to avoid self-centered satisfaction.
Also, development groups have a tendency to assume the future
user knows all about programming.
Another part of the management approach was to draw a detailed
PERT chart in order to work out an understanding of all the ele-
ments and interfaces. This turned up user training, manuals,
and testing, and many overlooked tasks. A useful function of
the chart was to provide a clear plan for later versions of the
project. Many projects are planned as if they will not be re-
vised and changed. Also, by having a later version displayed
we were able to emphasize the importance of the scheduled reviews.
The ground rule was emphasized: changes to the specifications
received after review points will go into version 2! Ordinarily,
it is hard to measure the impact of a few changes on the schedule,
but this control is necessary and moves the change review to a
management, rather than technical, problem.
106
4. Previous Graphics Experience Affecting the Objectives
As in many other large engineering organizations, the excite-
ment generated by the idea of blending computing with graphic
display led to a number of experimental projects at the Boeing
Company. The last of the projects at the Commercial Airplane
Division used an IBM 360/75 and 2250 display system. And, as
was also discovered, the difficulties of developing a workable
display were compounded by the early throes of the IBM 360 op-
erating system. Little progress was made in two years toward
providing a usable and economically feasible project. And, in
that time, engineering computing began to use the CDC 6600.
Also, increased scheduled use of the 360 system for data pro-
cessing problems forced the experimental development to a
3 a.m. to 5 a.m. schedule for use. This provided a real test
of enthusiasm for prospective users. These changes led to a
breathing point and review in the autumn of 1967, when it was
proposed to generalize about the results and start afresh.
Summarizing the experience are these comments:
a. Conversion of large engineering problems from one com-
puter to another provided too large an entrance fee
for graphics.
b. To o'ur surprise, more time was spent at the terminal
looking at character displays, programming, etc.,
than inspecting graphs.
c. Trying to debug a multiprogramming system while de-
veloping a graphics capability increased the effort
needed by an order of magnitude.
d. Graphics services which would allow easy use of ex-
isting programs (minimum conversion) would increase
the likelihood of practical use.
e. Remote facilities were needed (when the engineering
force was scattered over a 100 square mile area).
f. While much excitement was generated over drawing and
light pens, plotting facilities might give a quicker
payoff with lower investment.
g. Users would not spend much time working at their ap-
plications if there were not a production guarantee
on the pilot system.
h. Core requirements for graphics service rise and ex-
ceed whatever core is available.
Review of those points and other requirements led to the ob-
jectives.
107
5. Design Objectives
6. Evaluation
108
The equipment was reviewed and costs compared. A development
project rule was used to make the final decision: between equal
cost alternatives, choose the alternative that provides the
greatest opportunity for learning. An Adage graphics terminal
was chosen that provided an interesting combination of analog
and digital techniques for control of the display. Coordinate
transformation was handled through a hybrid array, thus allowing
smooth translation and rotation of images.
7. Hardware Environment
DPR2 digital computer with 16K core memory (30 bit word,
2 microsecond cycle time)
109
8. Software Environment
In order to provide an interactive environment, several steps
were taken. Rather than rebuild the existing CDC 6600 SCOPE
operating system (and one of the design constraints was LEAVE
THE OPERATING SYSTEM ALONE:), we chose to develop for our use
a timesharing system called SHARER, which was developed at New
York University. This provided swapping facilities for a limite
number of terminals but matched our requirement for the ability
to use existing large FORTRAN problems with little modifica-
tion. The diagram on the next page shows the general structure
of the system:
'-- Display
Menus ------ ... Scope
- EXPORT
SHARER
PrJ.vate
r
'--Raw
Data
---- Plot
Disk Files
r
Common Import Teletype
Files (Disk)
9. Functional Capabilities
The user at the AGT terminal (and also using the SHARER tele-
type terminal) could perform these functions:
a. Create, manipulate, edit, and delete CDC 6600 program
and data files.
b. Initiate a CDC 6600 job from the terminal.
c. Interact with his CDC 6600 program while it was run-
ning through SHARER.
110
d. Dynamically display 2-D and 3-D graphical data on the
AGT scope that is generated by his CDC 6600 program
using the Numerical Plotting System (NPS) or the Gerber
routine GDRFT5.
10. Schedule
1 1 ~ yse
112
Also, this brought the problem of cost justification to the right
level: if the wing design cycle could be cut by x days, how much
would it be worth? With engineering schedules tighter and tight-
er, the problem of cost justification could return to the chief
engineer--who makes the critical resource allocation decisions.
But that investigation did not provide a production commitment
for the graphics terminal.
12. Conclusions
Hardware
Design Approach
113
judge how complex they were, rather than asking the designers.
And, sometimes extensive looking modifications or additions to
the functions were simple (and vice versa).
Management
It will be important to point out that the problem faced was
that of inserting into the normal working process for engineer-
ing (which is not clearly defined) a new tool. There was a
much greater lag than expected, and the project's loss of
time proved crucial. Do not underestimate the time lag from
functioning to production.
The organization of the project allowed schedules to be met
and a large number of people to know about and influence its
development. The separation between programmers, applications
groups and the engineering staff enlarged the time and encum-
bered communication. The engineering staff needs to be a part
of any project which is building a tool for its use. As in
other situations where innovation is necessary, an engineering
graphics fanatic was needed to present forcefully, in engineer-
ing terms, the need for change.
ACKNOWLEDGMENT
I would like to express my thanks to the members of the Graphics
Team at the Boeing Company who devoted their technical efforts
and emotional resources to a difficult task.
114
COMPUTER GRAPHICS IN THE DYNAMIC
ANALYSIS OF MECHANICAL NETWORKS
M. A. Chace
M. E. Korybalski
ABSTRACT
1. INTRODUCTION
115
automotive suspensions, washing machines, tractor back-
sionally.
116
location throughout the motion of the machine.
follower.
to overload.
117
6. Multidisciplinary designs. Mechanical designers
118
program cover three-dimensional systems also, but do not
of Mechanical Networks).
119
immediate change in either the parameters defining the
design of a specific system (masses, stiffness coefficients,
geometric lengths, etc.) or the topological data which
distinguishes one system from another.
Figure 1 shows generally the relation between program,
remote graphic input/output, the University of Michigan
central computer facility, and the DAMN program itself.
The DEC-338 display terminal of course includes a PDP-8
computer connected to a graphic display unit. This is
connected in full-duplex mode over normal telephone lines
to another computer, also a pDP-8, modified for communi-
cations use and termed the Data Concentrator. In effect
the graphic terminal can communicate with the DAMN pro-
gram at any level for flexible simulation of a specific
device or set of devices. The DAMN program itself is
written entirely in FORTRAN IV. It is resident on disc
storage at the University of Michigan computation center
and is executed on the University's IBM 360/67 computing
system(6). The graphics output program also shown is
written primarily in FORTRAN IV, but is importantly de-
pendent on the DF Routines written by the Concomp Project
for the support of the remote graphic terminal. (7) At
120
,--. -
6A."t""'C-\-\
I,
I
I I
I I
I
I
ITOPOLQG\CI!I..L I '?\40We:. L\We.
t.-,\ O\.)\~" tQPQ\...DG'C~""-- - ~ C.O)..J \....\E:c...\ \ 0\-..1
PROGR.b.N\S DA\"A / '\. I
\
DA.TA I D\'S'PLJI...'I
Ic.o\.jct.\Sn~.".,,\C' crE'R "-\ \ \..l A.\-.
YOD\\='{ '" / I
DIME.\o..1SIOt..lA.L
'DA..\A. )--...... _ ~
I R..E"'10TE. GRAP\-\\C
"\"6 R",,\ \ "'-l ~L
I
I
GRA.'?\-\\C. S
I
'-(B~
OUTPUT I
PRoOG'RA.N\
l
I I
Figure 1. Flow diagram of opera-
I tion of the DAMN Program in graph-
I ic output mode. The display ter-
EVALU..b..TE I minal is remotely connected by
I '---~I "'-lE>CT - 5\1:.. P voice grade telephone lines to the
I computing center where the program
I ACC.~L~'C.A.\\()\J itself is run. Data communication
....
t-:I
is performed by a modified DEe-B
.... I I computer, termed the data concen-
~ trator.
L-------
The DAMN program was created as part of a project
sponsored primarily by the Ford Motor company for the
2. BACKGROUND OF PROGRAM
122
is the development of the coefficient terms in these equa-
to another.
to another.
123
"Keyed Assembly" and "Loop" is made internally by the
program, but the user is not expected to recognize these
elements themselves. The user also specifies the output
he desires in terms of the relative displacement, velocity
and acceleration of selected pairs of markers. The program
is being developed to also compute reaction force at rota-
tions and translations.
Based on the data input in the preceding categories
the program constructs a set of second order ordinary
differential equations and numerically integrates these
through the range of time specified by the user. In
general, numerical integration is a slower process than
the direct, algebraic computation ordinarily possible for
kinetn.atic syetel,lls, but it is a practical necessity
for large nonlinear systems. Most of the equations con-
structed correspond to Lagrange equations. One of these
is constructed for the angle of each keyed assembly in the
system, and one for the displacement of each translation.
Thus, the coordinates for two-dimensional mechanical sys-
tems are chosen as keyed assembly angles and translational
displacements. Additional differential equations are
created to represent constraint.
124
/
/
~,
{
/ i- - e '\/ ~r-~~a
\
\ I
'- I
/
/
~/
"j
/
\ /
\. /
...... - -- ./
125
interrelated by the following equation:
(I)
-+
Equation (I) simply states that the sum of part vectors r
and translation vectors ; around the closed loop is O. The
A A
83' s2l' s3l' and sll. When the problem of Figure 2,1 is
represented by DAMN, the second derivative of the components
of equation (I) is included as a pair of constraint differential
equations supplementing the Lagrange equations.
As a limiting case the constraint conditions are the
conditions normally used to solve kinematic problems (zero
degree of freedom). For example, in Figure 2.1 if the slips
s2i and s3l are prevented and the angle of keyed assembly
number 2 is specified as a function of time, the system becomes
kinematic slider crank mechanism, as shown in Figure 2.2. In thj
126
I
/ -
I
( 3
{
/' -- ---
2
-.......
'"
J
,/
' - - -...-/ /
--
\
'" --
/"
'" /
/
I
-
/'
\ /
,---
Figure 2.2. Schematic of a kinematic slider-crank mechanism.
In this example enough freedom is removed ~rom the loop~ig
inally shown in Figure 2.1, that the constraint condition it-
self (equation (1» is sufficient for determination of system
time response, given an input of 82 versus time.
127
o f otW{q.
.
,q. ,t)
].]. = 0 (2)
coordinate qi.
section 2.2 this condition is not normally met by the coord in-
that the loops remain closed. Also the work terms in the
128
functions. The ultimate form of Lagrange's Equation with
d [
a(T-V- In
j=l
A . <p • )]
J J
a(T-V-
2n
I
j=l J J
A. <p • )
Q. (4 )
dt '.
aq. aq.1.
=
1.
1.
m{d
t.
d
crt [a~m~
ae.Q,
-
aT
m
°.Q,m
I
m
e
m
+
m . 1
1=
1
~
j=l
e.
1
-+
b.1
ae.Q,
e. 2 (b.
1 1
A A
x k) + s .. (s .. x k) + 2 s .. e. (s .. )
1J 1J
A
1J 1
A
1J lOb~)
(5 :
t.
aT
d
crt
m
= m ([
m
~
E e.(kxb.)-e. h.
' 1 J. =1 1 1 1 1
1.. A -+ • 2-+
1=
(6 )
e.1 (k .. )]O;o)
~1
A
+ s .. s .. + 2 s .. x
1J 1J 1J J;vP
129
Figure 2.3. A chain of keyed assemblies from ground to the
center of mass of a particular part. In constructing the
Lagrange equation kinetic energy terms for each part m (equa-
tions (5) and (6», summations are made over the chain of
keyed assemblies to the part center of mass, and over the in-
dividual translations wfthin each keyed assembly in the chain.
130
+ -
•• A A A
(7 )
r = e(kx~) .2~ + r r + 2r8(k x r)
In Equations (5) and (6) the summation over ~ is a summation
tion vectors which span the ith keyed assembly, from the contact
equations are required, (5) and (6), because the Lagrange Equa-
131
Table 1
Type of
Applied Displacement Angular
Force Coordinate, Stp Coordinate, 0 t
Translational
-+
F • '"
S
Force k tp
Rotational
Force (torque)
Zero
-+
F,k. - kth actual applied translational force in the SystE
-+
tk - kth actual applied rotational f.orce (torque) in thE
l32
coordinate is angular or translational and whether the actual
(torque) •
133
on reaction force (Coulomb friction force). Meanwhile this
C12 q2 f2
I
A22
motion
I. Lagrange multo
matrix
I coefficients
... .. .
Aml
Cll
-
C12
AJ Clm
Clml
Cnm
-~
Al
f
gl
m
C2l
."
A2 g2
A
n
134
diagonal terms are nonlinearly dependent on problem coordinates,
derivatives.
of linear algebraic equations for the q's and the A's. In con-
135
the integrating program used is HPCG (Hamming Predictor-Correc-
tor Generalized) available from the IBM Scientific Subroutine
Package (7) • The integration takes place in small steps with a
simultaneous equation solution in each step until a user-speci-
fied output increment is completed. At that time current values
of all problem coordinates are transmitted to the graphics out-
put program and processed there for immediate display, or if a
printed output has been elected, the results are stored on disc
until the end of the entire run, at which time they are printed
out.
The integration process outlined here is simple, but not
the most efficient process possible. For example, it is prob-
ably feasible to integrate without having to solve equation (8)
at every integrating step. Also, with this particular set of
variables and the Lagrange multiplier technique, the number of
differential equations exceeds the degree of freedom of the
system by the amount 2c, where c is the number of scalar con-
straints. Alternate approaches may, in fact, yield a smaller
number of equations in the set. However, the Lagrange equation
approach has been especially easy to interpret and free from
artificial singularity problems because of the close physical
correspondence of each of the Lagrange and constraint equations
For the size of problems considered so far (order 10 X 10) in-
tegration speeds have been more than adequate for analysis, as
discussed in Section 3.0. However, use of the program for com-
puter controlled synthesis will require at least an order of
136
magnitude increase in speed - probably feasible.
137
contact loops is determined by processing a branch-node inci-
as branches.
IBM 360/67 central computer. All such programs are under the
TABLE 2
138
iliary batch monitor HASP (Houston Automatic Spooling Priority
the user does not have access to UMMPS or HASP and must com-
three IBM 2540 card read-punch units, one IBM.2501 card reader
and five IBM 1403 line printers. Terminal jobs utilize stan-
139
CEWTR.A.L
COfV\PUTEr.2.
(3CoO I ~-,) -
~
"
,
~
I
1
MT5 ~A.:5P
~- ~
TERM1WAL 'BATC\4
140
to the central computer through the Data Concentrator is es-
141
data set to the 338. Then the 338 displays the file until
use of lines and labels, and (3) transmitting the file with
an appropriateaame.
which determines when the next frame will be shown. The op-
! respectively.
142
TABLE 3
files. Static labels such as the title and headings for velo-
143
o
?
f{J
IJ1
)-
l- I- 2'
v UJ-I!
4 uJ
~ ~ j ~O5~
I!lo
W ~ ~
0 t ~~~~
n! Q 2 :ZLflIOIi-
0
V
~ o ?
U W'>
144
"-.10
c.O\..J"5."fR.\..lCT
L\~"E'5
+
CO\-..ls-r~ucti !
VEC",\OR.
i
i ~'e:,t::..tJS j
!
CO"-JSTRUC
\...10
TABLE.
SC.t:....L"E:
'Ve c.","\ OR-5,
C.CM?UTE
MAG.~\T\.lDE
i
the upper right side of the frame. These labels are con-
steps. Also constructed in the first pass are the three sym-
bols (), ()and ~ and the labels for the vector heads. The
146
TABLE 4
Lines- There are two types of lines, dark and light intensity.
By convention dark lines or a polygon of dark lines repre-
sent rigid parts and light lines represent axes, springs,
paths of translation, or any line which is not descriptive
of a rigid part. A line is input by specifying its two
end point markers and its intensity.
tors change with each frame and must be redrawn after each
output from the main DAMN program. The output program con-
147
TABLE 5
Base- The user must specify the ground marker I~D. number de-
fined in the analysis data and its position on the screen.
The ground coordinates of all other markers are referencec
to this.
were drawn to describe the links and two symbols were drawn to
vectors are computed in the main DAMN program and the output
program has only to scale these vectors and calIon the ap-
propriate DF rout~nes. Additionally, the output program must
1~
access the EBCDIC label for vector heads and call a DF routine
step.
149
3
Figure 3.4b. Two-d1mensional schematic of the compound pen-
dulum shown in Figure 3.4a.
150
Figure 3.6a. Automobile hood mechanism used in connecting hhe
hood to the body. The mechanism consists of six parts. Part
1 is the automobile body and part 6 the hood. A spring is
stretched across parts 5 and 6 and is sufficiently strong to
raise the hood from a near-horizontal position. The motion of
the hood is impeded by a rotational viscous damper (not shown)
between part land part 2. This is a single-freedom, con-
strained dynamic system.
151
Figure 3.6b. Two-dimensional schematic representation of the
hood mechanism of Figure 3.6a. Rotations (pin joints) are
represented by small circles; parts are represented by straight
lines and polygons.
152
F1gure 3.5. A series of photo-
graphs of the DEC-338 graphic
display screen taken during a
program run simulating the mo-
tion of the compound pendulum
shown in Figures 3.4a and 3.4b.
Velocities V3 and VS are
the velocities of the points
at the ends of the links; vec-
tors A6 and A7 are the accel-
eration of the centers of mass
of each link. Problem time
begins at t=O and is incre-
mented to t=.6 secs.
153
Cl1
~
-
Figure 3.7. A
of photographs of the
DEC-338 graphic dis-
play screen taken
during a program run
simulating the mo-
tion of automobile
hood linkage shown
in Figures 3.6a and
3.6b. The system
moves under the in-
fluence of a trans-
lational spring and
a rotational viscous
damper. Vector Vl7
is the veloci ty of
the center of mass
of the automobile
hood. Problem time
begins at t=O and is
incremented in ap-
proximately equal
steps to t=l.l sees.
shown in Figure 3.4b. Parts 2 and 3 initially have zero velo-
of the mass centers of the links. For this problem DAMN must
output program draws two lines and two symbols, solves for
(part 1). Parts 2-6 all have mass and mass moment of inertia.
155
the rear half of the hood is shown). A system of nine second-
velocity vector.
Other Examples
156
translational contact, kinematic constraint, multifreedom dy-
problems, etc. These and other examples also showed that the
157
Figure 3.8c. A simplified two-dimensional automobile suspen-
sion system. The canted line is the frame, supported ver-
tically by two springs (not shown) one at each end. The ver-
tical line shows vertical displacement of the center of mass,
and provides a reference for a rotational damper (not shown).
158
but at present a user can interrupt the display at any point
REFERENCES
159
6. Carnahan, Brice, and Wilkes, J. 0., Introduction tQ Digita
Cgmputing and Fortran IV withMTS Applications, 1968 .
('Available from Ulrichs 800k Store ,Ann Arbo:r;, 'Miah:t.fJan).
7. IBM Manual H20-0205-2, System/360 Scientific Subroutine
Package, (360A-CM-03X) Version II.
8. MTS Manual, Computing Center, University of Michigan, Ann
Arbor, ,Michigan, 1967.
9. Mills, D. L., The Data Concentrator, Technical Report 8,
May 1968, 113 pp.
10. Cocanower, A. B., The DF Routines User's Guide, Memorandum
23, May 1969, 5 pp-.-- --
.Acknowledgment
The authors gratefully acknowledge the interest and finan-
cial support of particularly the Advanced Analytical Technolocn
Department, Ford Motor Company, and the ConcolJlP Project--itsel.f
sponsored by the Advanced Research Projects Agency of the U.S.
Department of Defense. The support of Structural Dynamics
Research Corporation and the Whirlpool Corporation is also
appreciated. The project would have been impractical.witho\lt
the hardware and systems software facilities of the University
of Michigan Computing Center and the graphic systems software
support completed by Dr. Alfred Cocanower and the staff of the
Concomp Project.
160
STRUCTURED OPERATIONAL DATA SETS
FROM ARBITRARILY ARRANGED COMPUTER
GRAPHIC SYMBOLS
E. D. Berhold, M. P. Berhold
Dept. of Engineering, University of California, Los
Angeles, California 90024, U.S.A.
and
L. P. McNamee
Dept. of Engineering, University of California, Los
Angeles, California 90024, U.S.A.
Abstract
A method is presented for generating operational graphic and computa-
tional data sets from an arbitrary arrangement of symbols on a computer
graphic display console. Graphical data sets are formed by first develop-
ing the desired engineering symbols by means of the GRAF language, and
then structuring the symbol reference points, types, and identifiers by a
unique dot -grid display. Computational data sets are then formed by re-
lating the design parameters and computational steps to the graphical data
sets by assigning state points to the display of symbols on the CRT.
Also included is a description of how the data sets for an aircycle air-
conditioning application program are constructed and operated.
1. 0 Introduction: Data structures of graphic and computational routines
are usually developed separately, with very little attention given to a com-
bined program effort. (1) The techniques presented herein provide an effec-
tive means for generating the required data sets directly to enable the de-
signer to keep the overall program objectives in perspective.
The general approach is presented first. This includes a brief descrip-
tion of the GRAF language, the dot -grid routine, and the state point assign-
ment method, and their synergetic effect in constructing the graphical and
computational data sets. The application of these techniques are then illus-
trated by implementing an aircraft aircycle airconditioning system design
program on an IBM 2250 display unit that feeds into an IBM 360/91 digital
computer.
2.0 Construction of Graphic Data Sets: The construction of graphic data
sets, such as the array shown in Figure 1, calls for the definition and de-
velopment of the desired engineering symbols and the structuring of the
symbols to conform to a dot -grid pattern.
161
(Aetu1. 51.. 18 SO br 13)
?3
- IIt'IIIaCI COCWlDADS PIIOOIWI ,LAGS STATE usm CODE COJlPOllEllT
PODiTS ATTQlTIOIiS 110 IIAMES
TURBDlE
3 7 (Tll.rbin. 1Dd)
FIDW
8 COIITROL
• SHUT OFF
S 9 VALVE
6 10 BlEED ua
1 11 SEPARATOi
12 OaD'ICE
•
, 13 MIIEa
10 16 SDII AD
'l'IIRBDI:
12 n (c..pne.... . .)
e e ee
@ 0 e ®®
END
DUCT
Fe
VALVE
SO
VALVE
C) SOO
60000<:9
o OOC)
~
08
Figure 2 IBM 2250 Function Keyboard
Once the graphic subroutines are established they can be called by the
function keyboard on the IBM 2250 display unit.(3) The function keyboard
format selected for the aircycle application case is shown in Figure 2.
Graphic symbols, such as those shown in Figure 3, would be displayed at a
desired point on the CRT by activating the appropriate function key and by
positioning the light pen at the desired location. To account for the possi-
bility that mistakes can be made in plotting, an ERASE routine is avail-
able for erasing the last symbol drawn and resetting the graphic data array.
163
I~ shou.ld be noted that the symbol terminals are separated by equal
multlple dlstances from each other. This characteristic is central to the
dot -grid routine used in constructing a system diagram on the CRT and in
generating the graphic data sets. Because of the dot-grid routine, the
correspondence between the symbols arbitrarily placed on the CRT and the
data sets can then be established.
DUCTS t 1
HEAT
EXCHANGERS
~
FLOW CONTROL
-0-
.n=
SHUT OFF VALVE SEPARATOR
x
ORIFICE MIXER
Dot -Grid Routine The dot -grid routine provides the mechanization to
force the light pen detected coordinate points of each reference location of
symbols in the program to be corrected to standard values so that they can
be referenced by any part of the program. The routine can be called any
time the main program is in control to establish the location for draw-
ing a component. It is also frequently employed when an error has been
made in the drawing and it is necessary to have a new starting location. It
is also the means for locating the branch points when other branches are
added at a node.
The dot -grid routine plots a set of dots on the upper portion of the scree!
in a grid-like fashion. (See Figure 4a). Each dot is located at a distance of
164
170 raster units from its neighbor in the vertical and the horizontal direc-
tion. When the routine is called, the grid appears on the screen and re-
mains there until a light pen detect occurs. When detection occurs. the
actual x -y coordinates of the point in raster units are returned to the pro-
gram.
In order to insure that tolerances do not influence the exact integer loca-
tion of the coordinate another routine is used. This routine in effect forces
each point to be recorded as a particular predetermined set of coordinate
numbers. The means by which this is accomplished is to take the x and y
coordinate and divide it by 170 after the point has been translated by a
quarter of an inch or 85 raster units. The integer divide routine in FOR-
TRAN then truncates the decimal portion of the coordinate number and
there is left the actual coordinate position. after translation to cancel the
original translation.
Therefore. any point roughly within 1/4 inch in the x and the y direction
from the coordinate will be recorded as the x -y coordinate location in-
tended for the grid.
Once the corrected x and y coordinates are determined. they are placed
in common storage as integer variables for use in any of the program sub-
routines.
165
When data are entered into the graphic data array (Figure 1), two steps
are required. First, the necessary symbol coordinate points are entered
along with a special code for the number located in the function key num-
ber storage position of the table. In addition, another number, which is
indexed after each component subroutine is completed, is placed in column
5 of the graphic data array. A new row is selected whenever additional
coordinates are recorded. This row also has column 5 labeled with the
same number as that used for the symbol coordinates. This number is a
cross -reference when the data are entered. The cross -referenced number
and the coded number defined above for the symbol terminals are provided
to differentiate the data used in subsequent computations.
3. 0 Construction of Computational Data Sets: The relationship between
the graphical data sets and the computational data set is established by a
state point labeling routine. The routine consists of two basic parts. The
first part identifie~ the particular state point with the components connec-
ted at that state point. The second part rearranges the graphic data array
into a new structure where the order is related to the computation se-
quence.
State Point Routine At the user level the designer begins the labeling by
selecting a starting point or the input to the system. The light pen is
placed over the point to be labeled causing four points to appear around
166
the selected point. One of these points, depending on which number loca-
tion is desired, is light penned. The state point number is then plotted at
the location of the point selected from the four points previously displayed.
The program then corrects the state points selected in accordance with
the method used in the dot-grid routine. The integer array is then searched
and each x-y coordinate pair of the table which agrees with the selected
state point coordinates is identified by placing the state point in a column
associated with that set of coordinates, depending on the coordinate point
column location. Generally, at least two components are labeled with this
state point. If the point is a branch then the number of components at the
branch is the number of components labeled. When each point has been
labeled, the user presses the "END" function key for the state point plot-
ting.
The array structuring then takes place. First the array is rearranged
so that the inlet state point of each component is placed in numerical order,
with increasing' order from the top to the bottom of the table. Each of the
other numbers located in the various columns of the row in which the inlet
state point is located are also relocated at the same time., In effect, the
rows of the table are rearranged in ascending order with the top of the
table being considered as the starting point. Where multiple entries of a
single state point number occur as the result of a branch, the rows are
located in the order in which they originally were entered.
After the rearrangement of the table has been completed, the compo-
nents with more than two parts become separated. For example, in order
to provide communication between the compressor and turbine ends of the
cooling turbine in the sample aircycle problem, a means is required for
locating all of the data relevant to the cooling turbine. This is accom-
plished by going through column 5 of the integer array.
This column was filled with index numbers during the symbol drawing
routines as the turbine, heat exchanger, and mixer were plotted. Two
rows with the same index number, other than zero, are associated with
each other by placing the row number of the corresponding element in
column 8 of the given row. For this example, the turbine end data set row
of the cooling turbine will have the row number of the compressor end data
set located in column 8, while column 8 of the row containing the com-
pressor end data set will contain the row number of the turbine end later
set.
The indexing scheme is necessary to prevent a mixing of SUbcomponents
when there are multiple components of the same type, such as might occur
if there are three heat exchangers used in the system. The indexing
assures that all the subcomponents are associated with the proper mate to
form the whole set.
167
COMPUTE Routine: When the state points have been added, the program
is available for computation. This procedure is called by pressing the
COMPUTE function key which activates the COMPUTE routine. This sub-
routine, in effect, is a control program that calls into operation the re-
lated set of subroutines used during the computation process.
When the COMPUTE routine is called, a tutorial appears on the screen
followed by a menu. The menu represents the choices of action which are
available to the user as follows:
1. The entry of the state point numbers of the desired component in
computational order.
2. Display and entry of variable values.
3. Display and entry parameters within component computational sub-
routines.
4. Performance computation.
5. Automatic computation of next component.
6. Data entry into program.
7. Open reference scratch pad area.
8. Menu' display.
9. Return to main program.
To provide sufficient area on the CRT, the menu is replaced by a com -
mand row containing the numbers of the menu. By selecting one of the
numbers with the light pen, the activity associated with that number of the
menu is activated. Following is a detailed description of the menu items.
State Point Entry: Selection of this item calls the dot -grid routine. To
select the state points of the component or SUbcomponent for which some
activity is required. The two state point numbers selected are then plotted
in large letters at the lower left-hand area of the region used by the dot-
grid routine. The order of state point selection is relevant since the order
of selection determines the computational order.
At the program level, the coordinates and entry order of the two points
are recorded. The graphic data array (Figure 1) is then searched to deter-
m.ine if the ordered set selected match is the set of coordinates contained
in a particular row. If the match is not found in the first search through
the array, ordering of the two points is reversed to indicate that a reverse
computation is desired. The array is then searched for the match.
Once the match is obtained, the state points are plotted on the CRT and
the row indicator variable (IS) is reset with the row number in which the
match was found. The variable IS is the key that links the graphic data
array set with the computational data sets so that the computational data
becomes structured in the same order as the graphic data array.
Display of Variables: Selection of the number "2" of the menu causes the
168
(Actual Sis. 18 2$ by $0)
VARIABLE STORAGE
PARAMETER STORAGE AS
REQUIRED BY COMPONENT ~
I::>
~ !§ ~ !§ COMPUTATIONAL SUBROUTIXE
.
Ii! ~ ~ :. ~ ~ ~ :. ~
1
2
)
4
$:
6
7
8
. 9
10
11
12
1)
..... L-.
- _- -- - - -- - --V
- - .....
- ..1\
47
48
49
50
.......
ffi Figure 5 Computational Data Array
contents of the variable portions of the IS row of the current data array
(CDA) and old data array (ODA) to be displayed. (Figure 5). For instance
in the air cycle application these variables are the inlet temperature,
pressure and airflow rate and the outlet pressure and temperature. The
variables are listed in the heading of the display as "FI! for pressure, liT"
for temperature and "w" for weight flow. Each variable is followed by
the state point number associated with the particular variable location.
Three sets of variables are displayed. (See Figure 4b) The "NOW"
row contains the variable values currently stored in CDA, the 1I0LDII row
contains the values of the variable which were stored in ODA during the
previous operation; the last set is labeled "NEW" and will contain either
the same values as before and the IINOW II row contains the results of the
calculation just completed. The values in the IlNOW Il row are in the un-
protected mode and therefore can be changed with the alphameric keyboard,
To accomplish this change the I! JUMP" key is depressed to move the
cursor under the block into which the new value is to be entered. To store
the new data in CDA for later use, the IIENDfI key on the alphameric key-
board is depressed in conjunction with the "ALTII key.
At the program level, operation of the "ENDlt key causes the variable
information contained in the current data array (CDA) to be transferred
to a 50 by 20 temporary storage array called (ODA).
Display Parameters: This routine, activated by light penning number "3",
causes a flag to be set in column 12 of the currently selected array or IS
BLEED
IN
2 3
4 5
SINK
IN
17 15 16
170
row in the graphic array. The COMPUTE operation then calls the compu-
tational subroutine associated with the type of component currently selected.
Each of the component computational routines contains a check for the flag
30 31
BLEED
IN 5
29
23
11 SINK
IN
28 21 ......_ _ _...... 26 25 24
which causes the parameter input requests to be displayed for new input or
a change. When parameters are to be changed, the subroutine is executed
as though it were the first time that it was called. At the end of the routine,
the flag is removed so that a further call to the routine will not require
parameter entry.
It is noted that the parameter input requests are called automatically
the first time a subroutine is called.
Performance Computation: This activity, selected by light penning number
"4", causes the subroutine associated with the component function key num'"
ber stored in column 13 of the graphic data array to be called.
When the computation subroutine returns control to the COMPUTE
routine, the Variable Display is presented with the results of the computa-
tion entered in the IINEW II row. The results can then be entered into the
current data array for every component which has as one of its state point
numbers, the same state point number as the outlet of the current compo-
nent. An alternative is .to enter data into only the CDA for the current com-
ponent. By operating the IIEND" key the data is entered into the current
component position only. By selecting "6" with the light pen, the data is
171
entered into CDA in the outlet position of every component with inlet or
outlet state points, the same as the current output state point.
Automatic Computation: By selecting number "5", the next component is
entered into current status for computation automatically. The new cur-
rent component state point numbers are displayed in the same order and
the COMPUTE instructions are executed.
This instruction increments only one component at a time so that it must
be selected repeatedly for a series of components. The routine avoids the
necessity for selecting every component to be computed with the light pen.
Enter Data: This command is internal to the compute command {number-
1t41t} routine previously described. The action resulting from the selection
of this command at any other time is the display of an error message.
Scratch Pad: Command "7" opens up an area at the bottom of the CRT in
which the user may type messages that are helpful to him as memory aids.
Menu Display: This part of the program is activated by selection of num-
ber "8 11 with the result that the full menu is displayed to refresh the mem-
ory of the user as to which action results from the selection of a particular
number.
Exit: When number IIgll is selected, the graphic data array and CDA are
printed and program control returns to the main program.
4.0 Air Cycle Application Example~4} The design of aircraft air cycle,
air -conditioning systems was chosen to demonstrate the application of the
graphic on-line technique. As is normally the case with systems that-rely
heavily on the principles of thermodynam.ics, fluid flow, and aerodynamics j
172
To exit from the subroutine, EDUCTR is called. This routine stores
the coordinate points and appropriate codes in the graphic data array and
places an arrowhead on the end of the duct.
A technique which was developed for this routine involves consecutive
operation of a single function key a number of times. To avoid a discon-
tinuous appearance in the line at half-inch intervals, the routine is arranged
so that the previous plot is erased and the buffer is reset before the next
line is drawn. For example, first a half-inch line is drawn. This line is
erased and then a one-inch line is drawn. This line is erased and is re-
placed by a one and one-half inch line, etc.
Where branching occurs, a duct must be ended at the branch point. In
other words a branch point must terminate the upstream duct and be the
starting point for the required downstream ducts which may be two or more
in number.
Heat Exchanger Routine: This routine is the most complex graphic routine
as it provides many options with respect to configuration and orientation.
First a 'light pen detect on a dot grid is made to locate the center of the
heat exchanger symbol. Next, the direction of the sink air flow is indicated
by light penning either "vertical" or lIhorizontal. II This places a rectangle
on the CRT with two attached lines indicating the raIn air inlet and outlet
connections. GRIDR (the dot-grid routine) is used twice to record the x-y
coordinate s of the connections.
Next the CRT requires the location of the bleed air inlet position. The
light pen selects the corner of the rectangle nearest to the inlet. At the
same time the user indicates how many passes are desired in the bleed
air side. The bleed air ducting is then plotted to complete the heat ex-
changer symbol. Once again, GRIDR is used to enter the connection co-
ordinates.
The choices in this routine are the rotation (horizontal or vertical),
location of bleed air inlet (one of the four corners), and the number of
bleed air passes (one, two, or three). These options are not related to
the actual configuration or performance of the heat exchanger.
The options were provided to prevent awkward situations from occuring
in the drawing of the ducts and thereby wasting space on the screen if a
large system is being drawn.
Turbine Routine: The cooling turbine drawing routine was used to demon-
strate the use of a rotation and reflection matrix so that the major portion
of the symbol is drawn by using one quarter of the symbol. This is ro-
tated and reflected to provide a complete turbine symbol.
To place the symbol on the screen, the center of the turbine is located
with GRIDR in response to CRT instructions. To prevent complicated duct
173
routing, the turbine inlet / compressor outlet connections may be located
either above or below by light penning the appropriate corner of the tur-
bine/compressor.
The next procedure is to locate the x -y coordinates as was done in the
heat exchanger routine. In this case J however J the first two coordinates
must be associated with the turbine end in the direction of air flow. The
compressor end coordinates are then entered, also in the direction of the
air flow.
Flow Control Valve/Orifice Routine (FCVALR/ORIFCR): The center of
these symbols is selected with a GRIDR whIch is internal to the program.
Next the direction of flow J HORIZONTAL Or VERTICAL J is selected. The
symbol, is then· plotted. GRIDR enters the exit coordinates of the valve
into the graphic data array while the entrance coordinate is the same as
the last coordinate of the preceding symbol.
Shut Off Valve Routine (SOVALR): This symbol routine uses an improve-
ment over the method described above. Here the symbol is placed on the
CRT by pressing the shut...,off valve function key and then one of the keys
used for DUCTR depending on the direction of air flow. The valve is then
plotted starting at the coordinate of the last point plotted in the previous
routine in the program.
Bleed Air Inlet (BLEEDR): This routine indicates the bleed air source
with an "X" located by GRIDR. Accompanying the IIXII is the label IIBLEED
AIR IN. \I
Water Separation Routine (WASEPR): The water separator routine utilizes
a full set of rotation matrix instructions. The symbol could be drawn at
any rotational angle; however, only 90 degree increments are used.
To place the water separator on the screen, GRIDR is used to select the
center of the water separator without benefit CRT instructions. The air
flow direction is indicated by selecting the appropriate arrow with the light
pen.
Mixing Duct Routine (AMIXR): The configuration is selected by deleting
one of the connecting ducts on the symbol located at the bottom of the CRT
with the light pen. GRIDR is then used to select the center of the position
at which the mixer is to be located.
The symbol is plotted and GRIDR appears to enable the end points to be
entered into the integer table. The three connecting points are entered in
such a way that the final point entered corresponds to the outlet of the
mixer.
In this program the mixer symbol only accommodates the mixing of
174
two streams of air. If more streams join at a point, another mixer is
required for each extra stream.
3.3 Description of Computing Data Structures and Routines: The follow-
ing subparagraphs describe the use and operation of the AIRCYC compo-
nent computational subroutines called from COMPUTE. (12, 13)
Duct Routine (DUCT): This subroutine computes the inlet or outlet
pressure in a particular duct depending on the order of the state point
entry. The computation can be made by the use of a (J~p curve, or the duct
diameter and equivalent length can be used.
When this routine is called, the first action is to request an input if the
use of a (J~p curve is intended. If not, then function key 30 is depressed
causing the display to request the duct parameters, duct length and diam-
eter, all in inches.
In the first case, (J~p is entered from a curve in the space provided
with the appropriate units of either inches of water or mercury.
The subroutine then computes the duct pressure drop as a function of
either the inlet or outlet pressure and temperature depending on whether
or not reverse or forward computation instructions have been entered. The
only requirement for attention is if the Reynolds number exceeds 3000
when duct parameters are used. If this occurs, the CRT will display a
message requesting friction factor data.
Heat Exchanger Routine (HEAT): The subroutine first determines which
side of the heat exchanger is involved. This is done by testing column 13
of the graphic data array to see if the normal function key number or the
coded number is present. If the coded number is present, the average
temperature of the cooling or ram air temperature across the heat ex-
changer is determined using the data obtained from the bleed air side cal-
culation. This data is found by reference to column 8 which contains the
row numbers in CDA of the data for the bleed air side of the heat exchanger.
The pressure drop is then computed with the data which was input by the
alphameric keyboard in response to a displayed request for data.
If the coded number is not present, the temperature drop across the heat
exchanger is computed using the parameters and variables requested from
the display. A procedure contained in this routine provides for linear in-
terpolation to determine values between curves. If this method is chosen
for entering the heat exchanger effectiveness, a light pen detect will allow
machine interpolation to be accomplished.
After the temperature drop has been computed, the pressure drop
parameters are entered into the display. This permits computation of the
pressure drop for the hot side of the heat exchanger.
175
Cooling Turbine Routine (TURBIN): First a test to determine which end of
the cooling turbine is to be analyzed is made. When the turbine end is to
be analyzed, the turbine speed is requested. Next the turbine flow factor J
turbine wheel diameter, the tolerance allowance between the assumed flow
and the flow which will pass through the turbine at the existing inlet condi-
tions, and the turbine nozzle effective area are requested. The turbine
pressure ratio and the corrected turbine speed are displayed for use in
obtaining chart data.
The next request is for the turbine efficiency which is obtained from a
set of curves using the velocity factor and the pressure ratio displayed
along with the request. The temperature drop is then computed.
The flow tolerance test then checks the assumed weight flow and the
turbine nozzle flow. If the required flow is not within the required toler-
ance value entered earlier, the routine is ended.
For the compressor part of the routine in a bootstrap system, the first
request is for the compressor wheel diameter. Next the compressor
pressure ratio, Mach number and efficiency are requested given the com-
pressor flow factor. When the simple cycle is required, the display re-
quests the corrected speed and corrected airflow rat~ given the turbine
power factor and compressor pressure ratio.
When the bootstrap turbine routine is finished, a check determines if
the tem.perature drop across the turbine is equal to the temperature rise
across the compressor.
Flow Control Valve Routine (FCV): The flow control maximum is
checked against the assumed flow. If the assumed flow is less than the
flow control maximum flow then the pressure drop across the valve is
computed.
On the first time through the calculation, or when the parameter flag is
set, the flow control constant is entered.
If the flow control valve is controlling the downstream or discharge J
pressure is indeterminate. The discharge pressure can be determined by
reverse direction calculations if it is required.
Shut-Off Valve Routine (SOV): The shut-off valve subroutine is designed for
butterfly valves since an analytical expression is available for the geome-
trical area. This requires that the open angle and valve diameter be en-
tered into the display in the spaces provided. If other types of valves are
desired, then the effective area must be entered into the appropriate block.
The routine calculates the effective area for the butterfly valve and then
calls the orifice subroutine for computation of the weight flow. When the
176
effective area (CA) is input, the orifice subroutine is called directly.
Water Separator Routine (SEP): If the parameter display has not been
selected, a check is made to see if the airflow rate has changed. If the
parameter display has been selected or if the airflow rate has changed, the
parameter acquisition routine is activated.
The first request is for dew point temperature of the air at the given
temperature and pressure as well as the inlet humidity and the saturated
humidity.
The routine then checks to determ ine if the air is saturated. If the air
is not saturated, the subroutine requests the dry <r.D.P value at the given
weight flow via the display. The dry separator pressure drop is then com-
puted in the desired direction.
If the air is wet (supersaturated), the routine requests the wet <rAP as
well as the efficiency at the given airflow rate.
Water ,separation performance is then computed to give the outlet hu-
midity level and the outlet dry air rated temperature.
The pressure drop is computed next, but it must be noted that when the
separator is removing moisture both the separation calculation and the
pressure drop calculation must be done in the forward direction because
the humidity values are based on the separator inlet pressure.
Orifice Routine (OR F): This subroutine requests the user to input the
effective orifice area (CA) of the orifice and then computes the airflow
rate using the inlet and outlet pressure values previously stored.
When using this routine which is also called by the shut-off valve routine,
the designer must be certain that both the inlet and outlet pressures are
supplied, otherwise erroneous results will be obtained because of division
by zero.
Mixing Duct Routine (MIX): The mixing duct subroutine operates on data
already stored in the machine. Consequently no input is required of the
user. The routine is called only when the user knows that the inlet data is
available and desires to know the results of the mixing operation.
5.0 Conclusions: The techniques for generating data sets from an arbi-
trary assignment of computer graphic symbols have proved effective in
reducing the number of man-hours in bringing an interactive system to an
operating point. Additional savings can also be achieved by: (1) automating
some of the computational steps to include groups of system components at
one time, and (2) developing a new language to handle more of the program
setup procedure. These considerations are currently under investigation.
177
BIBLIOGRAPHY
1. Karplus, Walter J., Editor, On Line Computing, New York McGraw":
Hill, 1967.
2. Moore, Gwenn, Users Guide for GRAF: Graphics Additions to
FORTRAN, Los Angeles, University of California, Health Sciences
Computing Facility, 1968.
3. International Business Machines, !tUse of the IBM 2250 Display Unit, 11
IBM Data Processing Application, White Plains, International Bus-
iness Machines Corporation, Technical Publications Department.
4. ASHRAE Guide and Data Book: Fundamentals and Equipment, New
York, American Society of Heating, Refrigerating, and Air Condi-
tioning Engineers, 1965.
5. Shapiro, Ascher H., The Dynamics -and Thermodynamics of Com-
pressible Fluid Flow, Vol. I, New York, The Ronald Press, 1953.
6. Kays, W. M., and London, A. L., Compact Heat Exchangers, 2nd
edition, New York, McGraw -Hill, 1964.
7. Ba~meister, Theodore, Editor, Mechanical Engineers Handbook,
6th edition, New York, McGraW-Hill, 1958.
8. U. S. Ames Aeronautical Laboratory Research Staff, "Equations;
Tables, and Charts for Compressible Flow," NACA Rep. 1135, U. S.
National Advisory Committee for Aeronautics, 1953.
9. Andersen, Blaine W., The Analysis and Design of Pneu-Systems,
New York, John Wiley, 1967.
10. Airesearch, "Psychrometric Chart for Various Pressures," Internal
Publication, Los Angeles, Airesearch Manufacturing Company, 1959.
11. Siders, R. A., et al., Computer Graphics, New York, American
Management Association, 1966.
12. Berhold, E. D., "Interactive Designs of Nonlinear Systems Using
Computer Graphics, " Master Thesis, Computer Science Department,
University of California, Los Angeles, 1969.
13. Berhold, E. D., Berhold, M. P., McNamee, L. P., "Computer
Graphics: A Powerful Simulation Tool for Nonlinear Algebraic and
Emperical Design Problems," submitted to Simulation, Decem.ber
1969.
178
A CAD APPROACH TO BLANKING DIE AND
TECHNOLOGY DESIGN
J. Ferenczy
Preface
Some years ago, a group of workers in the Research
Institute for Automation of the Hungarian Academy of Sci-
ences started working on interactive design techniques.
It was decided to try and find a domain which should meet
the following requirements:
- contain typical problems of machine design and technology
- make possible a linkage with the parallel research groups
engaged in the numerical control of machines, NC processors
and postprocessors studies, the development of display
software and display hardware and language problems,
- in short a CAD programme with the greatest possible ver-
ticality, setting out from the design stage and going
right through to complete manufacture of the product.
The programme, presented here - is a typical instance
of these ideas, comprising the whole series of design-steps,
leading from the graphical part description to NC machining.
At the same time, it can serve as a basis for a comprehen-
sive programme package, containing other vertical programmes,
ultimately to build up a cold press technology design system.
Economic aspects - though subsidiary of the conception were
not neglected. In fact, the computer aided tool design prog-
ramme may fill a long-felt gap in the machine and electronic
industry. The programme was worked out with the cooperation
of the technology and tool design branches - mostly of
electric and electronic production of high precision pressed
workpieces.
179
and with the addition of technological data, such as: mate-
rial, tolerances, standard constructional data of die ho-
sings, press machines and economic factors. The first module
of the programme checks the technological instructions and
configuration of the part drawing, tolerances, gaps, roun-
dings and critical lengths. Only if all of these are in
accordance with the technological requirements, does it start
further steps. If not, it returns the drawing to the operator
with detailed redesign instructions.
180
2C ,L or other equivalent programme, likewise the subroutines
marked T, K, S giving the area, contour length and center of
gravity.
V V V 11 ht pen
2el
or
EXAP'l'III
181
modules are completed by checking routines, suitably planted
in the correspondent blocks.
Dialogue operations
This selected field of CAD appeared from the early
stages of programme writing complicated enough to offer an
opportunity to use an interactive communication mode between
operator and computer. Later a whole series of critical nodes
appeared to be tractable only by these more sophisticated
techniques. The solution of these sectors would be hopeless
without the interactive method.
Fig. 2.
Fig. 3.
182
Fig. 4.
Fig. 5.
1~
Fig. 6.
Fig. 7.
1M
Fig. 8.
Fig. 9.
185
Fig.10.
Fig.ll.
programme Isee Figs. 14, 15, 16, 181, or with the mosaic par-
titioning IFig.19/. Sometimes economic decisions are needed
in addition to geometrical and technological problems. In
the stage, shown in Fig.ll, the computer gives a proposition
as a result of an economic calculation but it leaves the fi-
nal decision to the operator.
At the same time, a long series of well determined
mechanical calculations are at hand which can be called in
by the executive or by the operator, like some subroutines
186
Fig.12.
Fig.13.
187
is considerably larger than that of the part specially written
in the frame of the tool design programme. The initial prog-
ramme - as stated above - is at present the 2C,L* part des-
Fig.14.
Fig.lS.
1~
Fig.16.
Fig.17.
189
Fig.18.
Fig.19.
Further Development
The programme discussed here is written partly to be
used independently, partly to serve as the base for package
for cold press technology design.
100
The vertical programmes for bending, drawing and for-
ming comprise several steps which have been solved by one or
other module of the base programme.
First of all, the geometrical description and the
connected subroutines as well as the biggest parts of the
terminal programmes will remain unchanged. Only an extended
version of the menu will be necessary. On the other hand, the
basic programme is in its entirety the opening section of the
cold press technology project, be it bending or drawing or
forming. In this way, more vertical programs may be connected
in series and in addition a considerable number of modules may
be used repeatedly.
The main parts - referring to A and B in the basic
programme - will be changed as well as the related part of
the executive.
In fact, the extension of the performance of the ori-
ginal programme can be implemented at the price of a fraction
of what was alloted to the basic programme.
Summary
The paper is concerned with an interactive computer
programme for blanking die and technology design, written by
the author in the Research Institute for Automation of the
Hungarian Academy of Sciences.
The paper gives a short survey of the technological
contents and performance of the programme. It describes the
structure of its operation, and connection to other program-
mes. The main part of the paper is related to the experiences
of interactive programme writing and development for a wider
system.
References
1 Barker, A.J.: Numerical engineering in car body manu-
facture.
Machinery and Production Engineering,
1968. July, 31. p.268-277.
191
MTA Automatizalasi Kutat6 Intezet, Film,
1967. Dec.
192
design.
Proc. of the IFIP Congo 65.
193
COMPUTER-AIDED DESIGN
at
MCDONNELL DOUGLAS
J. J. Lavick
McDonnell Automation Center, Bldg 105, Level 3
232-8043, P.O. Box 516, St. Louis, Missouri 63166,
U.S.A.
ABSTRACT
1. INTRODUCTION
1.1 Scope
Like many complex processes, the concept of Computer-
Aided Design (CAD) is today greatly misused, misinternreted,
and misunderstood. CAD is a very broad subject and since its
195
spectrum of definition is so vast, I will not attempt to
generalize a definition here today, but will simply present to
you one company's point of view of CAD and, more specifically,
highlight some of the areas using computer graphic techniques.
Since the MDC interpretation of CAD is related to computer
systems utilized in the design of some geometrically-oriented
product, this paper will clearly ignore such computer graphic
activities at MDC as ECAP (Electrical Circuit Analysis Program)
CSMP (Continuous Systems Modeling Program), MIS (Management
Information System), etc. CAD at MDC is not completely
restricted to programming/user systems that utilize a CRT
device. Therefore, from time to time, batch, conversational
batch, and passive graphic techniques will be briefly mentioned
1.2 The Design Problem
The difficulty of CAD definition is inherent to the
"design process" itself which, at best, is arduous in descrip-
tion. The design process, a mix of graphic and analytic
functions, is identifiable by its three primary phases;
(a) conception, (b) definition, and (c) communication. Under-
standably, the distinction between these phases is not always
clear. Nonetheless, they mark not only the overall characteris
tics of the design cycle but also continually reoccur through-
out the subprocesses of the cycle. The conceptual phase con-
sists of the construction of a preliminary layout which can be
used for weight and space allocation studies. Various struc-
tural arrangements are proposed and initial trade-offs are
evaluated. Finally, a tentative configuration selection is
made. During the definition phase, preliminary layout work is
updated and finalized. From this, weight and cost optimization
studies can be performed on configuration subsystems from which
196
final sizing of structural elements can be completed. General-
ly, prior to establishing the final design specifications,
interference and tolerance effects on manufacturing, assembly,
and performance are reviewed. In many aspects, the communica-
tion phase of the design process is the most important. Engi-
neering drawings which describe detail parts and assemblies
must unambiguously communicate the structural concepts derived
by the designer. These graphic descriptions must be precise
and easily interpreted by subsequent functions--design evalua-
tion, manufacturing, and ultimately the customer. Figure 2
illustrates the basic design stages as seen at MDC. The pro-
cess is highly characterized by the TRANSMISSION, MANIPULATION,
and CIRCULATION of information interacting among all stages.
Figure 2 does not intend to imply that currently all data
involved in this cycle at MDC is captured by a central computer.
However, MDC presently employs many computer based methods that
are considered CAD techniques. More specifically, graphic
consoles are gradually being introduced into these CAD
activities.
Figure 3 - Modes of CAD Usage at MDC Figure 4 - DUAL MAIN (Central Files)
Computer Configuration
197
the various batch systems located there present a CONVERSA-
TIONAL/BATCH facility to all MDC users and has been in suc-
cessful production use for some time now. As an example of
this mode MDC has located throughout its Engineering user
locations over 30 terminals that serve as remote access to
MCAUTO's ASP (Attached Support Processor) 360/65-75 System.
(As of this writing, various terminals include: (19) 1050's,
(28) 1130's, (7) 2780's, (4) 2260's, and various combinations
of smaller 360 model computers.) Various other related CAD
equipment, accessible via these terminals include (4) Bensen
Lehrner plotters, (1) Calcomp Plotter, (3) ORTHOMAT drafting
machines, (2) TRIDEA Line Tracers, and various NC Machine
Tools. True time-sharing facilities at MDC are provided using
TELETYPE terminals on MDC's "DIRECT ACCESS" Computing System
using a GE 420 central computer. The last mode of CAD usage
is the INTERACTIVE CRT terminals. Since the interest and
theme of this conference is in this area, the remainder of this
paper will dwell on Interactive Computer Graphics (ICG) as
related to CAD.
2. ICG HARDWARE/SOFTWARE
2.1 Equipment at MDC
Figures 4 - 7 describe the ICG equipment configura-
tion at MDC (St. Louis). The SYSTEM 360/(65) used for graphics
is part of a "dual main" three computer hookup. One computer
(Model 65) performs job-scheduling, I/O processing, and remote
198
graphics programs using LCS, centralized data files for both
interactive and batch users, and remote data communication
terminals for high/medium speed printer, cald read, tape
punch, etc. operations. The rCG Model 65 contains 768K bytes
of central memory coupled with one million bytes of low speed
(LCS) core. Remote IBM 2250 CRT terminals are hardwired to
user sites, as far as 12,000 feet, using the IBM 2916 Long
Line Channel Adapter device. Software features include
an OS/MVT multi-programming environment, fixed size region
"fencing" for graphics, High Speed Core/LCS inter-region
199
2.3 CAD Overview
In order to integrate CAD techniques into the over-
all DESIGN CYCLE let's again review the DESIGN OVERVIEW PROCESS
as seen at MDC. Figure 9 illustrates the constant interchange
of information between various combinations of men and/or com-
puters at different stages of the project. Some techniques are
200
I do not mean to imply by the above discourse that
MDC is, by any stretch of the imagination, fully CAD oriented.
We, like all of industry, are constantly striving to improve
and advance engineering techniques. Since the design process
can readily be seen as extremely complex, change can be very
difficult, at best, to incorporate. Many of our attempts to
automate MDC processes have been highly successful. Others
have failed. With the advent of computer graphics we feel
the potential is very high. Our first thoughts were to bridge
the gaps in the overall process with a complete interactive
CAD system. We know now that this is not possible at this
time. Engineering drawings and certain manual techniques will
continue to be utilized for some time to come. Our current
philosophy with respect to CAD at MDC is to concentrate on
those individual areas that can readily augment isolated phases
of MDC design. The following illustrations sample some of
these activities and areas of concentration.
3. ICG APPLICATION AREAS
3.1 Advanced Design (Aerodynamics)
Figure 12 is an example of an Advanced Design Aero-
dynamics type of ICG application. This program is utilized to
calculate the hypersonic aerodynamic characteristics of com-
pletely arbitrary three-dimensional shapes. The program fea-
tures geometry viewing, checking, and correction capabilities,
as well as calculation and display of vehicle aerodynamics as
determined by simple modified Newtonian theory. 3D space co-
ordinates determine plane quadrilateral sections as pressure
Figure 13 - OPTICS Study (Degrees AZIMUTH vs. Figure 14 - OPTICS Study (Degrees AZIMUTH vs.
Milliradians of ERROR) Degrees ELEVATION)
202
in correcting basic geometry. At present the only benefit of
the CRT system is verification of the input geometry via com-
puter drawn pictures of the aircraft shape from various viewing
Figure 15 - Structural Analysis (DC-lO Inboard· Figure 16 - Structural Analysis (DC-lO Outboard
Wing Section) Wing Section)
203
format of data input, and interaction response criteria for
the on-line user.
3.4 Advanced Design (Structural Optimization)
As mentioned earlier, a key aspect of the design
cycle is the conceptual phase where initial geom~try, space
allocations, general structural arrangements, etc., must be
generated and evaluated to establish overall design limits.
Various optimization programs have been developed to
achieve this within a minimum elapsed time span. CADE (Compu-
ter -Aided Design Engineering) is such a program developed by
MDC. It is basically a structural optimization program uti-
lized to evaluate various configurations in terms of overall
vehicle geometry, engine placement, fuel cell-landing gear-
wing locations, etc. Not only does CADE feature the optimiza-
tion analysis but the resultant output data is directly compa-
tible with the data structure of MDC's interactive Design!
Drafting (DD) system. Dominant among, the central problem of
computer graphics is the lack of standardization in this area.
Many programs that feature related functions cannot be inte-
grated because they were developed independently with unique
and non-standard data structures.
Figure 17 describes a typical se~ of requirements and
design parameters that serve as input data to CADE. Figures
18-21 illustrate graphic display of the optimized vehicle and
various aids from the DD system that can be utilized to
REOUIREMENTS
DESIGN PARAMETERS
205
may be input as equation coefficients or by point-slope data.
Surface patch controls, geometry, transformation matrices,
surface bounds, and TYPE are stored using .the common routine
Figure 21 - CADE/DD Vehicle (Scaled/Section Figure 22 - Trimetric View of Phantom F-4 Aircraft
Properties)
Figure 23 - LOFT Surfaces and Surface Index Map Figure 24 - LOFT Typical CONIC Surface
206
part programs for drafting, design layouts, NC tape verifica-
tion, milling, and inspection purposes. As seen in the exam-
ple, input data consists of APT geometry definitions, identity
of LOFT data to be retrieved from the central file, cutter
geometry and motion sequences, and coordinate system relation-
ships. Figure 29 illustrates use of this system for plotter
output. In this instance, Phantom F4 Duct Sections are plotted
and nested about the centroid.
Figure 25 - LOFT Typical RULED Surface Figure 26 - LOFT Typical CUBIC Surface
Figure 27 - SURFACE INPUT (Coding Form Figure 28 - SURFACE ACCESS (Coding Form
for Batch Mode) for Batch Mode)
207
geometry have a choice of user modes; namely, graphics or
conversational batch. Among other significant benefits, the
LOFT graphics program has served as an excellent educational
tool to train and familiarize various MDC personnel with the
complexities and capabilities of our lofting techniques.
Figures 30-34 describe various production surfaces under devel-
opment at the graphics console. As an illustration of the
generality of surface definition and flexibility of transforma-
tion relationships, Figure 35 describes various patches defin-
ing a common bottle.
Figure 29 - PHANTOM F-4 DUCT Sections Figure 30 - LOFT Surfaces (Phantom F-4
(Nested About Centroid) Center Fuselage Section)
Fi.!i,ure 31 - LOFT Surfaces (DC-10 Wing Tip Section) Figure 32 - LOFT Surfaces (F-4 Internal Fuel Cell
3.6 Design/Drafting
One of the most controversial rCG applications with
respect to payoff is the development of a generalized DESIGN/
208
DRAFTING (DD) system. Many people believe that the straight-
forward speeding up of the drafting process is not adequate to
justify the large software investment and hardware costs of a
computer graphics system. Others feel that computer-aided
systems for engineering drawing are justified in the light of
drawing generation costs, turn-around time, centralized digital
data, and drawing maintenance considerations. Since most draft-
ing work tends to be repetitive and rather tedious, a computer
based system seems very applicable. Once the data is available
in digital form, analysis programs can be more readily employed.
Figure 33 - LOFT Surfaces (DC-lO Wing Plan View) Figure 34 - LOFT Surfaces (Phantom F-4
Forward Fuselage Section)
Figure 35 - LOFT Surfaces (Bottle Shape) Figure 36 - LOFT/DESIGN Comparative Analysis Chart
209
computer graphics approach. In the conventional mode it takes
(a) design personnel an average of one elapsed day (one actual
manhour) to define and formally prepare his requirements, (b)
10ft personnel four days (12 actual manhours) to react in
terms of computer programs, digital plots, etc., and then
(c) design another three days (9 actual manhours) at the draft-
ing boards to complete the task (such as layout internal non-
lofted structure). This totals seven elapsed days or 22 actual
manhours of effort. In the ICG mode turnaround time is almost
minimal (one and one-half day or two actual manhours). Con-
tour lines can be extracted directly by the designer from
on-line central files and 10ft personnel need not be involved.
Elapse time in the 10ft area is for drafting machine support
only. At MDC it is felt that the 7:1-1/2 elapsed time savings
is probably realistic. The 11:1 manhour savings is questiona-
ble, especially because of the experience level of personnel
involved in our study. We do, however, feel that an 8:1 man-
hour savings is possible and this is one of the major reasons
of continuing our interest and developments in the area of
DESIGN/DRAFTING.
The DD package, by the nature of the task which must
be performed, is necessarily an extremely complex, inter-
related fusion of a great number of program modules. Each
module must perform a specific function which is, in turn,
related in one or more (perhaps many) ways to the total pack-
age. Figure 37 summarizes the basic functions available in
210
design goal is achieved. The advantages of this man-computer
relationship are obvious; the speed and accuracy of the compu-
ter are utilized to perform the menial and repetitive tasks
normally occupying a large amount of the designer's time, thus
freeing him for the more creative aspects of the design func-
tion. Every aspect of the design process is, therefore,
enhanced.
The DD package enables the user to create a mathema-
tical model commensurate with initially available design
criteria, and to view the image of that model via the 2250
display console. As the design process progresses, the cri-
teria changes as the results of testing become available and
interfaces become more clearly defined. The user may manipu-
late and change the model correspondingly until the design goal
is achieved. Once the design goal is achieved, hfl may file
the model (drawing) for subsequent retrieval and massage. The
capability stated above requires in excess of 400K bytes of
total software which indicates the complexity and interaction
of the system structure. Figure 38 is a graphic representation
of the manner in which data and program modules are dynamically
used with computer memory. Various overlay and data paging
techniques are employed.
The remainder of this section describes some of the
application features of the DD system. Figures 39, 40, 43, and
50 illustrate basic layout facilities. Figure 40 also exempli-
fies generation of orthographic and auxiliary view projections
of an ejection rack forging after it had been machined.
Figure 41 illustrates the concept of configuration evaluation
Figure 39 _ DD Drawing (Ejection Rack Forging) Figure 40 - DD Drawing (Ejection Rack Forging
after Machining)
as various members of a support rib can be merged into the
initial drawing. Figure 42 demonstrates volume and weight
calculations on the previous shape. Figure 44 illustrates ex-
ternal cross section contour lines that were retrieved from
the on-line LOFT surface files. Figure 45 illustrates nested
211
Figure 42 - DD Structure (Volume and Weight
Figure 41 - DD Drawing (Structural Support Rib) Calculations)
212
section cuts and utilization of volume/weight/wetted area cal-
culations for a given aircraft section. Figures (46-48) de-
monstrate the shape macro capability. These macros consist of
software routines which will, based upon input parameters,
generate such standard drawing elements as stringers, stiffners,
shear ties, joggles, flanges, etc. Figure 49 is a partial.
Figure 49 - DD Drawing (Partial Section with Stringers) Figure 50 - DD Drawing (DC-lO Inboard Rib Section)
213
Figure 51 - Section View (Typical Stringer Tie Detail) Figure 52 - Section View (Shear Clip Scaled Up)
Figure 53 - Section View (Shear Clip End) Figure 54 - Three Views (Shear Tie)
214
his problem graphically as well as mathematically. Figures 56
and 57 illustrate the use of DIMENSIONING facilities within the
DD environment.
215
Figure 61 - NC GRAPPLE SYSTEM Figure 62 - NC GRAPPLE SYSTEM
(Error Di agnostic) (Cutter Path Display)
216
a form or language compatible with machine control (e.g., APT).
Our first approach was to develop a Numerical Control Graphics
(NCG) program, based on a "2D plus depth" philosophy, Figures
58 and 59 illustrate basic aspects of the package which has
217
GRAPHICS ORIENTED FRACTIONATOR
ANALYSIS AND SIMULATION TOOL (GOFAST)
D. S. Sewell
ABSTRACT
INTRODUCTION
219
purity requirements. Thus fractionation is an essential process in the
operation of a petrochemical plant. In addition, fractionation equipment
represents a large portion of the total capital cost of a refinery or
chemical plant. This portion can be as much as 25 percent of the total
capital cost. The purpose of this paper is to describe the Graphics
Oriented Fractionator Analysis and Simulation Tool (GOFAST), a computer
program that utilizes graphic capabilities in conjunction with fractiona-
tion computations. It is assumed that the reader is familiar with the
fractionation algorithms, and only the graphic portions of the program will
be described here. The goal of this program is to provide the user, in
this case a process engineer, with a modeling tool having fast response
capabilities to make the engineering analysis a smoothly operating process.
The fractionation program was selected as one of the areas of computer
graphic development work because of its complexity, which lends itself to
user manipulation of many variables in a real time mode; its frequency of
use, which implies that any incremental savings in run time will sum to a
significant total savings in computer usage; and its potential for savings
in the capital cost area.
Program Goals
220
h. To minimize total user time at the console by using the fast re-
sponse quality of the light pen and function key features of the
graphics device.
~abilities
The following features of the GOFAST program are available to the user
at the graphics console:
a. Input and error checking of component properties, vapor-liquid
equilibrium constants, enthalpy values, tower specifications,
and feed stream data.
b. The ability to change any input item previously entered, to
delete selected options, and to select a new set of options.
c. Generation of technical data values for equilibrium constants
and enthalpies for each component over the entire temperature
range of the fractionator.
d. Solution of a multifeed, multidraw fractionation tower by means
of rigorous stage-to-stage calculations with heat and material
balances for a steady state operation.
e. Displays of tower parameter stage-to-stage profiles for a cal-
culated base case; displays of componential product streams for
overhead, bottoms and sidedraws.
f. Input and display of tower crossplots that allow the user to
observe the functional relationship between tower variables.
g. Hardcopy printout, as a user option, of input summary panels,
stage-to-stage componential flows, and crossplot summaries.
h. An alternate source of data input for the base case so that
the user need use the graphics keyboard only for entering
changes in data.
Panel Definition
221
User Action Panels
All panels that require user activity have been designed to conform to
the same format. The format consists of the following display areas:
Title and Panel Number, Hessage Area, Data Display Area, and Control Word
Area. These areas always appear in the same relative position within the
panel and thus give the user a consistent format to observe throughout his
use of the many panels that make up the GOFAST Program. By having the same
type of information located in the same area on all panels, the user's re-
sponse and decision making should be more efficient and more automatic,
thus leaving him free to concentrate on the problem itself rather than on
the tools of problem solving. Examples of User Action Panels may be found
on Figures 4 through 16. The format is composed of the following areas
(see Figure 1):
a. Title and Panel Number.
This area is always the top line of each panel, with the panel
number appearing on the right hand corner.
b. Message Area.
The Hessage Area appears immediately below the Title and Panel
Number and contains several messages that inform the user what
actions he may take during the display of the panel and how he
may switch panels. Because the messages are selected from a stan-
dard set of user action messages, terminology and directions are
consistent for all panels. The message area may also contain warn-
ing messages which will inform the user to take immediate corrective
action.
c. Panel Data Area.
The Data Area is located in the center portion of each panel and
makes up the main body of the panel. The information in this area
may be any of three types: a menu, a data display, or an input dis-
play. The menu is a display of user options in which the user may
select one or more of these options to control further action of the
GOFAST Program. An example of a menu may be found in the Component
Property Panel Cl (Figure 6), in which the user may select any com-
ponents required from the menu of standard components. The second
type of data, the data display, may be in plot form or in tabulated
form. The user is given the opportunity of preserving this computed
information in hardcopy form at selected points during the program.
The third type of data, the input display, allows the user to type
input data or to change previously entered data. The user always ha
the opportunity to correct any typing errors before sending the data
to the program via the END key attention.
d. Control Word Area.
The Control Word Area is located at the bottom line of each
panel. The one line display may consist of one to three con-
trol words, each word separated by a slash:
222
PANEL TITLE TOWER DESIQN PANEL NO
MESSAGE
AREA
PANEL
DATA
AREA
Figure 1
Program Action Panels are panels composed of a one line message dis-
played for information purposes only. The user is required to wait and
may not perform any activity at the graphics console while this type of
panel is being displayed. Program Action Panels are displayed to elim-
inate confusion by notifying the user that the program is operating cor-
rectly during noticeable pauses in graphic activity.
Examples of the special one line wait messages are:
PROGRAM LOGIC
223
c. Display and image control of data table input, D Panels.
d. Display and image control of tower input T Panels.
e. Display and image control of feed stream input, F Panels.
f. Editing of input data for all input panels.
g. Computation of component properties and technical data tables.
h. Computation of the tower base case.
i. Display and image control of base case output, U Panels.
j. Conversion, editing, and hardcopy printout of the base case.
k. Display and image control of crossplot input, P Panels.
1. Computation of crossplot data.
m. Display and image control of crossplot data, P Panels.
n. Display and image control of the job control menu, A2 Panel.
Figures 2 and 3 show the interaction between program activity and user
activity. After the user has typed in all input data or changed pre-
viously typed data, the editing routines display warning or error messages
allowing the user to take immediate corrective action. When the user with
the aid of editing routines has produced acceptable input, the program
computes a base case. The user can then request the display of base case
output panels.
After studying the base case results, the user has the option of re-
turning to the input panels to change any input item and then recoTIlputing
a new base case; or he may elect to perform a tower cross plot. If he
chooses the crossplot option, the program displays menus from which he
selects appropriate independent and dependent variables for plotting pur-
poses. Note that the original input specifications are scanned and edited
carefully so that allowable variables only are displayed on the option
menus. After the user types in a plot increment (or decrement) and the
number of points to be plotted, the program enters a computation loop that
increments input, computes a tower, converts and stores the selected out-
put until all cases are computed and stored. The program then displays
the crossplots as directed by the user who has the option of switching
back and forth from one plot to another until he has made a decision.
The user at this time may elect to keep the same base and return to the
input panels for yet another alteration in base case input data, or he may
elect to choose a new base case on the basis of observed crossplots with a
new set of independent and dependent variables. On the other hand, he may
want to display and print out detailed output of his new base case and then
end the program, having found an optimum solution for his particular
fractionation problem.
The Job Title Panel, Al, allows the user to type in the job title and
two switch settings, the input switch and the debug switch. The input
switch sets the source of base case input data as data cards or the alpha-
meric keyboard at the graphics console. Note that input changes to the
base case input are always typed in from the alphameric keyboard. The
debug switch determines the extent of intermediate output to be produced
as an aid in correcting any computational or convergence problems. This
224
output is normally used only if the user elects to analyze the problem
away from the graphics console.
The Job Control Panel, A2, presents a menu of control options that
allow the user to direct the sequence of execution of the main components
of the GOFAST Program. The user may select an input option to change any
data previously entered, or he may select the base case computation option,
or he may select the crossplot display option. In addition, the user may
elect to end one tower computation and start a second tower. Finally, the
user may use this panel to stop job execution and return to the graphics
job processor.
The Component Property Input Panels allow the user to select the com-
ponents to be used during the tower calculation. The components may be
selected from a menu of standard components whose properties are stored
within the program. Special components may also be selected and proper-
ties typed in for any components not shown in the standard component menu.
After the components have been selected, a summary of these components
together with the associated properties is displayed with an option of
obtaining a hardcopy output. The user decides to correct and change his
selections by restarting the series of property panels, deleting previous
selections, and making new selections.
The Data Table Input Panels give the user the ability to describe
the parameters needed to generate technical data tables of vapor-liquid
equilibrium values, vapor enthalpies, and liquid enthalpies. In addition
to typing in table parameters such as pressure and temperature, the user
may elect to overlay individual values in the generated data tables through
the use of special overlay panels. A summary panel is then displayed with
the option of obtaining a hardcopy printout of the data table parameters
and all data points. During the display of the summary panel, the user may
elect to change any input selection or overlay value.
The Tower Input Panels allow the user to enter tower parameters and to
describe the tower configuration e.g. number of stages, number and location
of feeds, sidedraws and exchangers, condenser, and reboiler. Most tower
input panels display a diagram of the tower showing the selected tower
geometry; any user input resulting in changes to the tower geometry will be
displayed in an updated diagram. After the user has described a configura-
tion for a tower, the program determines which specification panels are to
be displayed by inspecting the configuration input. Specification panels
are as follows: Overhead Product Data Panels, Bottoms Product Data Panels,
Sidedraw Data Panels, Heat Exchange Data Panels, and Base Component Panel.
A summary panel and the tower configuration diagram is then displayed with
the option of obtaining a hardcopy printout. The user may change any in-
put by electing to display an input change and restart panel. An editing
225
MENU =0; LINK = 0; SET INPUTLIST
226
NOTE:
CPANL=COMPONENT PROPERTIES
DPANL= DATA TABLES
TPANL = TOWER SPECS
FPANL = FEED STREAM
= 1 OLD INP T
NEW INPUT
NO
END OF LIST
227
program checks all tower input for validity and consistency and displays a
panel showing relevant error messages. The user may then start the pro-
cedure for making tower input corrections.
The user may type in all the componential flows and enthalpy level for
each feed to the tower. As the user types in the feed data, a configura-
tion diagram is displayed together with the name and location of the feed
currently being displayed for input. If there is more than one feed for
the tower, the program will continue to display feed stream panels until
all feeds have been entered.
The first output panel displays the heat balance summary for the base
case currently displayed, e.g. feeds, reboiler, sidedraws, condenser, heat
exchangers, bottoms product, and overhead product. At this time, the user
may elect to obtain a hardcopy printout of a stage-to-stage tabulation of
the tower performance. In addition, the user may elect to display selected
tower output variables. A menu is displayed from which the user selects
output options to be displayed; examples of such options are temperature
profiles, L/V ratio profiles, product data tabulations, profiles of com-
ponential flows at each stage, and profiles of total flows at each stage.
While the tower output profiles and tabulations are being displayed, the
user has the option of paging forward to a new display or paging back to
review the previous display. The user may at any time elect to terminate
the display of the output panels and proceed to another section of the pro-
gram. He may also elect to terminate the current output options and select
a new set of output panels to be displayed for the current base case.
228
as well as obtain hardcopy printout of the summary. He may then restart the
crossplot selection and select an entirely new set of plots to be displayed
either for the same base case or a new base case. He may alternately de-
cide to terminate the crossplot activity and return to the main control
panel, A2, to execute a different portion of the GOFAST Program.
If the user elects to continue crossplot activity, he may do so by the
process of selecting variables, displaying crossplots, and selecting new
base cases until he is satisfied with the results of the tower design or
performance of the tower variables. The interaction of the user, the tower
computation routines, and crossplot panels can allow a tower design to be
optimized in a minimum amount of user and computer time because the results
of the user's selection are made available to him as soon as the tower com-
putation is ended. The user can then proceed to make further selections
based on the information from the previous calculations rather than arbi-
trarily submitting a number of cases in an area of uncertain results.
CONCLUSIONS
Experience gained from sample runs with the GOFAST program and other
engineering applications show that computer graphics furnishes an excel-
lent environment for the on-line solution of technical problems. When
compared to serial printing devices such as the teletype, the fast re-
sponse characteristics of the graphics device together with the visual
229
impact of user oriented diagrams and plots are clearly superior for a
conversational mode of problem solving. Naximum effectiveness has been
achieved from the graphics device by using a tutorial approach. User
orient~d messages, nomenclature, and diagrams are continuously displayed
to obvi~~the use of reference materials such as an instruction manual.
Thus, the user is free to concentrate his energies on the solution of the
given fractionation problem. The above conclusions were based on graphics
runs executed in a limited use, experimental environment. Thus, it is
anticipated that an even greater impact of graphic capabilities will be
realized when GO FAST and other graphics applications are made available
in a full production mode.
ACKNOWLEDGEHENT
230
JOB INPUT DATA TOWER DESIGN PANEL Al
PRESS THE END KEY AFTER ALL DATA HAS BEEN TYPED.
INPUT SWITCH = AA
TYPE IN
AA FOR NEW JOB, INPUT FROM 2250 CONSOLE.
CC FOR OLD JOB, INPUT FROM PEDLAN DATA CARDS.
DEBUG SWITCH = AA
TYPE IN
AA FOR FULL DEBUGGING
BB FOR PART DEBUGGING
FIGURE 4
231
JOB CONTROL PANEL TOWER DESIGN PANEL A2
PARAMETER CROSSPLOT
/ PROCEED /
FIGURE 5
SAMPLE LAYOUT OF PANEL A2
232
\
233
COMPONENT PROPERTI ES TOWER DESIGN PANEL C6
FIGURE 7
234
DATA TABLE PANEL TOWER DESIGN PANEL D5
COMPONENT EQ H H
K LlQ VAP
HYDROGEN IN NAPHTHA 0 0 0
METHANE IN LiHC T.GT .40F 1 1 0
ETHANE 0 0 0
PROPANE 0 0 0
ISO BUTANE 0 0 0
N·BUTANE 0 0 0
ISO PENTANE 0 0 0
N·PENTANE 0 0 0
o = ORIGINAL DATA
235
FEED STREAM DA,A TOWER DESIGN PANEL Fl
PRESS THE END KEY AFTER ALL DATA HAS BEEN TYPED.
17 Ql
25 SDI
F2
FIGURE 9
236
TOWER INPUT DATA TOWER DESIGN PANEL T1
PRESS THE END KEY AFTER ALL DATA HAS BEEN TYPED.
TRAY TYPE
TYPE IN l.
l.SIEVE-VALVE TRAY
2.BUBBLECAP
FIGURE 10
SAMPLE LAYOUT OF PANEL Tl
237
TOWER INPUT DATA TOWER DESIGN PANEL T3
PRESS THE END KEY AFTER ALL DATA HAS BEEN TYPED.
** TOWER OPTIONS **
XXX CONDENSER
17 Q1
25 SOl
F2
FIGURE 11
238
TOWER INPUT SUMMARY TOWER DESIGN PANEL T10
OVHD.
N1
PROD.
COMPo =
MOLS/HOUR
ISO BUTANE
= 7.690 17 Q1
N2 COMPo = ISO PENTANE
01 COMPo = (NOT GIVEN)
02 COMPo = (NOT GIVEN)
/ PROCEED / / RESTART /
FIGURE 12
SAMPLE LAYOUT OF PANEL Tl0
239
TOWER OUTPUT DATA TOWER DESIGN PANEL U1
240
TOWER OUTPUT PROFILE TOWER DESIGN PANEL U4
'",
06
07
08 \
09
10
11
12
13
14
15
16
17
18
19
20 ,
\
,
21
22
~
23 \.
24
25 -RBLR ~
0.0 30.0 60.0 90.0 120.0 150.0 180.0 210.0 240.0 270.0 300.0
DEGREES FAHRENHEIT
I PROCEED I INEXT PAGE I IPAGE BACK I
FIGURE 14
241
TOWER CROSSPLOT DISPLAY TOWER DESIGN PANEL PS
A
X - 23.7 A
I :/
S
23.6 /
V.
~
/
~
I- 23.S
I- 23.4
~ 23.3
V
/>
I- 23.2
/
./~
V
- 23.1
- 23.0
- 22.9 ,/ ,
- 22.8
/
La
47S.0 476.0 477.0 478.0 479.0 480.0 481.0 482.0
X-AXIS OVERHEAD PRESSURE, PSIA
/ SUMMARY /NEXT PAGE / /PAGE BACK /
FIGURE 15
242
TOWER CROSSPLOT SUMMARY TOWER DESIGN PANEL P6
INDEPENDENT VARIABLE IS
OVERHEAD PRESSURE, PSIA
FIGURE 16
243
A DISPLAY SYSTEM FOR PROCESSING
ENGINEERING DRAWINGS
'THREAD' - Three-dimensional Editing and Drawing
D. K. Ewing and D. W. Tedd
INTRODUCTION
However, the main purpose of this paper is not to delve into the design
analysis aspects of data structures but rather to point out the possible
advantages such structures have in the graphic processing of engineering
drawings. Of these possibly the most significant is the way powerful edit-
ing algorithms can be generated which automatically update dependant data
items that otherwise would have to be handled individually - normally a time-
consuming procedure with interactive graphics. Another important attribute
is the way structures can be used to overcome to some extent the difficulties
of working in 3D when the display screen itself is 2D. The technique used
to solve this complex problem consists of performing rotation, shift and
scaling operations on the 3D data base until the region under consideration
by the user is projected so that it lies in the plane of the screen. In
this situation, knowing the new set of axes, the usual light pen construc-
tions can be reconverted automatically into the 3D reference axes of the data
base.
245
Again, in a drawing processing system of this kind, the characteristics
of computer displays must be taken into consideration. Even at their best,
interactive methods of drawing shapes on the display screen are time-
consuming and often include complex sequences of combinations of light pen
and keyboard operations. Generating drawings from scratch is therefore not
a realistic proposition, particularly since there are more suitable devices
for digitizing drawings(1,2). Similarly, a computer plotter is a more
appropriate output device for regenerating detailed drawings. However, the
speedy response of the interactive features of the CRT display makes it ideal
for the role of editing drawings. After all, one of the main objectives of
computer processing in the first place is to get the computer to update and
regenerate drawings - normally a laborious and uncreative design office
~-I'
I' 1\,
I
I 'J
----,.-
I
I
-,
h
I
'\
,
I
I
: r----'
I ,
-A __ ~
II
I I
1 ' ,
,
. 1I I I
L____ .J
I I I _~
I
I L-J.. I I
I " I I
I \ \ I I
1I
t I
- ___"~, I
, 1 1 I r-.---,
\1 ~--~I
), L ____ -II
I' I
_~I
1I
c:lrxi~
~~C,)
~oo A
«....:l
p:;~jl:l
o::r:
~
I I
I
......Q---
~ -0
I I
,
I
I I
1
,
I
t-"9-C(
C!;ll
Zl I
, T o -~
~;t
I ~I
I
~--
~I
I I
,
rill
ZI II
~
~
~
0
-I=Q
~ I
~
I
~ I ril -
~
~
ril
. I zo
~I=Q
~ -
~
E-4~
0
Z8-
<: o~~
~
~I=Q
~
~
00
ril8-I=Q
Z ~
ril ~_ I ~~<:
H I=Q -
.l °8~
<: 0
,
: I C!;ll
Z'
,
T
,
~HI=Q
~I=Q~
00
,
I
~I
~I
I
: ,.----., +-
I ~,
I
4--,
I ,~I'
~ I_A
A I I
L_':._
-< J'
247
working with data structures. The particular structure for representing the
geometry of a solid object consists broadly of the hierarchy of data items
outlined in Fig. 1. In this representation the object is defined in terms
of its surrounding surfaces. Again these surfaces are defined by their
boundary lines which in turn have end points. Such a framework can equally
well describe curved surfaces and their curvilinear intersections although
of course a different set of data values would be needed. From the mathe-
matical point of view, the properties of the object can be entirely deter-
mined from the canonical parameters of the bounding surfaces, but, since
graphic editing in this system is expressed mainly in terms of lines and
points, it is more convenient to omit the parametric form and represent the
shape explicitly by expanding the canonical form for its surfaces entirely in
ASP STRUCTURE
OBJEtT
WORD-
COUNT
RANGE
~. ~_ ---J-------- _..s~~~C_E_~ING
,
I
.
-0- -0-
DISPLAY LIST
--- ---RING
LINE LINE
AB BC
WORD- WORD-
COUNT COUNT
W AB Woc
l·
y
POINT
C
Xc
Yc
Zc
248
terms of the end points of lines. Thus, the bulk of the structure repre-
sents the topology of the object including the relationship and inter-
dependancies between surfaces, lines and points in a form amenable to subse-
quent editing operations.
IT.
EOF END OF FRAME
1 7corOL WORn
~
W W
AB BC
WORD
COUNT
POINT U
~ODE
A \A
- - LINE UB VB
LINE U Vc
C
~-""""""~
--
249
PROCESSING DATA STRUCTURE TO GENERATE DISPLAY DATA
The hardware of the display for which this system was designed is
relatively unsophisticated and requires a sequential file of display commands
to be repeatedly transmitted to refresh and maintain the displayed picture.
Essentially, therefore, the display sequence is different from the hierar-
chical geometry data structure described in the preceding section. So that
the dimensional data may be systematically converted into suitable display
coordinates, a display list is maintained within the structure, Fig. 2, to
link together in the correct sequence blocks of line data with their corres-
ponding display commands. Because such a display list is itself a type of
data structure, it can be readily updated (say by splicing in the line blocks
when lines are added or removed; however, no such insertions are possible in
the sequential display command file which has to be regenerated by a display
algorithm. The basic mechanism consists of stepping through the display
list checking to see if adjacent line segments can be strung together - a mor
compact display command - otherwise each line needs an extra command to
specify its start point.
Ideally in this graphics system, the light pen should explicitly identify
the data structure block corresponding to the item the pen has detected.
Again the display hardware does not possess these advanced features; instead
the data item that accompanies the light pen interrupt merely identifies the
display command that the light pen has detected by its relative position
(word-count) to a control word (end-of-frame) within the display file,
Fig. 2. In this graphics system, the display command is of little value
since its screen coordinates are truncated projected values of the 3D data
they represent. What is needed is a linkage to interrelate the screen data
with the data in the geometry structure. One possibility is to include in
each data block its corresponding word-count (or range of word-counts) and
then search the whole structure to find the item that matches the light pen
word-count. Since lines are the only detectable screen items, a faster and
more direct technique consists of searching the display list since this con-
sists of line blocks linked together in the same order (word-count sequence)
250
as their corresponding display commands, Fig. 2. The increasing order of
word-count of such a list virtually halves the search time. On a larger
drawing, consisting of many objects, the search time can be significantly
reduced by first checking each object to determine which object has a word-
count range which includes the item the light pen has detected. Ultimately,
since lines are the only light pen sensitive items on the screen, the light
pen interrupt is converted into a pointer to a line block within the data
structure. However, in many instances, the user may wish to refer to one
of the end-points of the lines or perhaps the surfaces intersecting at the
line. Because there is a certain ambiguity in stepping up or down through
the structure hierarchy, the processing algorithm may need supplementary
information which the user in this system supplies through the auxiliary
light buttons.
251
n ~ S n ~ ~.
~ O::S(l)::T::Srt
Q. 00 ~ 00
~·~ool1~
::S11~rtl--'l1
OQI1OQ OQ(I)
~(I)HlOI--'
~ ::s 00 0 11 ~
Q. OQ 11~·
rt
Q.(I)~ rt(l)
~. S rt::TQ.
::s
rt(l)Q.::TS
~. ::s (I) 0
Ortl--' O~
::s ~ ~ (I)
....
~ ~. OQ I--' (I) 11
Command 'SELECT NEXT OBJECT' I--' 00 ::T OQ >1 ~
rtO~rt
Q.S I1rt~·
Button DRAW EDIT NEW VIEW ~ 0 C"~·~·o
rtQ.C::rt::S::S
~ c:: rt po"OQ 00
I--'rt8
C"~o .. 0C::
/ 1--'11::S ::S::S
o >'%j Q.
Command 'SELECT SHAPE'
\
Command 'CHANGE VIEW' n~·I--'~·rt(l)
~::s ~·OQ::T11
00 oo' (I)
Button CUBE RECT POLY- SHIFT ROTATE SCALE rtrt ~
~::Too ~1--'11
BOX FACE ::s~ .. ~. 0
~ Q.!'"I~ OQOQ
1st Message
•
'SELECT ORIGIN'
,
1st Message
'TYPE X
,
'SELECT
TYPE
SCALE
(I)
~ ~
(I)
11
(I)
Q.
rt rt OQ ~. C"
8
::s~. ::T 11
rt ~
~
:::rCl>
(:l.
Command 'DEFINE SURFACE' a:4 ...
......
COMPLETE COpy POLYGON NEW 1-'-
RECT ;0:;"
CI> H
VIEW ::s
t-3
e:l s
Gj~
~"<
Las
above ~ ~
o..~
CI> (Jl
,-----, "d
Command 'SELEC T' , as I 'DEFINE SIDE' CI> til
, I ::s (::
'above' o..n
PARALLEL ROTATE 2 POINTS LINE COM- :::r
'--- -..) o
::s III
POINT PLETE
~ ~ t III til
1st Message SELECT FmST (Jl
"<
(Jl
rtrt
SELECT POINT l ~I m
cT 1-'-
~
2nd Message
MATCHING POINT
,
TYPE
ANGLE
"<
(Jl
I
(Jl
1-'-
rt(:l.
CI> CI>
"d III
L.. '- '- , , ......
H\
o
t;
~
DISPLAY SCREEN CURRENT L-B NEXT L-B
COMMAND DISPLAY FILE DISPLAY
MESSAGE
L-Bl 1 L-B12
i
WC3
L-B2 L-B13
I~~~J,
L-Bl
L-B14
L-B2 L-B3
L. _____ ....... L-B3 --L
COMMAND
A -
LIGHT BUTTON INDEX MESSAGE LIST
B -
WORD-COUNT r---:=+,--t-lst Message
C -
LENGTH OF BLOCK --+___ 2nd Message
~----
D -
POINTER TO NEXT L-B
E -
LENGTH OF LABEL L-B LIST
F -
POINTER TO LABEL BUF ......---4_L-B12
G -
LENGTH OF COMMAND t------1 L-B13
H POINTER TO COMMAND BUF
- L __~j--- L-B14
I -
NUMBER OF MESSAGES
J - POINTER TO MESSAGE LIST
K - NUMBER OF NEXT L-B
L - POINTER TO NEXT L-B LIST
254
CONSTRUCTION AND EDITING ROUTINES
255
....... 1---- ----:.-;.,
2nd point .... ' I ,.... I
........ I, ........... I
r-------- + (height)
C ------t---~
I I
I
I
I I
AI___ -1I ______I1
,
I
I
I ......
I ,,""
AI B IIIII:;;...._ _ _ _ _.L- ... ....
-------+
Origin
1st point
+
(width)
3rd point
(depth)
./ ).
/ I
k// L//'
I I
I ,,'
I "
256
VISUALIZATION
Nonetheless, the drawing data structure should make prov~s~on for these
data items since they would be required during the drawing regeneration stage.
This is essentially a post-processing operation, preparing data for an output
device such as a plotter. To be realistic a full description complete with
dimensions, labels and parts lists may be required together with an ortho-
graphic projection system to suit the plotter - instead of the isometric
system which suits the CRT display. In principle this can be achieved by
computer methods but in the THREAD system this type of graphic processing is
not considered part of the main drawing-editing phase.
CONCLUDING REMARKS
Even though the facilities described in this paper are virtually only a
skeleton of what would be needed in a practical working system, nevertheless
they provide a realistic framework that is sufficiently versatile and can be
extended (with sufficient programming effort) to cover the essential require-
ments for handling the editing of engineering drawings. Of course, in an
exploratory scheme of this sort, because of the amount of programming
required to process graphic detail, the basic approach has been to concen-
trate on trying to assess the overall architecture needed for a drawing
system of this kind without implementing too much graphic processing detail ..
Essentially, therefore, this paper tries to identify a realistic mode in
which a computer display can be harnessed to the problem of processing draw-
ings. The following remarks summarize some of the more significant findings
of the investigation.
257
(1) Since data preparation - drawing digitizing - is likely to be an
expensive overhead, computer processing of drawings can only be justified
in drawings that are widely used and subjected to frequent minor modifi-
cations such that computer processing could usefully and economically
relieve design offices of time-consuming routine tasks.
(2) Because of its interactive features, the CRT display can perform a
more useful role in the intermediate modifying/editing stage rather than
the input/output stages which are more efficiently performed by other
less interactive or off-line devices.
(5) The limited field of view of the CRT display need not restrict its
usefulness in drawing-editing, provided there are facilities for
suppressing unwanted data, so displaying only an uncluttered view of
the surfates to be modified. This assumes that, even though full draw-
ing detail may not be required during the editing phase, nevertheless the
data file for the drawing should contain all the information needed for a
working drawing such that this information can be included during drawing
regeneration via the plotter.
ACKNOWLEDGEMENTS
REFERENCES
258
3. LANG, C. A. and GRAY, J. C. ASP - a ring implemented associative
structure package. Communs ACM, 1969, ~(8), 550-555.
259
PART 3
ABSTRACT
In this paper CADEP, a problem-oriented language for positi£
ning geometric patterns in a two-dimensional space, is presented
Although the language has been specifically designed for au-
tomatic generation of integrated circuit masks, it turns out to
be well suited also for other placement problems as architectu-
re design, urban planning, logical and block diagram representa
tion. -
The design criteria, the structure and the specific features
of CADEP are illustrated.
I. INTRODUCTION
In many fields of engineering and technology the designer is
faced with the problem of positioning geometric patterns in a
two-dimensional space. This problem arises, for instance, in
architecture design, in urban planning, in logical and block die
gram representation, in integrated circuit mask generation, in -
printed circuit layout design.
As the complexity of the system under study increases, the
placement time and the likelihood of errors increase at a very
high rate; thus, it becomes important to use a computer with gr5
263
phic input-output capabilities to assist in the tedious, expen-
sive and time-consuming task of pattern layout. The success of
such computer - aided operation, which can greatly enhance the
speed, the reliability and the cost of the design process, is de
pendent on the efficiency of communication across the man-machi=
ne boundary. In particular, the potential of data processing sy
stems equipped with graphic display consoles may be fully explo
ited in computer-assisted design only if graphics programming Is
made easier by means of high-level, user-oriented languages.
In this paper,a graphic language, designed to be employed as
the interface between the user and a system of computer pro-
grams for integrated circuit mask layout, is described. Although
the language, which has been named CADEP (Computer Assisted DE-
scription of Patterns)~ has been s£ecificall~ designed for auto
matic mask generation LIJ [2J [3J L4J [5J [6J [7J , it turns o~
to be well suited also for the other placement problems mentio-
ned above. It must be noted that graphical aspects of integra-
ted circuit mask layout are more complex than the ones of the
other problems, since a number of different masks is needed to
fabricate a single integrated circuit, and the mask patterns for
the different layers are intimately interrelated; thus, descriE
tion and manipulation for these masks must be coordinated.
In the following sections, the design criteria, the structu
re and the specific features of CADEP will be described. -
II. GENERAL REQUIREMENTS AND DESIGN CRITERIA FOR THE LANGUAGE
In designing CADEP it has been considered that the language
should be easy to learn and natural to use by inexperienced per
sonnel. Thus, being FORTRAN the most widely employed language -
in engineering applications, it ought to be possible for a user
being familiar with FORTRAN to describe his placement problem
in this programming language, without need of learning a new
original language.
On the other hand, CADEP should include all the facilities
needed to describe in a flexible and concise way the patterns
for the layout of the complex masks required by the introduction
of large-scale integration.
In using the FORTRAN language for these graphic applications
the problem arises that FORTRAN does not contain the facilities
needed for graphic functions. To circumvent this limitation,the
solutions of constituting a package of graphic FORTRAN subrou-
tines [8J and of introducing graphic additions to FORTRAN [9J
[lOJ have been considered.
It has been noted that subroutine packages are difficult to
use for the non-programmer, since he must write an executive
program composed of a FORTRAN calling sequence with long argu-
ment lists ordered with a strict syntax; hence, coding, diagn£
264
sis and debugging result in heavy and cumbersome tasks.
Thus, CADEP has been designed as an extension of FORTRAN by
means of graphic-oriented, FORTRAN compatible statements.
The feature of being embedded in FORTRAN provides CADEP with
the additional advantage that facilities are available for al-
gebraic and logic calculations, branching, looping, hierarchi-
cal subroutine and function calls.
The capability of FORTRAN to make hierarchical calls permits
any pattern or group of patterns on the masks to be defined by
means of subpatterns: thus, a library of patterns can be gradu~
ly accumulated, by storing information under a function name
for later use (see Section III).
Any function may be employed in other functions, as a new
word of the CADEP vocabulary, and the user is enabled to build
up a sort of specialized language for his own needs.
When a function is recalled from the library, the computer
can calculate variable parameters from data supplied with the
function call statement.
In placement problems, we often recognize the repetition of
a subpattern at a fixed interval. The language can take account
of this characteristic by constructing row and column vectors
or matrix arrays of subpatterns. This replication feature is
oQtained by exploiting the computational capability of the
language, which allows adding multiples of a preassigned
increment to the variable coordinates specified for the cons ide
red subpattern; FORTRAN IF and DO statements may be used to con
trol branch and loop calculations. In this replication opera- -
tion, the computational capabilities of FORTRAN may be used to
change progressively subpatterns in constructing the array by
changing variable parameters which determine the dimensions or
the shape of the subpattern.
Moreover, CADEP is intended to be independent of the particu
lar automatic mask-making machine employed to generate the mas~
themselves: in fact, the statements of the language can be tran
slated by a specialized computer procedure into the control in~
formation able to activate a particular mask making equipment
[3J [6=1·
CADEP is designed to be utilized in both batch-processing
and interactive on-line operation with display facilities. In
the former mode, statements are introduced in coded form; in the
latter mode, a sequence of commands is selected by pointing wi1h
the light pen to light buttons on the screen. Both the written
mode and the pointing mode are necessary in the different stag$
of the mask layout task. On the other hand, a correspondence can
be established between the commands of the two modes, so that
265
N
OJ IX1.Yli~
OJ
~
SECT (X1, Y1,R, ALFA1, ALFA2 )
ALFA1
(X1.Y1~ ::::> p-=
~(X2JY2)
RECT (X1, Y1, X2, Y2)
(X1,Y1)~
I" 51 ~I
(51 and 52 are
REC5 (X1, Y1, 51,52) S2Jg signed numbers)
( X1,Y1J
~
they can be considered as two forms of the same language [llJ •
Thus, only the written form of CADEP will be illustrated in the
rest of the paper.
The data structure containing the representation of an objett
or of an assembly of objects will be said image. In studying the
layout problem, two different types of entities, and thus two
different types of variables for CADEP (see Section III), have
been recognized.
The former type is the geometric type, to which belong ab-
stract entities that do not correspond to real objects, and th~
do not correspond to an image. Geometric entities are employed
to build up auxiliary patterns and thus auxiliary data structu-
res that are useful for constructing the images. In the langua-
ge, geometric variables correspond to geometric entities.
The latter type is the graphic type, to which belong entitie
that designate two-dimensional objects, and thus correspond to
an image. In CADEP, graphic variables correspond to graphic en-
tities. While geometric entities are not subjected to any con-
straints of physical nature, a graphic entity must not overlap
any other graphic entity, because two objects may not be assi-
gned to the same zone of the plane. Thus, CADEP has been given
the facility of performing interference tests on graphic varia-
bles.
Spacing objects correctly is another critical problem in de-
termining a satisfactory layout; thus, CADEP allows the user
performing tests on the distance be-tween the obj ects representEd
by graphic variables.
As pointed out in Section I, in integrated circuit technolo-
gy several masks correspond to a single device, and the descriE
tions of these masks are interrelated. In order to allow the
user describing simultaneously the masks, graphic entities may
be subdivided into two subtypes. The former is the unilevel sub
type, to which belong entities corresponding to a single object
(or assembly of objects) on a certain mask; an n-level variable
corresponds to a unilevel entity on the n-level mask. The lat-
ter is the mutilevel subtype, to which belong entities corresp<!!,
ding each to a set of objects (or assemblies of objects) having
the following properties: (1) two objects may not be on the sa-
me mask- (2) all the objects are related to the same device. A
multile~el variable corresponds to a multilevel entity, and it
is defined by means of a set of n-level variables having diffe-
rent n from each other. Operations on multilevel variables cor-
respond to similar operations on the unilevel variables included
in the set.
In the following sections, the specific features of CADEP win
be illustrated.
268
III. LANGUAGE DESCRIPTION: GEOMETRIC VARIABLES
As pointed out in Section II, there are three basically dif-
ferent types of variables in CADEP:
(a) the conventional FORTRAN variables (Boolean, integer, real,
complex) ;
(b) the geometric variables ;
(c) the graphic variables.
Variables of types (b) and (c) correspond to two-dimensional
patterns and their value is the whole data structure represen-
ting the pattern in the computer memory. Also one-and two-di-
mensional arrays of these variables may be defined, to be em-
ployed, for example, within program loops.
Geometric variables and the manner in which they have to be
handled will be discussed in this section. The next section is
concerned with graphic variables. Finally, Sectio~ V deals with
CADEP commands.
All geometric variables defined in a CADEP program must ap-
pear in a declaration statement having the form
GEOMETRIC A, B, ••••
They represent geometric entities lying in the same plane, cal-
led the geometric plane. This plane is unbounded, and the coor
dinates of its points are specified with respect to two fixed -
orthogonal axes, x and y.
Patterns defined in the geometric plane may overlap as well
as be disjoint. To create these patterns, the user is given the
possibility of defining geometric primitives (which are the sim
plest geometric variables), and of combining and manipulating
geometric variables by geometric expressions and manipulation
functions respectively.
The geometric primitives available in CADEP are listed in
Fig. 1. They are built-in FORTRAN functions which set up the da
ta structure suitable for the geometric element they represent;
their value is a pointer to the table containing this data struc
ture. Note that no geometric primitive is one-dimensional , since-
LNC, LNP and ARC have a "width" W that must be specified. The
primitives FPLANE, HPLANE and EMPTY are defined in order to ma-
ke the construction of complex patterns easier, as will be seen
below.
The operations which can be performed on geometric variables
are the fOllowing:
(a) intersection (operation symbol / )
(b) union (operation symbol + )
(c) difference (operation symbol - )
269
The intersection and the union keep in CADEP their set-theo-
retic meaning; the difference between two geometric variables
A and B is a geometric variable representing the portion of pat
tern A that does not belong to pattern B. -
A geometric expression is an expression containing only geo-
metric variables connected by the operators defined above C I,
+, - ) • The precedences among these operators are the same as
in FORTRAN Ci.e., the intersection is executed first, the union
and the difference have equal precedence levels); like in
FORTRAN, these rules can be altered by employing parentheses.
Assignment statements do exist also for geometric variables
and allow a complex pattern, defined by geometric expressions,
to be represented by a geometric variable. For instance, the pat
tern P in Fig. 2 can be described by the following geometric as=
signments :
GEOMETRIC A,B,C,D,E,P
A = RECS (1. ,1. ,1. ,1. )
B = LNPC1.7,1.7,1.8,45. ,0.5)
C = RECTC2.5,3.,3.5,4.)/HPLANEC3.,3.,225.0)
D = LNC(3.7,3.8,4.3,3.8,0.3)+ARC(4.7,3.3,4.3,3.8,O.5,O.3) +
+LNPC4.7,3.3,1.2,270.0,O.3)
E = RECS(4.3,2.l,O.7,-O.4)
P = A+B+C+D+E
To increase the flexibility of CADEP in describing pictures,
the following manipulation functions have been introduced :
COpy (G,S)
TRANS (G,Xl,Yl,S)
ROT (G,Xl,Yl,ALFA,S)
In the arguments of these functions, G is a geometric varia-
ble or a geometric expression, and S is the scale factor with
which the manipulation specified by the function must be accom-
plished.
The COpy function duplicates the data structure representing
the variable or the expression G and generates an internal name
for this copy, which becomes a completely distinct and separa-
tely modifiable geometric entity having only the initial shape
of G (and the same size, if S = 1.).
The TRANS function, besides the operations performed by COpy,
transfers the new geometric entity generated from G by incremen
ting the coordinates of its points by Xl and Yl in the horizon=
tal and vertical directions respectively.
270
The ROT function, besides the operations performed by COPY,
rotates the geometric entity generated from G by an angle ALFA
with respect to point (XI,YI), which can be internal as well as
external to G. Positive angles correspond to counterclockwise ro
tations. If a manipulation function is intended to operate a-
transformation on a given pattern, not to generate a new pattern,
the old geometric entity can be deleted by a geometric assign-
ment such as A = TRANS(A,Xl,Yl,S) .
Every geometric entity has a conventional reference point
which is considered to be invariant in scale transformations.
Thus, the size of the pattern generated from G by means of func-
tions COPY, TRANS and ROT, is changed by the factor S keeping
the reference point fixed. The reference point is the one whose
coordinates are stored first in the corresponding data structu-
re; in all geometric primitives listed in Fig. 1 this point is
(Xl,Yl); for more complex patterns, very simple rules allow the
user to derive it by fnspection of the geometric expression wh~h
defines the pattern; for instance, the reference point for pat-
tern P in Fig. 2 is the same as for pattern A, i.e., (1. ,1.).
, L
C ~
/
Vi
"-
3
2 ~ r ;..
<. '1 L.::W
, A'
o 7 2 3 , 5 6
..
271
these variables can be inserted in geometric expressions. This
allows also one to perform roto-translations by writing
A = TRANS (ROT(B,Xl,Yl,ALFA,Sl)X2,Y2,S2) .
IV. LANGUAGE DESCRIPTION: GRAPHIC VARIABLES
As said in Section II, in CADEP there are two types of gra-
phic variables: unilevel variables, which represent physical
two-dimensional entities. lying on a particular fraPhic plane,
and multilevel variables , which are composed 0 several unile-
vel patterns lying on different planes and belonging to the sa-
me physical object (for instance, in integrated circuit masks,
to the same component part). Graphic planes are totally distinct
from the geometric plane defined above , and are bounded by the
edges of a rectangle whose opposite vertices are (0,0) and
(XMAX,YMAX), where XMAX and YMAX should be assigned by the user
by means of two FORTRAN assignment statements.
Any graphic variable must appear in an appropriate declara-
tion statement. The form of this statement for unilevel varia-
bles is :
LEVEL (i) A,B,C, ••• ,
where i = 1,2, ••• is the identifier of the graphic plane on
which the unilevel variables A,B,C, .•• are defined. Multilevel
variables are declared by writing the statement
GRAPHIC E,F,G, •.• ,
where E,F,G, ••• are multilevel variables.
Unilevel variables having the same level can be combined to-
gether to form unilevel expressions , by means of the union ope
rator (+). The manipulation functions defined in Section III -
can be applied with the same result to unilevel variables; each
function generates on the same plane a new pattern, which is
dealt with as a new unilevel variable with an internally-produ-
ced name, and may appear in a unilevel expression.
A unilevel variable is defined by means of a unilevel assi-
gnment , whose left-hand side is the name of the unilevel varia
bie to be defined, and right-hand side is either a geometric
expression or a unilevel expression. In the latter case, the Ie
vel of variables in the unilevel expression may differ from the
one of the variable defined by the assignment, and this is the
procedure to be followed when the level of a graphic entity is
to be changed.
For instance :
LEVEL (1) A,B,C
LEVEL (2) D,E (10)
A = B/(C-ROT(A,1.,2.,90.,1.»
D = TRANS (A,S.,-2. ,0.5)
E (10) = D+TRANS(D,l.,O.,l.)
272
When a unilevel variable has been made equal to a geometric
expression, the geometric variables contained in this expres-
sion can be manipulated arbitrarily without affecting the uni-
level variable. This is not true in the other case, since a uni
level variable defined as the union of other unilevel variables
is modified by any change in these variables (that is, its ima-
ge is built up by linking together the images of other unilevel
objects, and therefore is a compound image, whereas in the for-
mer case the image is simple).
Multilevel variables can be defined by means of a multilevel
assignment , which is a statement whose left-hand side is the n~
me of the multilevel variable to be defined, and right-hand side
is an expression containing only unilevel variables having dif-
ferent levels, linked together by the concatenation operator _.
For example, if we have :
LEVEL (2) A
LEVEL (3) B
LEVEL (5) C
GRAPHIC M
M =A• B
- C ,
the last statement defines a multilevel variable M composed of
variables A,B,C, whose levels are 2,3 and 5 respectively. As
for unilevel variables, the only operations that can be perfor-
med upon multilevel variables are the union and the application
of manipulation functions defined in Section III. Multilevel
expressions are built up by using these operations,whose result
can be made equal to a new multilevel variable; the unilevel
components of this variable are obtained by performing the same
operations on each graphic plane separately.
For instance, if
LEVEL (1) Al,Cl
LEVEL (2) A2,B2,C2
LEVEL (3) A3,B3
GRAPHIC A,B,C
A = Al _ A2 _ A3
B = B2 • B3
C = Cl • C2 ,
the assignment A =B + C is equivalent to the following assi-
gnments :
273
Al = CI
A2 = B2 + C2
A3 = B3
As already said in Section II, CADEP provides also some in-
structions for testing the existence of certain conditions
among graphic variables. The general form of these conditional
instructions is the following :
SYM (arguments) statement,
where SYMisa basic CADEP symbol, the arguments are CADEP varia
bles, and the statement is any executable CADEP statement e~
cept a DO statement or a conditional statement. The statement
is executed before the next sequential statement only when the
test specified by SYM is successful.
TAB LEI
TEST STATEMENTS
274
Table I gives the list of the available statements in this
class.
TAB L E II
COMMAND STATEMENTS
Command Meaning
275
Other commands similar to the SHOW statement can be added to
the list in Table II for outputting patterns on a digital plot-
ter or on a paper tape punch.
VI. CONCLUDING REMARKS
CADEP, a language for describing and manipulating geometric
patterns in a two-dimensional space, has been described.
The goal of language design has been to enhance the speed,
the reliability and the cost of computer-aided design operatiom
involving placement problems.
The main advantage of the language with respect to other so-
lutions seems to be that, being CADEP an extension of FORTRAN
obtained by means of a small number of simple new statements,
the user being familiar with FORTRAN need not learn a new ori
gina1 language, and cumbersome sequences of CALL statements
with long argument lists, ordered with a strict syntax, are
avoided in the executive program. On the other hand, CADEP in-
cludes all the facilities needed to describe, manipulate and
test in a flexible and concise way the patterns encountered in
the layout of today complex systems.
Geometric and physical aspects of the placement problem are
kept distinct by using two different types of variables, the
geometric and the graphic variables. The introduction of multi-
level graphic variables enables the user to relate patterns ly-
ing on different planes but representing the same physical ob-
ject, so providing CADEP with a sort of tridimensional capabi1i
ty.
REFERENCES
276
[5 J - J. WOOD et ale "Computer aided production of masks for sili
con integrated circuits" - Proc. Computer-Aided-
Design Conf. - University of Southampton, pp.122-
-129 - April 1969.
[6J - R.L.ROSENFELD - "Computer assisted mask production" -
Proc. of the IEEE, vol. 57, n. 9, pp.1629-1634 -
September 1969.
[7J - D.FERRARI and L.MEZZALIRA - "A computer-aided approach to
integrated circuit layout design" - Proc. of the
Conference on Computerized Electronics - Carnell
University - Ithaca - New York - August 1969.
[8J - A.D.RULLY - "A subroutine package for FORTRAN" - IBM Syst.
J., n. 3 and 4, pp. 248-256, 1968.
[9J - A.HURWITZ , J.R.CITRON and J.B.YEATON - "GRAF : graphic
additions to FORTRAN" - AFIPS Conf. Proceedings
of the Spring Joint Computer Conf., vol. 30,
Thompson Books, Washington, D.C., pp.553-557,
1967.
[lOJ - G.BRACCHI and M.SOMALVICO - "An interactive graphics
system for computer-aided circuit design" -
IEEE Conf. Record of the IEEE-GMMS ERS Int'l
Symp. on Man-Machine Systems, vol. 1, Cambridge,
September 1969.
[llJ - P.G.COMBA - "A language for three dimensional geometry" -
IBM Syst. J., n. 3 and 4, pp. 292-307, 1968.
277
INTERACTIVE GRAPHICAL INPUT FOR
CIRCUIT ANALYSIS
Department of Communications, Shirley Bay, P.O. Box 490, Terminal 'A', Ottawa 2,
Ontario, Canada.
ABSTRACT
1. INTRODUCTION
This paper will describe a method for the drawing of labelled circuit
schematics through the medium of an interactive computer-driven display.
It was developed as a component in a modular system which will provide a
variety of facilities:
279
The display of the schematic has been made as clear and unambiguous
as possible (see Figure 1). All lines and components are drawn either
horizontally or vertically, and crossovers are distinguished from junctions
by marking the latter with a dot so that topologically complex diagrams can
be drawn without difficulty. The component symbols are small and each one,
except the current source, carries a discreet direction indicator to mark the
direction of positive current flow which will be assumed by the analysis
program. This direction can be chosen by the user at the time of component
placement.
The light-butto~s at the right of the display are those used by the drawing program.
Both ends of the component symbol light-buttons are active,and serve to select the
correct direction for' the symbol when it is placed in the schematic. The assumed
direction of positive current flow is indicated by the dot beside each symbol, except
for the current source (bottom). When a current source is dependent on the current
flowing in another branch, as it is for the three in this figure, the arrow inside the
symbol is replaced by the name which has been assigned to the controlling branch.
The 'ESCAPE' light-button causes an exit from the drawing program and allows the
user to select another function such as labelling or output specifications. The
width of this schematic is about 9~ inches.
Figure 1 Schematic of a Three-Stage Feedback Amplifier.
280
chosen by the user to give the greatest clarity or most pleasing appearance.
None of them are restricted in position except for the limits imposed by the
discrete nature of the CRT deflection system. This positional freedom is
achieved, together with an appreciable simplification of the effort required
from the user compared to what has appeared necessary in the past, by the
interaction technique employed during the drawing process. The essence of
this technique is the abandonment of the concept of positioning nodes and
components in isolation, and then connecting them together, and its replace-
ment by the concept of drawing a set of connected line-segments and
compon:nt~ ~n sequence. It ~s in this ~~e~ that the present techniqu: dif~ers
most s~gn~f~cantly from earl~er work[l] L5J, though the methods descr~bed ~n
references [3] and [4] appear to embody certain features of this approach.
The design of the data structure which contains the pictorial and
electrical description of the schematic is a most important consideration
in meeting the objectives of the system. To achieve the high quality of
display which is required, it must store a large amount of positional
information so that the user is free to arrange 'the elements of the schematic
with the minimum of restriction. To allow the greatest flexibility, the
drawing process must be regarded as an editing operation, instead of just the
incremental addition of new material, so that the user is free to go back
and modify his earlier work. A data structure with good cross-referencing
capabilities is needed, such as the ring-structure used in the 'Sketchpad'
system[6J, and this type of structure is also a very good source for the
input to a circuit analysis program.
281
controller during a 780 ~sec gap that occurs once per drum revolution. To
identify displayed objects that the operator points to with the light-pen,
a special 6-bit byte called a 'tag' is recorded on the drum following the
display code for each entity. When this byte is read from the drum it
interrupts the computer which then looks for the occurrence of a light-pen
strike.
Three distinct programs are used for the drawing of schematics, for the
labelling of components and nodes, and for specifying the frequency range
and the points from which outputs are required (Sections 4, 7 and 8 respect-
ively). A simple overlay system has been developed for the PDP-9 so that
these programs and their associated library routines (Section 6) can be
brought into core in a fraction of a second by a master. control program which
itself interacts with the user.
All the programs are written in MACRO-9 assembly language and have the
following approximate sizes:
282
WORDS WORDS WORDS
The data structure is not included in these figures and its size
depends on how large a schematic is to be drawn. Figure 1 required 1454
l8-bit words.
In its present state the drawing program permits the user to create an~
edit schematics with linear R, Land C components, independent voltage
sources and both dependent and independent current sources. The ground
symbol can be used to simplify the drawing and it serves to indicate the
voltage reference point to the analysis program.
The basic entities in the data structure, which are also basic to the
drawing program, are the nodes, located at junctions, corners, line end-points
arid component terminals, and the branches which link the nodes. For the
purpose of dealing with electrical schematics the nodes are differentiated
into two types, ordinary nodes (O-nodes) and ground nodes (G-nodes), and the
branches into six types (R, L, and C components, voltage and current sources
and line segments). A new type of entity is introduced, the electrical node
(E-node), which exists in the data structure but has no graphical manifesta-
tion unless it is labelled by the user. In the following description, 'node'
means O-node.
The user builds up the schematic by using the light-pen to guide the
tracking-cross much as if he were using a pencil. The network grows
progressively as he interacts with the drawing program, moving the cross
along the branches of the network, around corners where necessary, and
placing component symbols where he wishes. Each light-button action causes
the data structure to be updated and the display to be redrawn. A simple
drawing sequence is shown in Figure 2. The light-buttons at the right-hand
side of the display include two directional arrow symbols for specifying the
direction in which the tracking-cross will be permitted to move, a selection
of component symbols (see also Figure 1) and the 'END' and ground symbol
light-buttons which terminate a drawing sequence. The 'CONNECT' light-button
is used to start a drawing sequence from an established node and to terminate
a line by forming a junction to a line at right-angles to the drawing path.
283
Initially the user is free to move the tracking-cross to any part of
the screen where he wishes to start drawing. Alternatively, he can position
the cross near an existing node and point to 'CONNECT'. This causes the
cross to move to the nearest node and to be locked in place. In either case,
to start drawing, he points to one or other of the directional arrows in the
light-button area. This action causes a small marker circle to appear at the
tracking-cross position (Figure 2) and the cross to be constrained to move
only in the horizontal or vertical direction. The user positions the cross
at the point where he wishes to change direction and points to the other
directional arrow. The picture is now re-displayed with the marker circle
moved to the new tracking-cross position and a line drawn to it from the
previous position. In terms of the basic graphical elements a new node is
created when the user starts drawing, unless he used the 'CONNECT' function
which causes drawing to start from an established node. Each change of
direction causes another node to be generated and a line-segment to be linked
between it and the previous node. The marker circle moves from node to node
as the drawing progresses, as a reminder to the user of the position of the
tracking-cross at the last light-button action.
The drawing sequence terminates when the user points to 'END' but he
has two other options as ~ell. If he positions the cross near a line which
is at right angles to the direction in which he is drawing, and points to
'CONNECT', the program creates a junction to that line. Alternatively he
may place a ground at the end of a line by pointing to the ground symbol
light-button. In the data structure the ground symbol is greated as a node,
but one having special properties. It can have only one branch incident
upon it and that must be a line-segment. The user cannot use the 'CONNECT'
light-button to start a drawing sequence from a ground node.
STATE 2 .. t STATE 3
DRAWING MODE ~----------~TC LOCKED
AT NODE
State 3 - This is entered from state 1 when the user points to 'CONNECT'.
The program searches the data structure for the node which is
closest to the position of the tracking-cross and moves the
cross there, fixing. it in place. The user can st.art drawing
from this point or can cancel the action and return to state 1
by pointing at 'END'.
The biggest problem to solve in the design of the drawing program was
to make it react in a reasonable way when the user moves the tracking-cross
back along a path already drawn. Rather than prohibiting this type of
286
movement, it was decided to attempt to have the program respond in the
majority of cases in a manner that the user would regard as reasonable, and
to ignore only the most outrageous requests. In fact, the solution of this
problem has given the program a great deal of flexibility and power that can
be exploited by a skilled operator.
Suppose that a horizontal row of lines and components has been created,
such as that shown in Figure 4, and that the marker circle is at one of the
hodes. The tracking-cross is assumed to be constrained to move horizontally
and the user can place it anywhere in the row, or beyond the ends, and ask
for a change of direction. The program responds in all cases except when the
cross is in the middle of a component symbol. If the cross is in the middle
of a line-segment, at point D for example, the segment is split in two and
a junction is created. I f it is beyond either end, the row is simply
extended as necessary.
I
I
I
I
'~
'10'
A B
4 ~
DRAWING I
DIRECTION I
I
Figure 4 Various Node positions in ReZation to
a Row of Line-Segments and Components
A component can only be created when the tracking-cross is beyond
either end of the row or, in the limiting case, at an end such as A where
there is a node with only one line incident on. it. The placing of a ground
symbol is subject to the same conditions - it is legal when the cross is at
A but illegal when it is at E. If the row consists of just a single node
and both the marker and the cross are located there, the placement of a
component or ground symbol is illegal because no direction has been defined.
If the marker and the cross are both at point A·of Figure 4, the direction
is implied by the row EA.
287
junction. If, instead, the user terminates the drawing sequence at this
point by using the 'END' light-button, the node D must be deleted and the
segments CD and DE replaced by one segment CEo
(3) Create a node at the position of the tracking-cross and join it to the
modified row either by joining it to an end node with a new line, or by
splitting an existing line into two segments, or by replacing one of th,
nodes which are presently part of the row. If a component or ground
symbol is to be added this is done now.
(4) If the drawing sequence is being ended here, the node which has just
been created must be examined to see whether it should remain as a
permanent part of the structure.
Figure 5 illustrates how the user can take advantage of the flexibility
of the program to go back and add a capacitor in parallel with an inductor he
has previously drawn. When he moves the tracking-cross to the left he does
not delete the right-hand resistor because components can only be removed by
the 'DELETE' light-button. Note that two new junctions are created in order
to add the capacitor. The left-hand junction is formed by simply changing
the direction of drawing from horizontal to vertical while the right-hand one
is created by the use of the 'CONNECT' light-button. After adding the
capacitor, the user can resume drawing to the right by linking to any node in
the row with the 'CONNECT' light-button.
Figure 5
The user can remove line-segments or components from the schematic by
pointing at the 'DELETE' light-button and then at the entity he wishes to
delete. In the case of a component symbol, the connecting leads also are
288
He forms a junction by changing
the drawing direction to vertical.
~9
deleted as far as the nearest corner or junction or to the terminal of a
neighbouring component. A clean-up operation similar to step (4) above is
carried out on both sides of a deleted entity to ensure that the data structurl
is left in a valid state.
The topological description of the displayed schematic and the names and
values of the electrical components are stored in a ring-structure. The
structure which is now used has evolved from a simpler form which contained
only nodes and line-segments and could be used for the creation of line
drawings. Each entity is allotted a block of consecutive l8-bit words
containing a header word, which describes the type and size of the entity,
a number of ring elements to associate it with others, and data words which
characterize it. The housekeeping facilities have been kept as simple as
possible to minimize storage space. Ring elements contain forward pointers onI
and are of two types, ring-start elements with 1 in the most-significant digit
position and ring-member elements with O. There is a simple dynamic storage
allocation system which maintains a stock of returned blocks, sorted by
length, and satisfies requests for new blocks from this stock or from the
contiguous free space at the end of the ring-structure area.
(1) E-node (electrical node). This has the usual circuit connotation
and can be assigned a unique name by the operator to identify the
results of analysis. The only visual evidence of an E-node on
the display is its name, if one has been assigned, though every
electrical node in the schematic is represented in the data
structure by an E-node block. The make-up of the bloc~ is as
follQws;
header
member of E-node generic ring
head of O-nodes ring
X coordinate of name
Y coordinate of name
3-character name
290
The X and Y coordinates permit the name to be displayed at an
arbitrary position. As shown in Figure 6, each E-node heads a
ring of one or more O-nodes or G-nodes which are, in turn,
linked by lines.
E-NODE
HEADER
E-NODES
0\ 0\
RING -r------.,
1\ II
x
y
NAME
O-OR G-NODE
HEADER
01 01 01 J--'
II - II II --
x
y
LINE RLC
HEADER HEADER
LINES
0 0
RING
0
r
O~
0 J O~
I
X TO
RLC DEPEND ENT
RING
Y SRCE
NAME
r- VALUE-
SRCE
RING
•
Figure 6 Organization of the Data Structw'e
(2) O-node (graphical node). Each junction and corner, the free
ends of line-segments and the ends of all component symbols are
represented in the data structure as O-nodes. Each belongs to
a ring headed by an E-node and is itself the head of a ring of
incident lines or components. An O-node is displayed explicitly
as a dot if it has 3 or 4 lines or components incident on it.
The block structure is
header
member of O-node ring
head of incident branch ring
X coordinate
Y coordinate
291
(4) Line. Each of these links two 0- or G-nodes and the block for
the line has two ring-member elements which belong to rings
headed by the start and end nodes. The block structure is
header
member of Line generic ring
member of branches ring from start node
member of branches ring from end node
(5) RLC (R, L or C component). Each of these joins two O-nodes and
the first part of the block is structurally the same as the Line
block. There is also a ring-start element which can head a ring
of dependent current sources. An RLC can be assigned a label
having a 3-character name and a 6-character value, located at
arbitrary X, Y coordinates on the display. The block structure
is
header
member of RLC generic ring
member of branches ring from start node
member of branches ring from 'end node
head of dependent sources ring
X coordinate of label
Y coordinate of label
3-character name
6-character value (2 words)
header
member of generic SRCE ring
member of branches ring from start node
member of branches ring from end node
member of dependent sources ring
X coordinate of label
Y coordinate of label
3-character name
6-character value (2 words)
292
analysis. All O-nodes and G-nodes which are linked by line-segments are
grouped together in a ring headed by a single E-node (note that an RLC or
SRCE may link two O~nodes which either belong to the same or different
E-nodes - in the latter case its terminals are electrically short-circuited).
It has been found in a typical case that about 2/3 of the ring-
structure is occupied by 0- and G-node and Line blocks. Future expansion of
the component blocks to permit more elaborate characterization will therefore
not enlarge the structure unduly.
6. LIBRARY ROUTINES
(i) The routines which control the, display hardware by generating the
display code for vectors, characters and symbols, generating and
controlling the tracking-cross and by looking for light-pen
strikes. The writing and reading of the magnetic drum buffer
are also the responsibility of this group.
(iv) Routines for moving a pointer around the data structure and
for extracting information from the structure.
293
(v) Routines for implementing various phases of the strategy of
the drawing program, described in Section 4.
The routines of group (i) are responsible for generating display code
in response to instructions of the form SETXY(X,Y) to position the CRT beam,
VECTOR (delta X, delta Y) to draw a vector, and UTEXT(N,string) to display
a string of N upper-case alphanumeric characters. The instruction SYMBOL(S,D)
draws the symbol S in one of the four possible directions specified by D.
Group (iii) consists of routines for the creation and deletion of the
basic elements of the schematic, the nodes, lines and components. They can
be regarded as the executive routines for a simple language which could be
used to describe a schematic in terms of its constituent parts and which, if
executed as a program, would build a valid data structure representing the
schematic. A block representing an O-node or a G-node is created by the
instruction NODE(X,Y) where X and Yare the display coordinates of the node.
A new E-node is automatically created at the same time and both blocks are
linked together and placed in the data structure. A line-segment is created
by the instruction LINE(NI,N2) where NI and N2 ate pointers to the nodes to
which the line will be linked. The E-nodes are automatically taken care of
by this operation - if the two nodes being linked belong to different E-nodes,
one of the E-nodes is deleted. Components are created by instructions of
the form RLC(NI,N2,T) or SRCE(NI,N2,T) where NI and N2 are node pointers and
T is the component type number. In these cases no deletion of E-nodes takes
place. Entities are deleted by single instructions. In the case of nodes,
the routine deletes the E-node as well if the latter has no other O-nodes
linked to it. There are two instructions for deleting a two-terminal entity.
The first simply deletes the entity after disconnecting it from its terminal
nodes. The other, used for line-segments only, splits the existing electrica]
node in two by creating a new E-node block and linking to it all the 0- and
G-nodes which are electrically connected to one end of the deleted line-
segment.
The routines of group (iv) include two tests for deciding the legality
294
of certain drawing actions, and three routines which carry out modifications
of the data structure.
RTRACE(NI,D) examines the node NI, which is the location of the marker
circle for a drawing direction D, and if its situation is like
point A or point D in Figure 4 it is deleted and the marker circle
is moved to an adjacent node. This accomplishes the 'un-drawing'
of the previous action in the drawing sequence, should this be
necessary, preparatory to carrying out the next step. RTRACE is
also used for deleting the connecting leads when a component symbol
has been removed by the 'DELETE' function.
295
branches. In the latter case the two segments are replaced by
one. This routine is executed after terminating a drawing
sequence by means of the 'END' light-button or after deleting a
component with the 'DELETE' light-button in order to leave the
data structure in a valid configuration.
Before analysis can begin, all components and sources must have values
assigned to them. In addition, any component to be selected for output must
be assigned a unique name. The blocks representing these entities in the
data structure have provision for names and values and when these have been
assigned by interaction between the user and the labelling program they are
displayed automatically each time the picture is redrawn.
The operator uses the light-pen to compose tbe name and value in two
buffers which are displayed at the right-hand side of the screen (Figure 7).
The buffer contents are assigned to a component or electrical node by
pointing to the 'ASSIGN' light-button. A later version of the program will
permit the name and value to be assigned separately or together. The use
of a buffer makes it easy for the user to assign identical values to several
components in succession and also makes it possible for the program to check
errors before assignment takes place. In the case of the name buffer,
assignment is prohibited i f there is another entity in the data structure
having the same name. The value is checked for correct syntax, digit by
digit, as it is entered in the buffer and the whole buffer is checked for
completeness before assignment can take place.
296
Either buffer can be cleared and readied for input by pointing at the
'NAME' or 'VALUE' light-button. An empty box is drawn beside the light-
button to signify that the buffer is ready. Characters are then picked one
at a time from the selection below the buffers. In the case of the name
buffer there are no syntactical restrictions and any of the decimal digits
and multipliers can be used as well as any of the characters B,C,E,I,L,N,R
or V. In the case of the value buffer, the user can only insert decimal
digits, a single decimal point and one of the multipliers M, k, m, ~, nand
p. No provision is made to specify the electrical units because these are
implied by the type of component to which the value is assigned.
When the user is satisfied with the buffer contents he may assign them
to a component or electrical node. Note that either buffer may be empty and,
in the case of an electrical node, the contents of the value buffer are
irrelevant. The tracking-cross is used to help in the selection of a compo-
nent or node and to determine where the label is to be positioned. It is
locked in place beside the 'SELECT' light-button until the user points the
light-pen at part of the schematic. If he points at a component, the cross
jumps to the centre of the component and if he points to an electrical node
it jumps to the centre of one of the lines comprising that node or to a
component terminal. Usually it jumps right underneath the light-pen and can
be immediately moved to where the label is to be placed. When the light-pen
is pointed at the 'ASSIGN' light-button, the name and value are recorded in
the ring-structure block together with the coordinates of the tracking-cross.
The 3-character name and the 6-character value are displayed in the 1st. and
4th. quadrants of the tracking-cross. After a successful assignment the
tracking-cross is automatically returneq to the light-button area and locked
in place. If the entity previously had a label, the contents of the label
are replaced by the new ones but the old X,Y coordinates are used.
If the user is not satisfied with the position of a label he can move
it by selecting the entity with the light-pen, positioning the tracking-cross
to a more suitable place, and then pointing at the 'MOVE' light-button.
8. OUTPUT SPECIFICATION
297
appended to the table by pointing the light-pen to the component or electric&l
node and it is automatically displayed on the current or voltage side of the
table. Existing entries are deleted by pointing to them with the light pen.
The table is an up to date list of the selected outputs and can be changed
at any time prior to analysis. Since the user is free to change the schematic
or to alter the component labels, the drawing and labelling programs have
the capability to alter or delete names that have been previously placed in
the table.
9. CONCLUSIONS
298
refreshed display has proved quite satisfactory. It is completely negligible
for small pictures and for a picture the size of Figure 1, which required
about a second to redraw, the time is not excessive because it is no longer
than the time needed by the user to bring the light-pen back to the tracking-
cross to resume drawing. While the display is being redrawn, also, the
tracking-cross is still capable of being moved by the light-pen.
ACKNOWLEDGEMENTS
We would like to thank D.A. Brown for his work on the design of the
display hardware and R.E. Warburton for his contributions to the software
and the magnetic-drum buffer system.
200
REFERENCES
2. G.R. Hogsett, D.A. Nisewanger and A.C. O'Hara Jr. "An Application
Experiment with On-Line Graphics-Aided ECAP", 1967 International Solid-
State Circuits Conference Digest of Technical Papers, pp. 72-73,
Lewis Wi~ner, New York, 1967.
3. M.L. Dertouzos "CIRCAL: On-Line Circuit Design", Proc. IEEE Vol. 55,
No.5, pp. 637.654, May 1967.
5. F.F. Kuo, W.G. Magnuson Jr. and W.J. Walsh "Computer Graphics in
Electronic Design", Datamation Vol. 15, No.3, pp. 71-79, March 1969
(see also IEEE Transactions on Circuit Theory, Vol. CT-16 No.3,
pp. 389-391, August 1969).
8. H.S. McDonald, W.H. Ninke and D.R. Weller "A Direct-View CRT Console
for Remote Computing" 1967 International Solid-State Circuits Conference
Digest of Technical Papers, pp. 68-69, Lewis Winner, New York, 1967.
300
PRACTICAL LAYOUT OF PRINTED CIRCUIT
BOARDS USING INTER-ACTIVE GRAPHICS
Introduction
~301
The presentation reviews the facilities within the
Computer Printed Circuit Board Layout Program and how they
are used, and concludes with examination of some examples
and advantages over the manual methods.
002
Printed Circuit Board Layout
Operator facilities
303
magnification. A basic board increment of 0.025" can be
displayed as between 0.010" and 0.200" on the screen.
Modification
Placement
Routing
304
only, then a route to that pad can only be started or fin-
ished on the correct side. Routes on the two sides of the
board are drawn with different brightness levels and if the
route is made to go through the board, the brightness levels
of the two sides are interchanged. Routes may be deleted
when they are replaced by point-to-point connections or
modified by moving any segment.
Output
305
read back in at a later date to continue or modify the lay-
out.
306
7. Single and Double sided boards
can be handled, with or with-
out plated through holes
8. Track widths 6 values up to a
maximum of 0.100"
9. Pad sizes 4 values up to a
maximum of 0.100"
Conclusions
307
The use of Interactive Graphics provides a means of
providing a rapid competitive service for complex Printed
Circuit Boards containing discrete components as well as
those containing integrated circuits.
Acknowledgements
308
+
1 1 'I ,11111111111"1 11 ,1111,111111111 " 1
1111 ,11,,111
, · · Z1 O O0 '
iI:
00. • 0 0
1000000 0 0
6~
: ~II ~: : P ;:
J r; 0 0 1 1
o . 000
0 0 0 0 0
0 0
! ~o
0
0
:
0
0
0
0
-
0
0-----0 0 0
-
o 0 ~ 0
II
D a
•
DD--O~ ~
a •
•
~
o 0 o o:
••
--0 0 0 --0 0
o a o 0-- 0 0 0 --0
~ hIt
o 0 o 000 0 0 0
a
:--
--0 I
a
.....
--0 0 --0 0-- --0 0
--0 0 00000 o 00000 •• --0
o • L
T
..... 0 0
II I
--=:=1 0 0 OoD- - - -
~
1f1
:u ---l~
.
-
00----00
D··
-=:-UU :.r:
ru
Do
(1)--0 r:: 0
~~D~;:::::::::::;::::::::::::;~----~~::;;::::......................!;::::;
IIIIIIII I
o
o
o
•o
311
o
••
:B
o
o
T 0,
•
o 00
T •
oJ
o
••
o •
o
o
o
o
o o
o o o
000 0 o
o 00 0
I o
o
o o
o o
o 0
o o o o
o 0
•
o
00
0 o 0 o •
o
o 0
o •
o
o 0
o o
o
o
•• 1 •••••• • ••
FIG 4 Artwork Side 2 for Discrete Component Board
COMPUTER GRAPHICS FOR INTEGRATED
CIRCUIT DESIGN
Lester Hazlett
Motorola Semiconductor Division, 5005 East McDowell
Road, Phoenix, Arizona 85008, U.S.A.
Introduction
Fig. 1
Many circuits are
processed together
in one wafer.
313
glass photographic plate used for direct contact exposure on a semiconductor
wafer. This determines the size and location of patterns diffused into or
etched on the wafer. As illustrated in Fig. 1, many integrated circuit die
are fabricated in each semiconductor wafer. Each wafer mask is a matrix of
identical chip size patterns. There is a set of masks for each integrated
circuit die; a mask set consists of a different mask for each process step.
To prepare each mask, master artwork is generated for a single die, reduced
in size, and stepped across the wafer mask. Mask stepping is commonly
handled by automatic stepping equipment, but until recently, the generation
of artwork masters has been a manual procedure.
This paper describes the computer graphics system for artwork generation
at Motorola Semiconductor Products Division. A brief history of artwork
generation is reviewed and the motivation for automating the procedure is
discussed. The capabilities of the overall computer graphics system are
described. This system is functional and in regular use, but continues to
grow, change and improve.
Fig. 2a
314
Fig. 2b
The manual method for
making integrated
circuit artwork masters.
Fig. 2c
This manual approach worked tolerably well in the past, however, three
problems rendered it unsatisfactory. The time required was too long, the
process was very subject to human error, and the master had to be prepared at
a very large scale factor.
315
smaller artwork requires substantially less drafting time and eliminates the
first camera reduction step. Motorola's Computer-Aided Mask Preparation
system (CAMP) provides an output compatible with the automatic drafting mach-
ine, eliminating the need for manual ruby cutting and stripping. Now, com-
plex artwork takes a few hours instead of many days to prepare.
Fig. 3
Automatic
Drafting
Machine
CAMP
The CAMP system can operate in either the on-line or off-line mode.
While the two techniques have much in common, there is a fundamental differ-
ence.
In the off-line mode, the designer must do his own sketching on paper,
and then reduce his design to a dimensioned drawing on a work sheet. This
information is then fed into the computer in terms of component identifica-
tion and location. Although there can be much data to prepare, it is rela-
tively quick and straight forward to describe a complex integrated circuit
for drafting.
The basic distinction then is whether nearly all of the work is done
with continuous computer assistance or whether a substantially larger portion
of the design is done by the man alone and only the detailed layer-by-layer
316
instructions are done by the computer. Fig. 4 shows the components of the
CAMP system. The off-line portion of the system uses card input. Cards may
be either keypunched or prepared on the digitizer. Visual feedback for the
off-line system is supplied by the ink plotter. The ink plot is examined for
correctness and accuracy. If the layout is satisfactory, the artwork is
,
drafted; otherwise the errors are corrected and the layout is replotted.
~ CARDS ~ - POLYCELL
AND
DEVICE INK
LIBRARY PLOTTER
....
8
DRAFTING
- MACHINE
t
REDUCTION
Off-Line CAMP
317
compiler which reads CAMP cards containing commands and graphical data.
There are eight main CAMP commands: Store, Place, Route, Array, Group,
Draft, and Halt. With these commands and the appropriate sub-commands, any
mask set can be specified and thus automatically drafted.
More efficient use of a graphics language can be made if the cards can
be prepared using a coordinate digitizer. With a digitizer, coordinate
locations are much more quickly and accurately generated than by encoding
and keypunching. The power of the library is still utilized for element
detail and only the positions of elements and metal paths are thus recorded.
On-Line CAMP
On-line layout is done through a CRT display console with light pen,
typewriter and functional keyboard. While on-line, the designer has all the
features of CAMP at his fingertips. To design a complex IC, he needs only
a circuit or logic schematic and a list of suitable elements. The CRT
display station is shown in Fig. 5.
With the light pen, he selects devices from the element menu, moves
them about the CRT screen and places them in any position and orientation he
wishes. A routing procedure is used to design metal patterns that inter-
connect the various elements on the IC design. Accuracy and operator con-
venience are facilitated with features for scale factor changes, zoom, grid
paper backgroud, direction constraints, invisible grid, and dynamic coordi-
nate readout in chip size units of measure. The designer can specify changes
in the mask layers displayed at any time to enhance his visibility.
Fig. 5
CRT Design
Terminal
318
Through the dynamics of graphical interaction, several on-line pro-
cedures are made possible which have no off-line equivalent. Some of these
new procedures are Process Selection, Resistor Design, Device Design,
Element Design, Polycell Design, and Computer-Coached Placement and Routing.
Fig. 6
Display of Process
Parameters
There are many resistor values and configurations used in the layout
design of integrated circuits. Because of this fact, it is impractical to
try to catalog resistors in the same manner as other components. Therefore,
a program has been written to create resistors as they are needed and store
them in the temporary section of the device library. Each layout uses this
temporary section for the resistors in its mask set. When a new design is
started, the previously defined resistors are wiped out and a new set is
specified. Inputs to the program are such variables as junction depth, end
effect constant, and preohmic width and length. From the process parameters
and total resistance, the computer calculates the overall length of the
resistor and displays it at the current scale factor. At this point, the
designer can modify the resistor by bending or folding it to achieve a de-
sired shape. As he does so, the computer recomputes segment lengths to main-
tain desired resistance. When the deSigner is visually satisfied with the
319
design, he accepts it for use in the layout.
Some of the newest features of the on-line system involve the use of the
computer to coach the designer. To accomplish this, the computer must have
in its data base the structural information for the complete design. While
the designer is selecting and arranging elements, the computer keeps count
and can at any time list for him the number and type of elements which must
be added. The computer not only assures that all cells are present but will,
upon request, do a placement evaluation. This allows the designer to com-
pare the merits of one arrangement against another for total wire length
required. The coaching function continues during wire routing. When the
designer selects any cell output, the gates which it drives are blinked on
the CRT screen to help him interconnect them correctly. The computer main-
tains and can, upon request, display a list of output nets not yet completed.
An automatic wire routing procedure is incorporated which can find inter-
connecting paths one at a time. This procedure can be used either in free
running sequence or one wire at a time under supervision of the designer.
320
The success in using the automatic router is dependant upon the nature of the
design to such an extent that its utility is only realized because of its
coexistence with an interactive graphics system.
Fig. 7
A One-Gate
Polycell
When a design is complete, such as the one in Fig. 8., a magnetic tape
is generated for the ink plotter or the drafting machine. At this time, a
magnetic tape record of the results of the design session is created and
filed. If, at a later time, the designer needs to update or modify the
previously created circuit, he can do so by reading in the tape and starting
where he left off.
CAMP Drafting
The graphical output from the CAMP system is in the form of both docu-
mentation drawings from an ink plotter and solid image artwork masters from
an automatic drafting machine. The ink plotter is used because it can gene-
rate drawings which are multicolored and also because it costs less to op-
erate than the drafting machine.
321
The scale factor at which most of our mask masters are prepared on the
drafting machine is 100x. This minimizes drafting time and eliminates the
previously required first reduction. Masks of reasonable complexity take
Fig. 8
Completed IC
Design on CRT
All masters that are generated by the drafting machine are complete;
all shapes are opaque and require no further manual operations. The techni-
que used to direct the drafting machine to create solid images is called
"Painting." The ability to paint shapes is shown in Fig. 9. The painting
program in CAMP allows for any shape at any orientation and at any scale
factor.
CAMP Hardware
The CRT design console is a Control Data 274 display system. Its cath-
ode ray tube is 22" in diameter and has magnetic deflection. The entire
322
surface of the CRT is available as a working surface and positions are
addressed on a 4096 x 4096 matrix. It is a graphic display whose principle
of operation is based upon incremental vectors. Maximum line drawing speed
is 1.2" per 1.67 ps. Beam size is .015" and when moved, yields unifonn lines
Fig. 9
Time Exposure of
Gerber While
Painting Shapes.
of this width. The controller for the display system has a 8192 word core
memory buffer. It has a subroutining capability which makes possible repeat-
ed drawing of shapes without using a lot of additional storage. In other
words, the amount of picture that can be displayed depends on the unique-
ness of shapes in the design rather than the number of shapes. The refresh
cycle of the controller is set at 25 millisecond intervals for flicker free
operation. The display system has a light pen for use by the designer in
selecting and pointing to elements displayed on the screen. This light pen
consists of a tube which channels light into a fiber optics bundle, where it
is transmitted to a photo multiplier. A signal from the photo multiplier
causes a program interrupt in the computer so that the program can interro-
gate the display system to detennine to what element or position the designer
is pointing.
323
filtration of the drafting head. The machine is capable of linear, circular,
and parabolic interpolation. Other features include symbol generation and
independent axis scaling. The ink plotter is a Computer Industries MTD
345-7 with magnetic tape input. It plots with different color ink or ball-
point pens on continuous roll paper 31 inches wide by any length. If it is
advantageous for the document to be larger than maximum width, CAMP can
generate tapes for side by side sections to be taped together. This feature
is called plot windowing.
Summary
324
PART 4
ABSTRACT
The paper describes a joint development project of the Office of Re-
search and Development, Federal Highway Administration (FHWA), the Federal
Projects Division, FHWA Region Nine in Denver, Colorado, and the University
of Colorado.
The project has concentrated on the development of an implementable
software package for producing perspective views of the design highway
system for inclusion as a subsystem of TIES (Total Integrated Engineering
~stem), a software package concept of the Bureau oT Public Roads.
The generation of perspective views of a design highway shows great
promise for use by the highway design engineer, the landscape architect
and the general public. Perspective views generated from design data can
be used by designers to aid in eliminating unsafe features and to visualize
the final view which will be seen by the driver.
An animation movie, simulating a driver's experience for an actual
design project is described The movie was made by photographinq the Cathode
Ray Tube (CRT) of the interactive graphics terminal at the University
of Colorado.
Results of the study point to increasing use of computer animation and
perspective plots in the highway design field.
327
INTRODUCTION
The evolutionary development of highway engineering computer graphics
follows a pattern quite similar to other areas of computer application.
In general, the advent of computers was followed by implementation of auto-
mated systems which were a duplication of formerly used manual methods.
This was followed by the second generation of hardware and consequent im-
provement in the degree of automation of data handling. By the end of the
second generation there emerged some changes in application methodology
which realized in a more full measure the potential of the computer. The
so-called third generation of computers produced a plateau in application
development where major efforts were directed at maintaining the continuity
of processes already computerized. It is only in the recent past that we
have been able to direct our attention to an emerging generation of appli-
cations which in concept are deserving of the adjective "advanced."
Prior to the introduction of the computer as a highway design tool,
graphic techniques were used in lieu of numerical methods in several steps
of the design process. It was believed that the computer would displace
the need for graphics; however, it was soon recognized that graphical data
representation was a very expedient means of evaluation. Since approxi-
mately eighty percent of the data for the design of a highway is available
in a computer processed data media, the use of computer graphics is enjoy-
ing a great amount of developmental effort currently. [1, 2, 3, 4]
In the design of a highway alignment, the interrelationship between
the horizontal and vertical spatial characteristics is sometimes difficult
to visualize. This is due, in part, to the classical approach to the
graphical representation. In much the same fashion as the architectural
profession uses the floor plan and the elevation drawing to depict a build-
ing, the highway is visualized by means of the "plan" (looking vertically
downward upon the facility) and the "profile" (viewing the highway trans-
versely in a horizontal direction) drawings. A typical "pl an and profile"
is shown in Figure 1. It takes the trained eye of a highly experienced
highway engineer to visualize the design highway and its impact upon the
topography with this approach to graphics.
Today's trend is away from the use of specialists who have this visual-
ization faculty, and towards interdisciplinary evaluation of highways and
their effect upon the environment. The eyes of the ecologist do not cor-
relate the plan and the profile into a composite view. The burden of pro-
viding a meaningful communications tool is placed upon the highway engineer-
ing computer specialist.
The response to this need is a very exciting application of computer
graphics and the subject of this paper, automated perspective plots. The
application of both computer technology and photographic techniques promises
to allow, not only the visualization of a design highway, but to permit an
evaluator to experience in animated simulation the feeling of driving on the
faci 1i ty.
The United States is experiencing an acute awareness of the impact of
major public work facilities upon the total esthetic environment. [5J Con-
servation of natural beauty has become a major decision factor in placement
328
FIGURE 1 - Typical Plan and Profile Sheet
of highways. [6] Also, the road users in the United States are turning the
use of highways into an opportunity for an esthetic experience. Therefore,
added to the criteria of both safety and rapid travel is the requirement for
a highway facility to allow the user to see the beauty of the
country side and have a pleasant experience. Therefore, the technology
described herein has been received with enthusiasm by the highway industry
in the United States.
Another research objective has been to produce perspective plots of
highways at the lowest possible cost. This criteria is a difficult one to
meet because of the rather large amount of computation which is required.
In order to create smooth animation, the frequency of views must be kept
high enough to result in gradual advancement of the viewer. In addition
to this, the use of animation media for design comparison creates the need
for plots of several alternate alignment configurations. If our resultant
software is to meet these criteria, it has to be highly efficient and data
structure oriented rather than general in concept. Contributions to the
economy of the method were realized through:
1. Use of pre-existent data bases.
2. Efficient algorithms for coordinate transformation and for view-
ability of lines.
3. Photographing the Cathode Ray Tube (CRT) display device directly.
4. Use of a computationally efficient computer such as the Control
Data Corporation 6400.
329
The methodology set forth is the result of sponsored research. It is
part of the U. S. Federal Highway Administration program of highway engin-
eering research for a Total lntegrated Engineering ~stem (TIES). TIES is
a major software development effort intended to provide an integrated
approach to computerized highway related computer science. [7,8] This
covers application areas such as route location, soils investigation, road
geometry, bridge design, and construction engineering and administration.
This program of research and implementation is administered by the Federal
Highway Administration's Office of Research and Development, under the
direction of the Engineering Systems Division. The analysis and programming
is contracted to state highway agencies, universities, and commercial soft-
ware developers.
METHODOLOGY
In the work which has been done by highway engineers to have computer
graphics provide visualization information, [4,9,10,11,12] the techniques
have been very specialized in nature and have been used in very limited
situations.
One of the major objectives of this project was to produce perspective
views of design highways at the lowest possible cost. The satisfaction of
this objective is critical if one hopes to find acceptance of computer
generated animation as a simulation tool in the design and evaluation process.
To effect efficiency, an established data base from the location and
earthwork automation is used as an input file for the developed program.
Data structured algorithms are used for the perspective coordinate trans-
formations and for the hidden line removal routine.
Basically, the methodology follows the process macro as shown in
Figure 2. There are seven basic steps which take place in the process.
They are:
EARTHWORK
COMPUTATIONS
COMPUTE
TRIORDINATES
330
VIEWER
TRIORDINATE f---~ SCISSOR DATA POSITION
CODED ESTABLISH LINE OF SIGHT AND LINE
TEMPLATES OF SIGHT
DATA
PERSPECTIVE
TRANSFORMATION
HIDDEN
PLOT LINE
COMMAND DETERMINATION
LANGUAGE
PLOT COMMAND
TRANSLATOR
I
I
I
6 STATIC
~
PLOT
I
~
L?
331
1. Input of data concerning location and direction of sight of the
observer's eye.
2. Set up and positioning of the window plane on which the perspective
view is projected.
3. Identification and retrieval of the basic cross section data from
the location and earthwork programs.
4. Perspective coordinate transformation for all points of a cross-
section.
5. Removal of hidden lines.
6. Output of final completed view to intermediate data base (PCl)
7. Display of perspective views on anyone of a number of devices such
as the CRT, 35 mm microfilm, hard copy from the microfilm or in
16 mm motion picture film shot from the CRT.
x p(x,y,z)
Where
~ = Ox + K(x - ox)
n = 0y + K(y - Oy}
S = Oz + K(z - oz)
and
r
X
= 0
X
+ d cos a
333
r z = oz + d cos y
These transformations are general except for the case of the line of sight
being vertical (sin y = 0). In this case, one can use an alternate
definition of the X-axis and avoid the problem. In our problem, we are
not interested in looking vertically and therefore have omitted this
possibility.
The perspective transformation package of the program takes the input
information concerning location of the observer and the line of sight and
sets up the window plane by making use of the input distance, d. By read-
ing cross-sectional information in a serial fashion, the perspective co-
ordinates of each point are calculated and saved for later plotting.
Hidden Line Removal
Because of the large volume of data which must be handled to plot views
and because of constraints on the availability of core storage in most
design agency shops, an efficient hidden line algorithm which does not need
a large data base resident in core is used. While there is a rather general
hidden line algorithm [13], it requires that data on all points to be
plotted be available for checking during the entire procedure.
However, the data available from highway design information is highly
structured. The cross-section information occurs in a serial fashion with
each successive cross-section being farther from the observer than the
previous one, provided that tile roadway alignment does not have switchbacks
within the sight distance being plotted.
The Pennsylvania State Highway Department [14,15] has used a hidden line
technique which makes use of the structuring of the data to cut down on the
amount of data which needs to be retained when moving on to the next cross-
section. We have adapted this technique to our program.
In dealing with the first cross-section, perspective coordinates of
all the points of the cross-section are generated. Then plotting informa-
tion is generated for this cross-section. Now, since any successive point
whose perspective coordinates fall below the curve described by the first
cross-section are invisible, we can use this curve for checking visibility.
The curve used for checking visibility is called the blackout array and is
a collection of X and Y coordinates of points on the curve.
As additional cross-sections are looked at, the points are checked for
visibility and if visible, the blackout array is updated to include the new
visible points so that when the next section is encountered, its visibility
is checked against all previous data. This technique has proved to be quite
effective. One needs only to save the information in the blackout array as
far as data previous to the cross-section under consideration is concerned.
This saves considerable storage space. In addition, the checking for visi-
bility is simplified and shortened.
334
Additional features of the hidden line routine include interpolation
capability, to handle visibility problems of line segments, and longitudinal
line generation and plotting.
The blackout array concept is shown in Fig. 4.
Updated Blackout Array
335
The first method is too slow and costly for this application. The second
is a very good method, possibly the best, especially if a 16 mm microfilm
camera is utilized.
The user of this program has the option of microfilm output (See flow
diagram in Figure 2); and the plots in Figures 5, 6, and 7 were output on
this media. The available microfilm plotter for our work is 35 mm and
the expense is $0.05 per frame. A 35 mm motion picture projector is
difficult to obtain; and $0.05 per frame makes the animation sequence quite
costly. This predicated the decision to photograph the CRT directly.
336
FIGURE 6 - Typical Perspective View - McClure Pass, Colorado
337
per second. Since our film has no sound, the 16 frames per second rate is
used. The demonstration film contains 3 duplicate images of each view in
the sequence. The distance between each viewer position is 10 feet. This
information is input to the plot program along with the viewer position
relative to the center of the highway. The viewpoint for this demonstra-
tion animation is 4 feet to the right and 4 feet above the centerline of
the roadway.
The demonstration animation is taken from actual data for a project in
the mountains of Colorado. The highway was designed by Region 9 of the
U. S. Federal Highway Administration and traverses McClure Pass which has a
maximum altitude of 9500 ft. above sea level. An oblique photograph of a
roadway typical to that of the animation is shown in Figure 8. Viewing of
the demonstration film never fails to spark a great deal of enthusiasm for
this technique.
IMPLEMENTATION
The implementation of all software systems with the TIES concept is
geared to the needs of the various State Highway Departments. This criteria
creates a divergence from the pre-stated goal of using a computationally
338
efficient computer for economical production of animation. The reason for
this divergence is that the typical State highway department is using a
computer which is not computationally oriented. Because of the non-tech-
nical processing involved in the administration of a highway department,
the computational efficiency of a computer is preempted by requirements
which are based on data processing needs. This situation does not, however,
preclude the economic preparation of perspectives on these machines.
An even bigger constraint on the implementation of this technique is
the lack of proper graphic display devices in individual State agencies.
Some 35 of the 50 States have digital plotters; but currently none of these
highway design agencies has CRT graphic display equipment with vector
capabilities. This situation is changing, as the usefulness of these de-
vices is increased through application development. Certainly the design
methodology for highways is a fertile area for interactive graphics tech-
niques. As research and development funds are made available the potential
in improvement of automation aided design will be realized.
The highway design perspective plotting technique was developed on two
computer hardware configurations simultaneously. One of these, the IBM 360
model 40 with l28k bytes of core memory does not have interactive graphics
capability. A Calcomp 663/770 incremental drum plotter is available at this
installation. This configuration is used to test the basic system archi-
tecture. Resultant PCl output may be plotted on the incremental drum
plotter for quick verification. The other configuration is a Control Data
Corporation 6400 with 64k words of fast core memory and 125k words of ex-
tended core storage. Figure 9 shows the operator console of this equipment,
which is located at the University of Colorado. The graphics I/O at this
installation include the CDC 280 Microfilm Plotter using a 35 mm camera, a
Calcomp 763/770 Incremental Drum Plotter, and a CDC 282 Interactive Graphics
Terminal.
Use of the PCl allows any specific perspective view to be plotted on
one of four media:
1. Paper and Ink Drawing
2. 35mm Microfilm
3. Microfilm Hardcopy
4. The CRT Display Device
The latter is pictured in Figure 10 and serves two purposes; first, to give
the highway engineer a quick way of viewing a design plot; second, it is
the image source for l6mm animation motion picture filming.
The useful application of this technology is divided into static and
dynamic uses. Examples of the single static view of the design highway are
shown in Figures 5, 6, and 7. These serve as a very useful evaluation to
allow the design engineer to examine a particularly complex combination of
vertical and horizontal geometry. This type of plot is also useful as a
communication of the design features to the public. Figure 11 is a plot
which has been used by the Federal Highway Administration, in Denver, Colo-
rado, as information for property owners of contiguous land to the design
339
FIGURE 9 - Operator Console of CDC 6400
project. The cultural features were added by a landscape architect with
very little effort to enhance the realism. Prior to the creation of this
perspective representation of engineering data, it was necessary to use
graphics similar to those shown in Figure 1 to satisfy this requirement.
The resultant improvement is obvious in comparing Figure 1 with Figure 11.
The dynamic plot, highway design animation, is the subject of a great
deal of interest. It allows the designer, safety expert, aesthete, or
behavioral scientist to experience a simulated drive along the design high-
way. Similar animations have been made in other engineering disciplines
during the last few years. [16, 17, 18, 19] In 1968, at the Highway Research
Board Meeting in Washington, D. C., the engineers from the Service d1etudes
Techniques des Routes et Autoroutes of France [4] presented an early ani-
mation effort as viewed from the driver1s eye. This motion picture was
made from a sequence of static plots which were retouched prior to filming.
This was a very impressive piece of work. The process of animation with
this technique was quite costly by U. S. standards. The methods represented
herein are designed to be more realistic from a cost standpoint, without a
significant sacrifice in quality.
Input to our technique is derived from the design calculations system
of computer programs known to the highway engineer as Earthwork Computation
(See Figure 2). The Coded Template File is a normal output of Earthwork
340
FIGURE 10 - Interactive Graphics Terminal
Computation. This data is referenced to some line in the horizontal plane.
The data is not related to three dimensional space until it is correlated
with the Horizontal Alignment Data. The resultant data, given as x, y, and
z triordinates, is also tagged with a positional code so that the longitu-
dinal lines of the plot may be determined. The Horizontal Alignment Data
is standard data to the Highway Location Calculation computer system. The
only input parameters which the user must submit to obtain a view are the
location of the viewer and the direction of sight. The former is given as a
position above or below and left or right of a roadway "station." The
latter is given as a vector in three dimensional space or else the system
defaults to the direction of travel at the indicated roadway IIstation.
1I
CONCLUSIONS
Highway design animation is presented as a working tool to the highway
design discipline. The merits of a dynamic simulation method for IIdriving"
upon the design facility prior to actual construction are nearly self-
evident.
341
ENGINEERING SYSTEMS DIVISION U. S. DEPRRTtENT OF TRANSPORTRTION
VIEW 100 FEET LEFT OF STRTION 372+50
FEDERAL HIGllWRY RIlI1INISTRllTION
PROJECT 271'1-023 <TIES)
BlRERU OF PUBLIC ROROS
ST. VRRIN CANYON RORO
oe/0ll/69
REGION 9 - OENVER. COLORRCO
342
ACKNOWLEDGEMENTS
The work on this project is supported by The Federal Highway Administra-
tion Office of Research and Development as Study No. 2712-413, TIES Project.
This Study is under the direction of Mr. L. R. Schureman, Chief, Engineer-
ing Systems Division and supervised by Mr. J. D. Cutrell.
We would like to express our acknowledgement to Mr. Carl Izzard,
Director of the Office of Research and Development, FHWA, Mr. Charles D.
Beach, Region Nine Federal Highway Administrator and to Mr. Daniel C.
Harrington, Chief, Federal Projects Division, FHWA, Region 9, for their
encouragement and support of the work in this area.
The cooperation and advice of Dr. E. Rex Krueger, Director of the
Computing Center, University of Colorado and Dr. Robert L. Schiffman,
Research Associate, Computing Center, University of Colorado, is
appreciated.
REFERENCES
1. Maxwell, Donald A., "Computer Graphics as a Design Tool, II Proceedings/
National Conference, Committee on Electronics, American Association of
State Highway Officials, May 1969, Seattle, Washington.
2. Cutrell, John D., "Computer Graphics," Presentation at the 11th Annual
Highway Engineering Exchange Program, September 1969, Washington, D. C.
3. "IBM 1130 Highway Design Presentation System at Lochner Computer Service,
Inc.,11 IBM Application Brief, K20-0316-0, White Plains, N.Y.
4. Godin, P., et~, "Visual Quality Studies in Highway Design," Highway
Research Record No. 232, 1968, pp. 46-57.
5. Bridwell, L. K. and Turner, F. C., "Joint Development of Highway
Corridors and Multiple Use of Roadway Properties,1I Memorandum Issued
17 January 1969.
6. Federal-Aid Highway Act of 1968, United States Code.
7. Schureman, L. R., Collins, W. H., and Tennent, R. C., "TIES," Proceed-
~, Conference on Improved Highway Engineering Productivity, May 1968,
Boston, Mass.
8. Co 11 ins, W. H., Progress on TI ES, Proceedings, Conference on Improved
II II
343
Perspective Plotting of Roadways," Highway Research Record No. 232,
1968, pp. 29-45.
13. Kubert, B., Szabo, J., and Giulieri, S., liThe Perspective Representation
of Functions in Two Variables," Journal of the Association for Comput-
.il!9. Machi nery, v. 15, n. 2, April 1968, pp. 193-204.
14. Smith, J. S., "Pennsy1vania Department of Highways Perspective Plot
Program," Presented at the Highway Engineering Exchange Program Area I
Subgroup Meeting, May 1969, Albany, N. Y.
15. Schwartz, C., "Computer Graphics," Presentation at the 11th Annual
Highway Engineering Exchange Program, September 1969, Washington, D. C.
16. Knowlton, K. C., "A Computer Technique for Production of Animated
Movies," Bell Telephone Laboratories (16 mm film, 17 min., silent).
17. Zajac, E. E., "Simu1ation of a Two-Gyro, Gravity Gradient Attitude
Control System," Bell Telephone Laboratories (16 mm film, 4 min. sound).
18. Group T-3, "Computer Studies of Fluid Dynamics," Los Alamos Scientific
Laboratories (16 mm film, 7 min., silent).
19. Sinder, F. W., "Force, Mass and Motion," Bell Telephone Laboratories
(16 mm film, 10 min., sound).
20. Turner, F. C., Keynote address, Highway Research Board Meeting, January
1968, Washington, D. C.
21. Hornbeck, P. L., et a1., Highway Esthetics, Interim Report on Contract
No. FH-1l-6620, B.P.~ Landscape Architecture Research Office,
Harvard University, 1968.
22. Hornbeck, P. L., et~, Comprehensive Highway Planning, a report to the
U. S. Department of Transportation on aesthetic and behavioral
criteria for highway design research, Harvard University, 1969.
344
THE USE OF INTERACTIVE COMPUTER
GRAPHICS IN SOIL ENGINEERING
ANALYSIS AND DESIGN
J. R. Stein
E. R. Krueger
R. L. Schiffman
SYNOPSIS
INTRODUCTION
345
that required material characterizations beyond the capability of
early conceptions of mechanics. On the second count, the design
requirements were of a highly sophisticated nature. While the
design of structural elements could use, if necessary, the most
rudi-mentary procedures, soil engineering design requires highly
sophisticated mechanics to provide an adequate analysis of the
earth's response.
Because of these deficiencies in the mechanics approach, soil
engineering, in its genesis, moved toward a descriptive approach
based upon the geological sciences (Terzaghi, 1936). Analytical
techniques were largely replaced by descr·iptive and observational
analysis. This empirical approach was accelerated and strengthened
by the requirements of military construction during World War II.
Empirical soil engineering flourished until the mid 1950's.
Then, structural requirements for the newer types of structures
generated a need for a higher precision of soil engineering than
could be achieved by a straight empirical approach. There was, as
a result, an increasing emphasis on relatively precise laboratory
measurements and on accompanying theoretical studies of laboratory
and field behavior. The latter phase has been made practical only
by the use of the digital computer.
About the time that the need for theoretical analyses in soil
engineering was becoming apparent, the relatively large scale digital
computer was coming into general use. Two factors contributed to
this result. First, mass production made standard hardware readily
available. Secondly, the development of procedure-oriented languages
such as FORTRAN (Backus, 1957) and ALGOL (Naur, 1963) enabled
computers to be used by individuals not specifically trained in
the computer sciences. Because of these languages, computational
systems lost their machine dependent uniqueness. Thus, the computer
could be used as a tool in a wide variety of disciplines.
Early computer usage in civil engineering was confined to
analytical problems, specifically formulated. The first direct
applications were, interestingly, in the area of soil mechanics.
These were problems concerned with pile driving (Smith, 1951) and
layered elastic foundation systems (Schiffman, 1957). These early
problems were highly specific applications which were machine
dependent (on plug board machines) and required considerable amounts
of card handling and off-line operation. With the development of
the stored program machine, computations of surveying traverses,
highway slope analyses, cut and fill studies, and specific structural
analysis problems become available.
In the early 1960's it became apparent that the use of the
computer and computational techniques had great potential for civil
engineering practice. It was also apparent that the civil engineer,
346
because of his training and outlook, was not going to exploit fully
the computer's potential if programs had to be written in a relatively
restricted procedure-oriented language. This need stimulated the
development of the problem-oriented languages such as COGO (Miller,
1961) for highway traverses, STRESS (Fenves et al, 1965) for
structural analysis, SEPOl (Jordan and Schiffman, 1967; Schiffman,
Whitman and Jordan, 1970) for settlement calculations and lEASE
(Bailey and Christian, 1969) for slope stability analysis. These
languages, within the I/O constraints of the batch process mode,
permit the civil engineer to perform calculations on a "what if"
basis without the constraints of a rigid language structure. As
far as the soil engineer is concerned, this type of computer usage
permits a mechanism for sophisticated theoretical analysis to be
integrated with empirical data.
The potential for developing a computational system providing
a high degree of theoretical and empirical integration is dependent
upon the type and degree of interaction which can be established
between the engineer, laboratory or field instrumentation, and the
computer. In the batch process mode, the problem-oriented language
provides useful access to the power of the computer, but does not
provide an efficient interaction. Graphics output devices such as
microfilm or pen plotters are useful in providing a visual mode of
output in which alphanumeric batch output need not be plotted by
hand. These devices, hO\,Jever, lack interactive capability.
Interactive graphics, coupled with a problem-oriented language,
provi des many of the characteri sti cs needed by the soil engi neer:
a graphical display, full man-machine interaction and simplicity of
I/O in terms of language structure.
This paper descr-ibes a study in the development of an interactive
computer graphics system with specific applications to problems
concerned \'Jith soil engineering. The systems described herein have
been implemented on a CDC 6400 using a CDC 280/282 interactive display
system.
Three soil engineering application systems are described. They
are: RING (Rate INteractive Graphics), a system for predicting the
progress of consolldation of multi-layered soil deposits; ELASTING,
(~Jastic !:&yer STress - l..!lteractive §..raphics), a system for determin-
ing the stresses and displacements in layered elastic media; and
FEMALE, (FEllenius - tlay Analysis - Limiting Equilibrium), a system
for analYZlng the stability of earth-structures using the Fellenius -
tlay technique (Esmiol and tlelson, 1963).
347
system on any computer. First are the basic software drivers for the
interactive graphics system. Using these drivers a variety of applica-
tion programs can be developed for a given problem. The second com-
ponent of the interactive graphics system is the user language.
The CUGSystem
All the interactive graphics applications programs at the University
of Colorado operate under the CUG (Colorado University Graphics) system.
This system provides the basic drivers which-the application programs
described here, and others (Feeser and Cutrell, 1970) utilize.
The CUG (Dohrmann, 1969) system consists of a series of Central
t1er.lOry and Peri phera 1 Processor programs written in COMPASS for the
CDC 6000 Seri es machi ne. They a re FORTRAN call ab 1e.
The display equipment consists of a CDC 280 Display Controller,
a CDC 284 Microfilm Recorder, and a CDC 282 Display Console.
At this time, the CUG soft\'/are consists of three entities:
1) A series of plot code generation routines which enable a
batch process program to generate a plot file. In turn, the
plot may be viewed on the CDC 282 console or on the CRT
associated with the CDC 284, or both.
2) A microfilm production driver which records alphanumeric and
vector plots on 35 mm microfilm.
3) The interactive system which permits interaction to take place
between the CDC 282 and the CDC 6400.
There are three basic modes of interaction:
1) The alphanumeric keyboard with 44 keys.
2) The function keyboard which permits the use of 12 switch
indicators with overlays.
3) A light pen with a three position switch.
348
particular application area, his concern would be with the appropriate
man-machine interactions required for the particular system being
programmed for that area. Thus, the CUG system would, by necessity,
be re.quired to have the same simplicity as the standard FORTRAN used
in the batch process mode. As an example, the mapping routines set
up scale factors for converting the user's coordinate system to the
CDC 280 coordinate system and to draw grids. The call,
MAPG(XMIN,XMAX,YMIN,YMAX,XMI,XMA,YMI,YMA)
establishes a mapping, draws a grid system, and marks the (X) and (Y)
axes with scale numbers. In this call the first four arguments
establish the minimum and maximum user coordinates. The last four
arguments are the minimum and maximum coordinates desired in the CDC
280 plane. Some other mapping calls are: MAPGLL, which establishes
a log-log mapping, MAPGSL, which establishes a semi-log mapping with
a linear (X) axis and, MAPGLS, which establishes a semi-log mapping
with a linear (Y) axis.
The interactive system is called by the subroutine,
INITIA(TEXT)
where TEXT is an array of up to 162 words which contain the display
code text to be displayed on the CDC 282 console. A basic call in the
interactive mode is,
IAM(MESSAGE,PLOTCOD,NP,RESULTS,TYPE,BUFFER,SIZE)
Both the user and keyboard messages permit 60 characters. The Central
Processor (CP) and Peripheral Processor (pp) messages each permit 24
349
characters. As far as the user is concerned, the CP and PP messages
are system diagnostics. The user messages are programmed as part of
the application program. They are used to direct the calculation.
The keyboard messages are programmed entries and are input by the user.
As a matter of convention for this paper, the user messages will
be shown in ITALICS. The keyboard messages will be shown in MANIFOLD
type. Decimal data will be designated by (V.V) while integer data will
be designated as (N).
The CUG system permits the user to call for a microfilm image of
the current display. This is accomplished by use of the interrupt
feature in the system. The same interrupt feature permits the sup-
pression of printed output and the recording of the print file on micro-
film.
Recent activities concerned with the CUG system have been directed
toward the development of a compatibility package between various
graphics devices and the CDC 6000 series machines. At this time, the
CUG system is compatible with the CDC 250/252 and the CDC 274 systems.
That is, an application program and the CUG drivers can be used
alternately on any of the three interactive graphics display systems
without change.
Languages
A user oriented interactive graphics application system should have
three major attributes:
1) The system must make efficient use of machine resources.
2) The system must be relatively easy to program and its documen-
tation readily intelligible.
3) The system must be easy to use in the mode for which it is
designed.
Given the present state of programming technology, the use of CUG
in a FORTRAN mode tends to satisfy these requirements. The relative
efficiencies of the assembly languages are more than offset by the
ease and general knowledge of the procedure-oriented languages such as
FORTRAN. The use of higher order language executives such as ICES
(Roos, 1966) are not suitable from these accounts. First, these
higher order executives invariably degrade the machine operation beyond
tolerable limits. In addition, their use requires knowledge of machine
organization which is beyond that of the usual applications programmer.
The availability of a message-response mode in CUG permits the develop-
ment of a command structured language without overly degrading the in-
formation processing capabilities of the operating system.
Systems such as ICES have, as one of their stated objectives, an
350
inherent capability of integrating various civil engineering application
sUbsystems. Their purpose is to provide a single civil engineering
package which crosses disciplines, such as highways, structures, soil
engineering, etc. The philosophical differences between these disciplines
is so great that it is questionable whether this form of integration is
possible or even desirable. Integration of computed results on a
problem by problem basis is, however, certainly desirable. This can be
accomplished within the CUG system by using its ability to create files
and call control cards from the console.
Problem-oriented languages in the batch mode (Jordan and Schiffman,
1967) tend to be quite sophisticated, a quality necessary because of
the lack of interactive capabilities. In an interactive system, however,
and especially in an interactive graphics system, a complex command
structuring is neither necessary nor desirable. The psychology of the
user at an interactive graphics console and the physical environment is
such that the choice of commands which are directly input should be
limited to less than about twenty key words. Beyond this, the user's
program is directed by a message-response sequence.
The interactive programs described here use a command block
heuristic language system with default options. Each program is divided
into a number of functions which are called by key words, each with
generic meaning as to the soil engineering or the computational function.
For example, the command PROFILE calls a function which defines the
soil profile. Once a function is called, the program proceeds heuristi-
cally in a message-response mode. The heuristic string may be broken
by default entries which can be used to exit a function or to change
data already entered within a function.
The application systems, RING and ELASTING, operate exclusively in
the manner described above. All the data for these systems are input
from the keyboard.
FEMALE operates substantially as described above, with one modifi-
cation. Because of the large volume of data often required for slope
stability analyses, there is an option in FEMALE to enter the data
either by card or from the keyboard. If data are entered by cards
the program permits the data to be edited either line-by-line or by
records. This relieves the user of the tedious job of typing a large
volume of data.
351
surface load. FEMALE is designed to analyze the stability of earth
structures.
Each of these application systems is fundamentally designed for
conventional stand alone use. They are, however, capable of integration.
In this latter mode, data from one system can be dumped to a file and
held until another system is called via the control card calls from
the console. All systems residing in Central Memory have full access
to the files developed by the current and all previous residents of
Central Memory.
The requirement that the systems be uniquely resident in Central
Memory is a function only of the capacity of the machine. The CDC
6400 used in this work has 64K of Central Memory and l25K of ECS.
As such, only one interactive system could be resident in Central
Memory at a time. With a larger Central Memory, two or more interactive
systems could be CM resident.
352
10) PROGRESS, SETTLEMENT - The function which calls for the
calculation and display of the settle-
ment history for as many as five separate
problems.
11) PROGRESS,UAV - The function which calls for the
calculation and display of as many as
five average excess pore pressure
histories.
12) PROGRESS, PRESSURE The function which calls for the
calculation and display of up to five
excess pore pressure histories.
As an example, consider the message response sequence to display
a set of excess pore pressure isochrones for a six layer soil profile.
The functions, PROFILE, BOUNDARY, and HISTORY have already provided the
basic input data required to solve this consolidation problem (specified
as Problem 1). The screen message is,
ENTER -- FUNCTION
The display which follows is the excess pore pressure isochrone display
shown in Figure 1. The message,
IS SCALED PLOT DESIRED
353
PRO£UH N..t&R 1
EXCESS PORE PRfSStR£ lSOC~
I.T· 1.7"[+15 U •• 25
2. T • '.SlI£+'5 U •• 51
5. T • I.SOI£+'. U •• 75 te.
~:- I
•• T • 5.511£+'. U •• 85
Ie•
Z4.
ze. II
51
/
/ 1
; J L
~ :.;: L
1.
I ./ L
:::~: / ./ /
i.~- ., /
/' L
..., I L L
/ V
......
51
, I / /'
/ V L
~
..,
lUI
1/ L ~
-
u /' V-
I:, ." / ./ b---:':
/:!Ii / /____
' i"'" ~
, 0:, 1L
~
-
i
co:
ENTER -- FUNCTION
ENTER -- FUNCTION
354
PROGRESS, DEGREE
1,DEGREE,.99
2,DEGREE,.99
3,DEGREE,.99
4,DEGREE,.99
5,DEGREE,.99
NO.
355
PROGRESS OF CONSOLIDATION
o.
i
t• , - t
t--::t----.
F::t-.... I:
r-t-
III
'"
..... r-.
""
~t"I
I •, - 2
I ij
~
r-. •, - J
"~~
8."4[-1 2
'\ ! 1]
~ 4• , - 4
r\, I 1
'II' '
~ I i i ; 5• , - 5
"- Ii: iii
\
1.887£-0 I
" I
i j:
r 1 :"
" I Ii i:
! i i
2.885£-0 I
I~
1\ I I !i ' "
!I I
"
,;!
i
, i
1\ ~Il
i 1;.
~
j :
I !i
1\ I I
' I';:
i ! i I;
\ \i ~i !'I ~I
I
,I
~ I
I 1 :
I I
! !;:
,I
I I i
I
, I
I I
i l ,: '
II
\J Ill!: I:
I
i I ; ; I;
~
I
~ !!
I I I i 1i ! '
\ \! i i
i I
'\
: I!:,:
I
;I i" ~:;; i
..
I I, II
'
~ ! 1 j : ; i ::.
~ 'I i
I
I I~I 1 ;
t i
j i : ; i:
I I ' I'
i
1\
, 1\
I
;
7.887£-01
\1 ~I !I I I : ' ,; i
11\ I i d; '::
i~ \: : ; I,
, : l
!m
'.885[-01
~ I, L'ii
-""
I I I i
-
i
8.884£-01 II)
i• i i.
T!:i: (Tl
-
"':
Figure 2
PROGRESS OF CONSOLIDATION DISPLAY
ENTER -- FUNCTION
356
stress at any point at any orientation.
The command structuring of ELASTING is identical, in principle,
to RING with a series of function entries, each one containing a
heuristic string.
Figure 3 presents the vertical stress display for a circular load
applied to the surface of a four layer system.
5lZ
... ...
j ~
..
J:
I. _ . . . . .
, ~ ,
1.50".00
\
~
'.00"."
I'-... r-..
c.,.O[ •• o
...........
~
' ••• 0[.00
7.50".00
~
r---..
.... 0[.00 "-
•• 05'[.0' ~
I.lO"." '\
I\.
z
" \
\
1.100[."
1\
\
2.250[00'
\
• \
•
•
1\
• \
\
•
Figure 3
VERTICAL STRESS DISPLAY
357
RADIAL STRESS (SRR) VS. DEPTH (Z)
SRR
<>
•
<>
<>
•
<>
<>
•
<>
<>
•
<>
<>
• <>•
<>
<> <; <; <;
.
<>
<>
<>
...;;;•
<>
.
<>
..
<>
... . ..
I
I" ~ II! \!I
r ,.~ rn~ ~ ~<> ';J I" II!
-r-r-
11\
,N ~
<>
.,; '" 11\
,,;
~
a.
~
'"
,,;
CD
,,;
'. I I . 0.00 O.
I I I I I I
CD
I
'"
!--
r-- ~
r-- b-
5.000hOO
r- t--r--...,
i""'-
1"'---1'--
............
l"- I'--
'.lOOhO'
z , .500[+01
I.i50[.Ol
}
1.'00[+01
I.II!IO[.Ol
II
l.IOO[+Ol
2.250[+01 1
2.400[+01
2.550[.01
l. ~OO[.O ,
2.'50[.0 ,
'.000[.0 ,
Figure 4
RADIAL STRESS DISPLAY
Figure 4 presents the radial stress display for this four layer
system.
Figure 5 presents the display of the vertical displacement at
the surface of this four layer system.
Figure 6 presents an example of the display of a stress element at
a given orientation.
358
VERTICAL DISPLACEMENT (UZ) VS. RADIAL DISTANCE (R)
t. l . 0.00 t'.5
n.o
t2.5 r-- ~-
- i'---- r---.,
t2.0
~['-.,
~
tt.O ~
to.5
~
to.O l~
~.5 ~
\
~. 0
8.5 \
\
8. 0
5 li
\
0
6. 5 li
6. 0 l'\
5. 5 ~
5. 0
"I'"
c. 5 ~
[ -I.
0
~_
o
~ 0 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ I! ~ ~ ~•
WI
R
Figure 5
VERTICAL DISPLACEMENT DISPLAY
The user can alter the angle of orientation of the stress element
by successively typing angles. Thus, the state of stress at any and
all orientations can be determined at a single sitting at the console.
Slope Stabil i ty
FEMALE-I is an interactive graphics system based upon a batch
process program developed by the U. S. Bureau of Reclamation (Esmiol
and Nelson, 1963). This program calculates the stability of earth and
359
STRESS STATE AT N = 45.0 DEGREES
, 3.0, 11.0)
« spw· "'111[.00
,/ ~SPP -'.'~C[.oo
•
Figure 6
STRESS ELEMENT DISPLAY
360
input by cards, the user has the option of seeing all the input data
as card images on the screen. Figure 7 is a typical example of a data
record display where the data have been read in on cards.
Figure 7
CARD IMAGE DISPLAY
Once the data have been read in, the user can display the geometry
of the earth structure and a tabulation of the data. The user, at any
point, can edit the input data even if they are read in on cards. The
editing function permits the editing of a line, the replacement of a
line or record and the addition or the deletion of data.
In the course of data input, either from the card reader or the
console, the initial failure surface and a search technique is input.
On this basis, a search is made for the minimum factor of safety and
the results are displayed as shown in Figure 8. It is noted that by
use of the CP clock the search is displayed dynamically so that the
user can see the search progressing.
At the end of a given search, the user has the option of editing
any or all of the data base of the problem and determining a new
factor of safety. This process can be continued indefinitely until
the user is satisfied with the analysis. At this terminal point,
the card reader can be given control and a new problem can be read in.
Thus, the user can perform interactive design on a number of problems
at a single sitting.
CONCLUSIONS
To date, the use of the CUG system to provide the capability of
interactive design for soil engineering has been shown to be efficient
361
Sl..OPE GEctETRY
WITH FAILURE SURFACE
SAFETY FACTOR· 1.84792
2482.561
CI , 4".00,1"1.50)
RI· 120.00
C5 , 525.00,1811.50)
R5. liO.SO
2254.785
2175.557
2086.210
2017.024
1857.761
1151.512 f..:::::==--~~-------~"':::====t;;t=~-"'::::::::::.....-
1778.256
.. ..
1700.000 ' - - - - - -_ _ _ _ _ _ _ _ _._ _ _ _ _ __
• ..'"
.. • fl
N ",
g
0
~
iii I! ~
N ell
.
0 N
II! r- ",
,.: .;
Ii ",
N
r-
Wi :i
",
~
m ~
",
;; IX
r-
Figure 8
SLOPE STABILITY DISPLAY
362
accelerated. Thus, the actual computation costs are substantially
less in the interactive mode than in a comparable batch process operation.
A third efficiency is the use of microfilm as a hard copy device.
Microfilm can, of course, effect a large saving in storage space com-
pared to conventional print output. Furthermore, the quality of the
microfilm, as shown by the figures presented in this paper, is suitable
for professional use.
There is a deficiency in the data input used with interactive
graphics. This is most evident in FEMALE where a large amount of
geometric data must be input by cards or keyboard. Use of the light
pen would provide partial relief to this awkwardness. A light pen,
however, may not be well adapted to providing the geometric detail
required to define an earth structure. On the other hand, the use of
a pattern recognition device to trace the geometry would be of major
assistance in the development of a simplified input scheme.
The examples given above were exclusively concerned with analysis
and design. Another major soil engineering function convers the
analysis of laboratory tests and field monitoring. In this application,
interactive computer graphics is used in conjunction with real-time
control systems.
ACKNOWLEDGEMENTS
The work for this study was supported in part by BUILD (a joint
program between the University of Colorado and the University of
Illinois), the Control Data Corporation under a grant for research
in computer graphics at the University of Colorado, the National
Science Foundation under grant GK-1287 with the University of Illinois
at Chicago Circle, and Contract 14-06-0-6762 between the U. S. Bureau
of Reclamation and the Computing Center of the University of Colorado.
Acknowledgement is made to Messrs. E. W. Klapahake and R. N.
Lachenmaier who assisted in the programming of the systems described
in this paper.
REFERENCES
363
Engineering, Research Report R69-22, Soil Mechanics Publication
No. 235.
Crank, J., and Nicholson, P., (1947), IIA Practical Method for Numerical
Evaluation and Solutions of Partial Differential Equations of
the Heat-Conduction Type,1I Proceedings, Cambridge Philosophical
Society, 43, pp. 50-67.
Dohrmann, R. C., (1969), IIProgram No. J5-CU-PLT280, CDCj280j282,
Interactive Graphics and Microfilm System,1I University of
Colorado, Computing Center, Report No. 69-6.
Esmiol, A. E., and Nelson, C. A., (1963), IIElectronic Computer
Evaluation of Earth Dam Stability,1I U. S. Bureau of Reclamation
Report.
Feeser, L. J., and Cutrell, J. D., (1970), IIPerspective Views and
Computer Animation in Highway Engineering, Computer Graphics
70, Brunel University, Uxbridge, Middlesex, England, (See chapter
in this volume)
364
Displacements in a Three-Layer Soil System,1I Proceedings,
Fourth International Conference on Soil Mechanics and
.
Foundation Engineering, -2, pp. 169-173.
Schiffman, R. L., (1962), IIGenera1 Analysis of Stresses and Displace-
ments in Layered Elastic Systems;' Proceedings, International
Conference on the Structural Design of Asphalt Pavements,
pp. 365-375.
Schiffman, R. L., and Stein, J. R., (1969), IIPROGRS-!, A Computer
Program to Calculate the Progress of Ground Settlement,1I
University of Colorado, Computing Center, Report No. 69-9.
Schiffman, R. L., Whitman, R. V., and Jordan, J. C., (1970),
IISett1ement Problem Oriented Computer Language,1I Journal of
the Soil Mechanics and Foundations Division, ASCE, (In Press).
Smith, E. A., (1951), IIPile Driving Impact,1I Proceedings, Industrial
Computation Seminar, September, 1950, International Business
Machine Corporation, New York, New York, pp. 44-51.
Terzaghi, K., (1923), IIDie Berechnung der Durchlassigkeitsziffer des
Tones aus dem Verlauf der Hydrodynamischen Spannungerscheinungen,1I
Akademie der Wissenschaften in Wein. Sitzungsberichte, Mathematisch-
Naturwissenschaftliche K1asse, Part IIa, 132, No. 3/4, pp. 125-138.
Terzaghi, K., (1936), IIRelation Between Soil Mechanics and Foundation
Engineering,1I Proceedings, First International Conference on
Soil Mechanics and Foundation Engineering, 1, pp. 13-18.
Terzaghi, K., and Frohlich, O. K., (1936), Theorie de Setzung
Von Tonschiten, F. Deuticke, Leipzig.
365
STRUCTURAL DESIGN USING INTERACTIVE
GRAPHICS
A. G. Young
University of Leicester, Department of Engineering,
The University, Leicester LEI 7RH, England.
System Requirements
The designer at his terminal wants to be able to simply and
directly generate a model of his structure in the computer store which he
can analyse <either wholly or in part), interrogate, change, add to or
delete at will, the problem remaining throughout within the confines of
the computer system. There should be as little restriction as possible
on the type and configuration of structure which he can tackle. Different
levels of sophistication in analysis should be available for use at
different stages in the design.
367
and provide a mechanism whereby the user can specify,on-line,the data and
the operations he wishes to be performed on it. It should arrange the
storage of information in the way it can most readily be accessed for the
purpose it is intended; additions and modifications to the information
should be easily accomplished.
368
degrees of freedom to fully represent the true situation will be employed
However, as more degrees of freedom are given their independence, by
incorporating either more nodes or more displacement parameters at the
nodes, the true solution will be consistently approached. Moreover, a
guide to the nature of the approximate results is provided. For instance
the displacement approach generally results in an underestimate of the
true deflected shape of a structure. An example occurs in simple bending
theory where the assumption that plane sections remain plane implies the
neglect of shear deformation and consequently leads to an underestimate
of the true deflection.
The advantages are not all one way. A major obstacle to the use
of the finite element method is the tremendous amount of data preparation
required for all but the most elementary problems. The data to be input
includes:
- the co-ordinates of all nodes and their relation
one to another
- a description of the elements, e.g. type ,geometry,
material properties
- the applied loading and constraints
This work is both time-consuming and tedious; consequently it is
expensive and gives rise to errors which are difficult to find. It
cannot be fully automated since human judgement is essential in the
setting up and subsequent modification of the mathematical model to ensur
that the true situation is adequately described. An interactive system
equipped with a graphical display unit supplies the means to eliminate
most of the human effort associated with this phase and yet retain the
power to control the process in the hands of the designer. The display
of the structure on the screen offers a direct means to detect errors
in input.
369
process of accessing information and in easing problems of modification
and extension.
370
associations between boundaries and nodes and between nodes and the
parent element are also shown. These associations supply amongst others
the means by which an element can be identified by a light pen "see"
on one of its boundaries. The format of a bead is pre-defined, and for
anyone type the components are arranged in a common order relative to
the first word. It will be seen that this considerably facilitates the
accessing of components of the same type. The pointers shown at the
foot of the element bead in Fig. I are used simply as links to arrays
of additional data which it is convenient to store in separate beads.
Illustrative example
This section describes how the LUISA system may be used in a
design situation. The aim is to illustrate the scope of the operations
available to the user and to highlight some of the advantages offered
by interactive graphics. A comprehensive treatment of a problem is
not attempted.
371
r_!ler!le!}trj~g-1
---V /'
I , ELEMENT
---Lr
i /' r----------/---
beadl~
I ...---4 _____ _ _ ;;...... LI
----------
I
I
I
---')
I
I I
I I
I
I I
components r----T-------
I I
I I
I I
I I
l ____ l ,..
...- - -.._--.... ,'-----------r"/' -
--, "
...---of " , \
- .... ,'
..... , \
\
\
\
~
372
BOUNDARIES
boundary ring
--- - - - ---------- -- - --I
...
I
.....-
-----~
I
-- -- ----" "
1 -- --------, :~------,
I
I-
I I I :
I I I I I
I I I I I
t
Beam or plate elements would have been preferred for the slab
if they had been available
373
Con crete tower
- modulus Ec
Resultant
wind load
Dead load
FIG.2.
""
MAIN FEATURES OF PROBLEM
Sub - grade
- modulus E c / 10
r-l
I
I
I
I
I Tower
I~
I mposed loads I
I
~: Concrete slab
~~~~~~t~~~~Ec
Ground level
W!&ffm
Spring sub- grade
E c/ 10
374
devices if a more precise specification is required. A single row of
"constant strain" elements has been used to represent the foundation;
with the horizontal forces at the nodes set to zero this will simulate
a simple spring support. The relevant elastic moduli are entered using
an option headed SETPTS which enables these values to be set in the
correct place in the data structure.
An analysis of the response of the structure to applied load is
now wanted. This requires the following sequence of operations ( l)and 2)
are performed using a set of options headed ASEMBL).
1) A new data structure for the model is set up which consists of a
super-element bead with nodes (duplicates eliminated) and boundaries
linked in a similar manner to that shown in Fig. 1. Up to this point
the data structure consisted of individual element beads with their
nodes and boundaries plus pointers linking the connected boundaries.
The transformation to a higher-level element ensures the consistency
of data structure needed to facilitate further operations. The
linked element structure is stored to enable a return to the
lower-level basic elements when required. Concurrently, a connection
list is produced which relates the individual element nodes to their
counterpart in the super-element structure.
2) The stiffness matrix for the super-element is formed. This is
accomplished in two stages. First, using the sub-routine supplied
for the particular element type, the stiffness matrices for the basic
elements are calculated and the values put in application data
vectors pointed to from the individual element beads as indicated in
Fig. 1. These values, together with the connection list referred to
above, are then used to assemble a stiffness matrix for the super-
element. This is stored in a corresponding application data vector
in the data structure for the super-element. All stiffness matrices
are expressed at present in terms of absolute screen co-ordinates.
3) The boundary conditions are specified using SETPTS. This
option enables values of forces or displacements at nodes to be set
in parameter vectors pointed to from the main element bead. The
nodes are selected, as before, using either the tracking cross or the
quadrilateral device, and the values supplied either by means of one
of the display control devices (a digit-changer) or via the keyboard.
For each degree of freedom possessed by the structure, the value of
either a force or a displacement parameter must be specified before
a solution is possible. For the model of Fig. 3, the requirements
for the bottom row of nodes of the "spring" elements is that both
vertical and horizontal displacements are zero whilst for the top row
of the springs the vertical displacements and horizontal forces are
zero. Elsewhere all forces are set to zero except at the two nodes
where the loads from the tower are deemed to apply.
4) Using the above information, a constrained form of stiffness
matrix for the super-element is obtained which, upon inversion, yields
the solution for the displacements at the nodes. Displacement profiles
375
can be viewed using a set of options which offer alternative ways of
displaying the results and means by which the scale may be adjusted.
Fig. 4 illustrates a typical display.
376
representation of the foundation is improved by the addition of further
elements using options COPY and COMPOS to give the model shown in Fig.S.
Ground level
~~
~sub-grade
Maxbearing
pressure
377
The design now enters the detailing phase where individual
components, such as the base slab, are processed to supply the precise
information needed for construction purposes. A large portion of this
phase can be delegated completely to the computer and is not relevant
to this discussion. It is worth pointing out however, that the
introduction of the computer into the preliminary design phase means
that a major part of the input data needed for the detail design to be
carried out is already available in the computer store.
Further Remarks
Acknowledgements
378
References
379
COMPUTER REPRESENTATION, DISPLAY AND
INTERROGATION OF STRUCTURAL
BUILDING DATA
R. F. D. Porter Goff
University of Leicester, Department of Engineering,
The University, Leicester LEI 7RH, England.
SUMMARY
1. INTRODUCTION
381
graphical display and lightpen. Thus the possibility of data input via
the display screen is envisaged. It is recognised, however, that the next
stage in the general development of multi-access facilities will probably
be the addition of a display screen only (e.g. a direct vision storage
tube) to the current teletype console. The work described here is
relevant but not directly applicable to these more limited facilities.
It was carried out on equipment procured under a Science Research Council
grant (B/SR/3383) for an investigation into engineering uses of computer
graphical displays.
382
In principle of representation, the excluded elements are not
significantly different from those considered. A more important
restriction is that the data input is by punched card and, although
additional elements may be defined, no modification procedure is currently
available.
2. PROGRAM FACILITIES
When the program is loaded, the display screen remains blank apart
from a list of options (a 'menu') displayed across the bottom of the
screen. The first level of option is:
Each word is a light button: when anyone of the first five words is
seen by the lightpen an asterisk appears beneath it to indicate that a
selection has been made. However, the option is not executed until GO
is seen by the lightpen. This allows the operator to change his mind
and prevents inadvertent execution of undesired options. Since on
execution of an option a further menu of options may replace the original
one, the two-stage select/execute process precludes the undesired
automatic selection of options which appear on the screen at a common
location but which belong to successive levels in the hierarchy of options.
2.2 Input
383
appropriate data structure. Further data may be input by subsequent
selections of the option. During this process, the word CARDS appears
below the menu line and is deleted when the process is complete.
2.3 Display
2.5 Interrogation
384
identification number, the associated floor, its thickness and its
plan area (see figure 2). If a column is interrogated, the identificatio
number, its base dimensions and the number of segments (i.e. different
sections) are displayed. The subsequent selection of GO is intended to
provide a lineprinter output of more detailed information about the
identified element.
2.6 Dump
385
The facilities offered by this program are intended to
demonstrate the type of operations that are possible with a display
screen and lightpen. Essentially, given a set of basic data, a
variety of ways of interrogating the data is available. The
construction of views or. the output of alphanumeric information about
individual elements can be understood as the retrieval of that data in
explicit or implicit form.
3. DATA STRUCTURE
386
(ii) It must contain not only raw input data but also derived
information. A balance has to be struck between storing too
much derived data and storing too little, such that the processing
time is unacceptedly long during interaction (as, for example,
when a sectional view is required).
387
__ -ring 01 planes - - - __
.""..... .......,
PLANE BEAD
-next
ident. no.
-datu m plane
no.ofassoc.sL
C, assoc. 51.
floor datum
hel ht
FLOOR BEAD
NOTE:
( ,
- Means pointer to ....
Go Means 'pointer to first bead in a ring of .... '
388
- next
ident no
-assoc. floor - next
-datum plane -side plane l
no of sides XL
Q sides
thickness Z i.
- next
ident. no.
- plane.1.
plane.2.
-base plane
no of segments - next
Q segments - upper pi one
X CL di mension .1.
Y CL dimensiOn.2.
Z base Z upper
389
'next' location of the last bead added is the same as the pointer to the
ring of plane beads found in the assembled building bead. Thus it is
always possible to check whether the last bead on the ring has been
reached. Additional plane data is assembled into the data structure in
the same manner.
390
comprises two dimensions and the plane at the top of the segment. Again
the input data for a plane is an identification number but the stored
data is a plane bead address. Column data is stored in a column bead
with a corresponding ring of segment beads, together with associator
beads relating the column to its associated planes.
4. PROGRAM DEVELOPMENT
391
free-storage basic routines}. Extension of the program to permit
amendment of the data will require additional subroutines with further
use of some of the above facilities.
z Datum plane
x ax+ by+cz-d
FLOOR
PLANE
Slab side
planes
Thickness
Slab datum
plane
Fig 4 DEFINITION OF
392
writing of a further thirteen subroutines, using the facilities of
the ICL FRED graphical subroutine package.
SLAB
I~
I• ~
I
Column
---" ~ Plane.1.
COLUMN
Column base plane
BUILDING ELEMENTS
393
5. CONCLUSIONS
5.2 Input
5.4 Interrogation
394
to superimpose data from different cross-sections or from different parts
of the data file (e.g. electrical and air-conditioning services) would
be a desirable feature.
5.5. Dump
REFERENCES
395
INTERACTIVE USE OF THE LIGHT-PEN IN
FINITE ELEMENT LIMIT LOAD ANALYSIS
M. P. Ranaweera
F. A. Leckie
For structures which are made from material which can suffer both
elastic and plastic strains the limit load concept plays an important
role in design. If such a structure is subjected to an increasing load,
it is found that the structure cannot sustain a load greater than a
certain value (Fig. 1). This load is referred to as the collapse or
limit load, and the design value of the working load is taken as some
suitable proportion of the limit load.
397
Load
Limit Load
Displacement
398
2. LIMIT LOADS FOR SQUARE CANTILEVER
399
Throughout the analysis, the bound corresponding to the present
set of parameters on the screen and the best bound found so far are
displayed. The latter and the associated parameter set are continuously
updated and stored and may be called on at any moment. The present value
of the bound is represented by a broad arrow (referred hereafter as the
bound arrow) resting on the cantilever at the loaded end - the length of
the bound arrow being proportional to the value of the bound (Figs. 4 and
6). The best value so far found is indicated by a short horizontal line
at the level of the bound arrow corresponding to the best bound (Figs. 4
and 6). Thus as the solution is being improved, this line segment is
pushed up (lower bound analysis) or down (upper bound analysis) by the
end of the bound arrow. This way of comparison is easier than by means
of the numerical values displayed.
400
Starting from a zero stress field (L.B. = 0.00), the lower bound
was maximized by varying the lengths of the arrows on the screen. In
this process, the relative magnitudes of the parameters as can be guessed
by their nature and position on the structure were taken into account.
401
Bound for
2WL fMo Time in mins
Ul
.r-!
Ul
:>. Maximization on the screen.
~
~ Starting from zero field. 0.874 6.5
Q)
>
.r-!
+'
c.> Using Rosenbrock's method
al
H
~
Q)
Starting L.B. = 0.874. 0.947 2.5
H
Ul
.r-! Bound for
2WL fMc Time in mJ.ns
Ul
:>.
r-l
al
~ Minimization on the screen
Q)
1.979 10.0
.r-! >
+'
c.>
al
H
Using Rosenbrockts method 1. 531 1.3
Q)
+'
s:1
H
starting H.B. = 1.979
Direct
Optimization Starting from 109.277 0.8
uSJ.ng
Rosenbrock's zero fiel-d 109.073 3.8
method.
402
Fig. 6. Display of Displacement Fields
403
Fig. 7. Display of Displacement Fields
404
or less as a sectional search (in the upper bound analysis, two parameters
at a time could be varied continuouslY), and means have to be found to
vary several parameters at a time in a specified way determined by previous
experience. With the availability of three dimensional modelling
facilities, the user can make better choices of the parameters under his
disposal. Thus the man and the machine can work as a team to arrive at
a solution better than that can be arrived at by either one alone.
405
COMPUTERGRAPHICAL DESCRIPTION OF
THE DYNAMICS OF A TURBULENCE MODEL
Aldo Giorgini
1. INTRODUCTION
In the recent years, the numerical simulation of fluid flows has been
extensively undertaken by several investigators. The limited number of exact
solutions to the Navier-Stokes equations, which describe the motion of a
viscous incompressible fluid, can be readily expanded by means of numerical
experiments. The major difficulties inherent in the numerical simulation of
highly intricate unsteady flows are constituted by facility problems. A
full-fledged numerical study of the three-dimensional turbulent field des-
cribed by the Navier-Stokes equations, while simple in principle, would
require computers with speeds and memories of some orders of magnitude larger
than those of presently available computers.
The study presented in this paper concerns itself with one of the model
equations for the Navier-Stokes equation. The model of turbulence under con-
sideration is the one described by Burgers l equation. It is a one-dimensionti
model which has a per ~ importance in gasdynamics, i t being an approximate
model for the behavior of shock waves.
(1 ) a a
~+u~='J a2u
at ax ax2
407
in the study of turbulence stems from the similarity that it has with the
Navier-Stokes equations: it is strongly nonlinear and the coefficient of the
highest order derivative can be made arbitrarily small. The smallness of v~
known to be the cause of high gradients of the field variable u in small
regions of the physical field and to be thus responsible for the onset of
turbulence in a viscous fluid. For these reasons Burgers equation has been
the object of the present study.
If a length scale L and a velocity scale U are chosen and the following
variables and parameters are defined,
adimensional abscissa E; = x/L
adimensional velocity v = u/U
adimensional time t = Ut/L
Reynolds number R = UL/v ,
equation 1 can be rewritten as
dV + dV 1 d2V
dt v at = R 2dE; .
By considering the phenomenon periodical in ~ with a period 2~, the adimen-
sional velocity field v can be expanded in Fourier sine series
L
00
v(~,t) = v(K,t)sin K E;
,K=l
where K is the wave-number and V(K,t) is the K-th Fourier sine coefficient.
If the expression 3 is inserted into equation 2 the following is obtained:
dV(~~t) + i 2 V(K,t) = ~
00
K'=l
-* K-l
L
V(K',t)V(K-K',t),
where the bracket has been used in order to emphasize the fact that 4 is a
system of nonlinearly coupled ordinary differential equations in the Fourier-
coefficients.
408
The numerical integration of the system 4 and the computographical dis-
play of the results are the objectives of the present paper.
This solution,
(6) -
v(K,T) =- R
2
csch K(a + R)'
T
409
may be interpreted as th~ virtual orlg~n (T = - aR), measured in Reynolds
numbers, of an infinite velocity field which, because of viscosity, decays
according to the law given by the' expression 6. The parameter a can be re-
lated to the Reynolds number R if the velocity scale U is interpreted as the
mean square velocity at T = 0. In this case the relationship between Rand
a is the following:
2
(8) csch Ka
In fact, the criterion may require that the dissipation taking place at
the wavenumbers larger than N be negligible with respect to the total dissi-
pation. More formally, the expressions
1:N 2-2
K v (K,O) and
K=l
~ 2-2
L. K v (K,O) ,
K=N=l
respectively proportional to the dissipation taking place in the wave-
numbers regions 1 < x < N and x > N at time T = 0, may be used to define the
ratio
2 2
K csch Ka
In the present study a value £ = .01 has been chosen, with the belief that
the discard of 1% of the total dissipation would not sensibly affect the
behavior of the phenomenon. In the expression 9 a is related to R by means
of equation 8. Therefore, once the value of £ is selected, a relationship
will result between R and N. This relationship, for £ = .01, is given
ap~roximately by
(10) N :: 2.2 R •
410
according to the relationship 10, is presented in Figure 1, for R = 17 and
N = 49.
Figure 1 shows the behavior in time of the relative error
V(K,T) - V(K,T)
V(K,T)
(where V(K,T) stands for the numerical experiment and V(K,T) for the refer-
ence solution) starting from the initial conditions
Frame A in Figure 1 shows the error after one time increment and frame
L shows the error approximately at T =
77, by which time the energy has
decayed to a value several orders of magnitude smaller than the original
energy. It is interesting to notice that all the other frames show curves
with an initial part of the L-type (say) and a final part of the A-type,
connected by a quasi-vertical line which moves toward the right as time
passes. In reality the high slope of the connection between the two branches
is due to the particular ordinate scale used, which has been selected in
order to give emphasis to the small relative errors.
411
,.
eo I. 0
«-I
eo I. 0
«-I '" eo I. 0
<t-I
,.;
-;;
/' "7
«-Z «-z
70
«-3
70
«-, 70 «-2
«-3
60 :f~ 60 :E~ 60 :£~ -----
50
~
50
( 50
A B c
80 I. 0 '" eo I. 0
,.;
eo I. 0 '"
<t-I "7 «- I /' «-I /7
10 <t-2 70 «-2 711 «-2
<t-3 «-5 «-3
60 t:t 60 H 60 :£~
(
50 50 50
I---J.
30
'-- 1--
2D :E~ 2D :E~
«-3 <£-3
fa 10 <t-z 10 «-2
«-I «-I
-1.0 -t.O
D E f
' .. -0'
'" '"
,.;
80 I. a eo I. 0 eo I. 0 T
<£-1 «-I «-I
10 <£-2 711 <t-2 L 70 «-2
<£-3 <t-3 «-3
60 :E:t 60 :E~
7'
60 :£~
7
f
50 50 50
---.J 1-
2D :E~ 2D H ZO :E~
«-3
<£-5 <t-3
to <£-2 10 «-2 10 «-2
<£-1 <£-1 «-I
-f.O -1.0 -1.0
G H
80 I. 0
<£- f
'" eo I. 0
<£-1
,.;
eo 1.0
«-I
'"
711 <£-2 711 «-z 711 «-2
<£-3 «-5 <£-3
60 :E~ 60 :E~ 60 :£~
50 50 50
ZO :E:i
«-3
- 2D
1-
30
2D :E:i
«-3
1-
10 «-2 10 10 «-2
«-I «-I
-1.0 -1.0
J K l
Figure I - The influence of the wave-number cutoff_ Abscissa.: wave-number
Ordinate: ~tive error. The time 'l' corresponding to each frame
is represented in the "thermometer" at its left.
412
should be dictated by some specific criterion. In the case under examinatio~
it has been considered opportune to choose initial conditions for the Fourier
amplitudes which be statistically independent and Gaussianly distributed.
This initial condition on the statistics of the Fourier amplitudes, that is
called by Kraichnan3 the "maximal randomness" initial condition, needs the
further specification of the variance to be assigned to each Fourier coeffi-
cient (assuming that its mean is zero). As the dissipative nature of the
system would rapidly reduce the amplitude of the coefficients of higher wave
numbers, it has been considered appropriate to choose a standard deviation,
for the initially normal density of each Fourier coefficient, equal to
2
(12) a(K) =R csch Ka
The Reynolds number for the statistical experiment has been chosen as
R = 90 and the resulting wave-number cutoff has been rounded off to N = 200.
The sixty realizations integrated have been considered sufficient for the
study of the first order statistics in the Fourier-space.
In order t9 exhibit the Fourier-amplitudes in the graphical display,
their ratio to the initial standard deviation
V(K,T)
a(K)
has been plotted.
(14)
The study of the evolution of the sixty realization leads to the recog-
nition of four main patterns of behavior. The four patterns lead to four
different final configurations of the Fourier coefficients (and therefore of
the physical field), and these final configurations have been chosen for the
labelling of the evolution patterns:
1M - the final configuration in physical space presents a shock-wave in
the center of the period;
IF - the final configuration in physical space presents a shock-wave at
the beginning of the period.
2M - the final configuration in physical space presents two shock-waves
located at 1/4 and 3/4 of the period.
2F - the final configuration in physical space presents two shock-waves
located at the beginning and at the center of the period.
413
o. '" 100 150
O. O.
A B C
~. o. O.
0 E F
o. o. O.
G H
o. O.
J K L
414
one half of a period and 2M and 2F constitute the same pattern translated by
one fourth of a period.
The factors in the initial conditions that determine the type of evolu-
tion of any single realization can be seen in the "phase-space" spanned by
the Fourier coefficients. Each realization will describe in this space a
trajectory whose projection on the plane spanned by v(l,.) and V(2,L) is
shown in figure 8. There is a clear tendency for each trajectory to remain
°
v(2,O) are related as follows:
and v(2,0) < Iv(l,O) I
°
IF when v(l,O) <
and v(2,O) < v(l,O)
1M
2F
2M
when
when
when
v(I,O) >
v(2,O) >
v(2,O) <
°
°
and
and
v(l,O) < v(2,0)
v(l,O) < Iv(2,0) I
~{hen v(l,O) ~°
should present one shock in the period, unless v(l,O) is very close to zero.
then the second wave-number becomes the leading one and
(because of the higher dissipation of the higher wave-numbers) the Fourier
415
1.0 '.0 ~-:
.S .S
o. o. o.
-.S -.S
-1.0 -I,D
B C
'3 .S
O. O. O.
0 E F
. -- .. ,-:
,
" '.: i 4- '1' '~; -
~.
j
50
j Ii' '~; l, ~
I
.5 .5 .S
UA.
O. o.
' ~
O.
G H
.: - .
::
.. .! 1 '.J t----'""f--~'I"_--__"f"---,-
.5 .5 .S
o. ~~~~----------~ O.
-.S -.5
-1.0
K
Figure 3 - Evolution of a realization of the 2F -type in Fourier space.
Abscissa: wave -numbers. Ordinate: relative amplitude =
v(~.T)/O(~. The time T corresponding to each frame is the
reading of the "thermometer" at its left.
416
O.
"n
O.
' ',-
.,
.5
O.
..;
'.5
-, .0
A B C
.,
.5
O. O.
-.5 -.5
-',0 -t.O
D E F
-~
"- "
~
':'1
.5 .5 .5
o. ~+------r-------h~ O. O.
G H
..:.-;
_ n
·:'1 ~
-4- -+--+--+
':'1 "~r
" I
ilI
I
.5 .5 .5
o. 0, O.
J K
Figure 4 - Evolution of a realization of the 2F -type in physical space.
Abscissa: fractions of period (only half period is represented).
Ordinate: adimensional velocity. The time ~ corresponding to
each frame is the reading of the "thermometer" at its left.
417
-~ .. ilHHHhI'/'t;--+'If"--~---'" .! l '.J
i'
.5 .5
O.
-.5 -.5
o. I~HnhA
IHIHIII+IIIIJlfII+ftttItj-l/\i\it/tl\f'rfW~""I
11111 1111111 II II 11M II Ur i~ VVYV'
-.5 -.5
E F
"j' l.'
1 "
.5 .5 .5
O. II+H+H+l+++fttt-tttttt-ttr~'
JiJJJvw
VV V
~Ittt\i ,ttl1
V
O. II-HtttHtttt+++'~tttAtt
flrttflfl4;:f.£!..\t'q.Ll.
~VVVVV 0·1HtW_~
-.5 -.5 -.5
l.,1---¥--!.JjJL.--"I"---""1·
.5 .5
o.
-.5 -.5
418
.. :: ' . 0 HH--+i"i'Hrtt-T-I'--
'I'
:i
!
.5
,Ii
D.
,I !.0
B c
.. ' "
)' .,
I
.5 3 :-j
'i
'I
o. 2 fj
II
II
'.5 -,:,
~
11.1
D E tF
,5 , j
3 II
0, 0,
2 f
',5 ',5
-1.0 -l.O
G H
,5 ,5
0, II~~~----------- 0,
',5 ',5
J K L
Figure 6 - Evolution of a realization of the 1M-type in Fourier-space.
Abscissa: wave -numbers. Ordinate: relative amplitude
v(~'Y)/o(r.1. The timet' corresponding to each frame is the
reading of the "thermometer" at its left.
1.0
.5
O. O. O.
-.5
-t.O
A B C
~ .~ 1.0
.5 .5
O. O.
-.5 -.5
·1.0 -1.0
D E F
.,..:
u 1.0 '"' toO ISO
.5 .5 .5
O. o. \A ~ A1\ 1\ ,A
~VVVVV
G H
.5 .5
o. H-+++++++-
Al-\-,flfll+i"c"o...._--i
VV v O.
V
-.5 -.5
J K L
~2 . .
. ~O.
.....A
\
'2
.'
"
.'
' ..
'.:,. :....
'0. ' ••
.0 ...
-1.'
v(l,-r)
421
coefficients corresponding to odd wave-numbers will decay to zero very
rapidly. By similar reasoning, a final configuration with three shocks is to
be expected when both v(l,O) and v(2,O) are very close to zero and v(3,O) is
not. This explains the fact that in sixty realizations only one had a final
configuration with three shocks and none had a larger number of shocks. The
fact that two-shock configurations (see figure 8) are less frequent than one-
shock configurations is explained instead by the fact that the joint prob-
ability density distribution function of v(l,O) and v(2,O) is the product of
the marginal probability density distribution functions of v(l,O) and of
v(2,0), and v(2,O) has a smaller variance than v(l,O) because of the cri-
terion used in the statistics of the initial conditions.
For convenience from now on the ensemble of the sixty realizations will
be called the sub-ensemble and the larger ensemble the homogeneous ensemble.
It is recalled that a translation of a configuration in physical space cor-
responds to rotations of the Fourier amplitudes in their complex plane. The
K-th mode rotates of an angle Kn if n is the amount of the translation in
physical space.
422
WAVE NUMBER
o•
- .02
3:
-.04 t%j
:t:-
z
-.06 :t:-
3:
'1j
t""i
-.08 H
1-3
c::
0
t%j
- • 10
-. t 2
Figure 10 shows the evolution of the energy spectrum for the sub-
ensemble (and for the homogeneous ensemble). The continuous line is the
spectrum of the reference solution. It is clearly seen that for the first 30
wave numbers the energy spectrum of the statistical experiment and of the
reference solution coincide at any time and follow a K- 2 law. Higher modes
follow a much faster decaying law. It is to be pointed out that the K-? law
does not rule against the Kolmogoroff's law that would require a K-5/3 be-
havior in the "inertial sub-range". In fact no inertial sub-ranp;e exists in
the experiment that is presently introduced.
423
lE'tO~
.. .. 1E+00 lE+OO I ,'1::
I[ ~~l 1[~01 I[ ~Ol
1[~02 1[-()2 1[-02
,3 1[-03 1[-03 1[-03
I[-OJ 1[-04 1[-04
1[-05 1[-05 I[-OS
1[-06
1[~07
'[" 1[-06
'[-07 1[-07
1[-08 1[-08 1[-08
1[-09 1[-09 1[-09
1[-10 1[-10 1[-10
1[-11 1[-11 1[-11
1[-12 '[-'2 1[-12
A B C
,~~: ,~~:
1[...00 1[+00
1[-01 1[-01 1[-01
'[-02 '[-02
1[-03 1[-03 1[-03
'[-OJ '[-OJ fE-04
'(-OS 1[-05 I(-OS
'[·06 1(-06 1[-06
1[-07 lE-07 1[-07
1[-08 '(-08 1[-08
1[-09 '(-09 1[-09
1[-10 1[-10 1[-10
1[-11 IE-II '['11
'[·.2 1[-'2 '[,'2
D E F
. . - .
'[·OJ
I[-OS
'[-06
1[-07
'[-08
1[-09
'[-'0 '[-'0
fE-II 1£-11 I[-It
G H
'[-OJ 1[-Q.4
J K L
424
The Correlation Function
V(F,)v(C;+n)
2
v (~)
is presented. It has been calculated for the homogeneo11s ensemble and has
been compared with the correlation that could be obtained from the spectrum
of the reference solution at the same time. The correlation function is
obviously periodical in n.
CORRELATION DISTANCE
~
c::
z
(")
t-3
H
o
Z
RS
-.6~~~~~~~~~~~~~~~~~~~~-L~~-L~~
425
WAVE NUMBER
Z.O
1.5
-1. S
-2'°0L~--2~Q~--4~O~--6LO~--8LO~--,LOO~--12LO~--14LO~--16LO~--18LO~--2~OO~~220
The Probability Density Distribution Functions for the First Two Fourier
Coefficients
The probability density distribution functions for the first two Fourier
426
WAVE NUMBER
~
4.S
L'
»
8
4.0 Z
tt1
en
en
3.S
~
»
n
3.0 8
0
::0
2.S
7. CONCLUSION
427
1.0 .6-4~--=f---f---+-~ 1.0 1.0
.5 .5 .5
.. .. ..
.9 .9 .9
.6 .6 .6
.. .3
.2
.. .3
.2
.'
.3
.2
.2 .2 .1
.2 .1
.1
A B c
1.0 .6;~-~--+---+---f f .~ .6;~-~~-~-~-- 1.0
.5 .5 .5
..
.9 .9
..
.9
.'
.
.6 .6 .6
.. .3
•2
.. .3
.2
.
.3
.2
.2 .2 .2
.1 .1 .1
o E F
..
.
.5 .5 .5
..
•9 .8
.' .
.
.6 •6 .6
.. •2
.3
.2
.
.3
.2
.2 .2 .2
.1 .1 .1
G H
.5 .5 .5
.9 .8 .8
.
.6 .6 .6
.. ..
.3 .3 .3
.
.2 .2 .2
.2 .2 .2
.1 .1 .1
J K L
Figure 14 - Histogram and probability density for the first Fourier coef-
ficient. The reading on the "thermometer" at the left of
each frame is the standard deviation. The time corresponding
to each frame is the same as in Figure 10.
428
f.O .6"j'--+---+--~_-'I f.O .6';'-"-----'/'---+---+---'i f.O
.5 .5 .5
.8 .8 .8
.4 .4 .4
.
.6 .6 .6
..
.3 .3 .3
.
.2 .2 .2
.2 .2 .2
.f .f .f
A B c
.5 .5 .5
.8 .8 .8
.4 .4 .4
.6 .6 .6
.3 .3 .3
.4
.2
.' .2
.4
.2
.2 .2 .2
.f .f .f
o E F
.5 .5 .5
..
.8 .8 .8
.4
.
.6 .6 .6
.. .3
•2
.. .3
.2
.
.3
.2
.2 .2 .2
.f .f .f
G H
.5 .5 .5
..
.8 .8 .8
.
.4
.6 .6 .6
.. .. .3
.2
.
.2 .2 .2
.f .f .f
J K L
Figure 15 - Histogram and probability density for the second Fourier
coefficient. The reading on the "thermometer" at the
left of each frame is the standard deviation. The time
corresponding to each frame is the same as in Fogure 10.
429
cussion of the numerical techniques has been presented in another paper,4 the
present paper has as its aim the description of the numerical results.
The problems of cutoff are approached and solved according to the same
criteria which are put forth in the paper itself and the influence of the
wave-number cutoff is briefly discussed.
The author wishes to thank in particular Mr. David Robertson for his
generous help in programming the movie and Mr. Fred Walden for expediting in
countless ways the preparation of the movie itself.
9. REFERENCES
430
PART 5
Architectural Applications
COMPUTER AIDED ARCHITECTURAL DESIGN
A BijJ
INTRODUC TION
433
relevant to other non- graphic information, which may be required to
work towards a problem solution.
Presentation of information:
434
to pass from one person to another. The form may consist of an
arrangement of points, holes, lines, tones, colour or soundwaves. The
vehicle may consist of ink on paper, holes in paper tape, magnetic tape,
transparent film, or air bearing sound. The presentation may vary
widely, directed at the different perceptual senses, to invoke responses
ranging from those which are cool and calculated to re sponse s of mood
and emotion. The pre sentation could be peaceful, or violent.
Familiarity of information:
435
and actual activities on site. Lack of this common
knowledge has led to a reluctance to accept network
analysis, in favour of the more familiar bar chart.
Precision:
Complexity, or simplicity:
436
A typical architect's working drawing should be
simple to a builder, and may be complex to the
client. In current attempts to simplify drawings
the object must be to make them more comprehen-
sible, and this is not neces sarily achieved by
reducing the number of lines or text.
New Information :
437
that it is the varied association of familiar parts which must produce
new information; it is the linkages, or relationships, of one part of
information to another which is able to convey the characteristic of
newness.
Levels of information:
Information categories:
438
e. g. Bits, or parts, of information already known to
the person generating and the person receiving
information; requires identifiers or addresses to
establish which particular bit is being referred to.
ARCHITECTURAL PRACTICE
439
ITlaterial. This aITlounts to the geoITletric topology of or between
objects, or activities.
Client bodies are often unfaITliliar with the process of putting up new
buildings, but ITlay have detailed knowledge about their own specialised
activity, probably conditioned by their experience of ope rating in an
unsatisfactory old building. They will want to acquire the "best" new
building, but may be in a poor position to visualise what they are going
to get.
440
Production organisations may have general knowledge covering the
construction of whole buildings, i. e. contractors, or they may have
specific knowledge associated with various trades, i. e. subcontractors
or suppliers. In every case they must be primarily concerned with
staying in business.
441
Sortations :
Again, because of the large number of people who are associated with
architects during a building project, with varying capabilities and
desires, information has to be provided at various leva. s of specificacy.
The intentions of an architect's communications may have to range from
persuasive impressions to precise instructions.
Thus related information put out by architects may take the form of:
442
of data. In current architectural practice, architects present
information by drawing lines; each bit of line on its own conveying
little information to anybody other than the person doing the drawing.
It is only as the drawing develops that its information content becomes
more meaningful. The hand drawn information does not have to make
sense until the drawing is complete.
443
houses per year, this is the largest house building organisation in
Scotland. It designs, builds, manages and maintains houses;
usually on behalf of local authorities. Most of this housing consists
of two-storey terraces, built of "No-fines" concrete, though the total
output includes single and multi-storey houses and flats, and includee
brick construction.
For the initial two years of our work we have decided to restrict our
concern to SSHA two-storey terrace houses. A computer
application suited to this form of building should be capable of later
expansion to cover the remaining building forms.
The SSHA foresee probable areas of benefit which should follow their
application of computers. At present changing conditions and
requirements associated with new projects results in approximately
half of their architectural staff's design time being occupied with
modifying and updating existing ranges of house plans, for re-use on
new contracts. Checking for compliance with design standards, and
regulations, could be facilitated by easy access to predetermined
computer routines. Design alterations could be fed into a program
to check for consequences on construction, thermal environment,
daylighting and other design properties. Cost information should be
accessible at all stages during design, and could be continually
updated by new information received from building operations.
Computer output in the form of printed bills of quantities, ordering
schedules, and intelligible working drawings, should further reduce
the workload on professional staff and will provide practical benefit
towards costing and organisation of house production.
We have a range of computer equipment available within other
University departments, and are using a Digital Equipment
Corporation PDP 7 and 340 display with light pen belonging to
Dr. Oldfield's CAD Project Unit, linked to an Elliott 4130 with disc
backing of the Department of Machine Intelligence and Perception.
Hard copy output is obtained from a Calcomp 563 incremental plotter.
Probable links with the Edinburgh Regional Computing Centre's
System 4/75, and the use of an ARDs direct view storage tube are beir
explored. We are at present testing the use of an on-line Teletype
terminal within our Unit, linked to Systemshare, as a cheap form of
computer access for interactive program development.
444
graphics input and output. This task has been complicated by the
hesitant change from imperial to me tric measures taking place in
architectural practice, which is accompanied by attempts at
introducing dimensional coordination. We have tried to discove r some
useful logic behind these new developments, in order to formulate a
discipline on which to base our own proposals.
The GDS notes the way in which points and lines come together on the
screen, to represent meaningful information to the user. It stores
the relationships between the points and lines, and the relationships
between walls, windows, doors, rooms and surfaces which these
represent; to which the user may want to attach other non-graphic
information.
The ADS holds the computer's pool of information which is received
from the user, and is interpreted by reference to a permanent file
of information stored on magnetic tape or disc. This pool of
information, which grows as the user builds up a design, is
445
structured in terms of accommodation zones (floors), spaces (rooms),
components (walls, windows, doors), surfaces and junctions. The
ADS has to note the relationships which exist between these items, and
has to relate incoming information from the user to a corresponding
stored item or group of items.
446
447
~
~
6500 J::~:=J A
}400 } /800 J 800 oJ 900 ..,k 800~} 1300 I J 600,.,k
--, r--
o
11 - 'TO 900 '10
, 9.30
~
~---. t-
J L--
~ STORE
KITCHEN / DINING ~I I
~
{ii.
~---&:'. .- f2
Ui -.,..
~
1...11 HEATER: PRAM
~ STORE 2130 STORE /500'15 ,CUPB'D~/3Llfl3'£ 1'100 STORE
~
.~ Jj-{;-
I ~; ~ i
S7AJI!.
i I .~/
~~
SE~re
I NOI
I i
architectural graphics produced by hand
A GENERALISED PROGRAM FOR
TRANSFORMING RELATIONSHIP VALUES
INTO PLAN LAYOUTS
449
Shape of units. units may be square, rectangular, circular,
elliptical etc. At the moment the program uses the two former
shapes.
Maximum Number of units. Currently on the IBM 7094 the program
can manipulate forty different units using internal memory only.
However if say we have thirty patient bedrooms and we do not
consider each bedroom a different unit the program can manipu-
late 400 units each having its unique symbolism. This means
that although the thirty bedrooms counted as only one unit
toward the total of forty units, in the plans produced all of
the several patient rooms would be produced.
There are problems of scale at various stages of th.e design
which allow the effective flexibility of the program to be
increased. Using a hospital as example initially in the early
gross stages of the program the overall hospital could be
broken down into departments. As the job continues and more
information becomes available departments can be broken down
into sub-departments, then into rooms, then into furniture
units even as required.
450
proximity or circulation a given plan solution could be scored.
However, the plans that were being scored were generated random-
ly by the computer. 'l'hus it might be possible to generate,
say, a million plans, none of which a designer might describe
as "good". This method was quickly discarded. It did prove
useful in showing that solutions, albeit not necessarily satis-
factory ones, could be readily machine generated even on the
basis of little or no data.
451
Preciseness of Judgments. Our ability to define a precise
numerical relationship between units varies with the stage of
the job, the quality of data and information, and even with the
actual degree of precision which is useful. We choose a scale
of values to reflect the degree of preciseness. This may
range from one to three, one to ten or in some exceptional
cases even one to 100. Ideally one should use the most precise
scale possible since the more precise the distinctions are in
scale the better LOKAT will be in producing "good" plans.
The program as presently devised then standardizes all matrix
values on a scale of one to ten.
units that are NOT fixed are entered into the plan depending on
their relationship to each other and with the areas already
fixed.
If N signifies the Nth unit entered into the plan, then the
N+l unit will be placed next to the Nth. As a function of
this LOKAT checks the input matrices and chooses the N + 1st
room so that there is a high degree of relationship to the Nth.
If this did not occur LOKAT would, in effect, operate entirely
at random. Thus half the plans that would be generated would
be worse than average resulting in a great waste of time and
money. By using the input matrices which represent our best
452
knowledge of a job at any given moment we are able to produce
better plans in fewer trials.
The N+lst unit is generally placed next to the Nth at a random
location around the perimeter of the Nth. This placement is
constrained if another unit already occupies some of this space.
It may also be constrained if its location has the restriction
of adhering to a northern boundary, for example, or to a
corridor or courtyard.
If no empty space is available around the Nth unit, LOKAT
begins to back up looking for space around the N - 1st, the
N - 2nd etc. When a space is found, if indeed it is, the
space available must permit placement to satisfy the best
matrix relationship available, If this possibility does not
exist or if sufficient empty space does not exist for the size
of room being consiuered, the unit is then ignored, and noted
in the printout. '1'he program then moves to the next uni t which
may be located by virtue of its mnaller size.
The option exists for the user to state what the first unit to
be entered is or in what specific order units are to be added.
In this case the plans generated do not depend upon the input
matrices and the values in these matrices are reflected only
in the subsequent plan evaluations.
If a group of units are to remain adjacent to each other for
some reason they can be entered intact throughout the procedure.
453
The scores are computed so that the best value of the score is
one. Any higher value is worse. The user however, must have
some experience using the program to see how close to one the
scores are likely to get. Since the scores are standardized
a difference of .1 may be significant. (On a scale of 100 a
difference of 10 miqht be the equivalent.)
Implicit in the scoring mechanism is the notion that the better
plans are those in which the units are less spread out, i.e.,
the sum of the distances of all the units from a central point
in the plan is relatively small. 'l'here is an option in LOKAT
which computes a similar score without regard to how diffuse
the total plan is.
Another set of optional scores are available. These are used
when the input matrix is derived from a ranking scheme. The
idea of the score is to demonstrate how well or how poorly
a plan succeeds in satisfying each of the possible rankings.
For example assume the values in the input matrix are one
through five, in which one signifies that the rooms should
be close, five far apart. The scoring system records how
many of the pairs having a II one II ranking were adjacent in the
plan. It records how many of the pairs having one through five
relations were very close but not adjacent. It records how
many of the pairs having one through five relations were at
a middle distance from each other, etc. One would expect that
in a good plan the pairs having a one and two relationship
Would tend to be adjacent or close and that the pairs having
a four and five relation would tend to be further apart.
454
For twenty-five different units a twenty-five by twenty-five
matrix is used.
If the final position of the units were completely determined
by the input matrix and if there were a single mathematical
measure to be optimized mathematical methods could be used to
obtain the single "best" solution or plan. However, this is
not the case. In practice as has been indicated above in the
text additional constraints are used, as for example giving
units a fixed location, having an outline of fixed shape etc.
In addition even the numbers in the matrix are not always
used consistently. Ordinarily the larger the value in the
matrix the stronger the unit to unit relation should be. It
has been mentioned, however, that a nine value can be used as
a forced relation. That is, if a pair of units have this
relationship they must be located adjacent to one another
in the final plan.-~is requires special handling in the
algorithm as it is very different from, say, a relationship
value of 8.99.
Once this unit is placed the next unit is chosen from among
those units that have favorable relations with the unit just
placed. The more favorable the relation the more likely
the unit is to be chosen. An element of randomness is used
here in that the element with the strongest relation is not
invariably chosen. However, if there is a nine relation to
455
the unit just placed the unit is invariably chosen.
Having chosen the next unit it remains to place the unit in the
plan. The procedure followed is to draw an imaginary line
around the previous unit at a distance chosen so that if the
centroid of the new room is placed on it the two rooms will
be adjacent. This path is checked to see if some of the
path is already occupied by previously located units.
Positions along the path are not available for location of
the next unit if the placement of the new unit overlaps the
previous units. (In practice a small amount of overlap is
allowed. Note that the program is not set up simply to
fill space. It is assumed that there will be final
incremental adjustments to the computer plans allowing for
corridors if they have not been included and final adjustments
to the shapes of rooms, etc.) All the positions along the
path that remain after the computer search can then be
chosen with equal probability as the location of the
centroid of the new unit. If there is no space available the
computer backs up and looks for space around the previously
located unit. The computer goes on in this manner until
some room is found and a unit is located or no room is found
and the computer types a message to that effect.
After this unit is located the next unit is chosen and located
just as the present one was. Hhen a unit has no good
relations left among the units yet to be located a less
good relationship is used.
This method yields a series of random plans but random within
the far more restricted sphere of reasonable unit to unit
relations. ~Vi thin this framework far fewer plans must be
generated and examined to find the excellent ones. In
practice, as a current rule of thumb using twenty-five
units and generating ten plans from the relationships we are
able to find one or two excellent solutions. Computer time
expenditures for the generation of ten alternatives is about
twenty dollars.
456
".
J .)l-" , RUlI"
~?t~
~ J~ ~ C). IR,J1"'f~ IrIU"6f~
"
S'''6:JL RfPlllfl'lNS
-;r,
t~ ,
pAtI ~NT IU_"
,~
!:
.,.,
·10
.,
'All:: ... , ~ "n.J" ~
<u"- '''''llH'
IIIU"IT~
IcJIU
lU",rRLJl
r~
j~ .,
"
.,
" "0
U'M·
i'ou'"
(.H4 ... 11""
"'€illl.._'IL'')
~t~~~'~"~~rA~
.,.,
,,~
~l ,,~
M~~, I~~ '~lt~o"'''
, .,., ., ~tC, .,lTllIll,\ .ulltU
.,
" Hell ~ IN" • ~J [I'~~f~r
.,.,
i1ulJI"C. hhlIP£i'tt~r
.,.,
Hut )1;.... ') , .. ETl..l1b~)
", f"-t T" I1E~
;11
"hJl"l~ ~ ~
"
'!C
~~ Ib~
'1
T~t.H!o.t"T
fhh"'NLr
"
~ J J'" '> Il, ~
"Room" Specifications
-------_._----_._--
",>1 ,1"" lFiLH [h'>
.. 'I, , 1 L $1
"
~J ~
~J<lb _.j.._~,~
I'l"''''~
,lA""
'" ~U!tH 1JH~"'T .,1,<.1)( ,
'.' , ..
,., II
•• 0
.~ l:g
'"' ,,' 1.0 '.J
t:8 t:g
l.O
I.' 1.0
1.0
1.0 1;3
5,0
~J
5.'
5.',.,
f~~ t:g ,., ~: 3 ,.,
,,,
,,0
~:g ,., ;.,
l:~
l.O
,.0 1.'
3.' (:a
1.0 1.0
1.0
1.0
'.0
'.0
3.0
3.0
>.0
;.0
1.0
1:8
I.'
1.0
1.0
}:8
1.0 E3 l:g
~~! 1: }.) t~ ,.,
~: g
:.0
~: g
1.' 1.' 1.0 1.0 1.0 1.0 I . ' I.' I.' 1.0 1.0 1.0 1.0 1.0 1.0 1.0 I.u
..,.,
I.'
1.0
, t~~
,.,
I
~ ~i
l.O
5.0 ,.0 '"'
'.0
,.0 II.U '.0 1.0 1.0
11.0 1.0 1.0
1.0 1.0 '.0
~ S.,
1.' ~:1
,,' "J
'.0
'.0 ..,
~; ~ l:g
.0
"0
1.' 1.0
1.) 1.0 i:g '" .,
3.0
'.0
1.0
1.0
\.0
1 .. 0
1.0
\:8
1.0
1.0
1.0
~:
3.J
g !:8
,,, ,.J
.. ,
•• 0 1.0 1.0 l.O 1.0 1.0 1.0 1.0 I.) 3.0 \.J 1.0 1.0 1.0 1.0 1.0
1.
\.0
1.J 1.') 1.0
?:~ 5.0
1.0 1.0 1.0 .J 5.)
l:g 1.0 1.0 .J '.0
i:3
1.0 1.0 •• 0
r
~ I.' '.J
t:~ ;.)
1.0 1.0
\., ;.0 1.0 1.0
H",',.J
.00
~: 8
,.0 1 1.0 11.U 1.0 I.J 1.0
1:8
I.' 1.0 3.' 1.0
,.,
<;.0 I.)
,.,
I.' 1.0 '.0 Ll.) I.J 1.0 /.0 1.0 /.0 .0 .0 1.0 1.0 1.0
t:3
L: 4:>0'~ ,.,
'.J • .J ~ 1.0 S.O 5.0 1.0 I.' 1.0 1.0 I.J ll.) 1.' .J .0 1.0 1.0 1.0 S.O 1.0
1:8 !:g
I.'
~:8 '.0 '.0 1.0 1.0 I.' 1.0 loJ I.)
,.,
S., 5.:! 1.0
I·.0J
'>0) I.' I.' '.0 1.0
lt~~
I.'
I" t:1
'.0 '.0 •• 0 I.' loJ l l . l 0.0 1.0 I . ' 1.0 1.0 .0 1.0 '.0 1.0
i!
l.'
'.J
l.O 3.0 3.0 .0 1.0 I.J
~ t: '.J 11.0 I.' 1.0 1.0 1.0 .0 1. 0 1.0 '.0 1.0
1.0 1.0 1.0 1.0 1.' 1.0 '.0 1.0 I.J
'.J t: 11.) 1.0 1.0
\:8 :2
~ ~ ~ f~ gi
1.0 .0 .0 1.0
~ 1.0
i
3.' I.'
j:8 l:g
t:~ t:I')
1.0
1.0 ,.,
1.0 1.0 1.0 t.;; I.) 11.0 1.0
i.J
I".0 3.0 1.0
~
!.o
1.0 3.0 /.0
1.0 1.0 1.0 I.' I.J ,.J I.' I.J I.' ll.O 1.0 .0 '.0
3.0 ~ :g
"t~" t:3
,.0 l.O J.o 1.0 I.) 1.0 1.0
~. a
I.J 1.0 I., 1.0 1.0 11.0
11:8 1.0
1.0 1.0 1.0 I.J 1.' 1.J
,., .. 0 1."
1.0 1 :8
1.0 I.J 1.0 1.0 1.0 I.' ;.0 1.0 1.0
'.:8
l.'J ~ • 0 1.0 1.0 I.' 1.0 1.0 I.J I.J I.J 1.0 1.0 1.0 3.0 1.0 1.0
., ,.,
l.O 1.0 1.0 1.0 '.0 I.J 10> 1.0 1.0 1.0 1.0 ;.0
~ :~ ~: E ~: ~ '.0 '.0 1.0 I.' 1.0
\:8 \.,
I.' 1.0 '.J
1.0 I.J 'oJ
'"'
,.J -;.) ~. 1..,
0 3.0 ;.0
J.'
11.0 l.O
"
• d .. I1'I~~ tAI..TH
~J J,",~
"J
~()'I>l ,
1.0 :..0 '.0 l.O 1.0
JdTotlX Nu • I IS o.h~') 1.0 1.0 1.0 I.' I.J I., 1.0 1.0 '.0 5.0 .0 '.0 11.0
" "
I I
":.J
I.J
1.0
,., t:g
11:3 II.()
i.O .. ') 1.0
I.'
1.0
I.'1:8 1.0 I.' 1.0
1.0 1.0 1.0 ~:e
s.n ,., >0' 5.0
~: ~ 5.'
,.)
3.'
'"0
3.0
1.0
1.0 I.'
1.0 5.0
l.O 1..00 1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
I.'
.... , ~:~
,.1 s.o
I.' 1.0
1.0 1.0 1.0
I.' 1.0 I.'
1.0 1.0 1.0 '.J
1.0 1.0 1.0 I.J loJ
,.J S.J '.0 1.0 1.0 '.0 3.0
1:8 \.0 1.0 1.0 I.J
,., ~:~
I.J ;.0
~: 8
..i:5,
I.J I.J 1.0
I.' I.' 1.0 .0
I" l.O 1.0
,
•• J 1.0 l,G 1.0 1.0 1.0 1.0 5.J >oJ S., ).J 1.J 1.0 l.O
i:~ ;.0 1.0 1.0
1..,
.0 1.0 1.0
~:g
,, ••,.,
1.0 H.O :.0 1.0 1.0 ,.0
1 I.J 1.0 1.0 1.0 1.0 11.0
•• 0
1.0 1.0 I.' '.J 5.'
'.0
'.J I.J
3.0
).0
1.'
1,)
1.0
1.0
'"0
).0 3.0
\.0
.0
1.0
1.0 I·
.0J
I.'
1.0
0
.. J,
I.)
\.0 1.
t~ ::3 ~i~ ;:2
.. 0 •• 0 1.0 1.0
1.0 1.0
1.0 1.0 1.0 1.0 I.J I.J I.' 1.0 \.J I.' 1.0
1:8 1.0 1.0 0 1.0
.,
1.0 11.0 1.0 I.J I.' I.J 1.0 1.0 .J
"" 1.0 10> 1.0 1.<J11.0 I.J l:~
I.J 1.0
I"I.'
1.0
\.,
1.0 .0 1.0 1.0 .0 1.0
,.,
I.' I.J 1.0 1.0 1.0 1.0
1. !.o
1.0
r,.)
~:3
,.0 I.' ,.0
1.0 ,.0 1.0 I t . ) 1.0
1.0 1.0 It,)
loJ
!:~
I.)
'.J
I.J
1.0
1.0
1.0
\.0
.0
1.0
.0 1.0 1.0
1.
I.'
0 1.0 l.O 5.0
\ji
1.0
t{
" 5.'
", t:g n.} I.' 1. .0 1.0 1.0 '.0
..
" . ,
'.0 5.0 1.0 1.0 10> I.) I.)
I":g 1..,
'.0 I.)
,.,
I.J 1.0 0 .0 1.0 1.0 5.0
t:g
'.0
:2 ~: g I.' 11.J s.o 0
,., ,.,
1.0 I.J I.J I.J
~
loJ 1.0 1.0.0
~:
.0 .0
g 1.0 1.0 0 'oJ '.0
'"'
1.0 1.0 1.0 5.' I.) 5.' 11.3 1.0
1: 8 t:8
I.' I.' .0 1.0 1.0
tf
l.O '.0 '.0
1.' 1:8
) l.O 1.0
!"'
I.' I.' '.J 11.0 1.0 1.0 1.0
1. ~
1. '.J t:~
1.0 1.0 1.0 1.' 1.0 I.' I.'
I.' I.'
I.J 1.0 Ll.J 1.0 1.0
1.0 5.' 5.0
1.
.,
I.' .0 3.0
t:
I.J 11.0 .0
H 1. .JJ
.0
., !.o.0
).J .0
f: ~ m
'.0 1.0 1.0 I.' .0
~ 11:&
0 I.' \.0 I[:! [.0
'.0 .J
l:g ~:g
g~
I.' I.' I.' .0 .0
~ :~
IH~ It;g d:8 I:S
~. )
'.0 I.J 1.0 1.0 I.) 1.0 1.0
n 1.0 1.0 1.0 1.0
., t:g t: 1.0
.,
1.0 1.0 1.0 I.J I.)
i:g ~:g I"'.0 1..,
, l:g o.hgz
t:~ I.'
g~ ~ }:~
g~
,.0 0
,.,
I.' 1.0
H
~S
1.1
I. )
I.J I.'
I.'
1.0 1.0 1.0 ,.0
[.0
I.J I.'
<.J
!.J
~:~ .0 ~:g
::~
I"
,., .0
1.0 11.3 I.'
~lt?H >0" ~.i.~,q~'~u. ~.O
I.' 1.0 '.0 '.0 '.0 I.' 1.0 I.' 1.0 11.)
"
HI(.IHP'"
P~IV ACT
'"
I
CO .. UDl
2 , Vll='I>IG,
figure no. 1
457
-typical scheme
generated by matrix
input illustrated on
fig. no. 1
-no corridors have been
included in an effort to
reduce form biases
i
~ ____ • ____ X____ +____ • ___ +-___ lI ____ • ___ X___ • ___ J. _ _ " ' __ II __ -t---x--_ ...___ x__ • __..... x____ -~_J~
.... nu .....
. ".
f,~ ~
.. .."
'" IIhl
l.e-... , 4.5-6.0 .." o. ,.Olll
"""f ROO" (.UH"uHI$ !.G-l.S I.t-3.e
•
::."
~OC ..
"
!:I-!iI
U
.."" "
.2 ~JU"
,
.. .. ..
~ :~~~I ~Alt\5 IT U
U ~~l.P([)'II5"1"
" '"
H h
. II" II
"
.-2
• "
it i,
~~ ~
" II 12
",. Ii
I>
" .,"
..
:'
\,
21
t~~& 91 .". M"'lICUlfriU.
aDCM 'AIF. lustANU-SIli: ..... uv
..
~~
g "
·,:.· 1
T l.O-I.S 1.$-3.(1 1.0-4.5 4 ...... 0 6.0 O' lION:
:~
":.!"
.
I"UfoI'
,~,
t: 6 II
.."
J'
'l
I!
\lhS Plio;,,;:.
,1.
~I.o .. ,"
".
.'. 1I
II
11.:0
.6
=~~:HON:'"lP "
.,"'
t!~J .,
~ .6
J'
17
.~ ~
""
0"
"
1 .... -1.5
flCU .AI;I. DU"""'t-Sl1c lIint.:
,
'.5-,J.e
,
'.0-"" ... ~.o
.
•• \1
0
Ck "'....
..
U U U
458
This example illustrates
an actual architectural
example (excluding
corridors) which has been
fed back through the
system for evaluation.
The scores and tables
below illustrate the
scoring systems .
. ~
lOt _!
• L.,
....
~
figure no. 3
459
-.-. .··.-------'111'
-"plan" or "bubble-diagram"
layout including 'reserved'
area indicated by plus (+)
: ••• -t ____ .......... ---l----t----J----+----I----.----. -.-- t-- --C ---- .----~ ___ a. ----X---- t- ••• " •••.••• " , . , ;
signs.
~~l~ :Aloh
HU.JI)"~til'
,,,~ R.JJ'I~ .tol.E E.'Ulli IN Hk FOLLOIIlr«; t;ItUItA
.. ...
S".tiJL II.W" NAME IhJull (,.~"'Il ... IO~
tOll" ",J.
,
··
"''J'" "
..."."",. n""
"'I,
i:
f
\I
~ ,,,no
..,
11, I.U-I.'
AOO .. ".,liII DIUlHt.f-'Ut
1.5-)'U 3.0-_.' _.'-•• U
;
I < l\
" "
Ii." .,,.""
,N'
II n
" ~J
1."'I ,.
It "'im
,." II". ..."" ,.." ..
II lJ II
..,....
II
II \ilf
,I••
H
"
~~
"11
II
t ... "
12 .,
I~
460
.-.... ., .................. ,
.................. ····1
...................
. '0
,,'
'.
~.,_-
", 10 - •• , -".,. -~ ••
· •• L-".I·"",·· ..... -I
,_...
................... ,,
, ................... .
................... "
....................
• ................... L
.................... ,
,
~~1;~~~1 ~j~~~~~i,
• .l' .. ,~I .......~.· ....... -..~._... •.................... ,
I .~ .....u ......... a.;, ... ~ .... _ , _ " .... ~"... ""lillie Ill........................ ,
......... _~.lIIu.t." ........ V6lO~ .. ~U.... ~ .... ~ ........ ~ ... _ . . • "HI "til AlII.................... ,
I ••• _..............a. ..................................... ~,_~... .. .. 0 ...Il .......... n . . . . . . . . . . . .
• .......... _ d ...U .......................... _ . . . . . . . . . . . . . . . . . .
,I .......................... "'"'.,1...............
......... _"".u ....................
I ..............................u .. _""'''Il4IAlIII
•• , .. ....................,
• ... Mw 11&1,. _ . . _ .............. ~
l0iii.................... ,
"",._.1.o.AAl<......
_"'"'"""W'UO~
......._ ....................................
_'.11 .". .......................
_ .................. ,
1 ..... _ . " ..... _ . . .-.;..... I.u..................... _~
~ !
-example illustrating how
l~!~!l!~l~~!m~~g~~~jg~~m~mmjj~j~~~~~!~~;;;;;IIII!i!!!!!!!!~l
the program is able to
modify the site in
.....................................................................................................
,........................................................................................................ ,,,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..
..,_.
.. u., ....... t
............ -
. "... , .......
,r"ln, .
~' •• I ...... ~
.....
...... .
t .. , . . . , ....... ..
, , .... ..,..
\I. . . . . . . . , ....
. . . . . _.h
"'h.'
....... u
,.u.JI ...
'"'..~ .
•• 11 •• ' ........ '
I .... ~
.....
..... ..
~,
.. 1I~1I1o~ - $~"H
.1I~i1 .. ~ - .U'"
,~
l~t
.,~&.. -
.-.,1..,
.. I.U.1
Ht ....
'~h.l •
.... .. ..
~~~~,~ _ ,"1~.I~h.~"
f,,"U' -'Uh"
H~ ..... .v...
..... - ..... " ..... ,
.".. -- ..... Ito" ... '
~"
,I.~
,.~
~ ,~
figure no. 5
461
AN ASSOCIATIVE DATA STRUCTURE TO
DESCRIBE BUILDING COMPONENT
ASSEMBLIES
A. L. Britch
INTRODUCTION
This paper describes the further work carried out in the Depart-
ment of Building Science, Liverpool into the use of list connected
models for use in the design of buildings using computer9. This was
first reported at the CIB Symposium in Oslo in June 1958 t1 ) and is the
result of the efforts of a multi disciplinary group consisting of myself,
an architect/engineer, a building scientist, a physicist/acoustician
and a systems analyst. The group has recently been broadened to
include a structural engineer, a social scientist and another architect,
together with three research students having recently graduated in
Civil Engineering, Building Science and Architecture.
463
elements known as 'blobs' are held under file and are capable of being
called for selection usually by family, displayed as a 'menu' on the
Visual Display Unit (VDU) and then after applying various operators,
locating them on a predetermined planning grid. It must be emphasised
here that we are dealing with the 'tactical' design stage and is
concerned with the production/end of the architectural design process.
Because West Sussex have been able to employ serial tendering and
therefore rates are known at the point of design, it is possible to
generate the cost of each assembly as a blob is located on the grid.
Thus the designer is able to make a decision, based upon cost, of the
suitability of component types etc., at a relatively early stage in
the design process.
IMPLEMEN~ATION
4M
The general approach consisted of considering a building as a
collection of areas associated in some way or other. Whitehead's work
in the Department((4)(5) and others) suggests a possible starting point,
by considering the relationship of spaces by considering the movement
of people between them.
fig1
L
6 P10 Pl
P2
0 L 6 P3
7 B B B
5 8 9
P9
P4
10
4 (a) -= ")5 ( b )
P8 P7 P6
fig 2
465
In computer terms we have chosen to define this connectivity by
reference to the 'addresses' of the 'named' areas and assembling them
into 'ring structures'. This technique is known as associative list-
ing and is adequately described elsewhere.(6)
CONCEPT
z
o
~
(Jj
...J
•
«w
a:
fig a
The circumference af the circles represent time, the diameter the
depth of study and their point of contact the interactive element of the
466
system. The designer is shalom at this point and is generally the only
part of the system where the route may be changed. The designer moves
from the conceptual level through various stages and levels of analysis
to the 'realisation' stage when the design is finalised by a single
pass through the system. The latter corresponds to an enriched version
of the West Sussex production scheme.
P RIl1ARY RING
Taking the association shown in Figure 1 as the starting point,
each numbered circle indicates an enclosed activity and the proximity
of one to another their connectivity.
8
Heading .
--VV
r-"4
- :i
1
10
3
9
2
1
7
0
8 9 10 0
~V 9 10 1 8 0
...•V
-: 2 1 3 4 5 7 0
V
...-V
r 4 5 3 2 0
--
6 5 7 ()
., VV 8 9 1 7 0
...., V 7
5
5
2
6
4
2
1
1
0
0
/ 3 4 2 7 6 0
fig 4
Primary Ring
467
position 1 the address of the next list,
position 2 the label or name of the current enclosure,
posi tion 3-n labels or names of adjoining areas associated
with area 1,
position n+1 zero plant acting as list terminator.
The labels referred to in positions 2-n are addresses or names of
files containing the Secondary lungs used to describe the properties
of the enclosure.
SECONDARY RING
468
p4
k1 4 window panel
469
An example of the latter is shown in Figure 6(a) where two
components have been inserted in place of the original one. Note
that one component list is placed in the same position in the ring but
6 5 7 0
heading 17.0 11.0 7.75
~
----j
P1 2 1 16.5
I~
P2
C / 0 0 0
P3 .,;/ 2 8 3.0
Y
p4 L 4 8 7.5
P5
~
y 0 0 0
~
p6
G 7' 1 4 4.0
P7
~
~ 2 4 12.5
fig 5
p8 r-
p/ 0 0 0
P9 ~ 2 2 10.5 Secondary Ring
~
P10 K 0 0 0 Room '1'
P1(a )
% 10.5
,
r-
......, A 2 1 0
t:; ~ 0 0 0
G / 2 8 3.0
r--
'-;
/ 4 8 7.5
q~
0 0 0
q~ 1 4 4.0
~ 2 4 12.5
~ fig 6(a)
r.: ~ 0 0 0
~ 2 2 10.5
P1( ,/ 2 1 6.0
'"
the addition one is added to the end of the ring and the addresses
adjusted. It would seem at first glance that the more logical way
would have been to insert the new components within the body of the
470
ring, however in terms of computer operations it is more effecient to
add to the ring and adjust the addresses rather than move large amounts
of information. As an example of a geometric operation of the first
type take column 4 of the ring matrix illustrated in Figure 5. To
rotate the whole assembly through 90 0 it is simply necessary to
multiply each entry in that column x 2 and to inspect and make the
necessary adjustment if the result is greater than 8.
Heading
Assuming the entries in the Secondary Ring as Figure 5 and its
association with other enclosures as defined by the Primary Ring the
heading part might take the following form.
Row 1
11~.oI1q 71 0
471
position 3 the direction of movement assuming the
following convention,
The data set is made dynamic by reference to the heading and the
use of operator type programs to manipulate the data. The following
functions are currently being used.
SCALE This procedure enables the size of the displ~yed element to be
altered. At each entry the current scale is compared with the
required one, if necessary the data is operated upon and the
new scale noted.
ROTATE This procedure alters the direction of movement of the graphic
element specified as the direction from the start point (sp) to
472
the finish point (fp). At entry the required direction is
compared with the stored direction, the data operated upon
accordingly and the new direction noted.
LENGTH This procedure allows specific elements of the graphic data set
to be scaled. Again the data is changed if necessary and the
new length component noted.
The parameters of these functions are stored in the first row of
the headings as follows:-
Row 1 10 \100\ 4\ 151
CONCLUSION
Much of the recent work has been in connection with the develop-
ment of the graphic data sets as an essential means of producing the
graphic images of real components. This work is currently being
extended to develop, in conjunction with Alex Gordon & Partners,
Architects of Cardiff, an automatic draughting system concerned with
the production of door details and schedules. The system is being
implemented on an ICL System 4/50 with an on-line Calcomp 30" wide
drum plotter.
474
Although our work is in a very early stage we at Liverpool are
confident that given the right encouragement and facilities we would
have the embryo of a working building design system in operation
within a very short period.
REFERENCES
475
THE COMPUTER AS AN AID FOR THE
ARCHITECT
P. E. Walter
(i) Design.
(ii) Connnunication.
(iii) Construction.
(iv) Maintenance.
DIAGRAM 1
This requirement demands that information must pass from one activity
area to another and this means that the information generated must
be:-
(a) Complete.
(b) Readily accessible.
(c) Easily identified.
(d) Always up-to-date.
It has been found that because there are so many professions and trades
involved in the total processing of a project, communication between them
is poor; the order in which things are done is inadequately controlled
and decisions are made at the wrong time and sometimes by the wrong
people.
478
Aid to Management. Management in all activity areas is provided
with a network of activities required to be performed within its
area.
The problem here is to hold the information so that all users can
easily identify what it is they require or have generated and can
find the information easily. If these requirements are not fulfilled
then the information will almost certainly be misunderstood and
insufficient information will be used for decision making.
479
The identifiers, some of which I have mentioned, describe these
requirements, but. the way in which these requirements are fulfilled
change and the data relating to them is constantly being up-dated
by researchers working in their various fields. The fulfilment of
a requirement, however, is a solution to a problem and these solutions
can be identified by selecting significant functional criteria and
placing the appropriate values against them as I will demonstrate later.
~A.tJ v,
£.tJ to I.J ~1.t3 ~ • "V.~OtJOM' c:. ~RP>oc:.-rC ot:=
• "N'W.~roM'-\l..lC:. b.lQu,qMt.tJ,s A,e.-n" ''T Y
-.-
~ t:.\. 2.0
Olf- ~(!.,'T ,\I lTV •
Ae,. I v 1\ 'I A.\it,
~,
iUwl,~ u ....t sex...,. ~ca. ~ t1AcAl ~, KOISI
Alft A,e.
~ 't.rtaia
t SUI t.J1i
2. \O\U It. , t.) c:
3 UTIt.J4
ct SI'''T "ole
5 C.LU~SIUI
ACTl\ltTY
" " L...U l:..S
.... ,t.
~
~\-., RAltol'f4l.L SUt.)-
.W,''''L
SOuN~ .".-. ""'NO ~"''''4
~ "foaIa. !......."u.
p.~, I t.l c;.
S?t:4K'M~
W~~CI4''''''Q
-nJ...." lSI OM
S~~l""~
480
Similarly, it is possible to set against identified locations in
space the prevailing geophysical and micro-climatic conditions as
diagram 3 shows.
--
LOeA.:t lOW VA. L..U"-S
LOCA..iIOlJ V 6. L u LS'
AIr. \lIJ",,'~ bit.)· 5:1.) tJ- sou~ PMWno.J "" ,..,1> 5~t.1.aQ
"TU4~ ~l...L ~"It.)l. L.llIu. 'fOt.Ct.. ~CUCll
t-l1a."T10t.)" L
~t..\1> R,*,
I ~st. I '2."!4-ak
1
\
~~$l ~"l ~\,H..\.C."t \0 t-lA.L C~\T~2..IA.
SOLU,IO ~s
flU SOUNP SOUI./J) \.'5~T
~" ~-=''Y st~ ~ ""'"T
.t.«M ""'~
u.sl~ ~. YSOCl .t.UCIQ S1'u'c ~I.ST
~INC:S Volt
~l1.i..:l" \lW.O I
""~e.)as ~It
LL"TTlt.la
LA ~"'T ~ £,.D ,
481
Having decided upon the activities to be performed and the
geographical location of their performance, it is possible to
compare data as given in diagram 2 with data as given in diagram
3. This comparison would identify:-
(a) The adjustment necessary to bring prevailing
environmental conditions to required conditions
and maintain them.
(b) Functional criteria and values by which physical
requirements can be assessed.
\.OCA'T, ow r----~
.~'\""I~
-t---"" ~"'ofl.
,'"
la.C!T'''' "C'V A.
~"'"TR
oe.~u
J,.vA,U..
\'l"'\t,.
482
Matching values of functional criteria of existing solutions are thus
identified and brought forward for examination and selection.
'f'l13>1!ok.K up ~"''Tt.S
1:>~S ,.a.1ol ~ "-U~ 10 "'oS
483
The Designer, seeing the resuJtB of these applied weightings, decides
the best balance.
Having decided upon the arrangement of activity areas, the plan shape
can now be determined.
For example, one plan shape will expOSe a greater superficial area
of envelope to wind pressure, than another. Another shape will
enclose a greater area or volume of space. Daylight factors may
or may not be achieved if another arrangement is used, and so on.
The enve10pers and dividers of activity areas and the physical aids
to be provided within the areas ~re described by the function they
perform.
Site
Structural Support
Vertical Envelope
Space Divider
Base Platform
Intermediate Platform
Horizontal Envelope
Vertical Circulation
Environmental Control
Servicing
External Environment
484
The products to be used in these situations are selected from
alternative solutions identified by the values of the functional
criteria produced by comparing activity area requirements with either
the surrounding natural environmental conditions or conditions
produced by neighbouring activity area as previously explained.
The shape of the 'blob' is determined by the use of the system, but
a series taken from our system covering space dividers is shown at
Diagram 7.
Ot=l ~ 1 1 / ,~ / ~
,'-0" 11-4" II-~II 2,'-0" Sl~<;'-'S... .s 1104C: L'l. 'OOU'1!.L~ 'Poo'R.
'J)CX)~ booll.
485
Amendments, valuations and final accounting are relatively simple
matters.
This will give the Architect and his colleagues a much better
opportunity to practice their arts and skills.
COMPUTER GRAPHICS SYSTEM FOR
SCHOOL DESIGN
Patrick Purcell, Andrew Garnett, Christopher Jones,
Brian Pendry, Michael Sender, John Wood.
Abstract
487
offices. Information generated by this analysis has been used
to decide the point in the design process at which the computer
should be introduced and to allocate functions in the resulting
man/machine partnership.
488
Ergonomic techniques have been brought to bear on the
problems of graphic input, display design and other aspects
of the man/machine interface.
1 Introduction
489
design of the external vertical envelope and, in
particular, the window walling. This feature of the
system was chosen for particular consideration as it
is currently the most advanced from the point of view
of integrated design, production and assembly
management. The use of this management system at
present requires that the designer first code his
drawings of the window walling in considerable detail.
This coding is then checked and re-coded on to data
sheets, the contents of which are then punched on to
paper tape. All these processes can be undertaken
within the local authority office, or alternatively, the
last two stages may be completed by the wirrl ow
manufacturer. The punched tape is finally input to
the Crittall-Hope ICL 4120 computer to generate
costing, production and site assembly information for
the contract. This method of interfacing a design with
a production and assembly service represents a
considerable advance in the building industry but the
process can usefully be improved both in time and
accuracy.
1. 3 The COMDAC software system will provide
facilities that will obviate the need for the present
manual coding procedures. That is to say, once
the architect has achieved a satisfactory design,
with the aid of a computer a tape description of
the window walling, similar to the one currently
produced by the present three stage process, will
be output as part of the hardcopy generated by the
system.
490
Analysis of architectural design task
1
Specification of architectural
design operations
1
Allocation of operations
to man and machine
1
Synthesis of computer-aided
Software specification
architectural design task
I
+ ~
Support software COMDAC software
development development
I 1
I interface design
!
~y
S stem in tegrationl
Architectural
task description
!
Job specification
System evaluation
I
.. '"
Job-aids Training
for task scheme
491
2 Systems Analysis
492
Subsequent attempts at local revision failed to solve
this problem and the client began to have second
thoughts about the brief. Eventually the scheme
was aborted and the design started again.
493
~ KEY Project brief
Return to any previous
® non-decision stage
Function
in . .
~ out mcorporatmg
decision Bubble
1 it dlagram
Externally
applied decision
Selected bubble
diagram
-"""--a
Detail design
Thumbnail sketches
I
RJ 1
'''/1
Selected thumbnail
sketch
Approved scheme .1----..
plan and
elevation
First layout
®
Approved first layout
Scheme plan and
elevations
Exploratory I elevations
RJ fR' I~I
Selected Ielevation
Sketch plan
Evaluated
sketch design
Detailed Approved
elevations sketch plan
Building 1
Plans 2
Openings 4a
Beams over 4b
Openings 4c
Roof lights 4d
496
DIAGRAM LEVEL ELEVATION
1 Building
2 Faces
3a Fascia construction
3b Non-fascia construction
3c Mixed construction
4 Sub-faces
5a Window-wall
5b Hole-in-wall
5c Solid
6a Horizontials
6b Verticals
7a Head
7b Mullion
7c Lamb
7d Cill
7e Jamb
7f Transom
7g Spacers
7h Kick rail
7i Corners
7" Chair rail
497
2.6 The results of the task analysis suggested the
point in the design process at which the architect
could most usefully be gin to use the computer as a
design aid, granted the constraints of the bref and
the level of sophistication of the currently
available hardware and software. The results
further enabled the team to establish the sequence
of the various stages or modes through which the
COMDAC user would pass, the overall structure
and the internal logic of these modes and the
allocations of functions between man and machine
in the resulting man/machine partnership.
3 Software design
498
that in order to describe a building design to the
system by means of a graphic display, it would
be necessary to provide symbolic representation
of component catalogues both in plan and elevation
and at a number of different scales. The
manipulation of these symbols should allow a 3
dimensional model of the proposed building to be
developed in memory and the user should be able
to evaluate and modify this model once it had
been sufficiently established. Finally, once a
satisfactory design is achieved the user should
have the facility available to output drawings and
coded specifications of the design on punched tape.
Diagram 4 The latter should meet the input requirements of
the Crittall-Hope computer system.
499
MAN INTERFACE
manual
graph
\ II plotter
~
"
J
type-
it writer
1\
\
~ ~
~.
graphic
" : display It
~ 1\
.~
brief .~
pit
reader
\
" ..JI
('
.~
design J pit
drwgs punch
I.-
COMDAC output
systems tapes to
tapes Crittall-
Hope Ltd
500
COMPUTER
component component
J
catalogue costs
-
r"
I
'v iv
2-D 3-D
, I; ,
~ MODEL I' ) MODEL II
-
}
I"
" /i" ~,
.... r-.
==
-
display
software
scola/seac
constraints
evaluative
routines
'l'1~
~7'
501
3.3 Experience with the ASPECT package raised a
number of important problems, particularly in
the field of human factors. The earliest version
used the CHT display much like a traditional
drawing board and this made it both time consuming
and difficult for the operator to input a design
accurately. Later versions have overcome this
problem somewhat by adopting the principle of
gravity fields and by automatically setting up
certain key components, such as transomes and
fascias, in their correct positions. These
'techniques are a considerable improvement, but
inputting the design of a large and complicated
building is still a lengthy and tedious process,
that may require several hours of computer time
to complete. This is clearly an extravagent use of
the computer and it can also be very tiring for the
operator. The project team has, therefore,
s1£ nt some time developing techniques that stream-
line the process of graphic input and these are
currently being incorporated in the final COMDAC
software system. Ergonomic consideration to
such factors as light button layout, generation of
accurate line lengths and the use of gravity fields.
In addition, a facility is being introduced that will
allow the user to assemble window /wall components
into storey-height panels that can be called at will
for the duration of the job.
503
COSTPLAN
_" t'
, , .
'r" ~ J
HEAT-LOSS STEELWORK
PREDICTOR
504
COSTCHEK (1) COSTCHE CK (2)
, ~ , ~
,
1 ,'" '" ~
preliminary
delineate full definition
description of
on of external component of vertical
al openings in types in envelope
ions vertical vertical components
envelope envelope
, I"
" "I' ~ ~
MODE DIAGRAM
505
3. 5 When the operator is fully satisfied with his design
it may be retrieved from the computer in two
formats: as a series of fully coded and annotated
drawings from the graph-plotter, or as a paper-
tape containing all the information concerning the
vertical envelope, in the form required by
Crittall-Hope Limited. A further facility will be
provided, whereby the operator may 'dump' his
design on paper-tape, irrespective of which stage
he is at. This tape may be fed back into the
machine at a later date and the design process
continued. A permanent record of the costing
routine s will be available from the typewriter.
The evaluative routines themselves may be
considered as software packages which can be
used in isolation from the main bulk of the
program. It will be perfectly feasible for just
an isolated room to be described to the system
and, say, a daylight check to be made on it.
3. 6 Daylighting.
A minimum of a 2% daylight factor is a
statutory requirement for specified rooms within
a school. During the task analysis, it was found
from interviews and drawings that the calculations
involved in determining whether this minimum had
been achieved, were both long and tedious. The
importance of this requirement in the design process
was further emphasised when it was found that one
scheme required extensive redesign when just a
single room was found to be too dark. It was for
these reasons, together with the fact that these
calculations were intimately bound up with the
design of the vertical envelope, that it was decided
to incorporate a routine that would determine the
daylight factors in rooms.
506
3. 7 Mulgraf routine
Mullion sizes are fully specified,for a given
situation, by the building system. This specifica-
tion is based purely on structural factors although
the architect has the freedom to use other available
mullions for aesthetic reasons provided these are
structurally satisfactory.
3. 8 Costing routines
The COMDAC costing routines have been con-
ceived as a two part package based on the
recently developed Building Industry Code (BIC)
and designed to assist the architect throughout
the development of his designs. The first part
of the package is a costplanning aid, entitled
COSTPLAN. This program is intended 10 be
run much earlier than the rest of COMDAC, at
the initial stage of the design process and before
the form of the building has even been conceptua-
lised. Its purpose is to provide the architect
with data on the cost or area impfuations of a wide
variety of possible combinations of storey height,
perimeter length and partition length. It is
anticipated that the use of COSTPLAN will also
enable the designer to make on-going cost checks
of his design during its development which should
result in a reduction in the number of schemes
507
that are rejected or that require to be significantly
modified at a late stage in their development. For
the same reasons, COSTPLAN is intended to make
the use of the remainder of the COMDAC package
more efficient by reducing the amount of computer
time wasted in lengthy attempts to bring a design
down to a cost-target that, given the form and
size of the building, is unachievable.
3. 11 Heatloss
A simple evaluative routine has been written
which computes the heatloss through the fabric
of a building as part of the costing routines, thus
enabling the computer to arrive at a figure for
the cost of the required heating plant.
508
3.12 Steelwork
Some progress has been made towards developing
a steelframe design facility as an addition to the
COMDAC package. An initial analysis has been
made of the syntactical rules governing the
assembly of the steelwork system and a possible
approach to the problem of automating the process
of steelframe design is being investigated.
510
a) no restrictions on the type of connectivity
i. e. a graph structure
b) associative capability - to enable objects
to be found from their properties.
Due to its large potential size, this structure
should ideally be on backing store. Because
of the current lack of backing store at NPL
a cut down version of the three dimensional
model with limited associated properties is
used. The background data structure will
consist of an extended DISGOL structure which
was originally intended for structuring graphics
and is, therefore, not ideal for this purpose.
The three dimensional model will be constructed
from information in the structured pseudo
display file by means of an 'up' compiler.
Conversely, a structured pseudo display file
will be set up from the three dimensional model
by means of a 'down' compiler. This will
enable the two dimensional pseudo display file
to contain code for a plan or elevation of a
particular aspect of a building at a particular
scale. The display file compiler is a Level (3)
facility.
8 Comppnent Catalogue: this is in the process of
being designed. As with (7) it should ideally
be on backing store because of its very large
size. Because of the lack of backing store our
approach is only to provide information about
components which are critical to the design or
evaluation process at any particular stage.
This policy means that the catalogue will be on
many paper tapes. Internal to the machine
there will be a one dimensional dynamic
associated data element reserved for the
catalogue which will be partitioned into
separate files. Each file will contain data
about a particular component, for example,
permissable sizes, permissable connections
to other components, properties, pointers to
pseudo display file subpictures representing
the graphical symbols for a particular com-
ponent at the different scales, and a pointer
511
to the name of the component in a name table.
Having a name table and a dynamic associated
data element means that the catalogue can
be updated in an on-line fashion. This enables
design units made up out of componets, to be
themselves made into a component with a
particular chosen name. This will allow, for
example, 'standard' storey height panels to
be designed by the user and repeated when-
ever required within a particular scheme.
512
COMPUTER GRAPHICS IN ARCHITECTURE
J. H. Williams
515
methodology for determining sub-optimum relative
location patterns for physical facilities. It is
governed by an algorithm which determines how relative
location patterns should be altered to obtain
sequentially the most improved pattern with each
change, commands an alteration, evaluates the result
of alterations, and identifies the sub-optimum
relative location patterns. The computer output
yields a scale block diagramatrc layout of the
fac i 1 it y a reas and the a reas need not be equa 1 ."
(ref.!) As it employs a two dimensional approach,
CRAFT was originally used for studying the allocation
of factory space. However, the program Is a
general ized tool and the application of this tool to a
variety of planning problems is only limited by the
imagination of the user. The program produces only an
abstract diagram of the building spaces. The program
does not produce anything resembling a building plan.
In using the CRAFT program, the greatest challenge to
our staff has been to translate thls crude diagram
into a reasonable building partie
The program utilizes two matrices and an origInal
layout as the initial input. The layout Is a plan of
the building using groupIngs of the department numbers
to indicate areas. The manner in which the building
and/or site may be described in the InHlal layout Is
quite arbitrary. The matrices are used to indicate
relationships between departments. The relationships
Indicated by the matrices can be defIned by the user.
The effectiveness of the fInal layout is highly
determinate upon how well the destgner can quantify
the values assigned to the relationship matrices.
A complete methodology for using CRAFT was developed
around the experience of using the program In three
actual building design projects. We worked very
closely with the architects in developing our
methodology on these projects: The Avon High School
project; the Bridgewater State Teacher's College
project and the Canton Junior High School project. We
developed the methodology from the Avon and
Bridgewater experiences and stuck very closely to it
in coming up with a design for Canton. On the first
two projects we came In late, in that CRAFT was used
in conjunction with the straight, intuitive design
process. However, on Canton we used CRAFT throughout
the preparation of the preliminary scheme.
516
relationship matrix with the other being filled with
l's or unity; (2) being able to use 2 matrices that
were identical and (3) being able to use 2 separate
and distinct matrices. These alternatives could be
chosen while working on-l ine at the typewriter
console. With alternatives number 2 the two identical
matrices were multipl ied together. This allowed a
logarithmic bias to be given to the higher numbers
causing those areas that required strong adjacency to
be strongly drawn together. Assigning a relationship
value of 5 would actually mean 25, 4 would be 16, 3
would be 9, and so on. It is important to real ize
that CRAFT works in a positive way to draw two
departments together and does not negatively repel
those departments that should not be together.
THE INITIAL LAYOUT
The matrices were filled out during interviews held
with cl ient, architect, and consultant. Various
techniques were tried, such as having School
Principals and Department heads fill out individual
matrices and having the architect combine them into
one. It was necessary for the ground rules to be
clearly understood. _It was decided that in
determining relationships, the criteria of (a) flow of
people, (b) flow of goods, and (c) flow of information
should be used.
In preparing the plan or original layout input to the
computer several rules had to be followed. The
program was limited to handling 40 separate
departments. The shape of the building had to be
represented in a rectangle. To accomodate irregularly
shaped sides of bui1dings, dummies were used which
were unassigned activity areas. These dummies were
used to fill in irregularities in the plan of the
building. The dummies were given zero (0)
relationships in the matrix. There were also several
illegal activity area configurations: Activity areas
or department~ could not have multiple indentations
along both axes x and y, no departments could be
disjointed, and no departments could touch at only one
corner (figure 1). The maximum number of units per
department was 75. tn other words, a department of 9
units by 8 units was maximum. These units could be
assigned any scale value. For example, one unit could
be used to represent 10 square feet.
517
figure 1: Illegal Area Configurations
D I
multiple
Ddisjointed touching corners
indentations
In preparing the input several iterations were gone
through in modifying the original input sheets. The
following forms (figure 2) resulted, which made it
quite easy for the architects to fill out a
relationship matrix. In addition, several different
size grid sheets were developed upon which the
architect could draw the building or site plan prior
to translation into computer readable form.
THE METHODOLOGY
In actually running CRAFT a three step methodology was
developed. Several optional steps were available but
were not used in the Canton study. The ~anton project
was considered as a prototype in that the 3 steps were
rigidly adhered to. The same relationship matrix was
used for the three runoffs. The output from one
runoff was used with some desk top translation for the
following runoff.
Run-off number 1; This run produces the most optimal
solution as all areas are free to position themselves
anywhere within the grid. In run-off number 1 all
areas were made equal. No area was fixed and site
features were included with the activity or department
areas. In addition a certain percentage of dummy
areas were interspersed in the grid so as to allow
free movement of the known departments. In making UP
the input plan, the architect attempted to guess at
what he thought the optimum plan should be. (figure 3)
This procedure resulted in a more optimal solution.
The running time for this iteration came to
approximately 90 seconds of computer timp..
518
THE RELATIONSHIP MATRIX
In preparing the relationship matrix we originally
thought that a hierarchical scale of one to five
should be used in stating the relationship between the
spaces. The relationship matrix indic~tes the re-
lationships between activity areas. These values may
assume any value the designer wishes to apply.
Several architects felt that a scale of 0 - 9 was
easier to understand both for cl ient and for
themselves. Using the 0 - 9 scale we felt that it
would allow greater distinction to be made between
activity areas. A lengthly discussion centered on
whether 0 - 9 or the 1 - 5 scale should be used. The
actual choice is really probably up to the individual
preferences of the architect or the user. We felt to
be consistent in our office that we should make a
decision and stick to one. Using the 0 - 9 scale we
felt that it would allow greater distinction to be
made between activity areas.
In using the 0 - 9 hierarchy, the architects worked
out a meaning to be assigned to these numbers. The
value nine (9) was used when considering Same Spaces
(such as a gymnasium divided into two sub-areas) and
was abbreviated SSe Seven (7) and Six (6) were
assigned the meaning Imperative Positive adjacency and
abbreviated IP+ and IP- respectively. Five (5) and
Four (4) were Desirable Positive adjacency and
abbreviated DP+, DP-. Three(3) was Neither/Nor (or
Neutral) abbreviated NN, Two (2) Desirable Negative
(DN), One{!) imperative Negative (IN) and zeroeO) was
NO Idea. Eight(S) was not used. They felt that in
having a cl ient fill in a matrix it was sometimes
difficult to remember the meaning of the numbers.
Therefore, a further sophistication to avoid unfair
bias was to assign symbols to the numbers, such as the
abreviations mentioned above or even a, e, i, 0, u.
lengthly discussions were held in the office on the
subject of the relationship matrix, often with
opposing view points. The 0 - 9 scale was finally
used for the Canton study.
As I mentioned earl ier, the difficulty of preparing
the input files for the computer program led us to
develop our own preprocessor which allows the user to
work interactively with the program and prepare his
computer run. The preprocessor allowed the user to
choose between an alternative of using; (1) a defined
519
figure 2: Relationship Matrix Forms
(departments/activities)
fine arts A-Ol
520
figure 3: Run-off Number 1 I INPUT
o
3
33
525
2233
33332
132113
2521167
33422333
132113572
2321233435
53333323522
143113333332
1331133523337
33333434333363
333333353333333
2323211141112133
35333636443545432
232226364422343312
5233733232234233132
54555332533355331223
424522225222243371222
11111111111113331111334
one-half of Relationship Matrix
0101020203030404050506060707
0101020203030404050506060707
0808090910101111121213131414
0808090910101111121213131414
1515161617171818191920202121
1515161617171818191920202121
2222232324242525262627272828
2222232324242525262627272828
2929303031313232333334343535
2929303031313232333334343535
initial department(activity) layout
521
figure 4: Run-off Number 1 /OUTPUT /System Diagram
1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 CC CC X X F F S S
K K Y Y Z Z
2 CC CC X X F F S S
K K Y Y Z Z
3 DO DO B B R R H H J J G G GG GG
4 DO DO B B R R H H J J G G GG GG
5 Q Q V V I I 0 0 M M N N AA AA
6 Q Q V V I I 0 0 M M N N AA AA
7 EE EE 0 0 C C P P U U W W HH HH
8 EE EE. 0 0 C C P P U U W W HH HH
9
10
FF FF
FF FF
A A L
A A L
L
L
T
T
T
T
E
E ""
E BB BB "
E BB BB "
1 C B 0 K
2 F A G H ~
3 I J E l
522
When a building parti was designed, CRAFT was used to
check (or critique) his design. The input plan was
produced with areas made to approximate the designed
areas in their shape. The original matrix was used. A
CRAFT Run-off was made to determine if the parti plan
could be improved upon by checking against the
original relationship matrix.(figure 7)
• • --
•
(1) no areas fixed
equal areas
include % of dummies
•
(2) break into sub-systems,i .e.
classrooms, physical ed.,
1111111111 industrial
523
OPTIONAL CRAFT PERMUTATIONS
Run-off number 3; The layout output from run-off 2
was used, with translation as the input for Runoff 3.
We used a somewhat contrived technique for studying
vertical relationships for a multi floor building.
Somewhat arbitrarily, but nonetheless recognizing
groupings of activity areas which had been indicated
by Runoff 2, we divided the building into three
floors. We then separated these floor areas with
large fixed dummy areas. What CRAFT did was attempt
to satisfy relationships by shifting departments or
activity areas from floor to floor across this zone of
fixed dummy areas. If a shift was made from the number
one floor to the number three floor the reason had to
be very strong.(figure 9) Running time for this
iteration was approximately 20 seconds.
TRANSLATED TO
TRANSLATED TO
BD
CJCJ
DO
524
Run-off number 5; This Run-off was a variation on
Run-off number 2. It required a new matrix which
described the relationships between sub-areas or
sub-systems of the building. In this case we
attempted to study the results of identifying
relationships between the sub-systems and
incorporating circulation. Circulation was fixed and
such things as 1 ight wells, stairways, etc. were
related to sub-systems and allowed to float.(figure
11) Running time for this iteration was 30 seconds.
525
problem was in understanding the language of computers
and translating the language from one form to another.
Specifically the problems that we ran into were that
it was difficult to assign meanings to the values
which we used in the relationship matrix. For the
output to be valid one had to apply the same criteria
to all departments. For example, one could not relate
department 1 to department 3 with criteria toward flow
of goods and then relate department 1 to 5 with
criteria being flow of people. To be able to properly
fill out a matrix required a period of education for
both architect and client.
The negative results in our office was a tendency to
overemphasize the computer solution both in what it
could produce and what it threatened to the architect.
It is wrong to consider that the satisfaction of
adjacencies is the only problem to be solved in
designing a building. It actually occupies a very
small percentage of the problems to be considered;
others being light, space, etc.
POSITIVE RESULTS
There were some positive results from our study.
Although we had to go through a prolonged and painful
process in developing our methodology, we nontheless
developed a technique that drastically reduced the
time spent in designing a building. The essence of
the technique, of course, was that the computer was
used to solve a numerical problem of relationships and
freed the architect for more creative work. Prior to
applying this technique our architects often spent a
great deal of time going through the prel iminary stage
of designing a building. Working in an unsystematic
manner often forces one to repeat decisions and steps.
Forcing oneself to organize and work through the
design of a building in a systematic manner moves
things along much faster. The computer cost of
running CRAFT came to approximately $200. This was
considered insignificant in terms of the $10,000 or
more that might be spent in the preliminary design
phase.
A side benefit of working with the matrices was that
once the definition or the hierarchy of assigned
values was understood and could be related to the way
people thought about a building, a vehicle was
provided by which the architect and cl ient could
526
communicate on common ground with an absence of
jargon. The result in considering each department's
relationship to each other department was that the
architect and client were forced to think about all
the elements of the building in an orderly and
systematic way. In addition, when the client was made
to understand why he was filling out the matrix (i.e.
to produce a rudimentary layout) he felt as though he
had participated in the design of the building. As a
result, the architect found that he had to make fewer
iterations in designing the building so as to please
the cl ient.
527
CRAFT was to shorten the time in doing a preliminary
design and as a result allow more time for design
development. In a process where each phase takes a
finite amount of time, architects tend to get hung up
in the programming phases of design and those
decisions immediately thereafter. Although CRAFT
shortened our design time we nonetheless spent a great
deal of time converting and preparing layouts and
relationship matrices. In general, what was needed
was the ability to input data in an architectonic
form, in this case lines. The abil ity to
interactively and easily modify that data and the
final producation of output in a form understandable
and famil iar to the architect a definite requirement.
The actual production of a 20 plan drawing of a
building appears to the computer special ist as a
fairly mundane appl ication. However, the impact and
the importance of providing this kind of output is
incredibly dramatic when used in conjunction with a
tool such as CRAFT.
From our experience with CRAFT we gradually evolved a
need for computer graphics techniques. This need
occured to us indirectly. Although it is easy to see
that there will eventually be a requirement for
sophisticated interactive computing with dynamic CRT's
and multiple-pen high-speed mechanical plotters, the
interim requirement for a rapidly changeable
inexpensive graphic device is clearly evident. It
appears then that the techniques of storage tubes and
thermal or electrostatic plotters would offer a great
deal of flexibil ity which would be within economic
reach of most architects. The step that we have taken
therefore is to begin to specify the type of
configuration that we feel is necessary for the
architect to effectively util ize computer graphics
techniques.
REFERENCES
(1) Armour, Gordon C. and P.A. Cramer, "Computerized
Relative Allocation of Facil ities Technique (CRAFT)",
Share Program Library, September 1965.
(2) Armour, Gordon C. and Elwood s. Buffa, "A
Heuristic Algorithm and Simulative Approach to
528
Relative Location of Facil ities", Management Science,
Vol. 9, No.2, January 1963.
(3) Martin, T.,D. Miles, and G. Oommen, "Craft
Technique: Constraints and Capabil ities",
Unpublished Report, Harvard School of Design, January
1970.
( 4) Brow n , Le s 1 i e I.," Can ton Craft, A Report on a Real
Architectural Project Using Computerized
Design",Unpublished Paper, Boston Architectural
Center, January 1970.
529
THE CRAFT PROGRAM
IMPROVEMENTS AND PROPOSED
IMPROVEMENTS
1. Rohn
I NT RO DUCT! ON
OUR INTENT
We \'Janted to make addi ti ons and changes to the CRAFT program that waul d:
1. produce graphic output which more closely resembles the
conventional drawing format with which designers are familiar;
2. reduce the complex input so that a person unfamiliar with
computer programming could easily learn to use the program; and
3. by accomplishing 1 and 2, make the program more useful as an
easily understood introduction into computer techniques for
architects, interior designers, and related professionals. After
a minimum initial period for familiarization, it was hoped that
a client could use the program without further assistance from
consultants.
531
THE STATE OF THE CRAFT PROGRAM ( as distributed by I.B.M. )
1. Internal Manipulation
532
department area, and vice versa. The proximity measure of the plan is then
recalculated and checked for any improvement. If none has occurred, this
exchange is rejected and the program tries the next exchange possibility.
If an improvement does occur, the exchange is recorded. The program
continues to try all the other exchange possibilities until it has selected
the provisional department pair exchange which gives the greatest estimated
improvement. The exchange at this point is still only a provisional
exchange because the shift of centroid locations resulting from the
difference in department areas has not been considered.
The program now creates a new partial plan of the two departments being
considered. On this plan, the carving routines try the actual exchanges of
area. The new centroids are calculated and the total plan is reevaluated.
If there is still an improvement, the partial plan is dumped into the total
plan and the complete process described up to now is repeated. If an actual
area exchange results in no improvement, the partial plan is discarded, and
the program tries the provisional department exchange which gave the second
highest estimated improvement. Exchanges continue to be made until no
further improvement can be found.
533
Critigue of the CRAFT Program
534
- proportioni.ng two "IllIs vertically to three "_IllS horizontally in
outlining areas
- printing the identification number of the departments in the top
left hand corner of its area
- supressing the printout of all dummy departments
- starring the border of exchange departments at each iteration
- listing the names of the departments with their associated numbers
after the final plan printout ( optional).
With some other minor changes, such as the removal of superfluous program-
ming messages and the calculation of percentage improvements from the
initial plan, we achieved our intent of making the program output easily
usable by the non-computer oriented user. Three changes then had to be
reflected in the input. The changes were made as follows:
1. all control parameters were put inside the program and a
standard input-output relationship was adopted
2. provisions were made for the identification of the dummy
departments
3. all values and numbers in the input were reduced to integers.
Although our intent was mainly centred in the input-output routines, we
realized in our appraisal of the program that the array sizes determining
the maximum size of layout had to be enlarged. As we enlarged these arrays
we made all size parameters within the program variable. The size of plan
and the number of departments in the revised program are limited only by
machine configuration. Since we wanted to enlarge the program without
being penalized by large core-requirements, we cut down all integer arrays
into half words.
Some changes were also made necessary to implement the program on a time
sharing system. Altoqether the changes took one man month, most of which
was spent removing the limitations on array sizes.
CONCLUSION
535
FURTHER CHANGES PROPOSED
1. The need for an input plan can be eliminated. The program should have
the capability of creating an initial plan from a space inventory list
interrelationship matrix, and building constraints. Other iaYGut
programs have been investigated for this task ( ego ALDEP ), but they
have some very undesirable limitations concerning perimeter
configurations and have the same hill-climbing properties. New input
routines will have to be created, but these will have to be examined
carefully for their affect on the carving routines.
II II
1ayout.
4. The program should be able to handle more criteria than just proximity
relationships. For example, a binary matrix would be introduced to
reflect desirable perimeter contact but indifference to distance
when that perimeter contact is not made ( ego proximity to windows ).
There are many sets of data similar to these which need definition.
The program would handle these data matrices according to priorities
unless it could reduce them to a common data base.
536
APPENDIX
An Example
537
DEPARTMENT INTERRELATIONSHIP MATRIX
1 2 3 4 5 6 7 8 9 10111213141516171819202122
1
2 5
3 7
4 3 3
5 3 5 9
6 3 7 7 7 5
7 5 5 3 5 7 5
8 example: department 11
9 3 3 rel ates to
10 5 3 3 3 3
11 7 3 3 3 7 3 5 3 3 7 department 7
12 3 3 3 7 5 5 5 by a value of
13 5 3 5 3 3 3 3 7 5
14 3 3 7
15 3 3 3 3 5 3 3
16 3 3 5 3 3 3 3
17 3 9 9 9
18 3 3 9 5 5 5 9 9 9 7
19 5 7 7 3 7 3 7 7 7 9
20 9 9
21 5 5 5 5 7 5 9 3 5 5 5
22 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
o
50
070
0330
30590
377750 INPUT MATRI X
5535750
00000000
300030000
5303303800
73337353370
330375500050
5003533003370
00300000307000
303000303053030
0030000030533330
00000000000309990
003390000055599970
5007007003703777090
00000000000000009900
555575900355500000000
0000333333333333333300
00000000000000000000000
000000000000000000000000
0000000000000000000000000
538
15 22 12 13 11
4
14 16 7
5 6
18 9
~ ~
17
19 21
3 10
~
8
2
1
PLAN OF BUILDING (with preliminary
1ayout)
In this example the building outline was
glven. The layout was dlrectly derlved
from a preliminary study of the plan
2 '4
d mnv rli mmy
f x d -c;x ed
3
(ur m
i e(
ADAPTED PLAN
Departments 23, 24, 25, have been added to fit the plan
into a rectangular matrix
539
15151515152525252522222222222222121212121313131311111124
15151515152525252522222222222222121212121313131311111124
15151515152525252522222222222222121212121313131311111124
1515151515252525252222222222222212121212 4 4 4 411111124
15151515151414141414141616161616 7 7 7 7 4 4 4 411111124
15151515151414141414141616161616 7 7 7 7 4 4 4 411111124
15151515151414141414141616161616 7 7 7 7 4 4 4 411111124
15151515151414141414141616161616 7 7 7 7 5 5 5 5 6 6 624
15151515151414141414141616161616 7 7 7 7 5 5 5 5 6 6 624
15151515151414141414141616161616 7 7 7 7 5 5 5 5 6 6 624
2323232020181818181818181818 7 7 7 7 7 7 5 5 5 5 9 9 924
232323202018181818181818181819191919192121212121 9 9 924
232323232017171818181818181819191919192121212121 9242424
23232323231717181818181818182323232323 3 3 310101010 8 8
23232323231717181818181818182323232323 3 3 310101010 8 8 z
23232323231717181818181818182323232323 2 2 210101010 8 8 c::(
-l
23232323232323232323232323232323232323 2 2 2 1 1 1 1 1 1 0...
23232323232323232323232323232323232323 2 2 2 1 1 1 1 1 1 f-
:::>
2323232323232323232323232323232323232323232323232323 1 1 0...
z
2323232323232323232323232323232323232323232323232323 1 1 .......
540
BUILDING DESIGN BY COMPUTER GRAPHICS
s. W. Crawley
Professor of Architecture, Department of Architecture,
The University of Utah, Salt Lake City 84112, U.S.A.
The views and comments expressed here are not from a computer
scientist but rather from a user of computer graphics who has
only a very limited understanding of the machine and the proc-
esses that instruct these machines to perform certain functions
However, I am involved in developing some systems and programs
that will assist the architect or engineer in the practice of
his profession, namely that of creating buildings or physical
structures, from their early planning stage to their final
occupancy.
541
fl~URE I
542
purposes of the comparison to building designer needs it is
sufficient.
FI4UP)[ 2
A
DPFlllE... .f
'8U~If..UW)
OPE~A. Tlol-J
o
t!OIi~"ffiUC.TIOW
~OIST!2.DL. ~'{
(~TA\Il!.1jQ)
543
best to serve all aspects shown here except for Building Design.
It is in the design stage where the dynamic or interactive
computer graphics appears not only to be most useful, but in
my opinion, most promising for improved design. The design
process is very difficult to describe since it is a personal
type of activity. It could be said that design cannot be de-
fined, only described, and each will have his own description.
Perhaps my description along with Figure 3 will help explain
the process to those unfamiliar with design.
544
Following the initial conceptual stage of a design is the devel-
opment or refinement stage. As has been implied, there may be
a variety of solutions that would seem to meet most of the orig-
inal constraints. As the design goes into the refinement step
F1~U~E. 3
f3~lkl A1
~fOlt-.l.T
545
The program I have developed is a very simple one and it per-
tains to only one small aspect of the building design process.
However, it is interactive and allows the designer to explore
an almost limitless variety of conditions and have immediate
answers for each. The objective of the program is to determine
the degree of protection against radiation the building would
provide if the building were to be used as a fallout shelter in
addition to other daily functions. This quality is considered
to be one of the many attributes a building could provide.
All buildings offer some protection in this respect, but to as-
certain the exact amount requires a detailed analysis which is
time consuming and often a dull activity. If considered at all,
it usually occurs after the building design is complete and too
late for really influencing the design. The need for a design
aid is clearly apparent and the Office of Civil Defense request-
ed a computer-graphic method be prepared to meet this need. The
process should be easy and interesting for the architect to use
during his design development stage and provide immediate
answers.
FI ~ UR'c 4-
I I
I I I
'>YLVAUIA ltLf."NPmlIER ~~
Ul-llvMPlEA
t!A'fI..P
T~ t--~"'NI.U~ ~\~ .
546
that are activated when the curser is brought in line with it
and the stylus tip switch is depressed. The value of the build-
ing, if used as a fallout shelter, is measured by the protection
factor which is calculated and continuously displayed. As the
building design is altered the prot-ection factor will change as
well. Also the value will change for different locations in a
building. The plan and section shows a cross mark (+) to iden-
tify the location of a detector which represents the point to
which the calculated protection factor is referenced. This
detector can be moved to any location within the building.
f1C.URE. 5
Wf...75
01A.RT
~TOP
ALn:R A..Ml~
W1.~
m~e
- ~
+
MOIC.~TOR
ItiT. PA~ITI~
r:::eu::n=..
w' R.COF 'NT.
'NT: 130
~'IIr,
WAll.. WT.
L~ F 13'
1'51
50'
A.~
MOlE-
~
,bpe:pqUfZ.e. 1d .?,
1.1
.~
MUlUAl- -61-tIELD
f'PtJTrLr1O\4. ~T~
efl
lt5'
wr..I~
WT•.r~
547
FI4U~E ~
WT.• IOD
51MT
IX-a" !STOP
+ WT.7S
ALTEPl PLANb
- t--- "!i-o"
B.iLAfZl4-e-
~'_QtI
ffOUtE.
MOVE- r::e:n:LlVP1
JUT. PA/'ZlTlTIOIJh
50' ~n=-
a (p' ?)tl:)F 'NT.
WT·\t~
I, FtLOPl.Wy.
1D'-<t+
g
'tJ 40
I 5
L 'Fl F 13 I ~'SQ
APCPffilFE. ~
10Gl
2
ALT'E-R 7
120' Mt}/E ~
MUTUAl6~1El..D
I
8'
+ WI. l~
(J
(.,.'
-1
""
548
The system also offers the possibility of calculating the dis-
playing other attributes besides protection fact~r .. For exam-
ple, the graphic scale could be changed from asslgnlng roof,
floor, and wall weights to assigning roof, floor, and wall U-
factors and the total heat transmission loss for a given tem-
perature differential could be calculated and displayed. All
graphical routines could be maintained. A similar comparison
might be made for accoustical attributes.
549
~BDID ml~ITlve
Q
~~L..
~ ......
.....
"""
~----~
Q
"'- -'"
..-
""'"
.. .......
--'
,------
r- .. ~
Q I
I
I
I
--'
550
i.e., a cube, cylinder, etc. Subsequent signals would alter
the primitive shape to any desired shape. TWo such examples
are shown in Figures 7 and 8.
Scales can be assigned and the shapes assembled, rotated,
stored, called back, etc. This is an excellent start, and it
appears to have the universal basis necessary to be used in
building design. Research is continuing in this direction at
the University of utah under the broad supervision of Dr. David
C. Evans, Director of the Computer Science Department. It is
hoped that ultimately a program will be available such that a
designer will be able to work at an interactive computer
graphic console and complete the entire design process without
the use of pencil, paper, or printed reference manuals.
551
PART 6
Introduction
Practical minded engineers who design and build large nuclear power
stations require the latest, most reliable information that can be obtained
regarding the dynamic Characteristics of reactor internals and their asso-
ciated energy transfer systems. Some of our most important investigations
are directed toward determining relative efficiencies and safety margins
achievable from contrasting reactor core assemblies of contrasting design
555
that utilize various heat conveying media flowing within heavily stressed
containment structures. Such determinations require detailed quantitative
assessments of thermodynamic, hydrodynamic, and structural response charac-
teristics of multiple interlocking systems under both steady state and
transient conditions. Engineers are accustomed to visualizing data most
applicable to such situations as families of curves or geometric diagrams
that graphically show parametric interrelationships of temperatures, pres-
sures, flows, neutron flux densities, etc., as they change with respect to
each other and with respect to the passage of time, in various spatial
configurations.
5~
tor that was developed for the purpose of investigating the feasibility of
atomic powered aircraft. This example of computer data plotting may appear
rather primitive today. The significant observation to make here, however,
is that as much as fifteen years ago, members of our technical staff engaged
in extensive direct interaction with a digital computer through the medium
of automated graphic display. Later, as computer users increased in number,
it became no longer practical to provide individuals with such intimate
access.
When the larger second and third generation machines came in, there be-
gan a gradual implementation of mechanical pen moving plotters. More re-
cently, there has been added to our central computing facilities a CRT 35 mm
film plotter that is driven off line from computer produced magnetic tape.
This equipment operates in a high volume batch processing environment where
turnaround time varies according to competing demands and personalized
programming service must be limited in order to accommodate the varied needs
Of many users efficiently. For several extensive experimental complexes,
relatively small independent computers having some graphic capability are
used for on-line data processing. Telecommunication linkages are available
for some special situations and commercial timeshare terminals are widely
employed by our staff members for low volume interactive numerical
computations.
557
from hundreds of strain gages fixed to the shells of such vessels are sub-
jected to analytical computations to yield stress pattern diagrams.
Figure 3 is representative of a series of computer generated diagrams Where
lines of equal stress concentration are plotted to show response to various
loadings imposed on experimental models of prestressed concrete pressure
vessels under test. These diagrams have demonstrated that reactor vessels
558
11001 1()1 2OP-20-1S, (!).~-I·h
.-
.-20-20, +'"20-22
~
1.
V\
l~ 91 • ., PLOT 11
16001 81 tS . .- .- - tI) t"f'tiH. TI&ftf!. te....w.u.
.. • •
15501 11 til
I
•
•
I.
-
•
•
-• - r
•
,• • -
15001 61 12
• • • •
•
- •
1IIUf·
\. :
~ AMP.S It. F: •
~::l
•
• • • •
- •
\10m
...
1'l501 51 10 • 1 I•
• • •
.- ......- .....-..-
I •
••
+4+'.. ~ __ _
1'l001 'll 8
+ .+\ • -
• •••••••
•
: •
++ A.C• • •UHO C,VItRCH7 • • • • • • • • • • • • • • II • ••• • • • ••
13501 31 6 • •
TI'tf~ ~ ,.,. .~ ~'U\ VOf.TS
•
13001 21 'l
12501 11 2
12001 01 0 'l'lbo Isba 1660 17bo lebo Isba 2Obo
TIME OF DAY OAl 110
Fig. 2. MuJ.tiparameter Computer Plot from Automatic Data System
Simulated Reactor Fuel Element Under Test.
of this type will not fail from brittle fracture. 2 Figure 4 is an example
of computer plotting along the surface of a nozzle intersecting a stainless
steel hemispherical shell as measured under internal pressure loading. The
computer program employed here can plot the complete curves, for any angle
nozzle subjected to various types of loadings plus all alphanumeric nota-
tion, including figure and page numbers ready for inclusion in published
reports.
Midplane
560
01. 0
()
..,.
CONFIGURATION NO. 1
o DEGREE PLANE
-1.0 INTERNAl PRESSURE LORD
XXXXXXXXX TRIAL RUN. TEST I XXXXXXXXXXXX
0.0 TCJTAL STRESS
(NCJRMALIZEO) VS. PRCJFILE
1.0
STlllll.S.
flGlllE 4 o IIEJIIDICINAL
2.0 • TANGENTIAL
fill TAaLATED IIITA sa IIEPCIIT 31'. TIafS 1-10.
NlllllALIIEII STllESS • S'IIIESSIN. N· "" NT!
3.0 l"oIWSSUIIf. IJoIIIK DlllETEII. T~ IIU THICIICSS
CI1
O":l
Computer Graphing for Analytical Studies
562
Interactive CRT Graphics for On Line
Experimental Data Analysis
Information Systems
563
.c
VI
......
:::t:
(.)
Z
::::
8 8 ......
(.)
c Z
...l
N '"
I
:5
-'
• CD •... "" VI
0
0> t»- -'
Z
IX
Z
IX <
0
<
IX
c c c c c d
'"
-'
0: .c
(S3H:>NII 3:>NVlSI () lVIXV "" d
c
.c
Vi
......
:::t:
(.)
Z
::::
8 ......
Ed
0
(.)
c Z
Ii ~.
0
-'
z z <
0
...... -------------------------------------------------------_#"
<
"
"~
, ... -----------------------------------------------------------,
a:::
c
c c d
.c d
(S3H:lNIl 3:lNV1SI () lVIXV
cluded from this survey that graphic plotting features offer significant ad-
vantages for technical information exchange; but practical economics demand
that incompatibilities in competing hardware and software be resolved, and
measures for interfacing to public communications media be improved.
Concluding Observations
564
QO
0 >=1
.0 'M
Ul
ro
GJ
III /-;
~ ()
:z::
u >=1
H
~
8 :>:,
-
~
u
~
....; 0: .0
N I 0 Z
, t<'\ ~ 'd
GJ
CD "- !!! t)
OJ" OJ" e >=1
a=: a=: -' GJ
Z Z 4( ;::!
r-l
~ '+-i
a=: >=1
H
0
-
Ul
0 0 0 0 0
d ro
N 0: -d t<'\ d Ll\ Ul
>=1
(S3HJNIl 3JNV1SIO WIXV /-;
QO GJ
'M -I-'
~ -I-'
0 ctl
.0 P-t
~-I-'
o >=1
Vi r-l GJ
!t! ~ >=1
u 0
-I-'
§ ~
~
8 8
-
~
0
....; otI uZ r-l 0
N I 0 0
, t<'\ ~ 0 :>,
III 0 -I-'
CD "-
e 'M
OJ" OJ" /-; ()
a=: a=: -' 0 0
z z 4(
-I-'r-l
() GJ
~ ctl:>
a=: GJ
P::r-l
0 ctl
'M
-
~
0 0 0 0 0
d GJ'"d
N 0: -d t<'\ d t&l
0
(S3HJNIl 3JNV1SIO WIXV :>
565
~ FFM HERTER ROD l= 5
10 KW/FT---' -
RCiD NCI. 1
SCALE: 1 INCH= .023 INCHES
I I
o
6
Fig. 6. Computed Isotherm Plots Through Section of Simulated Reactor Fuel
Element.
CONFIGURATION 5 NUMBER ~1 STEP CYLINDER PROBLEM FILLET STUDY ~
11:)
1l.0 l r-T-ril---r---r-.--.,---r--T---.----
10.8~--~--r---~--~~~~4-~~~~~~--~---+----
10.6 --t--t----1~__t-;-_+-+::~~:Wr;;t::.-~---L-~-.....I..-
t-I
I
10.1& I---- -- f-··-·-·----- f - I- - - -
II
10.2 I---+----+---f~__I~~~~
10.0 I J I •
2.6 2.8 3.0 3.2 3.1& 3.6
Fig. 7. Finite Element Mesh Plotted to Analyze Stress in Region of Fillet
Weld Joint.
__ ~IIVW'W
la, a,VY
~ ~if~
! .~ I •. I '! • " I
1--".
' il
-
It 't· . • ~I"
H- ~t l ,Ji!-'- , : 1•. 1 .;.• ; !t: h Iti! If-O.'" I'"
, it
• t . !
i .
.
:' t:ti til! Uti H,. HH ffli Ffft rtrt "iH ~tH"t IRP itt1 !OH' 1'. . '"1
oao • • • • •
~::1:t.;
..... ... i lli100 ...00 im ~;
~.. IE ~'Ffffi :-~;
.., tm
.'. lli! .......:.:;:_.. : " .::.....~HE l~ '1
Li I I 'I ',0"
!! II ...
' I'
!II
• i· I ~j" II r-tl ,II 'Ii, .•• , 'I." H· I ., .
, 'I:. ,"
~lllll .' .:t i ::' :! aU. nit 4!~ U:l-! Hf.!. : 1 :!. n:. ;:!i :: r; ,t % -n .,. i : Ii:
,~ ,
~, '
" ~.
.
. .-.~ ~i: ful f:Y: gg Hn itH Ig: ii:.: . ..... ..
II .. !•
:=$ - . -- ..
,,, , .. ". ,
., . ."
It :1: i pt l J ' f 1., ~,. I I ! .... t I I • t 111 I~'" -, ..
",I il ' HI
·1 !'!'I : .& ,~:~ i!'- i, =~ .. I; itt:. ~·ttttr:t
HI tii i ~! -
. :.i!! 1 * ·~h Ht .1.rt t·t 1 ~ 'H= HH
::r.; , I.
[lli HlJ Uti :::: :~;"'~.f.irf I; ; ; li::" _.. ............-
... >- • , ~ ..., a"" ... t .- .f'" "'~ ,.
!~
" ~ I., •
' 1'1 . . ..
~ I .
~ I' ...... !UI n II'" !U!
f ' ... ; I
::.1 ~~ .... tr; ":t ..
.... , ~;
..;...
L L!. t! !
II
"
I ..
'" II l~' t
! . H+f tit ... ~ flir'-
1+H: :.'::H tL:'~
- -- H
Fig. 8. Spectral Flux Density Histogram from Molten Salt Reactor Proto-
type Operation.
ORNL- DWG 68-9668
ROD POSITION
:'\\,
:
...............
-.
..
,
."
....
• <
(f)
t-
Z
:::J
>-
a::
/ ...._'\
oCt
a::
t-
iD
a::
oCt
V \}
PRBS FLUX- DEMAND
ROD POSITION
: l-
."- .h.
: \, Wo'o'"
V\
• 0. . . .
\... ..,......
....".," i
-,<
.;
I
'
......
i/
\.J
,r-\LUX ;--...
i '--' \
V
r--\.\J
::
PH OTO 88547
ORIC FACILITY
EDIATE ANALYSIS 1t " '_ : _ _. . . . .
BUILDING 6000
AND
I CooRQINATING
I
I COMPUTER
I
I
----------------------------1
ORELA FACILITY I
BUILDING 6010 0/70»777. 1 I
I
,,
: CENTRAL COMPUTING
_________ -! BUILDING 4500
CRT I
-10 in.1I10 In, ,, ___ ______ , _'" I
I ~-----------
I ---------------------
LIGHT PEN I Y-t2 PLANT
I
I
I
I
I
CI1
'-l
.....
Fig. 11. Diagram of an Immediate Analysis Graphic Display Telecommuni-
cations System.
- AEC Regulatory EftluaUons
-ORNL Nuel.. , s.tety Stud
-ORNL NSIC Reterencu
-ORN L Reaclo, S....a.rds
~
(3) Data Formatting
tor Computer
I-'
-...::J
Assistance in obtaining illustrations for use with this paper was re-
ceived from the following individuals: W. G. Dodge, J. R. Engle, A. J.
Frankel and J. W. Woody of the Oak Ridge National Laboratory; G. J. Farris
of the UCCND Computing Technology Center, and Prof. R. W. Maxwell of the
University of Tennessee.
References
7. Paul Rubel, Survey of Cathode Ray Tube (CRT) Terminals for Remote
Output of CHORD-S Information, USAEC Report ORNL-TM-3456, Oak Ridge
National Laboratory, December 1968.
573
A LABORATORY FOR INTERACTIVE
PROGRAMMING, PROCESSING, AND
DISPLAY IN SPACE SCIENCE
INTRODUCTION
The transition begins the moment the vehicle leaves the launch pad. To that point
equipment malfunctions could have been fixed and the unexpected coped with by modifi-
cations to the hardware. Beyond that point any anomalous behavior must be handled by
software, and change will necessitate change. In order to aid the experimenter in this
transition, NASA, Goddard Space Flight Center developed the Data Reduction Laboratory.
The best functional description of the Laboratory is that it is a facility in which the
user, through interaction with a computer/cathode ray tube terminal system, can, in a
minimum of time and with a minimum of effort, develop unique programs, process, and
display data. There are many key words in this description, but the one that is most
important is 'user'. The Laboratory, in hardware, software, and operation was designed
around the user. He is normally a scientist, not a programmer, and this distinction
connotes both assets and liabilities. He, better than anyone else, knows and understands
the operation of his experiment, the method in which it handles the data, and the phenom-
ena under observation; he usually has some definite ideas on how the data should be
577
processed and displayed for analysis. On the other hand, he often has little or no know
ledge of the mode or format of the data. The output from his experiment has been
multiplexed with information from other experiments on board, as well as with space-
craft engineering data, and telemetered to ground receiving stations. This telemetry
as seen by the Laboratory, could be in a variety of modes: possibly a continuous bit
stream arriving in 'real time', or it could reside on analog or digital magnetic tape;
the experimenter does not know, does not want to know, and, as will be seen later, does
not need to know. In addition, although he may have a general idea of the form in which
he would like to see his data presented, he normally would not know how to go about
doing it.
Another factor in the design of the Laboratory was that the average experimenter is no
directly associated with NASA. When he arrives at Goddard Space Flight Center for hi
first look at the post launch data from his experiment, it may well be the first time he
has seen the Laboratory. Yet, he must be able to use what is available to him for his
analysis, and use it easily, with a minimum of instruction.
THE LABORATORY
The heart of the system lies in the software. It was designed so that the Labora-
tory would be looked upon and used as a tool rather than as some programmable com-
plex of machines that might tend to repel the scientist instead of attract him. To be
sure, individual programs are developed, compiled, and executed; but the entire proces
can be accomplished through one interactive, conversational session at the CRTs.
Any computer program can be separated into two main phases: development and
execution. Each of these, in turn, can usually be further subdivided into three com-
ponents: input, processing, and output. This holds true as well in the Data Reduction
Laboratory. Programs are compiled after a conversational DIALOG and SYNTAX
between the 1108 and the user (2). This activity is performed utilizing only the alpha-
numeric CRTs. The software has been designed so that the user is required to respOI
only in those areas in which he possesses some knowledge. Any processing or compu-
578
tation performed on the data is normally unique to an experiment and must be accomp-
lished through SYNTAX. Here, the user has the initiative and the computer responds.
,--------- - -----------,
I
I
5 FH 432 I
DRUMS
I 1108 CPU - INPUT OUTPUT - 1108 CPU I
I CONTROLLER
I
I I
2 FH 1782 I I
DRUMS I I
I
64 K CORE f----- 64 K CORE I
64 K CORE ~
2 FASTRAND I
DRUMS I
2 CARD READER/
PUNCH UN1TS
Figure 1
In DIALOG the situation is reversed: the computer has the initiative and the user
responds. The type and format of the output be it graphical or printed is completely
defined by the user through DIALOG. The input, on the other hand, is common to all
experiments aboard a spacecraft; it is the area least understood by the scientist and,
as far as he is concerned, is handled automatically.
After a program has been developed by a user and stored on the library (tape),
it can be accessed, updated, modified, or executed at any time from the alphanumeric
eRTs. It is during execution that the IDIIOMs are brought into play. The user, throug
the use of the light pen and the function keys, selects the data to be displayed as well
579
as the time period over which to display it. He can at any time receive a hardcopy of
the display on the IDIIOM by simply pressing a button. When he leaves his station he
has the option of not only carrying away with him the data he has processed, but a
listing of the processor as well.
us STATION
.- .......__ ....
.... ......
Figure 2
PROGRAM DEVELOPMENT
As mentioned, there are three areas that must be defined to create a program or
process: the input, the processing and computation to be performed upon the data, and
the output. The input is defined through SYNTAX by an individual other than the scien·
tific user, but for common use by all users. The processing phase is designed by eacl
scientific user through SYNTAX; the output is specified by each user through DIALOG.
Before proceeding further, there are two items that should be defined.
THE DATA. Although the input can be completely general, there are two main
types of data commonly merged and processed in the LaBoratory: telemetry and
580
orbit. Telemetry, or the information received from the spacecraft, can be thought
of as being digital, fixed point, and having a heirarchy: 'bits', 'channels', 'frames', and
·sequences'. Each experiment is assigned a number of channels for it's information.
Each channel contains a fixed number of bits; there is some specified number of chan-
nels to a frame and a specified number of frames to a sequence. Data appearing once
per frame is referred to as being 'commutated'. Data appearing more than once a
frame is called 'super-commutated'; data appearing less than once a frame is re-
ferred to as being 'sub-commutated'. Orbital data contains information as to the posi-
tion and velocity of the spacecraft, and is expressed in geodetic, geocentric, and geo-
magnetic coordinates. Latitude, longitude, and height are three parameters of constant
interest. This data is in floating point and is necessary in correlating and analyzing
the telemetry. The one parameter contained in both data sets and essential for any
correlation is Greenwich Mean Time.
There exists a total of twenty possible keywords carefully chosen for the scientific
user. One keyword, USE, can perform quite different functions depending upon the
manner in which it is applied. It can be used to define input data or it can cause
separate programs to be linked together. An example of this will be gi ven later.
Four keywords are reserved for input; the remaining fifteen are:
581
ELSE: where to go if TEST fails
THEN: the point at which all statements resume after TEST
SELECT: addresses data words from some input source
SIZE: resultant block of words
SYNC: synchronizes data blocks
START: beginning of a loop
CYCLE: end of a loop
OUTPUT: specify mode of output
FIN!: always last statement
INPUT. The first image a user sees and must respond to whenever he activates
one of the Sanders CRTs is as follows:
In the case of input definition, someone, other than the experimenter, who has a
w0rking knowledge of the input data would type a '3': CREATE A DATA REDUCTION
582
PROCESS. The 1108 would acknowledge this request and start an activity calledCLC
(Conversational Language Control). The CRT would be placed into the SYNTAX mode
and the format of the scope image would change from a fill-in-the-blank type as in the
START DIALOG node to a sketchpad for type-in and display of 'free form' statements.
In the definition of input any keyword can be used; five, however, are unique:
ASSIGN: used by DIALOG for tape assignments at execution time.
INPUT: reads the data and blocks it in memory.
USE: describes the spacecraft telemetry as it exists within the computer.
DEFINE: gives global tags to data so that it can be referenced by other users.
SUB COM : indicates which telemetry channels are subcommutated.
The first statement in any process is a GROUP statement, which tags the process
so that it can be singularly referenced. The last statement in a process is FINI, to
which the computer responds by compiling all previous statements and returning to
the DIALOG mode. An input process so defined would be placed in the library for
future reference.
When Error = 1, the data from channels 42 and 43 is to be ignored. When Gain = 1,
the data in channels 42 and 43 is be multiplied by 8. Channel 44 is used in the compu-
583
tation of range, R, as follows: R = (M+32) 2N - 32. Let us further assume that the input
process has been previously defined by a GROUP called READ (i.e. GROUP: READ:)
in which Greenwich Mean Time was defined to be the global variable GMT by a DEFINE
statement. READ had, in turn, referenced ORBIT, another input process for orbital
data in which latitude had been defined to be the global variable LAT.
SAMPLE SOLUTION:
GROUP: EXP06:
USE (READ)::
TEST (ERROR): 43(1-1).EQ.'O':
HOLD (DELTAE): (42(1-1)*'7'+'1')*42(9-2):
HOLD (EDELE): (42(1-1)*'7'+'1')*43(9-2):
THEN (ERROR)::
HOLD (R): (44(9-5)+'32')*'2' **44(4-1)-'32':
OUTPUT: P:
OUTPUT: CRT:
FINI::
In the preceding example DELTAE, EDELE, and R are variables available for
output as are the global variables LAT and GMT. The keyword USE, followed immedi-
ately by two colons, causes the process defined by READ to be linked with that of
EXP06. If during the SYNTAX mode the computer detects an error, the user is
presented with a diagnostic and an arrow indicating where in the statement it occurred.
He then has the opportunity to correct the error immediately and continue. After FIN!
is sent to, and acknowledged by, the computer, the user is returned to DIALOG to
select and define the type of output he desires (both printed listings and plots in this
case).
OUTPUT. The first node the user must respond to after the completion of his
SYNTAX asks whether the output is to be on the printer, on an IDIIOM CRT, or on a
combination of both. If the data is to be printed (OUTPUT: P:), the user enters a
series of DIALOG nodes in which his responses will determine what information is to
be printed, and how it is to be printed: format, spacing, titling, etc .. Depending upon
the information content and format desired, considerable time (in the order of half an
hour) could be spent by the user answering the questions posed to him. To produce
plots on the IDIIOMs (OUTPUT: CRT:), however, the DIALOG the user must respond
to is quite short.
584
.P02
SELECT THE TYPE OF PLOT YOU DESIRE •
1. LINEAR
2. SEMI-LOGARITHMIC
3. 3-DIMENSIONAL
4. POLAR
Assume the user selected 1, a linear plot; the next image he would respond
to would be:
.LINP01
A. WHICH FUNCTION KEY DO YOU WISH TO ASSOCIATE WITH THIS
PLOT (1 - 32)?
B. DOES THE X AXIS (ABSCISSA) REPRESENT TIME?
IF YOUR RESPONSE IS YES, ANSWER C AND SKIP D;
OTHERWISE ANSWER BOTH C AND D.
C. IF YOU HAVE DEFINED TIME, INDICATE THE VARIABLE NAME
CONTAINING THE VALUES OF TIME AND ALSO THE TIME SPAN
(IN SECONDS)
VARIABLE NAME
TIME SPAN
D. IF THE X AXIS REPRESENTS SOME ARBITRARY VARIABLE,
COMPLETE THE FOLLOWING:
VARIABLE NAME
X MIN (FIXED PT.) _____ _
585
X MAX (FIXED PT.) _____ _
.LIN02
.LINP03
586
B. TYPE IN A LABEL FOR THE X AXIS (ABSCISSA)
____________ IL~~_LQ~IL ____________ _
1. DE LTA E
2. LATITUDE
The response YES to part D would return the user to the image where he may again
select the type of plot. When he has completed the output DIALOG, the user is given
the option of storing his program on the library for future reference or defining his
program as temporary and executing immediately.
PROGRAM EXECUTION
Assuming a user has a program residing in the library and he wishes to use it
to process and display his data he must perform only two basic actions. First, prior
to execution, he must enter into and complete an input DIALOG; second, during
execution, he must select the data he wishes to view on the CRT.
INPUT. Again, as whenever a user begins any activity in the laboratory, the first
image on the Sanders 720 that must be completed is the START DIALOG node. A re-
sponse of '5', ENTER INPUT DIALOG, will enable the user to specify the data he would
like processed. The user first selects from the library those processors that are to
operate on the data. In the example that has been given, the user has defined his pro-
gram with the label EXP06. This program used a GROUP called READ which in turn,
used another called ORBIT. He, therefore, would select all three from the library.
Since READ and ORBIT reference two separate input data sources, the user would
be asked to specify each by responding to a fill-in-the blanks type question. The re-
sponse would, in the case of tape, cause tapes to be mounted, channels assigned,
parity and density selected. When execution has actually begun, the user is informed
by a message on the alphanumeric CRT. This message, which is updated on a regular
time basis specified by the user performs two functions: (a) it keeps the user informed
as to how his input processing is progressing on the 1108; (b) it enables the user to
initiate requests to the 1108. When sufficient data is available for display, the user is
587
notified by a message on the IDIIOM that he may begin plot selection. He is also re-
minded at this time as to the type of plot each function key represents.
OUTPUT. The depression of function key #1 on the IDIIOM would produce the pl(
as defined in our example of output DIALOG and shown in Figure 3. This figure also
portrays some of the hardware features of the display: the Y axis labeling has been
rotated 90 degrees; three (of the four) character sizes are shown; the intensity used
to display the two curves is not the same as that used to display the characters.
If the user were to depress function key #1 a second time he would receive a
similar plot, but covering the time period (in day, hour, minute, and second) from
104 19 23 03 to 104 19 33 03. Depression of another key would produce a different
plot if one had been so defined through DIALOG. The limiting factor in the number
of types of displays that can be produced is the number of function keys per IDIIOM .
thirty two. A dry, permanent 8 1/2 by 11 inch hardcopy of the display is available to
588
the user at any time by depression of a 'copy' switch which activates the hardcopy
processor. Since three IDIIOMs can be in use simultaneously and since there is only
one hardcopy processor, a user may have to wait between eight and sixteen seconds
before being serviced.
The processing of the data, the conversion for display on the IDIIOM, and the display
program itself are activities performed within the 1108. Both the program to display
the data and the data to be displayed are sent from there through the interface to the
individual user station. This is not to say that everything is done within the Multi-
processor. The Varian 620i s, although they must store each program and data set
(1500 to 2500 words of the 4000 word core) perform such functions as:
(a) handling the user generated requests for data and the 1108/IDIIOM
input-output requests;
(b) manipulating the data set as presented on the IDIIOM.
This latter function consists of light pen initiated activities which enable the user
to do such things as:
(a) obtain exact coordinate values for any data point;
(b) rotate, in the case of the 3-dimensional plot, the display about the Z
axis until the data presented is in the best viewing aspect for analysis.
Although it may seem contradictory, the Laboratory is not limited to use by three
users even though three users may be viewing their data on the IDIIOMs at the same
time. The reason for this is that program execution can be initiated from only one
Sanders CRT at a time, although the output may be going to all three IDIIOMs. This
leaves two stations available for some combination of either program development
or execution if the printer should happen to be the output medium.
Therefore, although the Laboratory has but three User Stations, it is possible
to accommodate far more than three users at the same time. This is done by time
sharing the system, the one restriction be.ing that no more than three independent
activities can be operating concurrently.
OTHER DEVELOPMENTS
As more experience is gained with different types of experiments, presentations,
and analyses of data, the library of functions available to the user will continue to
expand. Refinements are being made to the DIALOG, SYNTAX, and display capabili-
589
ties to more closely approximate the needs of the experimenters as they, in turn,
become more familiar with the system.
Program generation, execution, and data transmission to and from remote sites
is an area that is being investigated with the cooperation of the University of Chicago.
Here, an SDS 930 computer located at the University can be connected over a telephone
circuit to a User Station (Le. the Varian 620i). The 620i in this case acts as a buffer
between the 1108 and the 930 and handles all I/O between them. The only difference
between a remote user and one physically located in the Laboratory is that in the
latter case the data is formatted within the 1108 for plotting on the IDIIOM CRT;
whereas in the former case the data is simply sent directly to the 620i which, in
turn, outputs it over a telephone circuit. Future expansion in this direction will
allow scientists to have direct and rapid access to the Laboratory (and their data)
without ever having to leave their own laboratories.
590
SUMMARY
ACKNOWLEDGMENT
REFERENCES
591
PART 7
Pattern Recognition
Developments
DESIGN OF AN EXPERIMENTAL LABORATORY
FOR PATTERN RECOGNITION AND SIGNAL
PROCESSING
I INTRODUCTION
595
of real-time computer control. Other drawbacks were a lack of convenient
control of the scanning format, and imprecision in the analog video signal.
When, for example, the system was used to scan organic chemical formulae or
gray-tone photographs elaborate trickery was needed to subvert the normal
character-oriented scanning format.
A. Man/Machine Interaction
596
the bandwidth of the fastest image input systems but reasonable throughput
combined with good measuring accuracy in the video channel can be attained
in CRT systems with direct computer control of spot location. In addition,
the logical power of the on-line digital computer may be put to good use in
controlling the input format. For example, only those points required by
the program may be scanned and not the entire input field. A heavy emphasis
on programmability and the concomitant flexibility can be used to offset the
large initial investment.
C. Satellite Computing
II SYSTEM ORGANIZATION
The particular machine chosen here was the IBM 1800 Process Controller,
with the features shown in Figure 2, the main points being the 32K 2~s
memory, 64 channels of analog input via a multiplexer and an A/D converter
with sample and hold, 16 channels of analog output, extensive digital I/O
and 12 priority interrupt levels.
597
scanner
Processor display
or other input
taoe or disc
hard copy
(0)
Display
Light pen
...
.: .... Input
Scanner
j~
•
~ Input
,r Tablet
~
~
COMPUTER
-
I/o
j~
"
•• I...- Dataphone
Hard copy
"-- I/O
Satellite Analog Tapes
computer
( b)
Figure 1 Two possible organizations: (a) a production system
with all units off-line, (b) an on-line research
oriented facility
598
III HARDWARE DESCRIPTION
9 TRACK
60KC
BYTE RATE
800 BPI '---+----'
ONLY
2-1816
TYPE- '----y----' ANALOG
WRITER INPUT
KEYBOARDS CPU MEMORY
64
(ADD- 32K PTS.
PROCESS TIME
INTERRUPT 41/2f./.SEC)
12 LEVELS
48 BITS
26GROUPS
(416 BITS)
LIGHT
PEN
DISPLAY BUFFER
STORE
8 PTS.
-10 TO + 10 VOLTS
KEYBOARD
599
Figure 3 OVerall view of the opaque document .canner. The
CRT is IDOWlted horizontally. The houaing. of the
document PMTS can be aeen.
600
Figure 4 Film path in 35 mm film scanner; the video channel
PMT and condensing lens are visible.
601
1. Scanners
the 1800 digital to analog converter speed of 10~s for full scale deflection
change (corner to corner of the raster). Each deflection amplifier is
driven from two 1800 digital to analog converters (DACs) allowing relative
addressing in a 10 : I ratio and giving 16000 addressable but not resolvable)
points in each direction. Litton Industries' deflection amplifier and
dynamic focus units were employed to drive the Celco deflection coils.
Hardware pincushion correction with commercial units is now being installed.
The CRT spot is imaged at 3.5:1 magnification on to the opaque document
and the video measuring circuits comprise three reference photomultiplier
tubes and eight document reflectivity tubes. The match between CRT and PMT
spectral responses is .86. The photon count is sufficient for 100 gray
levels (15).
2. Displays
'I'he main display in the system was constructed around a 23" domestic
tv tube coated with a P37 phosphor which has a single exponential lag
response. This phosphor was chosen to match a particular display technique
to be described subsequently. The display may be driven from a video signal
derived from either scanner or from signals derived from the 1800 computer,
in analog or in binary form at the option of the programmer (Figure 5). Gray
level is controlled by means of brightness and contrast control signals
derived from DACs. The display unit itself contains no memory, and must be
refreshed from either main core storage, the scanners, or an auxiliary
buffer store. The economies inherent in the use of the image itself
(document or film) as a store cannot be over emphasized.
The IBM 2250, a vector display with light pen, function keys and key-
board, is a commercial product, and has been. described. extensively.
3. Input Tablet
The input tablet is 10" square with 1024 x 1024 resolution and is
transluscent allowing rear screen projection by means of a 35 rom slide
projector built into the console base. The pen coordinates are presented
to the 1800 via two words of digital input. The deflection sensitivity of
602
CONTROL
DOCUMENT VIDEO
(!) NEGATIVE
0 DOCUMENT VIDEO
...J
«
z FILM VIDEO ANALOG
« NEGATIVE MULTI- UNBLANK
FILM VIDEO PLEXER
BRIGHTNESS
FROM 1800
CONTRAST
FROM 1800
the scanners was scaled to bring the scanner and tablet coordinates into
correspondence.
4. Binary Correlator
5. Buffer Storage
A magnetic core storage unit (see Reference (10)) with 16K words of
36 bits each is connected to the auxiliary data channel, and is used as
an extension of regular core for data (no programs). A 15 me A/D converter
is multiplexed directly into the buffer for experiments on high frequency
signals. Provision was also made to use the buffer to refresh a television
display system with flicker free gray scale images. This display system has
been designed and is under construction.
6. Auxiliary Channel
IV SCANNER CONTROL
1. Scanning Mode
603
interface design, deflection driver, frequency response, the video signal
amplitude and the effective scanning aperture. The scanning mode chosen may
be described as a "defle(:t and dwell" scan. In this mode, the deflection
fields necessary for reading a specified location in the image field are
established while the beam is blanked. The beam is unblanked when the deflec-
tion field has stabilized. The unblanked beam then illuminates the document,
measuring reflectivity with the spot stationary. The scanner is then
blanked and a new point is measured. The beam thus "deflects" and "dwells"
for the measuring cycle.
BINARY CORRELATOR
8 BIT COUNTERS
Figure 6 Block diagram of the binary correlator. The counters
are read by the channel at the end of all shifts.
The 40 taps are selected by wiring on interchangeable
cards_
604
The system was thus designed to allow scanning in any mode from high
quality gray scale to lower quality fast binary scanning.
2. Phosphor Correction
TABLE 1
Speed Limitations
Programmable Bounds on
Deflection Time min 11Js max 5ll~s
Programmable Bounds on
Exposure Time min l~s max 511~s
Programmable Bounds on
Display Time min l~s max l5~s
predetermined number of photons will have been used in the measurement and
the integrators are put into a "hold" mode: the video integrator then
contains an integrated signal proportional to the reflected photons, thus
605
TABLE 2
Scan Parameters
Typical Value
DB Brightness of display
OV = black 10 V
10V = white
Bit No.
1 DAO Active
2 AI Active
3 DI Active
4 Display Active
606
5 Slave Display
6 Analog Display
7 Complement Display
9 Blank Scanner
10 Inhibit Hold
NON UNIFORM
PHOSPHOR DOCUMENT
EMISSION
GRID
UNBLANKI
BLANK
BEAM --- PHOTO-
MULTIPLIERS
VIDEO
ANALOG
INPUT
EXPOSURE 1800
COMPLETE '---------' COMPUTER
The interface, Figure 8, which controls the I/O, consists of two parts
(a) an analog portion containing integrators and signal conditioning circuits
607
TABLE 3
System Programs
Scanner Subroutines
608
TABLE 3
(continued)
Display Subroutines
Utility Subroutines
for scanners and displays, communicating with (b) a digital portion which
synchronizes the 1800 data channels with the scanners, displays and other
I/O. The analog portion of the interface uses IGFET technology for the
high speed analog switching and integration circuits; the digital interface
is constructed of. 30 ns logic circuit card~ and operates asynchronously.
609
In scanning, the digital interface is loaded with a set of control para-
meters which specify the scanning mode and with a set of data words which
specify quality and speed. The control parameters are incorporated into a
scan control word which is shown in Table 2. The transition from a Zero to a
One in the DAO 9~tive bit resets the interface and starts the scan process.
V. PROGRAMMING
After adjustment of the scanners with SCADS, the operator can transfer
control to raster scanning programs which record on tapes or disk; or to
his own program, which he can write in Fortran. All special devices are
accessible to the Fortran programmer by a set of subroutines, (see Table
3). Where data channel operations are involved (explained below) the
device subroutines assume that the data tables have already been prepared .
by the main program. In addition to performing the desired I/O operation,
these routines must service all interrupts and error conditions that may
arise. The resulting set of subroutines have convenient calling sequences
610
and do not take excessive execution time (e.g. less than 500 ~sec to
establish an analog output data channel operation).
The problems of scanning and display are very closely related, the
difference being in the functioning of the video channel and in require-
ments for display refreshing. The same deflection voltage drives the
chosen scanner and display; thus deflecting successively through a list of
coordinates automatically gives a dot display. The list may be chained
to itself to sustain the display under channel control. These displays can
have gray-tone values by manipulating the Display Brightness appropriately
(see Fig. 6).
611
PARAMETER
REGISTERS
I. EXPOSURE
TIME
2. NUMBER OF I IBOO COMPUTER
J
DAO WORDS
3.NUMBER OF
AI WORDS
,.... BINARY
VIDEO
I SPOT SIZE
DESIRED EXPOSURE
4. NUMBER OF THRESHOLD
01 WORDS
5. SCAN CONTROL
WORD
6. DEFLECTION CONTROL
SETTLING TIME EXPOSURE COMP.
BINARY VIDEO
DIGITAL ANALOG
ANALOG VIDEO
INTERFACE INTERFACE
REF. VIDEO
DISPLAY VIDEO
SIGNAL
DOCUMENT 4 - -:
REF. VIDEO
I VIDEO SIGNAL
UNBLANK UNBLANK
--:SPOT SIZE
1
DISPLAY SCANNER
DEFLECTIONS
612
BLANK BEAM
UNBLANK BEAM & HOLD UNBLANK DISPLAY RESET
) lH'JBLAN~:
DT times oui
either enough sample and hold establish deflectior's
video signal or am'1lifier has for next 01. \
guard timer settled I
times out
~_ _ _- - l -_ _ _ _ _ _- , - - _ - - - , -_ _ _ _"_ _ _ 1~,~
'
___--+
VIDEO SIGNAL
hold establish
new deflec tions I
I
w:::..._ _ _ _ _.....L..._ _ _ _ _ _ _ _ _.....I.._ _ _ _ _ _ _ ._~~_+
I //
ET
'"'¥
or enough video
To resolve this, the video from the fine grid can be read into the
computer and sent out on the auxiliary data channel with deflec:tions gi,,·jmj
a selected magnification (1 to 10 times). This requires careful mode
switching; one frame is a normal scan showing the entire field, while
simultaneously the tablet pen coordinates are read and smoothed. The
next frame is a scan of the fine grid, acquiring the binary Video, and
also showing it, one-to-one on the monitor ("slave-mode" video). 'The
third frame consists of the same video sent out from the 18rjO with a
magnified deflection table ("1800-generated" video). The scanner must
be blanked to avoid interference. The sequence is then repeated to give
a continuous effect. Each frame uses a completely different data flow
as shown in Figure 12, illustrating how the system can be dynamically
reconfigured. A time exposure, Figure 13, approximates the effect.
613
A keyboard routine allows setting of parameters through a set of
mnemonics (PARAM, Table 3). This is convenient for repeating a precise
set of conditions, however, keyboard use is rather slow. Continuous
4 63 •
(II I I I I I I
_l
: - -J
: 64
VI. APPLICATIONS
1. Text Reading
614
615
ments and methods will be described elsewhere in detail; our motive here
is to show how the system organization facilitat~ experimentation and
allows entire applications systems to be "breadboarded".
Tablet Scanner
READ TABLET
COARSE SCAN
Monitor
(0 )
Scanner
Deflections
DAO r----t'L-,-.--J
(b)
Deflections
1800 DAO~---~I
MAGNIFIED REDISPLAY
(c)
Figure 12 In the scan/redisplay mode, (a) the tablet coordinates
are read while the monitor shows a coarse scan of
the document; (b) the video is acquired by the 1800
from a fine scan at the pen coordinates; (c) with
the scanner blanked, the video is fed-back to the
display with a different set of deflections.
616
have been modularized in our character scanning program. The investigator
can use the prepackaged routines (which are conventional in approach) or
substitute any of his own algorithms for experimentation.
2. Image Processing
617
Figure 13 A fingerprint being scanned in the scan/redisplay
mode. The contents of the bright subraster, which
tracks the pen position, are magnified and redis-
played to the upper left.
618
en
~
Figure 14 Character recognition pre-editing using the 2250.
-
Upper line is scanned video analyzed into vectors.
Lower line contains operator entered identification.
Recognition results can also be displayed.
~
I.
I • ••
I I
,
I I
••~.
•
,
•
~. .. I•
'~.~
••
•• •
=.
.. .
I
I '
I.
I
• I
• I ' "
• ..-=- •
ORIGINAL IMAGE AMPLITUDE
SPECTRUM
-.-.-.-~:;:-.
•
.:.:.:.~: •
.... ...'.:
:.:::.:..
1-. ......
.:.:.
;:.~~
rs,•••~
:~-~~ ..._-
R-16 R-32 R-6 R-128
IDEAL WW PASS FILTERED IMAGES
Figure 15 Ideal low pass filtered checkerboard of 256 x 256
bit resolution with 8 bit gray scale used as a test
pattern. The amplitude spectrum is a regular array
of delta functions. The parameter R is the radius
of the isotropic filter. The effects of sinusoidal
interpolation are seen in the lower pictures. The
photos were produced using the Polaroid attachment
to the film scanner.
transferred to the filtering program and the results will be transferred
back to the 1800 and held in buffer store. A portion of the image can be
observed with the pseudorandom display system, but the only method of
viewing the entire image at this time is to make a photographic print. A
flicker-free tv display refreshed directly from the core buffer is currently
under construction, and will allow direct high quality viewing of the image.
~ilter input, region selection and parameter control will be accomplished
through the tablet and the keyboard.
Images presently are stored in the 2314 disc storage units of the
Model 91. Output to photographic prints, which is fairly time consuming,
can proceed in the background on both the Model 91 and the 1800 as only
one line at a time need be transmitted.
3. Signal Processing
4. Other Applications
The system has also been used extensively for many other applications
including line drawing (Figure 17) and map analysis, chromosome analysis
(Figure 18), and studies of x-ray movies. The tablet has been applied
to digitizing curves and manual entry of fingerprint characterisitics.
The displays have been used for data reduction by a solid state physicist
taking data on another 1800, for cluster display of multidimensional data
from a variety of sources, for experimental text. editing, and psychological
testing of visual perception (14). Even though flexibility was a primary
design aim, the ease with which the system has been applicable to these
many diverse problems have been gratifying.
621
Figure 16 Pairs of electrocardiagram signals. The upper trace of
each pair is the input data as recorded on analog
magnetic tape. The lower is the output of a program
to select arrythmias at eight times real time. Filter
parameters can be manipulated experimentally.
622
I
623
Figure 18 Chromosome analysis experiment. From the 35 rom film
scanner, the binary video is analyzed into vectors
for the 2250 display. Here the counting program
indicates 46 chromosomes, 1 cell body, and 1 noise
pattern. Scanning and analysis take 3 seconds at
256 x 256 resolution.
624
VII. CONCLUSION
ACKNOWLEDGEMENTS
625
REFERENCES
(1) R. J. Potter, "An Optical Character Scanner", SPIE J., vol 2, p. 75,1964.
626
Displays as a Function of Scan Order and Phosphor Persistence",
Human Factors, (in press).
(15) P. M. Will, "Flying Spot Scanner Control and Video Processing Circuits",
IBM Research Report (in press) •
627
DISPLAY ASSISTED DESIGN OF
SEQUENTIAL DECISION LOGIC FOR
PATTERN RECOGNITION
D. A. Bell
I ntr od uc t io n
The des ign of a prac tical mac hine to read numerals,
handwritten in natural style, must satisfy these criteria:
a) It must be reasonably fast, an average tfi.('01Jghput
of 300 characters per second being required.
b) It must accept considerable variation in style
of writing, size and thickness of the characters.
c) It must be amenable to easy development in the
light of exper ience.
629
The Dec is ion System
Since the recognition process must be fairly rapid,
several lines of approach are ruled out from the start.
In particular, the accumulation of a large library of
styles of handwr itten characters is impractical unless a
very rapid searching technique is available, such as a
sophisticated content-addressible memory.
A sequential decision technique has been adopted,
in particular a binary tree of deciSions. It is not
strictly necessary to have a binary tree" but in the
des ign stages it reduces the number of paths to be
considered" sime there is a unique way from the root
to eac h leaf.
Each node takes a decision based on the answers to
various questions posed to the feature list. A question
might take the form: Are there any of the following
features in the lower right-hand part of the
character •••• A character J dropped in at the root of
the tree" will thus follow a path to a leaf" at which
point it will be recognized or rejected.
The design of such a deciSion tree requires the
use of a spec ial language, which may be imrementally
compiled" together with an appropriate data structure
and graphics cOrnIIentary fac ilit ies.
!he Tree Language
The definition of a binary tree structure is greatly
simplified if the nodes may be given meaningful names"
and the functions to be performed can be specified with
the minimum of fuss. A simple language for the purpose
has been developed which satisfies the following needs:
a Mnemonics for all functions and features
b User supplied node names
c Methods for defining arbitrarily complex decisions
d Means of accumulating performance details
e Completely patchable without recompilation
f Capable of complete back-compilation
Criterion a) naturally introduces the well-known
construction:
IF <condition> THEN <statement> ELSE <statement>
but criterion e) unfortunately eliminates any block
structure without great complication, and hence the
<statement> in the above must only be an implied goto
with a node name. Item c) provides for boolean procedures"
630
b) is a natural requirement, and f) provides both a
r~mning commentary and a means for retrieving a patched tree.
631
"
FIG. I
FIG. 2
632
undefined. Since I hae referred to F, a bin-head E has
been formed, with SIDE liet G and K. When N refers to
J another bin will be set up and strung on to E on the
BIN list. C contains a pOinter to L which will cause
control to pass to main block M.
Display Commentary
The original tree is designed with reference to the
typical characteristics of feature lists. These are
drawn, by graph plotter, in the manner shown in Fig. 1,
namely as symbols in their correct position and
orientation. The designer therefore has an idea of what
to expect when the tree is in operation. This is fed
back to him at run time by reproducing on the screen
the drawing of the feature set, and by moving a symbol
showing the point of attention of the tree on the
features. Normally a search area of rectangular or
sector shape is in operation, and this also appears on
the screen. Finally a running back-compilation of the
current statement is shown, to assist analysis. These
facilities are useful when a first attempt is made to
break in a new tree on a few characters, but for larger
volumes of traffic, the bin method is better. The
alphanumeric display shows the state of the bins on
demand, and by strategic positioning of the bins, the node
requiring immediate attention is pinpointed.
System Controller
The on-line teletype has proved to be the most
convenient control peripheral for nearly all of this
work, but a joystick, operating a cursor on the display
screen, has proved useful for communicating positional
information. The control system permits the bins to
be manipulated to concentrate attention on the problem
characters, by feeding a bin-ful into the tree until it
can be recognized. Likewise, statements in the tree
can be readily unplugged, flagged, replaced, inserted or
modified without upsetting the already developed parts of
the tree.
Conclusion
Early versions of the system, written in DAP-16
assembly code, have demonstrated that the system is viable
and that it is very difficult to design a good tree
without elaborate CAD techniques. The present verSion,
written in the high-level assembly language PL-516,
develops those techniques.
633
The work described above has been carried out at the
National Physical Laboratory.
Reference
[1J J. R. Parks: A Multilevel System of Analysis for Mixed
Font and Hand-blocked Printed Characters Recognition. in
Automatic Interpretation and Classification of Irnages:--
A. Grasselli (ed.) Academic Press (1969).
INTERACTIVE SIGNAL PROCESSING
R. A. Freedman
Control Data Corporation, Digigraphics System Division
Northwest Industrial Park, Third Avenue, Burlington,
Mass. 01804, U.S.A.
636
ing" as described in this paper is to provide the user with
a completely general purpose set of tools which he can apply
to a wide range of applications in digital signal processing,
and which allow him complete flexibility in which of these
tools he will apply, and which will give him instant response
as to the result of each experiment. This is accomplished
through the use of computer graphics CRT terminals driven
by a comprehensive set of programs in a large scale digital
computer. The CRT display is the key to this approach in
that it both presents the data in a meaningful way, such
that the user can grasp the implications of what he is doing
without having to pour over complicated printouts, and it
displays before him for instant use, all of the facilities of
the system. He is then free to exploreany avenue of interest
because he is not bound by any preprogrammed restrictions
as to what the system is supposed to do. In a well designed
computer graphics system, the man programs the computer, the
computer does not program the man.
This paper describes a system of programs specifically
designed to apply the techniques of interactive computer
graphics to the problems of digital signal processing.
Multiplication in the frequency domain is the principle
method of digital filtering used in the system thus far, and
therefor, the system relies heavily on the FFT algorithm
to maintain adequate response time in many of the operations
performed.
Since the principle application to which this system
has been put in the year that it has been operational, has
been the enhancement of photographic images. This applicati-
on is used as an example of one way thalt this system may be
used to simulate coherent optical signal processing.
Examples of image enhancement in the frequency domain are
discussed, and representative photographs are included.
Those aspects of the FFT algorithm that were important in
the implementation of this system are discussed and the
relationship of the FFT to the two-dimensional Fourier
transform is shown.
Computer Configuration:
This Interactive Signal Processing system was
developed by the author using the facilities of the
Digigraphic Systems Division of Control Data Corporation
at Burlington, Massachusetts. The computer configuration
consisted of a CDC 3300 computer Which is a 24 bit word-
length machine with a 1.25 usec. cycle time. the system
included 72K of core memory, 6 tape drives 2 disk drives
637
containing 5 million characters each, high speed line printer
, card reader and punch, Calcomp plotter, CDC Digividio
display, CDC Interactive display model 274-3344 Digigraph
with 8K of display buffer memory, and a CDC modea 278
high resolution jumping spot scanner.
The model 278 scanner was used to digitize photographs
for input to the sysltem, and the Digividio was used to
display the output pictures for photographing. The Digividio
is capable of displaying a 444 x 444 raster at 32 gray levels
at a rate of 30 times per second.
The MASTER Op'3rating System under which ISP operates
is a file oriented multiprogramming system which can run
up to 8 programs simultaneously. It has proved to be
effective in supporting interactive graphics, as the inter-
rupt handlers for graphics are embedded in the operating
system and are transparent to the user. This allows the
system to provide adequate response t:Lme to the graphics
user when he needs it, while automatically freeing up core
for background jobs when he is thinking.
Program Organization:
The Interactive Signal Proeessing programs are
written primarily in Fortran with certain critical parts in
Assembly language. The system consists of a series of tasks
that are called into execution by picking light buttons on
the CRT display with a light pen. The system operates
under the CDC ~~STER operating system and may be multiprogra-
mmed with other graphics or batch jobs.
The structure of the programs is such that the graphics
system appears to the user to be an array computer which
manipUlates arrays of complex floating numbers, or which
manipUlates two-dimensional real arrays, ie. pictures.
The computer operates in two modes, the one-dimensional mode
(I-D), and the tWO-dimensional mode (2-D).
The one-dimensional mode uses eight registers of
which six may be referenced v~a the display. Each register
is an array of variable legnth, usually a multiple of 2,
ie. 8,16, ••• 128,256, floating numbers. For operations
dealing with complex numbers, the registers are used in pairs
with the odd numbered registers representing the real pa.rt
and the even ones representing the imaginary part. If it
is desired to dear only with real data, then either may be
used. These registers are the operands of the array computer
and may be loaded from or stored into the data base on the
disk. They are the source and destination of data for the
instructions of the simulated array computer.
638
The set. of instructions for the array computer is the
list of signal processing and arithmetic functions available
to the system. For example, execution of the cross-correla-
tion function woud take the cont~nts of register 5, cross-
correlate it with the contents of register J, and deposit
the result in array register 1.
The list of functions implemented up to this time
are as follows, for the I-D mode.
NULL OP8RATCR AUTC-CORR8LATE
FAST FOURIER CROSS-CORRELATE
INVERSE FOURIER LONG CONVOLVE
TIME TO COS~SIN CONVOLVE
COS-SIN TO TIME DECONVOLVE
TIME TO POWER-PHASE TIME SHIFT
POWER-PHASE TO TIME NORMALIZE
INTEGRATE DIFFERENTIATE
LOG ANTILOG
By combinlng these and the arithmetic functions, a host of
other functions may be implemented.
The two-dimensional mode provides the means for
interactively displaying two-dimentional images. The data-
base holds several pictures, the exact number depending on
their size. Each picture is identified by its position on
the file. The operator specifies the source, modifier and
destination pictures for each instruction to be executed.
For example, one might want the product of pictures 1 and 4
and put the result into picture 2. The source would be 1,
the modifier 4, and the destination would be 2. Each
picture consists of N records of M samples each where each
sample or pell (picture cell) is a 48 bit floating number.
N is usually but not necessarily a multiple of 128 records,
and M must be a multiple of 128 floating numbers which is
the size of the block legnth of the disk file. Array legnths
which are multiples of powers of 2 are necessary because of
mechanism by which the FFT algorithm operates. A picture
then, is a rectngular array of pels which is a multiple of
128 pels on a side. A typical picture might be a 256 x 256
matrix, or a 128 x 256 matrix if disired. Local operations
may be performed on pictures by using the facilitis of the
l-D mode on individual records of a picture on thedisk.
The 2-D mode is organized to facilitate experimentation into
such topics as picture processing an image enhancement in
the frequency domain by use of the two-dimensional FFT.
Data Base:
The data base for the system cnsists of one large
file (the PIX file) on the magnitic disk memory. The file
639
consists of several thousand records normally of 102~ six
bit characters in length. This is equivalent to 128 fourty-
eight bit f~oating numbers in each record. The system allows
any number of records to be written or read consecutively
starting at any record. This is useful for being abMe to
rotate pictures on the disk. Information may be stored in
records whose length is in multiples of 128 words.
The format of the data base in this system is dictated
in part by the charact9ristics of the computer used, the
CDC 3300. When dealing with pictures, it is desirable to
manipUlate as large blocks as posib1e to minimize I/O time.
The largest core block accessab1e at one time in the 3300
is 32768 24 bit words, or 16384 48 bit words. The largest
block that can be handled conveniently at one time is
therefor 128 x 128 floating samples. If this system were
implemented on another computer, tr~ basic record size
should be chosen to be as large as can be handled, because
when rotating pictures, the I/O time is inversely propor-
tional to the square of the record size.
The first 128 records of the PIX file are used as
a save area in the I-D mode When using only that mode, and
as a save area when swapping 128 x 1~ blocks in the 2-D mode.
The 2nd 128 records are used as memory for arrays in the
l-D mode when it is desired not to write into the picture
area of the file. The rest of the file is used for storing
pictures. All references to the Pix file are made through
one subroutine. The BLDISK routine calculates the record
number for all reads or writes to thePIX file based on
the Picture number, Line number within a picture, and the
size of the picture which the user or anothersubroutine
can set. The user specifies the picture or reord of a
picture that he wants to access by entering the appropriate
parameters via the keyboard of the display. The current input
parameters and the resulting record number are always dis-
played on the CRT.
Besides the PIX file, there is a global data file which
stores on the disk data tables common to all tasks and
subprograms of the system. This file can be saved from run
to run on tape so that the sytem need not be reinitialized
each time it is used. There is also the LEARN file which
is"Used to save a record of light pen picks which can then
be replayed as a function, or printed out as a record.
As part of the global data file, the System Registers,
System Buttons, and System Bits are stored. The labels for
these are r~ad in on data cards when the system is initializ-
ed, and they can be changed as the system is expanded.
640
Figure 1. The one dimensional mode showing Convolution.
641
show that this will be the one used in the execution of the
next operation selected.
The number of lines to be displayed at any time may
vary between one and eight as desired. The amplitude of the
traces is automatically scaled to fill the available screen
area. Lables are displayed below each base line to indicate
the size and origin of the array. A line can be shown as
it appears in core, or in mathematical notation1with the
origin in the center. 0, N/2, N or N/2, 0, (N/2)-1 •
The characters to the right of each line correspond to the
name of th~ Operand shown at the top of the screen.
When operating in the 2-dinensional mode, a picture,
an M by N array can be displayed as a family of M equally
spaced curves, each N samples long. The deviation of each
point on the curve from the center of the line is proportion-
al to the intensity value at that pOint. This type of display
is called a "Contourogram", or a "Ripple Picture".
While this method of displaying two-dimensional images
is not as aesthetically pleasing as that produced by a video
display, such as the Digivideo, the ripple picture method
has some advantages. First of all, it is about the only
practical way of displaying such large amounts of data on a
graphics display as is contained in a picture. The ripple
method has a much greater dynamic range than the video displ-
ay. The Digivideo can display only 32 levels of grey, but
a picture in the frequency domain may have intensities
ranging over several orders of magnitude. Another advantage
is that it is possible to isolate a single point in a ripple
raster with the light pen. This can not be easily done with
a video display. One useful application is to identify and
eliminate individual noise spikes from a picture with the
light pen. Thus a picture can be cleaned up without filtering
in the frequency domain which would cause an overall loss of
resolution. Sev3ral things may be done to a picture as it is
displayed. The aspect ratio may be varied between .01 and 100
where 1.0 is nominal. It may be magnified over a range of
1.0 * E600. It may be logged, or reflected, rotated, or
inverted.
Learning Program
In the operation of ISP, the degree of interaction
between the user and the computer can occur on several levels
the lowest of which is the execution of a simple function up-
on the pick of' the light pen. ( Po. light pen pick is defined
as the act of pointing the pen at an illuminated item on the
CRT and pushing the light pen button so as to cause the
computer to take some action.) The lowest level provides
642
great flexibility since all actions are at their simplest.
However, to do anything useful requires that many light pen
picks be made. When creating something new, this is satis-
factory, but it becomes tedious when a sequence of operations
is to be repeated. There are two ways to get around this.
The first is to have a single pick invoke a complex operatio~
This saves effort, but it implies that the task was well
defined, and therefor does not take advantage of the interac.
tive nature of the system. In short, spontaneity is lost.
A better method is to let the user define a whole task by
a series of simple operations from the displaY, and then
execute the whole thing whenever he wants it.
643
sequence and enter it in the instruction list. He can then
perform the same sequence lat2r on other data, merely by
invoking the symbolic lable. The system will then play back
the system through the display while the user watches. A
permanent printer record can be made of the sequence of oper-
ations for later incorporat:on. in to a program and to clear
the LEARN file on the disk. The user may also do a form of
online programming. The contents of the LEARN file can be
displayed symbolically on the CRT, and may be edited by the
user to eliminate blind alleys.
Operation of the System
To enter a value into any of the system registers the
register is picked with the light pen. This causes a font
to appear at the bottom of the screen. The value is entered
by picking characters of the font or using the keyboard
until the desired number appears on the line above the font,
and then picking XMIT. The number is stored in the register
and then displayed.
The system registers are shown at the left of the
r.creen. There ~re currently four groups of ten registers
each. The desired group is selected by picking Rl through R4.
R5 causes them to be erased to conserve buffer space. The
system buttons are displayed at the right of the screen ~U
are in five groups of ten which may be selected by picking
Bl throur B5. Since in the course of operation, buttons may
be selected alternately from several groups, there is an
option that allows the last ten picked buttons across all
groups to be displayed in a last in last out stack. This
reduces the number of picks required for a sequence of
similar operations.
To change a waveform in any of the registers, the user
merely picks the desired trace and draws in the new curve
with the tracking cross. The computer samples the cross
coordinates, and calculates the element number and the value.
If the system bit is set to modify, the new values of the
elements between the last and the current position of the
tracking cross will be computed and stored into the array,
The position and value are displayed as feedback to the user.
The user may modify a single value, or draw anew a completely
arbitrary waveform. The computer will follow the movement of
the pen, modifying the waveform as it goes. fhe user may
thus draw freehand curves. For waveforms which must be mere
regular, the SEGMSNT mode is provided. This requires the user
to push the pen button each time he desires the computer to
sample the cross position. This allows him to position the
cross accurately so that straight line segments may be drawn.
644
An examine feature is provided to enable the user to interr-
ogate any point on a curve to see what its value is. This
feature may also be used to interrogate a point on a picture.
When a curve has been modified and an operation is to
be performed, such as TIM~ TO COS-SIN, etc, the user must
select the instruction, or pick the EXECUTE light button if
it is already selected. Thus several picks are required each
time a curve is modified. The EXECUTE ON RELEASE light button
causes execution of the instruction each time a change is
made. At the highest level of interaction, the LOOP AND EXE'"
CUTE option causes the instruction to be executed and the
results displayed each time the cross position is sampled.
This allows for example, the user to draw a curve in the
time domain while viewing the result in real time in the
frequency domain. Another example is modifying the phase
at a particular frequency and seeing what effect it has in
the time domain.
-~
f(t)
•
e -J w
t
dt where f{t) is
contmuous
and is a special case of the bilateral Laplace transform,
645
L(s) = [if) f(t) e
- (0- +j w )
dt where 0-' =0 .
-'-,1)
-->
otb
F(w) =
n=- rFI
Since the transform of a periodic signal consists of impulses at integer
multiples of the fundamental periodicities of the time function. The
frequency domain can also be represented as a periodic sequence of discrete
samples.
Thus the Discrete Fourier transform can take on the form
N -1
A(n) =1.
N ~
x(k) e -j 2 pi nk/N
k=O where n=O, 1, N--l
N is the number of samples to be transformed
The inverse Discrete transform is:
N-l
x(k) = ~ A(n) exp ( j 2 pi n k / N)
k=O
Then,
1 N-l
A(n) = x(k) W- 1
~
k=O
N
~
.-
N--l
A(n) W
and x(k) =
n=O
The Fast Fourier Transform:
646
Transform. Another reason for using it is that the FFT is more accurat ethan
than the conventional method. This is because there are fewer round off
errors and truncation errors due to the smaller number of operations involved.
There are several versions of the FFT algorithm, decimation in time,
and decimation in frequency being the two major classes. The version to be
described in this paper is the decimation in frequency method, attributed to
Sande. Essentially, the FFT is a method of successively deviding an N
point DFT in to a larger number of smaller DFTs. That is, a 16 point
DFT is devided into two 8 point DFTs, the 8 point DFTs are devided in to
four 4 point DFTs, and finally, the 4 poi nt DFTs are devided into eight 2 point
DFTs. Thus as long as the sequence is divisable by two, it can be further
subdevided at a greater advantage in saving time.
As can be observed, this implies that the original sequence to be
transformed must have a length equal to 2m , where m=2, 3,4 .... 10, 11, 12. ie,
N must be a highly composite number. This means that a sequence of arbitrary
length cannot be easily transformed, but this restriction is not unacceptable,
as the economy of the FFT more than compensates.
The output sequences of the FFT differ from the input in that their indexes
appear to be scrambled. The indexes are acctually bit reversed. In orderto
rearrange the output so that it can be used, it is necessary to take the index,
express it in binary, flip it end for end, and use the result as a pointer to the
.desired sample. Fer example, for n=I6, 16=2m , m= 4 bits. So X(OOOI)
maps into X(IOOO),orX(4~)= X(2), etc.
It should be noted that the FFT operates in place. That is, in each
successive iteration, each pair of samples actually modify only themselves.
Thus if a time sequence in an array is FFTed, it is lost, and the discrete
spectrum is in its place. The process is reversible, so that one can transform
back and forth in the same space between the time and frequency domains.
These are some of the many interesting aspects of the FFT algorithm.
There are many more, but this discussion gives some of the flavor.
Although the FFT is faster than the conventional approach, there are
still considerable savings to be had. Most of these are programming
considerations, but a careful study of the algorithm shows that special cases
may be made of those points where the sine or cosine is 0 or 1, to eliminate
additional multiplies. In most computers, it takes a lot longer to multiply than
to add, so at angles of 0, 90, 180, 270 degrees, it is not necessary to mUltiply,
and considerable time can be saved.
Additional time can be saved by not having to calculate a sin or cosine,
647
or inverted address every time it is needed. Thus it is good practice to provide
two tables, each N samples long. The sine table consists of one period of a
sine wave of unit amplitude, ie, S(n) = Sin (2 pi n IN). Further space
can be saved by folding the sine table to N/8, but it costs a little more time.
The other is a table of inverted addresses.
The FFT deals with complex numbers, so both a real and an imaginary
array is needed. There are thrE!e conventional representations of the
frequency domain: exponential, cosine-sin, and power-phase. The FFT
algorithm normally produces the exponential form, but is fairly straight forward to
convert to the other forms. The cosine-sine form is particularly useful
when processing real signals. Because there is no imaginary part, two indepen-
dent real signals can be transformed at one time, one in the real array, and
one in the imaginary array. For N=8,
o 1 2 3 4 5 6 7 sample
~ 3 2 1 d 1 2 3 frequency
. c
sm cos
It should be noted that the FFT and the Inverse FFT are identical except that
the FFT is scaled by N, and the Inverse FFT has the complex conjugate taken.
A(u, v) =
N-"1
?
x=O
.- N-1
2:.
y=O
f(x, y) exp (j 2 pi (xu+yv) IN)
The solution that the author uses is to invert the matrix accross the
diagonal. This is the same thing as rotating it 90 degrees and taking the mirror
image. The image may be broken up into smaller squares, each of the squares
648
inverted, and the squares themselves inverted. Virtually any size picture may
be rotated using this method. Pictures up to 2048 x 2048 have been transformed
in this way. The reason it works is that the FFT is sensitive only to frequency,
and does not care which direction the signal is going in.
The two-dimensional FFT therefor consists of 2 N FFTs and a 90 0
rotation.
649
Figure 5. High pass filtered
Summary:
This paper has presented an interactive graphics
system especially designed to enable a user to explore
the properties of the frequency domain Via a CRT display.
Several suggestions were made as to what constitutes an
adequate graphics system, and wbat sort of features are
~o
desirable in a system regardless of the application.
Photographs are presented as examples of one posible
application, image enhancement by computer. Other applicatio-
ns of this system can be readily found in the university and
research environments. The teaching of signal theory to
engineering students should become a reality when the cost
of CRT displays and computer time is further reduced.
Acknowledgements
Thanks is given to Control Data for their policy
of allowing employees free use of their computers during
off hours. I would like to express my graditude to
H. Philip Peterson formerly of Control Data for the many
stimulating discussions which inspired this project, and
for his help in reviewing this paper.
Bi blioi-sraphy
651
PART 8
P. Steuber
655
1 Background
1.1 Problem
656
The chief means of interaction between publisher and
printer is through proofs. Each proof gives the publisher an
opportunity to make alterations. The proofs are returned to
the printers in almost random order. Because of the short
schedules and critical deadlines, final alterations are often
given by telephone less than an hour before composition must
be completed.
657
by typing its ID on the alphanumeric keyboard associated with
the display. The skeleton page is drawn automatically using
information stored in the system. The skeleton page consists
of a rectangle showing the outside edges of the page. Using
the light pen, the operator divides the page into areas.
Text is assigned to an area by typing the ID of the text in
the area. A text item can be assigned to an area as soon as
the ID of the text has been typed in by data reception.
Page modification is done on the graphic terminal. A
previously drawn layout is selected by typing its ID on the
alphanumeric keyboard. The selected layout may be modified
using the same techniques as is layout drawing. In addition,
any text which appears on the page and has been typed in may
be displayed in justified format. The text or the area shape
can be altered.
Page proofs can be requested at any time after the
layout is drawn. Proofs include all the available text
assigned to the page and the pictures. The text is justified
to fit the shape of the area to which it is assigned. Any
excess is shown at the bottom of the proof. Pictures are shown
by solid black areas equal in size and shape to the actual
pictures.
Two basic principles are implemented in this system:
interaction and separation of text and layout. The system
provides immediate feedback to the operator. Thus, errors
are reduced to a minimum. The attributes of the type are
divided into two categories. The text attributes comprise
the characters and control codes to select typeface number,
size number, and body size number. The layout attributes
comprise the positional attributes and the specific typeface
names and sizes associated with the numbers used in the
control codes. The text entry terminal is used to input the
text attributes. The graphic terminal can be used for both
sets of attributes.
2 Demonstration System
2.1 Introduction
Before the system is implemented it is necessary to
prove that it will work and to measure its performance. For
this purpose a demonstration system was designed using
equipment borrowed from the manufacturers or hired from
bureaus. The following equipment was used.
Olivetti Te 338 teleprinter used off-line to
punch paper tape.
658
Cossor Cosprite paper tape CRT text editor
used off-line to edit unjustified paper tape.
IBM 1130 with 32K store, 3 disks, and 2250
Model 4 graphic display used for layout drawing
and justified text editing.
Harris-Intertype Fototronic-CRT filmsetter used
to set the pages drawn and edited on the 2250.
Available space prohibits a complete description of
the demonstration system. The rest of the paper is devoted
to the graphic terminal. Sections 2.2 and 2.3 describe the
layout and justified text editing from the operators point of
view. Section 2.4 discusses the data structure and the
algorithms to justify text into the areas drawn on the
display.
659
OPTIONS
DRAW AREA
MOVE AREA
MOVE AREA AND CONTENTS
ADJUST VERTEX
ROTATE AREA AND CONTENTS
SCALE AREA
REDRAW PART OF AREA
CALL UP AREA
DELETE AREA
CALL UP TEXT
DELETE TEXT
DRAW RULE
END PAGE
SELECT TEXT MOVE
SCALE PAGE
DISPLAY DIMENSIONS
660
minimum layout and option list. The layout comprises areas,
dimensions, and contents ID's. The areas are indicated by a
line drawn around the edge of each area. The lengths of the
lines making up the border may be displayed. When an area
contains text, the ID of the text is shown in the area. Some-
times the dimensions or contents ID's fall in awkward positions.
The operator has the option of moving or deleting individual
dimensions and contents ID's.
The drawing options are listed in Figure 1. Each
option is selected with the light pen. Options are terminated
by function button zero and thirty-one. Button zero cancels
the option and can be pushed any time after the option is
selected. A cancelled option has no effect on the stored
data. Button thirty-one accepts the option. The accept
button is not turned on until the last step of the option is
completed. Pushing it before it is turned on has no effect.
Once an option is selected, the option list disappears.
Many options involve selecting an item with the light
pen. Because the light pen has a low resolution, the item
selected is always marked in some way. The operator may then
alter his selection if necesaary.
When an option is accepted, the new or altered area is
added to the page. If tne area is partly off the page, either
the area is deleted or the move area option is selected
automatically. The individual options are described in the
paragraphs below.
Draw area is the basic option. An area is drawn by
moving the tracking cross around the border of the area with
the light pen. A line is drawn as the tracking cross moves.
The line is erased if the pen is moved backwards along the
line. Regardless of the setting of the dimension switch, the
lengths of all straight lines in the area being drawn are shown.
The motion of the tracking cross is constrained to eliminate
the effects of a shaky hand. One of three constraints is
selected by function buttons labelled 'fix start', 'slant'
and 'curve'. 'l'he constraint can be changed at any time.
'Fix start' constrans the line to vertical and horizontal.
If it is the first constraint, it also fixes the start of the
first line. Under this constraint, the line will remain
vertical or horizontal until the light pen is moved more than
a distance of MIN2 from the line. When the distance exceeds
MIN2, the direction of the line changes. When the light pen
is moved backwards over the line, the line becomes shorter
until its length is less than MINI. At that point the line is
deleted and the previous line and constraint are continued.
MINI and MIN2 are program constants representing about .25 and
.50 inches on the screen respectively. If all the lines are
661
deleted, the tracking cross follows the pen without drawing.
Selection of a constraint will fix the beginning of a new
line.
'Slant' causes the line to rubberband between the
position of the tracking cross when the constraint is
selected and the light pen. When the length of the line
excieeds MIN2 a switch is turned on. If the length subse quently
becomes less~than MINI, the line is deleted and the previous
line and constraint are continued. 'Slant' may be pushed
again to select a new fixed end of the line.
'Curve' selects a variation of the slant constraint.
Whenever the length of the line exceeds MIN2, a new fixed
point is automatically selected and the switch is turned on.
Backward drawing is detected when the distance from the
tracking cross to the previous fixed point is less than MIN2
qnd the previous line is curved. If the length is less than
MINI and the previous line is not curved and the switch is
turned on, the curve is deleted and the previous line and
constraint are continued.
Drawing is ended automatically when the distance from
the last line drawn to the starting point is less than MINI.
The tracking cross is automatically moved to the starting
point. The final lines of the border are adjusted to meet
three conditions: The last line ends at the starting point,
all constraints are satisfied, and no line is shorter than
MINI. The last condition is satisfied by deleting any short
lines. When the adjustments have been completed, button
thirty-one is turned on.
In subsequent descriptions the term 'origin of an
area' refers to the point where drawing started.
Move area makes all areas detectable. When an area
is selected with the light pen, the tracking cross is displayed
at the origin of the area. The cross and selected area will
follow the light pen. Cancelling the optlon returns the area
to its original position. Acceptance fixes the area in its
new position. When this option is entered automatically, the
area selection step is bypassed. The area causing the
automatic entry is preselected.
Move area and contents is the same as move area except
that all areas enclosed by the selected area are moved too.
Adjust vertex allows the shape of an area to be
changed without redrawing the whole area. A vertex is select-
ed with the light pen. The tracking cross marks the selected
vertex. The vertex will follow the light pen subject to the
662
following conditions: movement will not start until the pen
is moved a distance of MIN2, the constraints of the lines
involved are satisfied, and no line becomes shorter than MINI.
The first condition allows the operator to select a new vertex
before he moves the first one. The second condition can result
In up to four lines being altered.
Rotate area allows the operator to rotate an area
about its origin without changing its shape or size. The area
is selected with the light pen and marked with the tracking
cross at its origin. Rotation is controlled with a 'joystic~'
displayed on the right side of the screen. The joystick is a
vertical line labelled 'clockwise' at the top, 'anti-clockwise'
at the bottom, and '0' in the middle. Plac~ng the light pen on
the joystick causes the selected area to rotate continuously.
The rate and direction of rotation depend on the position of
the light pen. The farther the pen is from the '0', the
faster the rotation.
Rotate area and contents 1S analogous to the move
area and contents.
Scale area proportionally changes the lengths of all
the segments in the border of an area. When the option is
selected, all dimensions are displayed. A dimension is
selected with the light pen. A cursor marks the left digit
of the selected dimension. The dimension is changed by
typing a new value on the alphanumeric keyboard. The area is
immediately redrawn to the size indicated.
Redraw part of area allows the operator to redraw an
area without disturbing the contents of the areas. A vertex
of an area is selected with the light pen. This vertex
becomes the new origin for the area. The line before the
origin is deleted and the tracking cross appears at the end
of the line. Which line is deleted depends on the order in
which the lines were originally drawn. The area is redrawn
using the techniques described in 'draw area'.
Call up area inserts a previously drawn page on the
current page. The message 'type ID of area' is displayed on
the right side of the screen. The ID of the desired area is
typed on the alphanumeric keyboard. The ID is displayed as
it is typed. When the end of ID is indicated, the area
selected appears on the page and the move area option is
automatically selected. If the area selected is a special
character, the current page, or nonexistent, the word
'illegal' is displayed under the ID. When an area is called
on, it is called a subroutine. Only the 'move area' and
'delete area' options are allowed to afeect subroutines.
663
· Delet~ area re~oves an area from the page. The area
1S selected w1th the 11ght pen and disappeard as soon as it is
selected. If a subroutine is deleted, it disappears from the
page, but remains defined.
Call up text assigns a text item to an area. The
text item is selected by typing the ID of the text on the
alphanumeric keyboard. If the identification is valid, the
message 'select area' appears. The border of the selected
area is brightened.
Delete text disassociates text from an area. The text
is not deleted from the text file.
Draw rule allows the operator to draw a rule of any
weight. The drawing technique is the one described under
'draw area.' An extra function button is lit to enable the
operator ~o end the ru~e ~ithout drawing a closed loop. When
t~e rule 1S acc~pted, 1t 1S converted to an area equal in
w1dth to the we1ght of the rule. Once the rule is successfully
converted to an area, it is indistinguishable from an ordinary
area. The contents of the area is set to 'picture' to make
the rule black.
End page stores the current page and displays the
layout selection frame.
Scale page displays the scale menu and joystick shown
in figure 2. A box is drawn around the current scale. The
new scale is selected with the light pen. The joystick is used
to select the portion of the page to be viewed. Moving the
tracking cross away from the center causes the page to move in
the direction indicated. The page moves continuously at a rate
proportional to the distance from the light pen to the center.
The numbers MINI and MIN2 are adjusted so that the smallest
line has the same length on the screen.
664
characters to 52 lines of 74 basic characters or 35 lines of
49 large characters. The hardware is such that a line of
characters will wrap around the screen and reappear on the left
when its length is twice the visible number of characters.
The same applies to the number of lines. Therefore, so long
as half the text will fit on the screen in each direction, the
hardware will provide the necessary windowing. Although this
method of showing text is wasteful of display file space, it is
very eesy to program and very fa$t to execute compared to
computing the visible text. The part of the text that is
visible is selected by moving the first character of text.
All the rest are defined relative to the first character.
The text is doubly justified. The number of characters
in each line is calculated from the true typographic measure
and character sizes. The length of the display line is a
fixed multiple of'the typographic measure. The multiple is
chosen to guarantee that all the characters will fit in the
display line. The size of the interword spaces in the display
line is calculated from the display character width of 14
raster units for basic characters and 21 raster units for
large characters. Therefore, although the displayed lines have
the same content as the typeset lines, the word spacing on the
screen does not give an accurate indication of the typeset
word spacing.
Two frames are used in text mode. The text display
frame described above and the text selection frame. The
selection frame lists all the ID's of the text items stored
in the system. Pointing to an ID with the light pen displays
the associated text display frame and activates the editing
options. The options are all selected by function buttons.
Each option is described below.
Move text selects that part of the text is to be
visible. The tracking cross appears in the middle of the
screen. When the cross is moved with the light pen, the
text moves with it.
Insert after allows the operator to add text after a
selected character. The character is selected with the light
pen. A short vertical line marks the point of the insertion.
A space is created below the selected line to display the
insertion. Up to two lines may be typed. The backspace key
can be used for correcting errors in the insertion. The jump
key spaces forward from the point of the correction to the end
of the insertion. When the insertion is accepted, the text
is rejustified and displayed in its normal form.
Insert before is analogous to insert after. The
insertion precedes the selected character.
665
ISAfffi
SIZE I DOUBLE
SIZE
TREBLE
SIZE
QUADRUPLE
SIZE
UP
LEFT RIGHT
DOWN
FIGURE 2
666
for delete. Four buttons labelled Face 1, Face 2, Size 1,
and Size 2 select the font. When accept is pushed, the font
of the marked characters is changed and the text is rejustified.
Move hyphen corrects hyphenation errors. The hyphena-
tion algorithm breaks a word after the last character that will
fit on the line. Consequently, corrections are often necessary.
The correct hyphenation point is indicated by pointing to the
character that is to follow the hyphen. The position is
marked with a short vertical line. Up to twenty hyphenations
can be corrected at once. When accept is pushed the hyphens
are moved and the text is rejustified. The rejustification
can cause more wrong hyphenations if the characters moved
cause the hyphenation of the following line to change.
End area stores the edited text on disk and displays
the text selection frame.
Select next area stores the edited text on disk and
displays the continuation of the item. If there is no
continuation the text selection frame is displayed. Continua-
tion is possible when one text item is assigned to two or more
areas or when an overflow area is created. An overflow area is
created to hold text that will not fit in the area which it has
been assigned.
Enter drawing mode stores the edited text on disk and
displays the layout selection frame.
667
PAGE IDENTIFICATION CODE
_\
...,
M T
.L ( \PAGE 1
OPl'IONS
DRAW AREA
MOVE AREA
MOVE AREA AND CONTENTS
I ADJUST VERTEX
E
ROIJ.'ATE AREA AND CONTENTS
SCALE AREA
P Crt ~
REDRAW PART OF AREA.
GALL UP AREA
I.."
I.L' DELETE AREA
CJ !PTl pN
CALL UP TEXT
DELETE TEXT
DRAW RULE
END PAGE
TEXT-l TEXT-2
SELECT TEXT MOVE
SCALE PAGE
DISPLAY DIMENSIONS
-
.
CONTENTS ID
BORDER OF AREA B
I BORDER OF PAGE
EDGE OF 2250 SCREEN
668
are not stored as part of the border. Therefore, the border
would be the same for area C.
669
2. All segments with a first Y coordinate equal to
the first Y coordinate of the segments in work
are added to work. The new segments are added
so that the segments in the work area are arranged
in ascending order of the X coordinate.
3. Starting with the lowest X, adjacent segments
are paired.
4. A strip with a depth of one basic unit is output
for each pair. The left and right ends of the
strip are the X coordinates of the two segments
in the pair. Strictly speaking, a group of
decipoint strips is output.
5. The first Y coordinate of each segment in work
is reduced by one basic unit.
PART 1
ORIGINAL
BORDER
2880,.----. 0, 2880
1440,-2160
-1440,- 720
CONVERTED
HIGH SLOPE BORDER
2160
°
0, 2880
ORIGINAL 360,
/ BORDER
°
0,- 720
360,
°
0,- 720
1440 360,
0,- 360
360, °
__ GENERATED
BORDER
0,- 360
- 360, °
720
0,- 360
- 360, °
0,- 360
- 720, °
LOW SLOPE BASIC UNIT = 360
° I
° 720 1440
670
PART 2 PART 3
671
an area enclosing D. The vector of area D gives the coordi-
nates of the origin of D relative to the origin of A. The
second pointer points to B, another area enclosed by A. The
third points to E, an area enclosed by D.
A
3
0,5160
D B c
2
720,-1740 300,-300 1700,-300
F E
2
120,-1080 120,-120
B F
A c
FIGURE 6 - Space Received by Areas on Page 1
§
A
PAGE 1
B C
3 3
F E
IC ION
674
second pointers. The page has only the third pointer and its
vector is relative to the lower left corner of the display
screen.
The hierarchy is built up by adding areas to the page
one at a time. The new area is successively compared with
each area on the list linked to the page. Any area enclosed
by the new area is removed from the list and added to the list
linked to the new area. After the ne-w area is compared with
each area on the list, it is added to the list. However, if
the new area is enclosed by an area on the list, no further
areas on that list are compared. Instead, the areas on the
list linked to the enclosing area are compared. If the
enclosing area is not yet linked to a list, a list is started
with the new area.
With the hierarchy established it is possible to assign
each square of space to a unique area. This space is called
usable space and is described by a strip description. For
the purposffi of explanation, usable space is considered to be
tangible squares capable of being passed from one area to
another. Initially the page is assigned all the squares.
During each step of the algorithm, squares are passed from one
area to an area it encloses. The first pointer of the
receiving area points to the sending area. The squares trans-
ferred are those still held by the sending area that are within
the receiving area.
The first receiving area is pointed to by the page.
After each step the next receiving area is pointed to by the
third pointer of the current receiving area. If the third
pointer does not point to an area, the second pointer is used.
If that does not point to an area, the second pointer of the
sending area is used. If the sending area is the page, the
proCess lS complete. The order of receiving areas in figure
5 is D, F, E, Band C. Figure 6 shows the space assigned to
each area. .
The usable space assigned to each area is occupied by
the contents of the area. The second and third hierarchy
pointers are used to point to the contents of the area. If
the area does not enclose any areas, the third pointer is
used. Otherwise, the second pointer of the last area in the
list linked to the area is used. Blank and picture areas are
indicated by a flag in the appropriate pointer. No further
description of the contents is required.
When an area contains text, the pointer points to a
'text contents header'. The text contents header points to
the first and last lines of text in the area and contains
the typefaces and sizes corresponding to Face 1, Face 2,
675
Size 1 and Size 2. Figure 7 shows the text contents header
and the pointers associated with the text in figure 3.
The text itself is stored without line endings in a
long string. Within the text are control codes to select
the typeface and size numbers and to end paragraphs. The
actual faces and sizes selected by the codes depend on the
area controlling the justification.
A 'text item header' points to the first'and last
characters of the item ~d contains the ID of the item.
When the text is assigned to an area, a justification
array is set up to point to the first and last characters of
each line. This array also stores the space size, hyphen
indicator, and coordinates of each line.
The algorithm which generates the justification array
uses the usable space strip description to determine the
coordinates and length of each line. Suppose text is to be
justified into the triangle in figure 4. Assume that each
line requires a depth of 200 decipoints and that the strips
shown in figure 4 describe usable space.
Strips are removed from the area in groups of 200
starting at the top. The ends of the strips are evened up
to make a rectangle. A group of strips is removed for each
line until the area is full or the text is used up. The
groups obtained from the triangle are shown in table 1. The
coordinates are in decipoints relative to the origin of the
area.
676
This data structure supports the layout and text options
described in sections Band C. A set of output programs
converts the data to commands for the Harris-Intertype Foto-
tronic-CRT. From these commands the Fototronic sets a
complete page of type.
3 Conclusion
677
be possible to say fairly definitely what the final system
should include.
It is a long step from a one display system to a
multiple display system with a high load. However, the data
structure described in section 2.4 will support multiple
displays as well as text entry terminals. The algorithms
described for justifying text into areas drawn on the display
will not be changed by the addition of several terminals.
What will change is the operating environment. Insvead of a
single central processor executing a single program, the full
system will require a multiprocessing and multiprogramming
environment. In this environment the efficiency of access to
the data structure is of prime importance. It is this area
that requires the most development. The data structure in the
demonstration was coded for simplicity rather than efficient
access.
4 Glossary
Alphanumeric CRT terminal
A CRT and keyboard combination capable of displaying
alphanumeric symbols, but not vectors. Usually the
screen is divided into a small number of fixed
characters positions. A cursor controlled by buttons
on the keyboard is used to point to characters
displayed on the screen.
Control codes
Characters in text strings that provide format
information.
When the text is set, these codes are not visible.
control codes are used to select typefaces, size etc.
Copy
The input to the printer containing the text. The
term is often used synonymously with text.
Decipoint
One tenth of a point or approximately 1/720 inches.
Galley proof
A proof of justified type before the type has been
made up into pages.
678
Graphic terminal
A CRT, keyboard, and light pen combination capable
of displaying alphanumeric symbols and vectors. A
light pen or equivalent device for indicating items
on the screen is essential.
Justified
Text arranged into lines based on the widths of the
characters. The right margin is not necessarily
straight. Even when the right margin is ragged, the
number of characters in the line is limited by the
character widths.
Layout
The arrangement of text and pictures on a page. Layout
also refers to the diagram provided by the customer
and the drawn on the display which specify the
arrangement of text and pictures.
Light pen
Part of a graphic display used to point to items
displayed on the screen. The name is derived from the
appearance of the light pen and the fact that it
detects light from the CRT. The signal from the light
pen enables the program to determine what the operator
is pointing at.
Measure
The length of a line of type.
On-line interactive terminal
A device connected to a central processor and
controlled by an active program l~ing in the
processor. The device is capable of accepting data
from the operator and indicating to the op~rat?r what
the program has done with th~ data. ,Graphlc dlsplays,
teleprinters, and alphanumerlc CRT dlsplays can all be
used as on-line interactive terminals.
Photocomposition
Typesetting using photo-sensitive paper or film
instead of type metal. In this paper, the devices
mentioned to set type on film are controlled by
computer generated magnetic tape.
679
Proofs
DOyuments sent to publishers and authors alleged to
represent the type set by the printer. In a photo-
composition systmm proofs are usually chemical or
electrostatic copies of film or paper type. Some
computer typesetting systems actually use line printe:
output as proofs.
Raster units
The basic unit of distance on a CRT screen. Normally
the screen is divided into 1024 raster units verti-
cally and horizontally.
Unjustified
The opposite of justified. Two types of unjustified
text are common. One is text without line endings
as is produced by a non-justifying keyboard. The
second is lines of arbitrary length obtained by
counting characters without regard to their widths.
680
GRAPHIC EDITING OF STRUCTURED TEXT·
w. 1. Hansen
Applied Mathematics Division, Argonne National
Laboratory, 9700 South Cass Avenue, Argonne, Illinois
60439, U.S.A.
Abstract
*Work performed under the auspices of the U.S. Atomic Energy Commission.
681
a body of information from alternate viewpoints and to modify that informa-
tion as required. With Sketchpad (Sutherland, 1963) graphic images can
be rotated, replicated, replaced, revised, and reflected upon by merely
pushing buttons and pointing a light pen. Emily is an attempt to extend
such facilities to program texts. It should be possible to manipulate
and modify text almost as easily as willing the action. The user should
not even need a paper copy of the file. Not only might a copy be lengthy
and out-of-date, but there is an orientation problem when referring back
and forth between paper and display. Facilities must be available within
the editing system for displaying quickly any portion of the file the user
wishes to see.
The growth of interactive systems has spawned many text editors, but
few that do much more than maintain a file in a manner analogous to shuf-
fling cards. Editors designed for use with slow output devices such as
teletypewriters are limited because they cannot present very much informa-
tion in the time the user is willing to spend waiting. This means that
they can only display a small portion of the contex~ of a statement. Most
early slow-device systems were designed around line numbered files. Perhaps
the most advanced such editor is the Wylbur system at Stanford University
(Stanford, 1968). More sophisticated slow-device editors eliminate line
numbers and permit editing by context. An advanced example of such an
editor is the QED editor written K. Thompson (Thompson, 1968). One of the
features of this editor is that the object of a string search may be spec-
ified to have arbitrarily complex structure.
Several text editors have been built that check syntax. All have
one or more of these disadvantages: 1) only local 1ine-by-1ine syntax is
checked; 2) the editor handles only one language; 3) a typing error means
listening to an error message and then, often, retyping the whole line;
4) the syntax checker occupies a large segment of core without doing much
more than one run of the compiler would do. Many of these problems have
been solved in a JOVIAL editor at Systems Development Corporation (Bratman,
1968). The display control in this system is table driven so any of sev-
eral inexpensive text display devices can be used. An editor that guaran-
tees syntactically correct statements is the DIALOG system (Cameron, 1967).
In this primitive one-language graphic editor, the user is constrained to
create correct programs because at any stage only a character that is legal
can be selected as the next character of the text. As in Emily, the user
of DIALOG builds his text by choosing options, although in DIALOG his
choice is limited to an alphanumeric character set.
There are two reasons for implementing Emily instead of using one of
these other editors. The first is to illustrate the advantages of a text
editor that 'understands' the structure of what it is ,editing. Such an
editor can, for example, ensure correct syntax while the program is being
entered. Emily was originally designed as a string editor with a general
purpose parser. But design of such a parser for incomplete text appeared
to be a difficult problem in itself, whereas we were interested in building
a usable tool in a reasonable time. Consequently, the current approach was
decided upon as a method of letting the user create the structure at the
same time as he creates his program. Because she understands the structure
of the text, Emily can display that structure either by formatting the text,
drawing diagrams, or representing substructures with a single identifier.
She can permit modification and reorganization by structural units. And
she can facilitate file access either down the hierarchy, or via an inter-
active cross-reference feature.
The remainder of this paper has three parts. The first describes the
capabilities of the present Emily system, while the second outlines the
features that are planned for addition to Emily. The final section discusses
the human engineering problems and how we plan to approach them.
For any given language, only some strings of characters constitute pro-
grams. This set of legal strings can usually be defined by a syntax. The
characters that can appear in a program are called the terminal symbols.
For the purpose of defining the legal strings, the syntax also introduces
a set of non-terminal symbols that do not appear in a legal program.
Finally, the syntax includes a set of syntactic rules, each of which spec-
ifies a string (of terminals or non-terminals) that can replace a particular
non-terminal. A syntactic rule has a left-hand-side specifying a non-
terminal and a right-hand-side specifying a replacement string.
684
Terminals: DECLARE, ';', ',', FIXED BINARY, FLOAT BINARY, STATIC,
AUTOMATIC, INTERNAL, EXTERNAL
Rules:
<DECL> : := DECLARE <IDDECL*>;
<IDDECL*> · .= <IDDECL> , <IDDECL*>
· .= <IDDECL>
<IDDECL> · .= <ID> <ATR>
: := <ID> <ATR> <STORCL> <SCOPE>
<ATR> : := FIXED BINARY
: := FLOAT BINARY
<STORCL> : := STATIC
• •= AUTOMATIC
<SCOPE> : := INTERNAL
: := EXTERNAL j
two-thirds of the screen and shows a portion of the file being edited.
lower third of the screen is the menu and displays up to twenty options.
The message area is the bottom line of the screen and is used to request
operands and to display status and error messages.
Because the file may not be a complete program, the text area may
include non-terminal symbols.* These are underlined to make them stand
out. One of the non-terminals is designated the current non-terminal and
is shown surrounded by a rectangle. The menu normally displays all strings
that can be substituted for the current non-terminal. These strings are
simply the right-hand-sides of the syntax rules that have the current non-
terminal on the left.
685
The user may select one of these, or he may enter a new identifier from
the keyboard. Constants and comments are also entered from the keyboard.
DECLARE I<IDDECL*> I ;
DECLARE I<IDDECL>I, <IDDECL*>;
DECLARE ~ I <ATR>I , <IDDECL*>;
DECLARE ~ FIXED BINARY, <IDDECL*>;
DECLARE A FIXED BINARY, I<IDDECL*> I ;
DECLARE A FIXED BINARY,
~ <ATR> <STORCL> <SCOPE>;
DECLARE A FIXED BINARY,
B <ATR> I<STORCL>I <SCOPE>;
DECLARE A FIXED BINARY,
B \ <ATR> J STAT,IC <SCOPE>;
DECLARE A FIXED BINARY,
B FLOAT BINARY STATIC \ <sCOPE>1 ;
DECLARE A FIXED BINARY,
B FLOAT BINARY STATIC INTERNAL;
The first of the two special options is EMPTY. Selecting this option
for <STMT*> ends the list and removes <STMT*> from the display. If the
686
syntax requires that the list have at least one element, EMPTY is not dis-
played as an option until the list has at least one element. The second
special option is the list element itself, e.g., <STMT>. If this option
is chosen <STMT>is inserted in the display before <STMT*>, but the current
non-terminal remains <STMT*>. With this option, the user can create the
list <STMT><STMT><STMT> ... before he fills in the details of any individual
<STMT>.
<IDDECL*> .. -
I<ATR> "=
cb
FLOAT BINARY I
687
by that node is replaced by a holophrast. For example, the comma in Fig. 3
is generated by the node corresponding to ~IDDECL*> ::= <IDDECL>, <IDDECL*>.
Pointing to that comma would reduce the declaration to 'DECLARE <IDDECL*>;',
where <IDDECL*> is a holophrast representing 'A FIXED BINARY, B FL0AT BINARY
STATIC INTERNAL'. Pointing at a holophrast in the contract mode causes the
father of the indicated node to be represented by a holophrast. This new
holophrast subsumes the earlier one. Pointing at a holophrast in build
mode causes the node to be expanded with each of its immediate subnodes
represented by holophrasts. By judicious use of contraction, the user
can view his program from higher levels. He can see it as a sequence of
statements or a sequence of procedures. On a much lower level, contract
makes it possible to find the principle operation of an involved arithmetic
expression, or to count the number of arguments of a subroutine.
TERMINATE - This button saves the file on the disk and terminates
Emily's execution.
~9
attentions decode into one of seven types depending on how the detected
character was generated. Each button decodes into a separate attention
type. In addition, there is the attention type NOATTN. When a routine
processes an attention, it sets attention type to NOATTN. If the attention
interpreter finds that the attention type is not NOATTN, it simply returns
the existing attention. Thus if a routine does not wish to handle a given
interrupt, it simply executes any operations required to terminate its
own work and returns to the calling routine. The calling routine (usually
the central dispatcher) can simply ask for another attention that has not
'yet been handled.
Many changes must be made to Emily before she achieves her potential
as a dynamic and flexible tool for the creation of programs. These changes
fell into three categories: 1) what the user sees, 2) how he can change
what he sees, and 3) how he can change the file.
where NL is the code for a new line and +n indicates that the left margin
for subsequent lines will be indented n spaces from the current left margin.
Thus a DO statement would look like
DO;
<STMT*>
END;
This scheme has several deficiencies. First of all, the entire DO statement
might fit on a single line and would look awkward spread over several lines.
Moreover, it is difficult to put static format codes into arithmetic syntax
rules, because the same rule must apply to both long and short expressions.
A third problem is that natural groupings like /*<COMMENT>*/ and ( A )
may be broken onto two lines because the output routines put tokens on
the next line when the first line is full. The current formatter might
be called a static formatter since it depends entirely on the syntax and
does not take 'into account the actual text. A dynamic display formatter
bases its decisions on both the structure of the text and the space remain-
ing in the output area. A dynamic display formatter for LISP has been
written (Hansen, 1969), and it may be possible to generalize the techniques
developed in that effort.
690
in Fig. 3; the boxes represent nodes and the lines their interconnections.
However, we are considering an alternative in which the entire string gen-
erated by some node is surrounded by a large box which is sub-divided to
indicate the strings generated by the immediate subnodes of the node. Com-
mands would then be available to move the big box from node to node.
'What the user can do' is vitally influenced by what he can refer
to. That is, in order to operate on an object, he must have some means
of naming it or pointing at it. For this reason, Emily will include a
comprehensive name facility. A name is simply an identifier and an asso-
ciated class. The following will all be nameable with different classes
of names:
files
syntaxes
pieces of text
display statuses.
The present program must be expanded to give the user greater control
over what he sees on the screen. The GO UP and GO DOWN buttons are fairly
primitive techniques for controlling which portion of the text is displayed.
At the least, GO UP must be modified so that instead of asking how many
levels to ascend, it displays the non-terminal names of all predecessors
of the current node and asks to which of these it should ascend. The level
of the display is controlled by converting between strings and holophrasts.
It may be possible to contract a string to a holophrast simply by pointing
to the two ends of the string. Reversing the process, a hit on a holophrast
in BUILD mode should expand it as much as possible without going off the
display. This can be done in a breadth first manner, so the structure of
the program is displayed before accessing the details.
The above facilities enable the user to modify his view of the file,
but they do not allow him to randomly access completely different parts
of the file. He must ascend to a higher level node and then descend along
some other path. The name facility will permit the user to name a display
status and to return to a given display at any time. Perhaps an even more
important mechanism for accessing the text will be the interactive cross-
reference facility. For any identifier, the user will be able to look
at its declaration, or to look at each of its appearances, one at a time.
This facility is simulated in a normal string editor by the string search
capability. The user types in any string and asks the system to find all
instances of the string. While this feature is more general than that
proposed here, it does not distinguish between declarations, instances,
comments and accidental juxtapositions of characters. Nor can string search
ever hope to distinguish between identifiers with the same name, but
691
declared in different blocks. This will be possible with Emily because
she understands the structure of the text. The interactive cross-reference
facility and named display statuses will provide rapid and flexible access
to random parts of the text.
When he has found a portion of the file he wishes to modify, the user
must have equally flexible commands to modify the file. The present dele-
tion technique will be extended to allow a deleted structure to be placed
in a named cell. Each cell will contain a subtree, the name of the non-
terminal that generated the subtree, and the name of the syntax. Provision
will be made for retrieving named cells from other files. Also, it will
be possible for a file to include subtrees from named cells created in
a syntax other than the syntax for the file. Thus, for example, a user
might wish to include a lengthy comment having a syntax of his own design.
As this implies, the user will be able to create syntaxes and then use
them to create text. This facility will also be valuable when we are
designing syntaxes for others to use.
With the features described above, a user should be able to view his
information from many perspectives and to modify as little or as much as
he desires. Most of these features are illustrations of the first reason
for implementing Emily. That is, they are possible because Emily 'under-
stands' the structure of the information being edited. This understanding
makes it possible to emphasize the structure as the text is displayed,
to move around in the structure at will, and to modify the structure in
terms of its components.
692
III. Measuring Emily's Value
a) he selects syntax rules from the menu without paying too much
attention to the text area;
A programmer who has attained this proficiency with Emily can be said to
be using it more as a tool than as a toy. There does not seem to be any
good signal that a programmer has reached this level, but we hope to be
able to measure proficiency in terms of reaction time and the number of
mistakes and backups. Especially, we intend to look for plateaus in the
693
learning curve, since the end of a plateau signals a transition in the way
a user perceives his activities.
~UII..O·I'1DOE
694
To some extent, the slope of learning curves is a measure of the
'naturalness' of Emily. Clearly, this does not mean that Emily is like
6'1:> c
E,-SE
:3",
"E1U~~ (~ !'3"I1\j - I )
• ~[8~1~ - 2 ) , ,
<SlI1T->
e."D "180"ACCI,
any particular natural thing that the user has ever done. What naturalness
means in Emily (and, in fact, in any interactive system) is that there
should be a very few rules prescribing the behavior of either the program
695
or the user. There must be a single point of view from which all the
actions of the program appear natural. If the program is not designed
with consistent behavior requirements, the user will take that much longer
! ;, ~ ,
F", ~ ,
1 1 e,
12 1 ,
Example 4. This example shows exactly the same file as example 3. But
all holophrasts in the outer procedure have been expanded to display
the string they generate, and the body of the inner procedure is
represented by the holophrast <STMT*>. The outer procedure computes
fibonacci (n) iteratively. A fourth declaration has been inserted,
because the outer procedure is going to be modified to check the two
procedures against each other.
to figure out what is going on. (But, if he persists, he can learn any
system. And once learned, that system will seem more natural than another,
even though the other might require far less work. This accounts for much
of the inertial persistance of non-optimal systems and languages.)
696
Emily is designed to permit change of the syntax in a simple manner. This
will permit experimentation to find out exactly what form of syntax is
best.
"'180"l"CCI: ""QC ("I) "'IIIEO 'I"I""Y' , - "1"10 ... · f ... "IIO ..... CCI "U"1I£~-'
OEC~""E ... "IIIEO . I ..... "Y'
OEC~""E " ... "IIIEO .PU"Y. TI "IIIEO II ..... "Y. T2 "lx£O II ..... "Y'
OEC~""E I "IIIEO . I ..... "Y,
O£C~""E I ""~II 8"SEO (" .. )
2 "'''10 "IIIEO II ..... "Y. 2 "'EIIT" "IIIEO ....... "Y,
"18"EC: ""OC ( ... ) POIIIIT£", ,- 1'1&<E ~IST 0" "IIOIII"CCI ... uHaER5 -,
<5THT->
E"IO "laREC,
0,
F... 0,
T 1 0,
T 2 1 ,
E"'O,
E~5E
"'" TI.T2,
TIT 2 •
T2 ,,"'.
GO TO ~OO".
E ... O '" laOIll"CC I.
"laON"CC! "18"EC
697
One area in which Emily should be able to excel over traditional pro-
gram creation techniques is in examination of an existing program. At
present, we do not even know how a programmer does interact with his list-
ings. The author has about twenty listings of Emily subprograms; this
pile must be shuffled in order to find the relevant subprogram to answer
a question. It would be much faster to ask for the subprogram by name
and read it instantly. With Emily's statistics gathering machinery, we
should be able to find out how often a programmer randomly accesses parts
of his program. Perhaps with this information, we can get some idea of
how much time is saved by using Emily.
There is, indeed, some question as whether Emily will benefit more
the neophyte programmer or the programmer who is well versed in the sophis-
ticated techniques Emily makes available. The former will be saved from
remembering all the technical details of syntax, which can be extensive
for a language like PL/I. But before he can use Emily, the neophyte must
have a sufficient grasp of the language to understand the semantics of
the syntactic alternatives. Moreover, because there are often more possi-
bilities than can be displayed at once, the user has to know how to get
to the desired option. Thus the neophyte must undergo a substantial train-
ing period simply to learn his way around the syntax, without worrying
about sophisticated techniques for finding parts of his program. The design
goal of Emily is a program that offers the most advantages to the practiced
advanced programmer. We will assume that the user understands the syntax
he is working with and has practiced the manual operations necessary to
use Emily effectively.
Several changes have already been made in Emily based on limited exper-
imental use. One fact that we have learned is that the basic cycle of
selecting syntax rules and modifying the display must take place very rapid-
ly. Even times as long as three-tenths of a second are likely to provoke
frustration in the programmer. After all, he knows what he wants to do and
feels that he could be working more quickly with pencil and paper, even
though this might not be true, since Emily can create many characters per
interaction. The present program displays the next set of syntax rules
before modifying the display. The programmer can select a rule before the
display is completely rebuilt, and this saves some time. But the computer
is so fast that the display is built just about the time the programmer
decides what he wants. In this case, the text flicks on and then off again.
This is very distracting, so the programmer is more likely to wait for both
the rules and the text display. Since the contract mode proved to be con-
fusing, some human engineering has already gone into its definition. The
698
menu displays options for the current non-terminal and, if the user selects
one of these, Emily automatically switches to the build mode. Emily also
switches to the build mode after any deletion. This is because a frequent
(and annoying) sequence of operations was·: go to contract mode, contract
string to be deleted, delete string, then try to change current non-
terminal without having returned to build mode.
Emily looks to the day when every programmer has a console in his
office. We hope that our results will be of some benefit in the design
of the required systems.
Acknowledgements
References
(Cameron, 1967) Cameron, Scott H., Duncan Ewing, and Michael Liveright.
DIALOG: A conversational programming system with a graphical
orientation. Comm. ACM V. 10, 6 (June, 1967), pp. 349-357.
(McCarthy, 1967) McCarthy, John, Dow Brian, Gary Feldman, and John Allen.
THOR - a display based time sharing system. AFIPS Conf. Proc. V. 30
(SJCC) 1967, p. 623-633.
699
communication system. T-296, Lincoln Lab., M.l.T., Lexington,
Mass., 1963.
700
ON-LINE TEXT EDITING USING
VISUAL DISPLAY
v. M. Briabrin
INTRODUCTION
The need tor high-efficiency man-computer interactive
system would hardly be disputed. A lot ot on-line conversa-
tional systems haTe been des1gned already, and stlll many
teams are engaged in developing of the similar projects.
Graphic 4ispl~ terminals give a good basis for the s1gnlf1-
cant progress in th1s field. On-line text process1ng With the
natural and rather simple language, easy to learn and to use,
ls a problem to be solved w1th the aid of Visual Display.
The system for on-line text editing, descr~bed 1n th1s
paper, is a part of a more general System for On-line Data
processing (SOD), whioh is under design in the Computing
Centre of the Academy of SOiences of the USSR.
The SOD configurat10n 1s represented ln Figure 1.
MONITOR 1s the lead1ng program, supervis1ng the operation of
several consoles and programming systems. PROCESSOR is the maln
SOD subsystem and 1 t contains three parts: IKPtn/OUTPU~ and
FILE CONTROL, EXECurOR, EDITOR. The f1rst one ls engaged in
input/output actiVity and flle management. The second part,
IXICUfOR, ls responsible for translation, program running,
keeping the results, etc. EDITOR ls the maln instrument tor
program amendment in terms ot the souroe language. EDI!OR
funotioning i8 the maln subjeot of the followlng dlscussion.
Six programmlng lansuages are aVailable for the user:
BlSM-6 Assembly LaDguage (AftOCODE), !I,GOL 60 [1 ] , CEBI
FOB!RAI [2] , LISP 1.5 (3J , SHOBOL-A [4] , DEBUG system lang-
uage[5]. The nuaber of consoles depends on their t1Pes.
Teletype T-63, typewriter CONSUL, and a spec1al deTtce equip-
p.d with CRT and a light peD are ava1lable. Up to 24 telet7Pea
or 12 typewriters, aDd 4 devices with Tis_al dlspl~ CaD
operate 8i.ultaaeously.
701
MONITOR PROCESSOR I/O FILE
CONTROL
-i ASSEMBLER
1 ---I EXECUTOR
- FORTRAN
-t LISP
--i SNOBOL
'---
DEBUG
SYSTEM FUICTIOIIII
To lnteract wlth the slstea the user sends sa lnstructi-
on to the computer. The s,ste. baDdIes the instruction text,
performs the neoessarT aot10ns &ad glTes the user soae fora of
reply_
Two aodes of input fro. the user are possible: t1P1ng
Via keyboard and point1ng with a light pen. The first parmi.-
slbl. mode ls always typlng and the user oan proceed with it
as long as he wlshes. In order to chaDg. the mode, a 8peolal
1nstructlon should be sentt PII. At thls 80ment the light
buttons with the naaes of systea instruotlons appear on the
screen (Figure 2), and the user can choose the necesaarl
1nstructlon bl pOintlng at the appropriate button. The rest
of the scree., free of light buttons, 1s the worklns spaoe,
which 1s fllled ln by the approprlatetext or picture, genera-
t_d as the cODSequeuce of the instruction perforaanoe.
If the user wishes to return from the light pen to th'
t1'Plng aode of input, he should point at the IBYBOARD button.
In order to choose the particular programa1ng slste. the
user should point at the SYSTEM button. !he result is that a
702
WORKING SPACE
703
this point the user starts editing. First of all some portion
of the souroe text should be displa.re-d om the screen. This i3
initialised by the LIST instruction with the following syntax:
LIST /<segment list).
where
(segment list)::~ (segment> I (segment list) , <segment>
(segment) ::. <bleok name) I (line segment) (b1ook name) -
<line segment)
(line segment) ::= <line name> I (line name) : <line name>
(blook name) ::= B (integer)
{line name) ::= L (integer)
Examples
LIST / L15.
LIST / B8.
LIST / BS - L15 : L19, L23.
Line name denotes some portion of the souroe text termi-
nated by a particular oharacter-terminator. Block name denotes
a speoifio point in the souroe text, from which the terminator
aocount must be started. The integer part of the blook name 1s
the number of the left block delimiter searcned from the begin-
ning of the souroe text. Block delimiters are specified when
SYSTEM is an.ounced. For example, in the BESM-ALGOL system [1]
symbols ft -- BEG IN L..I ft and " END ..... " are considered as left and
right block delimiters. -
Onoe mentioned the block name is substituted for each
segment of the segment list. If no one segment contains the
blook name, the starting point of liDe terminator acoount
coinoiies- with the beginning of the source text.
When the user is working in the KEYBOARD mode he has to
type character-by-charaoter the whole text of the instruction.
When working with a light pen it is neoessary ~. point at the
light buttons in some order. For exampl~when the user starts
editing, he has, to point at the LIST button (Figure 2). The
view of the soreen changes; it contains now three rows of
light buttons (Figure 3). In the bottom row there are buttons
with the following names:
- ALGOL (current system name);
- LIST (current instruotion name);
- EXECUTE (the buttoJl. for terminatioB of the instruction),
- KEYBOARD (the button for chang1ng the mode of input).
The next row oontains four oontrol buttons, named BLOCK, LINE,
UPTO and NEXT. The th1rd row oontains oharacters of the perm1&
sible alphabet. In the case of the LIST instruction, these
704
WORKING SPACE
ACCUMULATOR
o 1 2 3 4 56? 8 ~
705
EDIT INSTRUCTION
The syntax of the EDIT instruction is the following:
EDIT / (assignment sequence) •
where
(assignment sequence) ::= (assignment) I <assignment
sequence) • (assignment>
{assignment) ::a (left part> ~ (primary list>
(left part) ::= (variable) I <variable with a pattern) I
(line segment)
(variable) ::= (letter) I (block name) I (line name)
(variable with a pattera) ::= (variable) - (pattern>
(pattern) ::a (primary) I <primary> : (primary)
(primary list) ::= (primary) I (primary Itst> , (primary)
(primary> ::= (variable) I <string) I (integer> <variable) I
(integer> (string)
Examples
Variables: L15; B9; A ; B ; X.
Strings : 'ABS'·' - ' • , '-',
'END -', '. 'STRING '-'-' f ABC' '.
Primaries: L15; 2L15; 3X; 'ABC'; 9 '~'.
Variables with a pattern: L16 - 'FCT'; B8 - L9 : L12.
Assignments: L15 :: 'ABC' , X , J' L......I', Y ;
L19 -'REAL' ='INTEGER' ;
L20 = ' ';
B9 = 'LABEL :' , B9.
The semantios of the assignment in our system is the
same as in SNOBOL-A [4·1 • The value of the string in the left
part of the ass1gnment is replaced by primary list elements
values. Note that an integer preoeed1ng a string or variable
denotat1on is co.sidered as a repetitlen faotor: for example,
.3 ,~, - 1s equivalent to'~A-I""""'.
The view ef the soreeD for the EDIT instruction is show.
tn F1gure 4. Light oontrol buttons are named: REPLACE, BY,
STRING, VARIABLE. The permissible alphabet is wid.ened compared
t. that of the LIST iastructioa. DuriBg the composition of the
lDstructloB text the user teuches alternately at the different
po1ats ell the soreea, followiag the abeve syntax. To illustrau
the sequence of pointing we shall consider aa example where
80me oonventions should be taken int. account:
706
15. _ BEG IN _REAL A, BJ:C; _INTEGER I;
16. _FOR 1:::1_STEP 1_UNTIL N-DO
17. _BEGIN A:::2; B:::1-X; C:::2tI+A/B;
18. _END ;
19. _BEGIN _REAL M,K;
20. M:::_IF X<2.5_THEN X_ELSE 5;
21. K:= ABS(X/2);
-
X ::' END '-' ' •
L17 :: L17, ' ....... ', X.
L19 -'R' :'L' • 'INTEGER'.
L20:: "'.
The order of pOint1ng for th1s sequence 1s:
reElaoe X ~ string END~execute
replace ltf Ez variable L 17 string L...I variable X execute
I
707
It may happen that the user needs some character which
is not present in the permissible alphabet, displayed on the
screen. In this case it is possible to change the input mode,
by pointing at the KEYBOARD button. This button may be pointed
after BY,STRING, VARIABLE and EXECUTE buttons, i.e. each
element of the primary list, or the whole assignment may be
defined either by pointing or through the keyboard.
By pointing at the EDIT button, the user "switches off"
the EDIT instruction and is able to choose another necessary
instruction.
LOAD INSTRUCTION
When the user completes the editing process he has to
insert the displayed text into the appropriate place of the
source text. This is 1nitiali~ed by the LOAD instruction, which
has the same syntax as the LIST instruction. The view of the
screen for the LOAD instruction is also similar to that shown
in Figure 3 with the exception that the LIST button is repla-
ced b7 LOAD and the NEXT button is not present at all.
From the user point~view LIST, EDIT and LOAD instructions
mq be considered as "generating the rough copy ot some part
of the source text", "altering of this copy" and tt inserting
it back into the source text~
STRUCTURE DISPLAY
Programs in ALGOL, LISP and BESM-6 Assembly Language are
representative of texts in which the ttstructure" is expressed
very clearly. Special pairs of symbols are oonsidered to be
block del1m1 ters, for example, " BEGIN ........ and If END ~" 1n
ALGOL, "al tt and "E;" in AUTOCODE-"("and tt ) " 1n LISP.
To exam1ne the structure of the program the user sends
the STRUCT instruction to the system. The syntax of th1s
instruction is the following:
STRUCT / (block segment).
where
(block segment) ::: <block name) I <blook name) : <block name)
Examples
STBUCT / BB.
STRUCT / B10 : B15.
The sequence ot pointing at the light buttons for the
second example is:
block 1 0 upto 1 5 execute
The picture displayed is shown in Figure 5. Suppose that the
708
B10 - L27 B10 - 127 B10 - L27
[[
B11 - 129
812 - L33
- L40
[[ B11 - 129
B12 - L33
- L40
[[ B11 - 129
B12 - 133
- L40
B13 - L42
[
B13 - L42 [ - L49 [
B13 - L42
- L49 - L49
- L50 - 150 - 150
B14 - L51
[ B14 - L51
- L58 - L58
[ [
- 168 - L68
709
when the number of END-s in the displayed segment exceeds the
number of BEGIN-s. In this case some vertical lines on the
screen have no hooks at the top (Figure 5c).
With the aid ot the STRUC~ instruotion the user oan
examine and evaluate the block struoture ot an arbitrary part
of the souroe program. The maximum number of blooks being
displayed is 10. If the user sends, for example, the instruo-
tion:
STRUCT / B2 : B20.
and all the blooks being called are ot the same level then
blooks B2 : B11 are displared, while others are negleoted. If
the structure is multilevel then only 10 external blooks are
taken into account.
EDITOR IMPLEMENTATION
The internal organization of the EDITOR system is
developed on the basis of the SNOBOL-A compiler. The execution
of LIST, EDIT, LOAD and STRUCT instructions m81 be divided
into three stages:
1. Transformation of the instruction text to the SNOBOL-A
like form.
2. Processing of the transtorme.d instruction text with the
aid ot the SNOBOL compiler.
3,. Displq1ng ot a text whioh is the result of the instruo-
tion processing.
fhe first of these stages, the transformation of the
EDI~R instruction to the SNOBOL like form, is pertormed by-
systematic substitution of symbols of the instruction text
to the appropriate SNOBOL-A programs. The following exam,les
illustrate this process.
Examples.
1. Instruotion LIST/B8-L15:L19 is transformed to the
following SNOBOL-A statement sequenoe:
AI~ SOURCEI B:= I_BEGIN \....A' I C:= '-' I
Is. 8, Ms. 151 Ns: 19;
~ I:: 1:r !! A pattern .H., B, .T. :. T;
A:: B,T;
~ Is: 1 : M-1 ~ A pattern .H., C, .T • := T;
BUF:. " I
-
for I:: M:N do
begin A pattern .H., C,.T~TI BUF:: BUF,H,C ~J
710
LIST:: LIST,BUF ,
where SOURCE is the identifier at the variable whose value is
the source text;' BEGIN \-l' is the string corresponding to the
left block delimiter; ._' 1s the str1ng, conta1n1ng the ALGOL
line term1nator. K,M,N - parameters prov1ded by the 1nstruc-
tion text. Intermediate str1ng variables H and T contain the
"head" and the .. tail" of the string A as a result of pattern
search. BUF seryes as a collector tor the values at the
15-th, 16-th, ••• , 19-th lines, appended one to another. The
variable LIST is oonstructed tram the previous LIST
value and the value of BUF. The LIST value is displayed on the
screen.
The process of pattern search is illustrated in Figure
6. The first for statement gives the result Ai , the second
one Ai , the third for statement aooumulates the value at the
BUF variable, 1.e. the str1ng at charaoters from the 14-th
up to 19-th line terminator.
2. Instruction EDIT/L16 - 'ABS' .'ENTlER' is transformed
to:
A:: LIST; M:=16; BUF::",
for I:: 1 : M-1 do
-
8-th BLOCK DELIMITER LINE TERMINATORS
SOURCE:
~
~-----BEGIN -
.2-?-
14 1 5 - 19
_____:004-_~_ _ _ _ _- _
A1:
A2:
13UF:
711
3. Instruction EDIT/L18 - ~R': 'L' ; 'INTEGER', 9'~'
1s transformed to:
e- LIST; M:x18; BUF:. , ,e
Ae-
,
~
e_
Be- , e BLANK:: B;
l.- f
- e_
--
:tor Ie- 1:8 do BLANK:; BLANK, B;
.-
-
for Ie- 1: M-1 do
begin A pattern .H., C,.T. :;T; BUF:=BUF,H,C end·
A pattern 'R', .N., 'L':; 'INTEGER', BLANK;
-'
LI'S'T:; BUF, A;
4. The sta·tement sequenoe for the instruotion
LOAD/ B8 - L15 : L19 is Similar to that of the example
1, excluding that the "head" and the "tail" of the
SOURCE value should be preserved during the pattern
search, in order to embraoe the ourrent LIS T value:
A:=SOURCEJ B:='_BEGIN 4 ' ; C:= '-'f BUF:; "~I
X:= 8; M:= 15; N:: 19,
-
for 1:=1 : K-1 do
-
}egin A pattern .H., B, .T. :: T; BUl:: BUF,H,B
~;
A pattern .H., B, .T.:. B,T;
BUF:. BUF, H,
for 1:=1 : M-1 do
begin A pattern .H.,C,.T.::T; BUF:;BUF, H,C ~;
for Is: M : N S2 A ~ttern .H.,C,.T. := T;
SOURCE:: BUF, LIST, A,
It can be eeen from the given examples that program~ng
of EDITOR operations in SNOBOL-A 1s rather simple and effient.
Folt the purposes of the EDITOR system it isn't neoessary to
use the full-scale SNOBOL-A compiler. Only three of the
SNOBOL-A. possibilities are of the greatest value - assignment,
pattern search, and for statement.
FUTURE
A useful extension of the desoribed system will be,
from our point of view, the development of a more powerful
mechanism ~or structure d1spl~ and manipulation. Thus, if it
were possible to display the program structure not only on the
basis of blook delimiters but also 1n other terms, S23, with
respect t,o labelling and oontrol transfers, it would be a
712
valuable instrument for program construction, debugging, and
amendment.
Th1s approach would' g1ve also a bas1s for another useful
projeot - the displaying of dynamio program structure in
terms that are intimate to the particular user. We cons1der
this work as one that d1rectly leads to man-oomputer
symbiosis.
REFERENCES.
1. BESM-ALGOL System, Ref. manual, Mosoow, 1969.
2. CERN 6600 Computer. CERN FORTRAN, CERN pub11cation,
Geneva, 1964.
3. J. MoCarthy at a1., LISP1.5 Programmer's Manual,
MIT Press, Cambr1dge, Mass., 1966.
4. S.S. Lavrov "SNOBOL-A a Language for Str1ng Prooessing" ,
Computing Centre of the AcadeDlJ' of So1enoea of the 1lISSR,
Moscow, 1968.
5. V.M. Br1abr1n "Program Debagg1ng from the Remote Console",
Computing Centne of the Academy of SCiences of the USSR,
Moscow, 1970 ( to be published).
713
PART 9
Computer Generated
Animation
GENERATING COMPUTER ANIMATED MOVIES
FROM A GRAPHIC CONSOLE
S. E. Anderson
INTRODUCTION
717
Two major programs were written which accept this picture
language: HICAMP (Hopkins Implementation of Computer Aided
Motion Pictures) and HICAMPER (Hopkins Implementation of Com-
puter Aided Movie Perspectives). They were adapted by the
author from his previous work for the E.E. Dept. at Syracuse
University, and are fully described in his M.S.E.E. thesis.
HICAMP produces movies of planar, 2-D objects, while HICAMPER
accepts similar commands to produce movies of 3-D objects in
perspectives (see fig. 2). Both programs utilize a novel list
processing concept to store pictures, which allows a selected
sub-group, or an entire scene to be manipulated by a single
command. Loops of instructions can generate hundreds or even
thousands of frames of film, depicting complex motion of any
sort, expressable by an equation. Simple motions (translation,
rotation, or sizing) can occur separately or compounded togeth-
er. Although the programs were written in FORTRAN for trans-
portability to other computing centers, they are stored on disc
in load module form. All instructions are read in as data
cards, so that the compiler phase is unnecessary, resulting ln
very efficient real time operation. Basic figures, such as a
circle, rectangle, or arrow are invoked by giving an easily
recalled mnemonic with the desired location and dimensions. A
full alphabet, along with special characters are also provided.
Since the letters are treated as pictorial data, they can be
manipulated in the same manner instead of being limited to
several font sizes. Any rectangular area can be masked out or
windowed in automatically. These areas can be changed dyna-
mically, creating unusual "wipes" or "dissolves" for special
effects. If the first and last views of a figure are specified,
all interstitial views can be calculated by a linear interpol-
ation when called for. This technique can even be used to
produce cartoon styled movies.
fIBMl IBM
~ 360/91
MICROF ILH
RECORDER
PLOTTER DIGITIZER
Figure 2.
Figure 1.
718
OPERATION OF HICAMP AND HICAMPER ON THE IBM 2250
719
input to precede each pictorial group and assign it to a par-
ticular stack which may be referenced later. A processing
program punches cards from the tape in the appropriate format
for either HICAMP or HICAMPER, so that the figure can be manip-
ulated under animated control. The former method for the pro-
cedure described above was to sketch the figure on cross
hatched paper, read off the coordinates visually, and keypunch
this data onto cards. The digitizer reduces the time involved
in this process by as much as 2 orders of magnitude!
Figure 4.
Figure 3.
STEROSCOPIC ANIMATION
720
COMPLETED MOVIES
11'
z
Figure 5. Figure 6.
~ I~ ~ ~ ~ 11 ~ ~
~ ~ ~ ~ ~ ~ ~ ~
721
1. Anderson, S.E., "A Graphical Programming Language for
Computer Generation of Incremental Plots and Animated
Motion Pictures", Master's Thesis, Syracuse University,
1968.
722
PRODUCTION OF COMPUTER ANIMATED
FILMS FROM A REMOTE
STORAGE TUBE TERMINAL
R. L. Phillips
The University of Michigan, College of Engineering,
Dept. of Aerospace Engineering, Gas Dynamics, Lab-
oratories, Building 422, Ann Arbor, Michigan, U.S.A.
1. INTRODUCTION
In the few years since Knowlton 1 first discussed his BEFLIX language
for .producing computer animated movies, film-making under computer dir-
ection has been employed in a variety of disciplines. Not only have high
quality films of a tutorial nature been produced 2 but many researchers have
found computer animated films to be an invaluable method for presentation
and study of new data 3. Also, several investigators have recognized the
advantages of computer animated films for educational purposes. Indeed,
Huggins 4 found that in some cases students felt it was easier to perceive
basic physical phenomena from computer generated movies than from actual
laboratory experiments.
One premise on which the present research is based is that there are
many areas in education, particularly engineering education, where subject
material that is normally presented by lecture only could be profitably sup-
plemented by computer animated films. These would not be elaborate films,
in fact they need not even be of "stand alone" quality. Rather, they would
require the presence of a lecturer in order to be meaningful. It is felt that
such films should be made by the instructor who will use them, or at least
made with his close cooperation. This would insure that the film conveys
exactly what the instructor intends instead of a close facsimile that might
be produced by a well intentioned film -maker. Unfortunately, the usual
methods of producing computer animated films militate against this arrange·
ment of close involvement. In general, a computer-output-to-microfilm
(COM) device is required, which, because of its high cost, can be acquired
by only a handful of organizations, usually not universities. Thus, a pro-
grammer must prepare a tape which contains device control commands and
723
send it to some remote location for processing. Since it is usually not pos-
sible to preview any part of the film before sending it away, it can be vex-
ing, not to say discouraging, to discover after waiting typically two weeks
that a small programming error has rendered the film useless. If a casual
programmer, e. g. typical faculty person, is to be persuaded to participate
in computer aided film -making, a far less cumbersome procedure must be
offered him. Such a procedure is the subject of this report.
2. HARDWARE REQUIREMENTS
2. 1 Computek Display Terminal
The display terminal used in the present system is made by Computek,
Inc. and is designated as their Model 400/20. A photograph ofthe terminal
is shown in Fig. 1. The feature of this terminal that makes it so suitable
for computer animation and indeed, that makes the system feasible at all,
is the bi-stable storage tube which is used for the display medium. This
tube has excellent resolution and can retain complex, flicker -free frames
for well over 15 minutes with undiminished brightness. By contrast, the
usual graphics terminal uses a display buffer to refresh an ordinary CRT at
least 30 times per second. When the picture comprises, say, a few hun-
dred vectors, flicker becomes perceptible and soon intolerable. With the
storage tube this problem is not present.
724
Figure 1. Computek Model 400-20 Terminal.
725
drawn upon receiving four bytes of data. Since a single curve can replace
many dozens of vectors the size of a display file can be considerably com-
pressed as a result of this feature.
While the Computek can accept data at the rate of 2000 characters per
second most installations would not have the data communication capability
to handle this speed. For time sharing operations, where data transmis-
sion rates above 2000 bits/second are hard to come by, low (110 baud) and
medium (1200 baud) speed serial asynchronous interfaces are usually pro-
vided. Since the Computek is Teletype -compatible and operates on ASCII
code a considerable amount of useful work can be done by using Teletype
device support routines through Bell 103-type modems. Granted, the data
rate is slow (10 characters per second), but most of the work reported
herein has been done at that speed. In order to evaluate system perform-
ance at higher data rates one can simply scale up plotting speeds in propol
tion to the modem available. For example, at 10 characters per second
about 2.5 four byte vectors or curves can be drawn each second. If a Bell
202 type of data set is available, more than 25 such vectors can be drawn
each second.
726
2. Photographic System
As mentioned earlier, computer animated films are made by photo-
graphing static displays, a frame at a time. When a complete frame has
been drawn the last character which is transmitted (DC 2 in the ASCII
command table) causes a "back panel" voltage to go high, which in turn
actuates an Arriflex 16 mm pin-registered camera. The camera is
equipped with an animation motor which allows one to select two shutter
speeds, or the equivalent of bulb operation. After exposure, the frame is
advanced, a screen erase signal is sent to the display, and another frame
begins. This photographic system produces high quality output which is
free from any perceptible jitter.
3. SOFTWARE REQUIREMENTS
3. 1 Low-Level Computek Software
Computek supplies purchasers of a terminal with a package of about 40
rudimentary subroutines for display manipulation. They are coded in
FORTRAN IV and are perhaps not as efficient as one would like but they
exist and they work. These subroutines produce code for the drawing of
both visible and invisible vectors in four-byte absolute and incremental
modes. In addition, two byte incremental scalable vectors can be drawn,
as well as continuous curves, which are specifiable by four bytes. So far,
for film making, only four-byte absolute moves and vectors have been
utilized. Clearly, a great saving in transmission time could be effected by
using two-byte vector modes and the continuous curve feature, and in future
work these capabilities will certainly be exploited.
727
tape or file which contains SC-4020 hardware code. The 4020, like the
Computek, has a screen with 1024 x 1024 raster points, and its plotting
commands specify the absolute coordinates of the starting point of a vector
or move in addition to the horizontal and vertical components of the vector.
This is precisely the information required by the low level Computek sub-
routines, so that translating the 4020 code into a terminal command is a
simple matter.
728
is useful for titling sequences or when two-for-one photographic stretching
is desired.
729
5. TIME AND COST FOR FILM PRODUCTION
Obviously, for films that are to be well over 100 ft in length the meth-
od of producing computer animated films discussed herein would not be
practical. For films that are of from 2000-4000 frames long, however,
the method is attractive both from a cost and time standpoint. Costs are
difficult to pin down. Assuming that the programming effort for a film is
not counted in its cost (students provide excellent programming services at
little or no cost) we can begin accounting for expenses at the time we first
sign on at the terminal. Again, costs for computing services vary; at The
University of Michigan terminal hook-up charges are $2. 50/hour, and
other than that, one is charged mainly for CPU time and virtual memory
used. Fortunately, though, the policy is to charge for memory only when
the CPU is being used. Thus, a large program can be loaded, and left in
virtual memory for long periods of time without incurring significant costs.
How long will it take to make a film and how much computer time will
be expended? A difficult question to answer indeed. Obviously, the amount
of computation required to produce a frame and the number of vectors per
frame will both be important factors in giving an answer. First of all,
serious movie making is not feasible with low speed data sets like the Bell
103 series. One should at least have a Bell 202, but the faster the better.
For the subject material with which the author has been concerned (fluid
flow, flight mechanics, heat transfer, to name a few) it has been possible
to produce a 2000 frame film using less than $20 of computer time. On-
site development is a matter of $2 more at most, so that the finished
16 mm film costs about $25. If it is to be converted to Super-8, another
$10 must be budgeted to pay for the optical printing and cartridging. Thus,
the finished film, ready for classroom viewing can be produced for less
than $40. The viewing time of a 2000 frame film is about 2 minutes, but of
course, the endless loop cartridge permits multiple reviewing. This
viewing time has been found to be quite suitable for the lecture expanding
type of film that provides the impetus for this study.
6. ACKNOWLEDGMENTS
It is a pleasure to acknowledge the support of the National Science
Foundation on this project. In addition, Mr. Clarence Martin played a
major role in writing the POL YGRAPHICS post processor and his assist-
ance is gratefully acknowledged.
REFERENCES
1. Knowlton, K. C., "A Computer Technique for Producing Animated
730
Movies, II Amer. Fed. Inform. Processing Soc. Conf. Proc., 25,
67 (1964). -
2. "Laser Light, " a film produced by Scientific American, with animated
sequences by Joseph Kaye and Co., Cambridge, Mass.
3. Levy, M.A., Pollack, H. N., Pomeroy, P. W., "Motion Picture of the
Seismicity of the Earth, 1961.1967, ,! Bull. Seismological Society of
America, 1970, in press.
4. Huggins, W. H. and Entwisle, DoriS, '!Exploratory Studies of Films
for Engineering Education, "Dept. of Electrical Engineering, Johns
Hopkins Univ., Sept. 1968.
5. Michigan Terminal System Manual, Second Edition, University of
Michigan Computing Center, Ann Arbor, Michigan, Dec. 1967.
6. Sarno, Frank, "Polygraphics User's Manual," Polytechnic Institute of
Brooklyn, Dec. 1968.
731
PART 10
Developments in
Display Systems
PROJECT MERLIN
A GRAPHICS OPERATING SYSTEM
Introduction
735
Meta System Components
736
· machine independence
Machine Independence
737
are released by IBM. In contrast, the Meta System operates
under OS/360 and makes no special demands on OS/360. These con-
cepts will be gone into more fully in the section devoted to
the Meta Operating System.
738
code becomes cumbersome, and compilers become larger and more
complex. Providing routines in Fortran to create stacks and
the other facilities needed to achieve recursion is nothing
more than a partial and roundabout approach to the Meta Machine
concept without the latter's simplicity and elegance.
739
In those cases where significant calculation is re-
quired -- the solution of a set of simultaneous equations, for
example -- the Meta System provides the ability to link to sub-
routines which have been coded directly in one of the languages
of the host machine. These languages may be high level languages
such as Fortran, or may be assembly language for the utmost in
efficiency.
Football Executable
Language Machine Code
That Will Carry
r---~Out Coach's
/
Program
Compilation
By Football
Language
Compiler FIG. I
740
In the above diagram, both compilations take place on
the Meta Machine. The executable machine code seen to result
in the diagram would subsequently be processed on the Meta
Machine to supply the coach with an answer.
C. ML LANGUAGE
741
~TA SYNTAX
COMPILER V
OBJECT DECK I'
SYNTAX DESCRIPTION
- -
l-
OF META SYNTAX -
"" ~OMPILATION -
COMPILER
OF
SYNTAX DESCRIPTION
OF ML LANGUAGE "" --------
COMPILERS
l~YNTAX DESCRIPT ION I ON
OF FOOTBALL LANGUAGE )1-----------
'SYNTAX DESCRIPTION .... - META
.- - - - r,
OF OTHER USER- " MACHINE USER
ORIENTED LANGUAGES
\V
FOOTBALL
!IS.E.R COMPILER
SOURCE CODE
1 (OBJECT)
1
COMPILAT ION
~RITTEN IN ~ ON META I-
FOOTBALL MACHINE
LANGUAGE
OTHER
COMPILER
USER (OBJECT)
1 I I
742
DIAGRAM OF
META SYSTEM
,
ML
~ COMPILER
(OBJECT)
FIGURE II
'v
SOURCE CODE
WRITTEN IN
,..... COMPILAT
ON META
ION
ML LANGUAGE MACHINE
...v
EXECUTABLE
OBJECT
CODE
.1-
EXECUTION
ANSWERS & . .
ON META
RESULTS
MACHIN~
EXECUTABLE XECUTION
OBJECT + - - - - * ON META ANSWERS &
MACHINE RESULTS
ANSWERS &
RESULTS
743
ML contains language constructs that facilitate
the manipulation of large files of data. (See
section on Meta Putget for further discussion.)
D. META PUTGET
744
user. Although files containing data and files containing pro-
gram are handled identically by Putget, they will be treated here
separately for pedagogical purposes.
DISC ALPHA
745
data file is referenced.
746
programmer permits complete flexibility to accom-
modate any kind of file structure.
747
The foregoing is accomplished using a light pen (or
other input device) and the alphanumeric keyboard. With practic1
the above steps are accomplished as fast as the eye can follow
and represent a dramatic improvement over card shuffling and
key punching.
Time-sharing facilities
Light-button structure
748
This interaction consists of the following:
749
button he activated. Then, the action described by that word
is initiated.
750
ML Language. See Appendix on Graphical Constructs of the ML
Language.
NODE 0
ALABAMA WYOMING
NODE 1 NODE 50
BOSTON SOMERVILLE
137 3 8
SIZE POPULATION
FIGURE III
751
Not only is the light button capability available to
the programmer for inclusion in his programs, the Meta System
itself offers its faciliti'es to the user through a light button
tree. The user can rapidly interact with the other components
of Meta System, his program, and data files by the appropriate
selection of light buttons. Complex data management procedures
can be faultlessly performed in seconds. An example is given
in a following section entitled "The Meta System in Action."
752
THE META SYSTEM IN ACTION
753
System encounters a syntax error during compilation, it displays
the offending statement on the screen along with an arrow point-
ing at the mistake or the suspicious area, and an explanation
as to the nature of the syntax error.
MISSING RT PAREN
At this point, the user inserts the missing parenthe-
sis, and re-initiates the compilation process by simply touch-
ing the "COMPILE" light button. Had it been necessary, more
complex editing could have been carried out as described
earlier in the section devoted to the text editor. This is
all done with the light pen and the keyboard. With practice,
the above steps are accomplished as fast as hand and eye can
work together and represent a dramatic time saving over con-
ventional methods.
754
For example, the user can stop execution at any point and look
around and inspect the current values of his variables at that
point. Suppose, for example, that variable ALPHA in a program
was intended to take on values between zero and one only. Also
suppose that during execution ALPHA somehow gets set to a large
number. The user would plant a trap for ALPHA (using the Text
Editor) such that as ALPHA was about to be set to a large number
execution would stop, the offending statement would be displayed
on the screen, and the user could proceed to track down the
cause of the trouble.
755
the offending ALPHAs to BETAs. Finally, he uses light buttons
to recompile and execute the program.
FINALE
ACKNOWLEDGEMENT
APPENDIX
756
found on graphical display consoles are circle generators,
wink circuits, variable intensity control, variable line tex-
tures, variable character size, and a variety of user I/O de-
vices such as mouse, joystick and trackball, etc. Language
features for these devices are not covered in this discussion.
Screen Layout
LIGHT
WORK AREA
BUTTON
A~A
MESSAGE AREA
~--------------------------------------------------~-------------
757
The light button area is used to· display words indi-
cating the actions that the user may perform. By touching the
light pen to a particular word, that action will be performed.
See the full description of the light button statement on page
18 of this section.
LB Statement
Form: label:LB CJ
(1 ) *strexPl*(labO}
{ namel (labl), name2(lab2}, name3 (lab3) ••••
*strexpl*(labO}
J)
(2 ) [/KB (lablO)]
(3 ) [/LP (labll)]
(4 ) numl
[/FK( ( *num2, num3,
nums
[ *num6, num7,
J
num8~ •••
]
(lab12>J ;
758
The light button (LB) statement performs any or all
of several functions:
The node display would contain TRANSPMODE, and below would appear
the three light buttons. If one were detected on with the light
pen, control would be transferred to a statement. within that pro-
cedure having a label of the same name. For example, if the
light pen caused a detect on the TAXI light button, control
would be transferred to a statement with the label TAXI.
759
STRING (36) CARRIERS:
AIRLINES: LB(*CARRIERS*(GOLABEL))i
When the two forms are intermixed in this fashion, the string
expression light buttons must appear last. In this example, if
UNITED were detected on, .LBNUM would return the value 3.
In this case, any other light pen detect would transfer control
to the statement with the label NOTCARRIER. Certain cells can
then be interrogated to learn the coordinates of the detect.
F K ( 1 2 3 *4, 16 , 2 *) (LAB) i
760
other one (i.e., 1, 2, 3, 4, 6, 8, 10, 12, 14, 16). Function
keys can be turned on individually (such as keys 1, 2 and 3 in
the above example) by simply specifying the key numbers in the
parentheses following "FK". Theycan also be turned on in groups
by the symbology *numl, num2, num3* in the parentheses. This
expression indicates that starting with function key numl, and
ending with key num2, turn on every num3th light. If the
above example had read FK (1 2 3 *4, 16, 3*), function keys
1, 2, 3, 4, 7, 10, 13, 16 would have been turned on. (i.e.,
every third one in the range 4-16) .
• LBNUM Construct
DTEXT Construct
761
Example:
. BELL Construct
Form: .BELL
would put up the message shown and sound the audible alarm 3
times.
This completes the discussion of the ML statements
and constructs peculiar to the light button area and message
area. Before proceeding with a discussion of the many ML
facilities pertinent to the work area, some preliminary con-
cepts are presented.
762
of these members have been declared as belonging to the family
GEOMETRY. In this way, a light pen detect on any single line
(entity) can be readily treated (if desired) as a detect on the
entire geometric figure (member). At a higher level, it is
possible to refer to both geometric figures by the family name.
For example, if one issued the command .DELETE FAMILY, both
geometric figures would disappear from the screen.
. DEFINE Construct
763
corner of the rectangle for this member. X4 and x5 are the
physical coordinates of the upper-right-hand corner of the
rectangle. 4
Example:
764
run from zero to 100 in both the x and y direction, and the
physical limits are the entire screen .
• LINE Construct
Form:
{~LINE
.LNj
l(membname, xl,yl,x2,y2) i
Example:
• TEXT Construct
Example:
765
.CHARACTER Construct
Form: CHARACTEj
[ . CHAR (membnarne, xl, yl, strexpl [( strexp2}J ~
.CH
766
For the single character, scissoring is handled as
follows. If a character would fall outside the member rectangle
it is automatically moved by the system to the border of the
rectangle at the point closest to where it would have fallen.
In some cases this would be sufficient to inform the programmer
or user that scissoring had occurred. However, additional feed-
back can be provided by changing scissored characters to some
other, highly visible, character such as an asterisk. In this
way, any time an asterisk appeared on the screen it would be
evidence that scissoring had occurred.
ALPHA = 'ABCD';
• ENDPOINTS Construct
767
construct) of the line most recently defined. Strexp3 will
annotate the second endpoint of this line. If a portion of a
line would fall outside its member rectangle, only the portion
falling outside is scissored. In order to make this apparent
to the observer, the .ENDPOINTS construct is used; the character
marking the end of the line that was scissored is automatically
moved to the border of the member rectangle at its closest point
to where it would otherwise have fallen. Unless the scissored
line is horizontal or vertical or passes through a corner of
the rectangle, it will be apparent that the endpoint character
does not lie on the line and will serve notice that scissoring
has occurred.
B
./
,/
member
rectan-
gle
A
768
In this case, the display would be identical except for the fact
that in place of the B, an asterisk would appear. In other words,
strexpl and/or strexp3 are used when the endpoints are in bounds
and strexp2 and/or strexp4 when the endpoints are out of bounds.
. DISPLAY Construct
Form:
l
(DISPLAY] •
.DP I
769
display and become visible to the user. A typical sequence of
instructions might appear:
DO I TO 100 BEGIN
.LINE(PROFITS, XLO(I), YLO(I), XHI(I), YHI(I))i
. CHAR (PROFITS, XLO(I), YLO(I), SALESMAN(I/l))i
EOOi
.DISPLAYi
.FAMILY Construct
Form: . FAMILY
.FM (famname)i
.FM(MANAGEMENT)i
.DF(PROFITS, XLO, YLO, XHI, YHI,*)i
.DF(COSTS, XLO, YLO, XHI, YHI, *);
.FM(ENGINEERING)i
.DF(STRUCTURES, Xl,Yl, X2, Y2, *)i
.DF(CIRCUITS, X3, Y3, X4, Y4, *)i
.FM(SALES)i
.DF(TERRITORIES, X5, Y5, X6, Y6, *)i
.DF(SALESMEN, X7, Y7, X8, Y8, *)i
shows that
770
Inactive families are, nevertheless, displayed on the screen
until specifically deleted by the .DEFINE construct (next page).
• DELETE Construct
Form:
[ DELETE}
.DL
(FAMILY
[membl, memb2, ... membn
]
;
.FAMILY MANAGEMENT~
.FAMILY SALES;
.DELETE FAMILY;
771
.SETKEYBOARD Construct
Example:
DAYS TO COMPLETION
772
The cursor will not move into the protected region.
*KBWAIT construct and *KB Construct
strvar =g~YBOARD}
Description and Example:
BLANKS = 5Xj
DTEXT ('TYPE IN EMPLOYEE NUMBER')j
.SETKEYBOARD (BLANKS, 50, 50, 5)j
NUMB = *KBWAIT
.LIGHTPEN Construct
Form: [LIGHTPEN 1
.LP .J;
773
Description and Example:
774
ON THE APPLICATION OF GRAPH THEORY
TO COMPUTER DATA STRUCTURES
R. Williams
ABSTRACT
This paper deals with computer data structures. These data struc-
tures can be represented by directed graph structures and the purpose of this
paper is to show how methods and techniques of graph theory can then be used
to process these graphs. A viewpoint is taken that a basic tree structure
exists in a general data structure. If this tree structure can be extracted,
or identified during the creation of the data structure, then it can be used
to make comparisons with other basic tree structures. An algorithm to find
the greatest cornmon structure of two trees is presented. If a cost function
is associated with the arcs of a graph structure, then a minimum cost tree
can be derived. This has application in minimizing data retrieval times and
in minimizing page swapping in data structure paging systems. Arbitrary re-
lations among data can also be represented by a graph and its matrices. It
is shown that, by means of standard operations on these matrices, operations
can be performed on these relations to derive further relations and logical
data associations. A general model builder system, with which some of the
above ideas will be investigated, is briefly mentioned.
I. INTRODUCTION
*This work was supported by the Air Force Office of Scientific Research,
Directorate of Information Sciences, AFOSR Grant AF-AFOSR-68-l367 and
the National Science Foundation Grant GJ-19.
775
This organization of data is called a data structure. One of the most im-
portant considerations in any large computer graphics application is the de-
sign of the problem data structure. In graphical applications a data struc-
ture also includes the pictorial information that is used for displaying line
drawings.
There exists little theory to which one may turn for help when de-
signing a data structure. Most data structures are based upon a few simple
calculations and some educated guesses. It is the purpose of this paper to
show how the application of graph theory can be a useful tool in some aspects
of data structure design. Although at first it may seem that this work is
not application oriented, it does have practical significance.
776
A
c
B D
a) A directed graph
El E E E4 A B C D
2 3
A 0 0 0 0 A 0 1 1 0
B 1 1 0 0 B 0 0 0 0
C 0 0 1 0 C 0 1 0 ]
D 0 0 0 1 D 0 0 0 0
777
B. Data structures as graphs:
The most commonly used data structures are hierarchical-ring struc-
tures and tree, list structures. A list is a collection of data or blocks
of contiguous data connected together by pointers, as shown in Figure 3a.
A pointer is a means of linking the items together and may be simply an ad-
dress or a tabulated name tag. If the data items or blocks are represented
by nodes and the pointers by arcs, then a list may be represented by the
directed graph structure sho~n in Figure 3b. If the last item of a list
points to the first then a closed list, called a ring, is formed. This is
represented by a circuit (sometimes called a cycle) in a directed graph, as
shown in Figure 4. Additional pointers may be added to the ring structure
to create a linkaging in the reverse direction or to link every element to
the head element. These pointers are then represented by additional, cor-
responding arcs in the graph.
A. Explanation of viewpoint:
. /
Very few useful results can be obta1ned from a general graph to
assist in the design of data structures. Somewhat more could be obtained
from tree structures. However, in any general graph with only a few nodes
(say 20), in which every node is connected to every other node, there are a
prohibitively large number of possible trees. Typical hierarchical struc-
tures used in computer graphics applications have many nodes (hundreds or
even thousands), and the total number of possible trees is extremely large.
Clearly, to be able to make reasonable computations, the number of trees to
be considered must be limited to a small number.
778
· .......... . - .....,-----,
N
a) A single list
.. A
..
B
.................... . ---....
N
l .. · . .. .. .. .. .. .. .. ..
·.
j
A B N
779
A
r--
r .
B l- e
...
~
r-
~ .... ~
-- ,- 0 ~
E ,.. F
~
r-;::: G H
l-
a) A tree structure
780
A B
c. ~
- TR! 11 DF CF
-- In E S 1
~ [
-- SO 1 AB
rill
IH~
f-
~
cn
I--
nR
~
--
.. TRI
2 __
J
BE CE
-
781
A B
,.....--.......
D ft---~r DES 1
F TRI 1 2
a) A line drawing
design
CF.-____~~------~~----~~
b) A graph representation
®
R
Use of an element
o
c
An element definitiol
• • sc ~ Use of a previous
definition
-( T D Definition of an
image or
node.
782
In computer data structures, however, there are certain regularities
of structure and an implied hierarchical ordering of structures. By making
use of these things, particular tree structures can be considered.
7~
SCI SC3
R1
SC4
-L SC 6 SC5
SC7
R2
C2
a) An amplifier stage
Amplifier stage
C T SC
784
Amplifier
t--~ •...•...
Stage I Stage N
Definition of an amplifier
stage
Stage 1 Stage N
• •
R T
RI R4 C I C2 SCI SC12 T
785
The essential structure itself is made up of ring structures if
nodes are the headers of rings of other node and element uses. But each
ring has a header which is known by its header identification code, and it
can be reduced to a list by marking (flagging) all the forward pointers
around the ring except that from the last element back to the header. Thus
an essential structure can be converted to a list structure.
There are many useful things that can be computed from the basic
trees of model structures. Comparisons can be made between two basic trees
to find their largest common structure. This has application in network
topology, for example, and in linguistic pattern recognition schemes. The
more general case of comparing two graphs, not trees, occurs in comparing
the structure of chemical molecules to find common substructures. Numerical
values derived from cost functions can be associated with the arcs of the
tree and used to control operations on the structure. For example, if these
values represent retrieval times from node to node the tree can be segmented
into pieces, depending upon these values, in such a way that the time taken
to retrieve information from the model can be minimized. This has applica-
tion in paging of a model structure. Other results, such as the number of
elements or terminal nodes in a node definition, or whether a node defini-
tion is contained in another node definition can be determined directly from
the basic tree. It would be much harder to determine these things from the
general model.
A typical tree structure and its code sequence is shown in Figure 12.
787
A
DE FH I L M
a) A tree structure
A 2 B 4 C 3 D E F G 2 H I K 2 L M J N 2 0 P
;'
I
\
I
I
I
t I
I I
,, ..... ~
,
~
... .-
...
... - - ... " '"
LARGEST COMMON
STRUCTURE .... '"
788
B.!L't. COMMON
,. ... "
" ~-~
, "
, "
, , I ",
I
,
\
. I
"
~
step 5). Otherwise go to step 3).
3. Compare the next code element in Tl with the next code element in
T2. If they match and this is the last element in T2 and also the
last element in Tl, got to step 8). If they match and it is not
the last element in Tl or in T2 repeat step 3). Otherwise go to
step 4).
4. Remove the leftmost node from Tl. This forms several subtrees in
Tl. Mark the first of these and call it Tl. If Tl is empty go to
step 5). Otherwise go to step 2).
5. If there are any subtrees left in the original Tl sequence, let Tl
be the next subtree not yet marked, mark it and go to step 2).
Otherwise go to step 6).
6. Reset ~l to the original full sequence. Remove the leftmost node
from T2. This forms several subtrees in T2. Mark the first of
these and call it T2. If T2 is empty go to step 7). Otherwise
go to step 2).
7. If there are any subtrees left in the original T2 sequence, let T2
be the next subtree not yet marked, mark it and go to step 2).
Otherwise stop.
8. Save this structure as a matched equal substructure.
where C denotes a total cost along many arcs and c denotes an arc cost.
This result yields a simple algorithm for finding a minimum cost
700
o p
DE FHI LM
A 2 B 4 C 3 D E F G 2 H IK2L M.J N 20 P
2 - 4 - 3 - - - - 2 - - ---2 - - 2 - -
a) Tree Tl
K L
A2B3J2KLEFC3GHID2MN
- 2 - 3 - 2 - 3- ---2-
b) Tree T2
791
tree in any structure. First we form any spanning tree by removing all arcs
that complete circuits in the graph. 2 ,3Then the process is to consider each
node in order from top to bottom and left to right, to see whether a lower
cost path to that node can be obtained by traversing an arc of the original
graph but which is not in the spanning tree. If such an arc is found it is
substituted for the arc that currently points to this node. This process is
made clearer by the example shown in Figure 16. This figure shows: an orig-
inal graph with numerical cost values next to the arcs, a spanning tree and
the minimum cost tree. The dotted lines added to the spanning tree indicate
arcs that should be in the minimum cost tree. First consider node AI, the
shortest route to this node is via arc Ao to Al and has a cost of 2. Now
consider node A2. In the spanning tree the cost from Ao to A2 is 2 + 2 = 4.
But the arc Ao to A2 directly, only costs 3. Therefore remove the arc from
Al to A2 and substitute the arc from Ao to A2. This process can be repeated
over the whole graph to obtain the minimum cost graph.
The weights for all the other pages relative to PI are calculated
by mUltiplying together the weights along the path(s) from PI to these
pages. If two or more paths exist from PI to any other page, the condi-
tional weights are all kept. In this example wl5 = 0.57 if P2 is selected
or 0.2 if P4 is selected. Now put into core with PI the two pages with the
two highest weighting factors, taking the conditional constraints into ac-
count. This results in PI, P2 and P5 being selected.
792
a) A graph with a cost function
A5
c) The minimum cost tree for the graph in (a)
793
Result:
w 1 ;3- (0.7)(O.57)zO.4
w 12 - 0.57
w I4 =0.28
w 1S - (0.57)(1)=0.57 with P2
(0.28)(0.7) ~ 0.2
with P 4
w 16 = (0.28)(1)=0.28
Constraints:
If P 2 -fJ' P5
If P 4 -+ P6
Choose PI • P 2 , P
5
Figure 17: One of the Graphs Used in a Paging Scheme.
A B C D E F
P:
A 1 1 0 0 0 0
B 1 1 0 0 1 0
C 0 0 1 0 0 1
D 0 0 0 1 0 0
a) A simple geom etr ic figure
E 0 1 0 0 1 0
F 0 0 1 0 0 1
b) A matrix representation fo
th e parallel relation in (a)
Is A parallel to E ?
794
The problem is alleviated somewhat by the fixed constraints, since this re-
duces the number of nodes that can be placed in more than one page. Pre-
sumably this would only be done for a finished, fixed data structure or at
least for completed pieces of it. It is a frightening thought to consider
making such a low-level scheme dynamic.
795
P: ABC D E F
A l l 0 000
B 110 0 1 0
COO 1 001
D 0 0 0 100
E 0 100 1 0
F 0 0 100 1
? + [pA]T x[P]
where [pA] means row A of matrix P. The result is: [110010], which means
that A is parallel to A, Band E. This operation is repeated until there
is no further change in the result which means that all items parallel to A
and any number of transition levels removed,have been determined.
A 1 0 1 0
B 0 1 0 1
C 1 0 1 0
DOl 0 1
ABC D
C: A 110 1
B 111 0
COllI
D 1 0 1 0
796
A
c
a) A parallelogram.
A B c D
c: A B c D
P:
A 1 o 1 o A 1 1 o 1
B o 1 o 1 B 1 1 1 o
c 1 o 1 o c o 1 1
D o 1 o 1 D 1 o 1 1
? -1(\1(\1'
? - 0
797
The first term is the same as in the previous example and finds all
lines parallel to A. The subscript C means take column C only; it is only
one element and indicates whether C is parallel to A or not. The second and
third terms use row A of the connected-to matrix, and determine whether B
and D are connected to A. The logical expression then determines the over-
all combined result. This gives
? + [lOlOlC l'\ [HOll B n [HOll D
?+1"1 () 1
? + 0
a) reflexive a 'V a
b) symmetric a 'V b implies b 'V a
c) transitive a 'V band b 'V C implies a 'V c.
798
V. A GENERAL MODEL BUILDER SYSTEM
A specific
machine
description
f
Designer's
inputs
799
VI. CONCLUSIONS
ACKNOWLEDGMENT
REFERENCES
800
IX. APPENDIX A
where C . denotes a total cost from a to j along many arcs and Cij denotes
cost f rom 1.. to J.
an arc al .
Proof:
a) If C . > C . + c .. then clearly C . is not a minimum cost path.
aJ a1. 1.J aJ
b) Suppose T is not a minimum cost tree; and suppose n is a node where
C is not minimal. Let Pan be the minimum cost path from a to n. Let
(r~j) be the first arc in G but not in T on path Pan. Since Pan is a mini-
mum cost path from a to n, then Pak is the minimum cost path from a to k for
and node k on the path. This is so because if there exists a lower cost
path P~k then P~k + Pkn would be a lower cost path from a to n than Pan and
by hypothesis, this is not so.
The cost along path Pai is Cai.
By assumption Caj in T > Caj in G (not in T).
But Caj in G = Cai + Cij
arc (i,j) satisfies Caj > Cai + Cij
This means that if T is not a m1.n1.mum cost tree, an arc exists that
satisfies the above relation. Therefore T is a minimum cost tree only is
there is no arc satisfying the relation
Caj > C + c ..
ai 1.J
801
DESIGN OF SOFTWARE AND FORMATS
FOR INTERACTIVE GRAPHICS SUPPORT
L. J. Schaefer
INTRODUCTION
1Other sections are covering graphics applications, here we will not cover any
applications but will deal with standard software supplied as tools by means of
which applications may be developed.
2 Althoughthe design effort is presented as though predicated by defined hardware
environment characteristics, there was iteration between hardware and software
design, especially in arriving at the required transformation for the final image
representation.
803
System programs have been developed to provide standard formats and calling
sequences to interface with all display facilities and on-line peripherals. Thus,
most major application systems and supporting user procedures or data can be
developed by traditional programming methods and techniques.
Therefore, the development of all ordinary programming support facilities
was required. This included macro-assembler and compiler for specifying pro-
cedural descriptions or routines for generating data and models, operating systems
with program preparation aids, loaders, debuggers, utilities for library and file
handling, and on-line interactive user-statement monitor for overall system control.
These traditional software support facilities have been revised to support
interactive on-line user, and extended to support the graphics capabilities as will
be described later.
The extended system support for graphics has been made available to the user
or application writer through three additional system packages: the DSPLY Oper-
ator for assembly language users (Ref.4), the AFDSP Package for FORTRAN users
(Ref. 6), and the BUILD Operator (Ref. 5) for on-line interactive modification of
visual descriptions associated with the users' model or data.
The most serious constraint upon software developed for interactive use is
one of performance. It is encountered when trying to effect desired responses to
on-line user actions within tolerable response times.
A software system cannot provide for interactive use if it fails either to imple-
ment the facilities desired by an on-line user or if, in using them, they incur delays
in responding which exceed the patience of the user. Both of these failings can dis-
tract the user, disrupting the train of thought which the on-line interactive dialogue
is supposed to encourage and explOit.
804
HARDWARE IMAGE PROCESSING
The software design discussed in this paper was carried out for a line of
graphics terminals with local processor manufactured by Adage, Inc. of Boston,
Massachusetts, U. S. A. This system has been described more extensively in the
paper by T. Hagan, et aI, (Ref. 3). A survey of the software which resulted from
the design has also been presented by A. VanDam and R. D. Bergeron (Ref. 2).
The unique transformational facilities characterizing this terminal were first
proposed in the 1966 SJCC by T. Hagan and R. Trieber (Ref. 1).
The following sections discuss some of this material from a functional view-
point as pertinent to software.
Visual Elements
The display function of the graphics terminal is realized by processing data
in its core storage. This data, in the general case, described three-dimensional
visual images. The processing of these image descriptions displays a two-
dimensional picture on the CRT.
Visual concepts to be described as images for display processing must be
abstracted into compositions of basic visual elements which the terminal can gener-
ate. The visual elements which can be generated are points; shaded, blanked, or
dashed lines; strokes; and strings of text characters.
The character string positions, points, strokes, and lines are specified by
coordinate positions. Lines and strokes, whtch require two points for definition,
are defined from the previous coordinate position to the current one. Each position
is specified as a three-dimensional point with coordinate values x, y, and z in a
right-hand coordinate system.
The range of coordinate values in each dimension may be considered normal-
ized in the range + 1 through -1. USing "DRA W (x, y, z)" to specify a displayed line
and "MOVE (x,y, z)" to represent a blanked (not visible) line, the following list
constitutes a definition to the image in the 3D space shown in Figure 1.
MOVE (0, 0, 1)
DRAW (1, 0, 0)
{l}
" (0, 1, 0)
" (0, 0, 1)
805
For example, the image in Figure 1 would be described by incremental draws
as follows:
MOVE ABS (0, 0, 1)
DRA W REL (+1, 0, -1)
[ 2}
" " (-1, +1, 0)
1. More efficient packing of data for specifying short lines. This saves core
and increases the performance by drawing more vectors with fewer
accesses to core.
2. Ability to effect translation of relatively defined image segments. By
varying the initial absolute positioning item, all immediately following
relative items may be displaced. This method of effecting desired transla-
tions increases performance by relieving the processor of the computation
load required to recompute all coordinates of the translated segment. For
example, the image in Figure 1 can be displaced in the -x direction to the
position shown in Figure 2, which is described as follows:
Comparing [2} and [3}, note that the only compute load on the processor is
that of altering the one initial absolute positioning item regardless of the length of
the definition of the segment being displaced.
3. Aid subpicture calls. The facility for translation of relative image seg-
ments has been readily used to describe repeat~d instances of often-used
images.
When the display processor or channel provide for sub-image jumps and
returns, one can use relatively defined sub-images as masters from
which exact copy (scale and orientation) instances can be placed by a des-
cription which does pOSitioning to the location of each instance followed by
a call to the master relative sub-image definition.
For example, if the definition H-RES specifies the following image
806
y
PT. 2
Figure 1.
+y
"-
"" Figure 2.
" "-
" 807
+x
Figure 3.
Figure 4.
808
+x
in relative coordinates and then return jumps to the calling image, then
the following definition will describe the image in Figure 3.
CALL H-RES
MOVE (. 1, 0, 0)
CALL H-RES
MOVE (. 1, 0, 0)
CALL H-RES
Transformation Facilities
809
-112 ""
""
""
"
Figure 5.
0 LrlJ 0 -
--... x
,
0 QJ [ R ..
IJ ] GJ -
,.. Y
,
FOR VISUAL
ELEMENT
U ~L-J~ 0 ..• z
, GENERATION
x:..- SRllx+SRI2y+SRI3z+dx
Y . . - SR21 x + SR22Y + SR23z + dy
z ' ' ' - SR 31 x+ SR 32 y +SR 33 z + dz
Figure 6.
810
I-----------------f---~.I COMM·I
DISPLAY
CHANNEL
.....
R dV
... 0 0 o
0 0 o
---•...
GJ
... 0 0 o
Z ~ S (0 +0 + z) + 0 ~ Sz
CORE STORAGE
Figure 7.
00
......
......
Consider Figure 7, where a display channel is fetching items of an image
description from core and passing those which specify elementary visual ele-
ments to the display generator for processing. If the transform registers are
loaded with values illustrated by the equations underneath, as can be seen,
the sole effect is to scale the element arguments by the factor loaded in the
S (scale) register. If the S register is loaded with unity, no effect is per-
formed by the transformation and the visual elements generated are exactly
those defined by the image description.
For an arbitrary value of S, the effect on the input image definition space is
illustrated in Figure 3. As the coordinate values of elementary items in the
definitions are scaled down, the entire image segment defined by them is
scaled down. The only additional overhead incurred is the one loading of the
desired scale into register S prior to processing the description
y'
Figure 8.
812
y
y' Figure 9.
x
x
11
R = R = cos
22
e
-R = R
21 12
= sin e
R = 1
33
R 13 = R31 = R~3 = R32 = ~
Figure 9 illustrates the effect in a z-plane on a point of a rotation about the z-
axis by an angle e. The coordinates of the rotated point in terms of its ori-
ginal unrotated coordinates are given by the equations at the right. Underneath
values of Rij are given which would perform the illustrated rotation.
Similarly, varying values of dV will position the scaled rotated definition
space (and any image descriptions it contains) at any location throughout the
transformed space.
813
ability to rotate an image by a single rotation item (affecting many co-
ordinates) is a facility desirable for on-line use. Having a single rotation
item able to apply it to an arbitrarily long segment is a functional charac-
teristic whose performance makes it feasible for interactive use, and
choosing the user's more likely input, the angle, is the choice of
description-format-to-hardware decision being sought.
3. A description format whose usage in describing images would be "natural"
to a programmer.
4. A description format which offers the programmer effective use of the
available hardware facilities.
5. A description format flexible enough to be used under most of the prevalent
programming and/or modeling schemes which are possible.
The following paragraphs will discuss and present some of the data structure
selected for specifying images in a flexible dynamic and modular form. They have
been chosen to be easily worked with by the user, the system software, the user's
modeling programs, and directly by the terminal's display processor itself.
814
The item for packed formats was chosen to be a command specifying the table
type and a single argument giving a reference to the packed data table.
The display processor hardware was designed to extract command and argu-
ment information from the fields used in packed data tables and from that chosen
for the general image item representation.
A default was also implemented so that any extended use of the fields for fa-
cilities or options not implemented in the hardware would result in a priority
interrupt to a software interpreter.
Transform Items
The hardware transformational facility performs any construct defined from
our elementary visual items to be arbitrarily scaled, rotated, and positioned with
no added per-vector overhead over the untransformed images. Only that time
necessary to load the transformation parameter registers is needed to affect all
subsequent coordinates processed.
One form of user control considered desirable was to permit a described
image portion to remain specified in these parametric transformational terms if
the interactive on-line use was expected to involve alteration of its parameters.
This would require that, each frame, several registers be reloaded (with
possibly changing volumes) to perform the equivalent of modifying many possible
coordinates.
For example, in Figure 10, if an expected interactive alteration is to be value
e which the link makes to the base, the image can be described by a transform
item(s) between two segments of elementary items. These would be an assemblage
of visual elements describing the base followed by a pOSitioning to the pivot and a
rotation about the pivot, followed by the segment of visual element describing the
link.
The new transform specifying image items would use their argument field to
provide values for loading the hardware transform registers. It was found more
effective for both user image gen,eration and on-line modification to have the rotation
transform items expect the angle of rotation as their argument instead of the derived
rotation matrix. One of the software extensions on the channel interrupt catches
rotation items and uses their angle arguments to compute the trigonometric ratios
to be loaded into the hardware transform registers.
815
e
BASE LINK
Figure 10.
816
LINK LINK 2
Figure 11.
So when they are then further transformed by Tl ' as all other link 1 vectors
V1, they appear as
(6}
Expanding T2 we get:
= SI Rl (S2 R2 V + ~ + d1
817
Multiplying out and moving the scalar s 2 forward, yield the form:
=: Sl S2 R,. R 2 V+ Sl R1 d 2 + d 1
The. following table gives the implemented items, their arguments, and a
brief description.
Table 1.
Transform Specifying Items
Type Ar~ments
818
DV F Z, FX, FY Displace following image from current
position along local X, Y, Z axes by
(FX FY F Z).
LDSCL FSCAL Scale subsequent image seg. by FSCAL.
LDRX AX Instate rotation by AX about CRT-X axis.
LDRY AY Instate rotation by AY about CRT-Y axis.
LDRZ AZ Instate rotation by AZ about CRT-Z axis.
LDRV AZ, AX, AY Instate successive X, Y, Z rotations from
CRT frame.
LDX FDX Reset local X displacement to FDX from
CRT center.
LDY FDY Displace FDY from CRT center along local
Yaxis.
LDZ FDZ Displace FDZ from CRT center along local
Z axis.
LDV FDZ, FDX, FDY Displace from CRT center by FD along
local axis.
LDI Instate CRT reference frame.
Control Items
819
and perform other functions which will be covered later.
The effect of a transformation can be bracketed to range over a set of items
by a pair of items, one of which saves the current transform on a pushdown stack,
and the other which restores a transform from the stack and loads it into the
transform hardware. These are called "Save Transform" (SA VET) and the "Restore
Transform" (REST) image items. This also permits arbitrary nesting of trans-
formed image segments.
Each "sub-image call" item (IMG), performs an automatic SA VET, pre-
serving the transformation, the return address, and certain other control infor-
mation on the stack. Therefore, the "Return from Sub-Image" item, (RET), in
restoring from the stack, will also cancel the effect of any transformation changes
performed by the sub-image. This normally permits a sub-image call to be used
in image definition with the same freedom and flexibility as simple element-
generating items.
Paramertic Arguments
Another design choice was to provide for flexible addressing and referencing
of arguments to image items.
Since many of the meaningful variables of an image description have been
brought out as arguments to its items, identity constraints can be imposed by
addressing common values to one defining variable. This makes it easy to bind
visual imagery to a running program or model, or the values it generates or
maintains.
One of the addressing modes permits accessing a value located relative to the
head of a block or table which in turn is found by possible indirect addressing
through a chain of pOinters (a form of post-indexing). This permits image descrip-
tions to be imbedded in most plex or linked block modeling structures.
One field in the common half-word of each item specifies the type of addres-
sing necessary to obtain its arguments. This is called the "Data Type" field and
specifies the three characteristics of an item's argument references.
1. Location -(Immediate/Addressed)
The references to individual arguments of any item may be included in
words of the item or only an address reference to where the individual
references are assembled, may be given. Therefore, several DRAW
items may refer to one common block containing the coordinates of their
common end-point. This end-point can be moved by just altering the one
commonly used set coordinate references.
2. Contents -(Value/References)
820
general addresses referencing the cells containing the desired values. If
the arguments to an item will not be varied, it is more efficient to give the
values immediately in an item. But, if the arguments to several different
items are to be continuously altered to one changing variable, it may be
more efficient to have them all address the variable.
3. Packing -(Full/Half-Word)
When all arguments are available as 15-bit values they may be packed two
per word, providing the most efficient display processing. They may also
be given one per machine word for more efficient internal processing and
programmatic use.
821
The JSR items are implemented so that argument list references can be pas-
sed to the called user-written computer program. Upon return from the program,
the display processing is re-activated and processing of the image continues.
This capability together with addressing permits a very active or dynamic
class of images to be described.
Now that images can vary by addressing and modify themselves by JSRs, it
was found that many repetitive picture assemblages could be effectively defined as
repetitions of changing or self-changing segments. Thus, a pair of "loop-control"
items was implemented. They delimit the range of a segment to be repeated; the
first also takes as an argument the initial repeat count.
The running count is always pushed on the stack for sub-image calls and
popped back upon return.
To permit descriptive material to be scattered, as with the data it describes
in a linked data structure, a "Jump in Image" (JMP), image item was implemented.
The addreSSing modes permit the display to follow the links which tie the structure
together.
The last set items to complete the execution control class are the conditional
image items. They conditionally perform an image jump (JMP), or a sub-image
call (IMG) depending on the state of conditions monitored by a set of sense bits.
These include signs or zero test of monitored variables, light pen hits over enabled
segments, violation of programmed boundaries 3 and bits identifying the boundaries
crossed. A status register contains the sense bits and control bits.
Control bits enable the boundary and pen-monitoring, specify the overall ef-
fects, such as dashing and solid lines, and select which scopes are to receive the
generated display.
Image items are available to store, load, and change the contents of the statm
register.
PICTURE PROCESSING
The preceding section described how image descriptions are assembled from
image items and how subsequent processing results in describing a three-dimen-
sional construction composed of basic visual elements. The final stage in generatin:
a display consists in extracting a two-dimensional projection of the three-dimension
image and displaying it as the resulting picture on the scope.
The class of items controlling the resulting picture or view of the processed
image are called "viewing items." These affect such qualities as the overall pic-
822
ture scale, front cut-off blanking, intensity modulation for depth cueing, and par-
titioning the display surface into bounded windows.
Picture Scale
Depth Cueing
823
--------, r--------
_______ J
-I +1 -I +1
imgA img B
img C: DX (-1)
IMG (img A)
DX (+1)
IMG (img B)
RET
img C
Figure 12.
112 --II~f----2--~~-1/2
824
img D: ROTZ (11/4)
IMG (img A)
IMG (img B)
imgD
~---2------~
Figure 13.
825
INTENSITY
MAX
.1
-DEPTH
-I .25 +1
Figure 14
826
viewer to move into the displayed range, and moving it out towards the user causes
less of the image definition volume to be on the visible side of the screen cutoff.
This transformation applied to the final image z' to translate it and give an intensity
signal is called "Intensity Displacement" (ID) value and has an implemented register
in the transformation hardware.
Similarly, the z' value is scaled prior to generating the intensity for display
generation. This permits the entire z' image depth range to be squeezed into a nar-
row band of depth in Figure 14 causing all coordinate points to be displayed with the
same uniform intensity. The intensity for the entirely-viSible image could be ad-
justed by the ID value. As the scale is increased toward 1, the lower and more
negative z' values move further from the plane, becoming more and more attenuated
in intensity as in Figure 14, until the further reaches cease to be visible. The hard-
ware transformation register for this facility is called the "IntenSity Scale" or IS
value.
The intensity transformations performed by the hardware are:
I +- IS • z' + ID
Window Bounds
The final viewing-space processing facility implemented is a pair of program-
matically-controlled boundary planes for each dimension of the final viewing space.
This permits an arbitrary volume in three-space or window in the 2D view plane.
to be positioned in the viewer's frame of reference. The hardware will monitor all
final visible image segments which transgress these boundaries.
The hardware will also selectively blank image segments in or out of the
boundaries.
This facility can be used for sifting or picking through an image, or for di-
viding the viewing area into independent "windows," each enabled to display por-
tions of different image spaces. Although the hardware registers use the upper and
lower boundary plane coordinates for each dimenSion, the implemented items use
their arguments to:
1. Load a rectangular window of a given height and width centered at a given
point.
2. Move the established window by translating it to a different point.
3. Scale the established window to new horizontal and vertical dimenSions.
827
ACKNOWLEDGEMENTS
The design and development of the interactive graphics system was made pos-
sible through the efforts of many people as well as the environment and policies
which fostered the cooperative attitudes necessary for such amalgamation of hard-
ware and software design efforts.
I would particularly like to mention some of the principal participants in the
design and development area. As far as hardware, the initial proposal of the
transformation hardware and subsequent hardware development projects were
directed by T. G. Hagan, the display generation system was designed by S. Max,
J. Porter, J. Holman, and P. Esrig. The system integration was coordinated by
R. Nixon. In software, I wish to express my thanks for design support and directio
to Dr. J. D. Grandine and several inspiring discussions with W. R. Sutherland. 4
The standard operating system and system software was primarily implemented by
H. D. Kerr; the graphics support software was implemented by Miss A. O'Reilly,
M. Davis, and R. Freed.
This development was moti viated by the facilities and environment made pos-
sible by Adage, Inc., of Boston, Massachusetts.
REFERENCES
828
BIBLIOGRAPHY
Hardware
L. G. Roberts, "Conic Display Generator Using Multiplying DACs." IEEE
Transactions on Electronic Computers, Vol. EC-16, No.3, p.369, June 1967.
R. F. Sproull and 1. E. Sutherland, "A Clipping Divider." Proceedings AFIPS
FJCC, Vol. 33, pp. 765-775, 1968.
829
SOFTWARE CAPABILITIES
OF THE
ADAGE GRAPHICS TERMINALS
A. van Dam and R. D. Bergeron
Center for Computer and
Information Sciences,
Brown University,
Providence, Rhode Island 02912,
U.S.A.
ABs~rRACT
Publisher's note: This text is a reproduction of the computer output from the
Hypertext EdIting System.
831
tools for building better models for the data that repre-
sents the points and lines.
832
around the "wheel of reincarnation".2 In other words the
hardware display processor has enough power to free the DPR2
support processor for doing some work not connected with
generating the display. (This places it more than once
around the wheel.) However, as we will see later, the
display processor has a limited repertoire of executable
commands, and has less power, for example, than the DEC 338
which is classified as 1 and 1/2 times around the wheel.
833
included in the character string to exercise control instead
of displaying a character. There are control codes to
position the beam, to change character size, shape, and
intensity, and to format the text with line feeds, carriage
returns, superscripts or subscripts.
835
APPLICATION & PICTURE
DATA STRUCTURE
r - - - - - ~~------ , r
_____ t _______ , - ,'.# .....7""'11'''.-
,~
(r1~111• • • '''' ,
-------
I I I , _ -
~TRUCTURE REDUCTION ;
--1----__
SCANNING ROUTINES.: BUILDING AND
, I I
r
I
~
I I' I~ "i
1.-- - - I ,MODIFICATION PROGRAMS ~ TO GRAPHIC ORDERS ~
- ! 1:,."",.... .,." .....-~~
r - - - - -
I
: APPLICATIONS
- - -,
H
I,
~ ~~~r- - - ----- -
ATTENTION HANDLING
- -T
I
rT/'##.
~
~ CORRELATION;
-rrrrITd
~ ~
~UI.SELAY~
<!l
ji'"//"", " '..........
~
I ~ 't ~ ~
i
1 I
: PROGRAM , ~ AND CORRELATION ~ MAP ~ ~ FILE.
~ - - - - - - - - -.I .... _ _,__"",._#;,~ ~(J""'"~~."
ROUTINES ~:------------------
f ------...
I
836
servicing may require the buffer computer to do error
checking on interactive requests, display appropriate pro-
mpts and even perform simple computational tasks required by
the program. (With some special hardware most of these
facilities, with the exception of interrupt handling, can
also be provided by sophisticated buffered displays, such as
the IBM 2250/Mod 3.) However most of the shared memory
systems unfortunately still retain the basic concept of a
"virtual buffer ll • In other words the pictorial information
is retained at the level of a basically unstructured display
file and there is little attempt to use the processing
capabilities of the buffer computer on a higher level of the
pictorial data structure. A typical example of this is the
IBM 1130/2250 Mod 4 [7J configuration in which there are no
facilities for interfacing the display processing with a
data structure, without first compiling a display file.
837
The interpretation process yield~ a further advantage in
the increased flexibi1ity it provides for the Adage trans-
formation facilities. Every set of components, X=(x,y,z),
is transformed before display according to the equation:
Xt = (x' , y' , z .) = s[ R ] X + D
838
the Adage Fortran language (AFORT) which allows the Fortran
programmer to use the facilities of DSPLY. AFORT in an
extension to ASA Basic Fortran. Some of the ~xtensions
provide special commands for external symbol referencing,
overlaying, and tracing.
4.1 DSPLY
839
harjwar~ display processor and returns control to the
operatiny system. The display processor operates on a cycle
steal basis, but can interpret only DRAW and MOVE commands
with immediate data and some table commands. (Tables are
compact collections of consecutive coordinates without
intervening commands. It is the way to get the most data
into the least space.) When the display processor discovers
a command it cannot interpret, it interrupts the foreground
program via the operating system. Control is again passed
to DSPLY, which then performs the addressing operations to
access the data or does the non-picture producing computa-
tion or housekeeping implied by the command (such as
changing a transformation factor).
~o
perform unconditional or conditional branching based on bits
in the Status Register. The Status Register is a software
register maintained by DSPLY. Its bits are used to define
the vector drawing mode and to enable dnd record pen detects
and hardware window bound detects (which occur when the beam
crosses any of the window bounds.)
l\ddress
Operation Data Address
Code tvne mode
bits: O\~_______~~_8~9____1~lA_2_J_____1~5_____~~____________
29~)
841
Bits: c (
2 15 29
Oneration 2 if Argument 1
i~
Argument 2
;:.
Argument 3
--r
BH··s : 0r-_ _-+y.....,.:l.....2\.;,.·
'eper. 171 ~-ItI
1....5' - - - - - - -
Address ~ I .. 41-
A-H 1 Address 1
* A-M ~ Address 2 a.
842
strategy would probably be to imbed the graphics data
structure within his own. In that case he would have to
generate extra JMP commands to connect the various display
commands.
N
NULL ...."L ',"
NULL
MOVE "- .. Point
~AVE Transform
DRAW Eoint
irransformation
JMP <r"
Operations
& Data
* *
CALL Image
* * RESTORE TFM
Line
•
•• Block
.TMP
*
-* r
* J
*
t
Instance Block
843
4.1.3 OTHER DSPLY FUNCTIONS
844
The 'Jraphic cOmman(l languaq"" BtTILDf prov i(h~s an on-line
user with fdcilitl~s for creating and linking image segments
and binding them to loaded programs or images. The BUILD
functions are employed by using the tablet stylus to choose
appropriate entries from the various BUTLD menus.
--------------------
3. Note tha t this is £2.E..Y opera tion a od is not equi valen t
d.
to a subimage call which is a Igl~£g!lfg to another image.
845
A typical procedure for using segments to build other
segments might be employed in a circuit design application.
For instance, segments could be constructed with several
line-specifying items to form a capacitor, a resistor, and
other electrical symbols, which would be saved as separate
segments. These in turn, could then be used to build
segments representing circuit diagrams.
846
ma:o;e Se(~nent }.ilc)rmal Parameter Table 8t.f)1'.,Q O:£,!
(F1X,n)
r.... ...
FX ~
c1-
~
FX ~I"'"
~
FX
847
For example, in the implementation of the system supplied
GET command, a menu is displayed showing the contents (by
name) of the Temporary Library. The user would choose the
element he wishes to add to the current image in the Work
Storage. The person defining the macro may wish that the
user be allowed to choose only a subset of the Temporary
Library that is kept in a separate list (e.g. a "parts"
list.) The operator might define the function GETP by
selecting MACRO, followed by the operation GET. At this
point the contents of the Temporary Library would be
displayed. The person would then choose (as an "automatic"
selection) that a new table, the Parts Table, be displayed.
Since he now wants the user to select one of the parts, he
would probably type in a prompt to be displayed and then
make a "dummy" selection from the Parts Table. When a user
invokes GETP, the Parts Table will automatically appear with
the prompt. When a choice is made from this table, the GET
operation will be activated.
848
display system, but also functions as the operator's console
for the monitoring system or main processor. Since it is a
teletype unit, each character is entered in 7-bit ASCII
format. Hence, during input, each character must be packed
before being displayed. A library subroutine must be used
to accept a single character from the teletype and to return
that character in a register. Another disadvantage of the
hardware character handling is that characters do not
automatically wrap to the next line when the beam goes off
the right hand edge of the screen. Both these characteris-
tics require additional software (and therefore processing
time) to implement bulk text inputting.
849
display processors." C. ACM 11, 6 (June 1968),
410-414.
4. Sproull, Robert F. and Sutherland, I. E. "A clipping
divider." proceedings FJCC (1968), pp. 765-775.
5. Gray, J. C. "Compound data structures for computer
aided design: a survey." Proceedings 1967 ACM
National Conference, pp. 355-365.
6. Machover, Carl "G~aphic CRT te~minals - characteristics
of commercially available equipment." Proceedings
FJCC (1967), pp. 149-159.
7. Rapkin, Michael D. and Abu-Gheida, Othman M. "Stand-
alone/remote graphic system." Proceedings PJCC
(1968), pp. 731-746.
8. Ninke, W. H. "A satellite display console system for a
multi-access central computer." Proceedings IFIPS
(1968), pp. E65-E71.
850
STORAGE TUBE GRAPHICS
A COMPARISON OF TERMINALS
A. van Dam
and
J. C. Michener
Center for Computer and
Information Sciences,
Brown University,
Providence, Rhode Island 02912,
U.S.A.
Publisher's note: This text is a reproduction of the computer output from the
Hypertext Editing System.
851
There is a growing demand for low cost computer graphics
for the small scale computer user or for the user who would
rather have easy access to a somewhat less sophisticated
console than have very limited access (a few hours per day
or even per week) to a more powerful but far more expensive
device. The possibility of obtaining a work station with
random positioning and vector capabilities as well as
character writing speeds many times in excess of a teletype
is very attractive. Such a work station maybe used both as
a time-sharing terminal and as an I/O device for a small
mini-computer, as well as for solving conventional graphics
problems at an affordable price.
852
refreshed display, the entire picture must be displayed 30
to 40 times per second, which requires a high data rate.
With the picture stored digitally (usually in a core memory)
as point and line coordinates, fast logic is needed to
convert the digital representation to beam voltages, and a
high power, fast deflecting, random plotting CRT is needed
to draw the picture. Thus the crucial point has been to
find techniques for storing picture information in other
than digital memories. storing a picture in the analog
X-Y-Intensity form would eliminate the need for a core
memory, and, while still requiring analog storage (e.g., a
video disk), would at least reduce the requirements for
high-speed D-A logic. Even better would be to incorporate
this analog storage mechanism in the viewing screen itself,
thus eliminating both separate analog storage and the high
data rate entailed by the need for refreshing the display_
853
hardcopy) is easily accomplished, as in split screen
presentation.
854
successfully by a DVST type workstation than by video.
Briefly a direct view storage tube stores picture informa-
tion on a dielectric 1 material intermixed with tbe phosphor
screen. Since this material has a high secondary emission
ratio, the high power (writing) electron beam cuts a
positive template in the initially uniformly negative back-
ground. A low power (illuminating) flood beam arrives at
the positive parts (i.e., the picture template) with suffi-
cient velocity to excite the phosphor ~nd to knock out
enough electrons to maintain a net positive charge. The
flood electrons are repulsed by the negative parts (back-
ground) tbus arriving too slowly to either excite the
phosphor or knock away many electrons, and thereby maintain-
ing and even increasing the negative charge of the back-
ground. A DVST based on this bi§iab!~ principle can retain
a picture indefinitely, but viewing time should be limited
to about fifteen minutes since subsequent erasure becomes
less complete with viewing time.
855
is ready for it. 3 A DiST terminal can be used at teletype
rates, but the terminal will spend a lot of time waiting for
data. Indeed, one of the attractive features of these
terminals is that they can plot data at synchronous data
rates from 110 up to 1200 or 2400 Baud, depending on the
terminal.
857
significant from the point of view of transmission time as
it is from that of data storage. This latter however is
very important, especially since we are assuming the local
computer is yuite small. An emphasis on the use of short
incremental graphic modes is thus still relevant. (These
will be described in more detail below.>
All these companies use the Type 611 Storage Display Unit
built by Tektronix, which has a 6-1/2" by 8-1/4" screen,
858
resolution of approximately 300 x 400 line palLs and an
erase time of half a second.
859
As a tube ages it becomes harder to store information; thus
while a dot writing time of less than 20 microseconds could
be used with a new tube, an older tube will require the full
20 microseconds to store a dot. Actually there are some
indications that the 20 microsecond dot time is overly
conservative, and that Tektronix may revise their
specifications.
860
COl and Tektronix) any control character must immediately be
recognized as such and its proper function must be executed.
Thus, by convention, all control characters reestablish
character/control mode {exiting from any graphics mode} as
well as performing their special operation. (Thus, at least
on a conceptual level, when changing from one graphics mode
to another, the terminal passes briefly through the
character/control mode.) Of course, this scheme implies
that graphics data must be distinguishable from control
characters; this is typically implemented by setting a high
order bit in all graphics data characters.
861
"viewable points"; 5 in the Tektronix T4002 the grid is 1024
x 740, in the Computek terminals it is 1024 x 800, and in
the COl ARDS it is 1415 x 1081.
862
determine whether 1) typed input is immediately displayed by
the terminal as well being sent to the computer (Local mode)
or 2) merely passed by the terminal to the computer which
must "echo" the character back to the terminal if it is to
be displayed (Line mode). In either mode the data is always
sent to the computer; the ~nlY difference is whether or not
the data must be echoed back from the computer. with a full
duplex communications line (one allowing simultaneous
bidirectional transmission), Line mode is normally used;
with a half duplex line (bidirecional but not at the same
time), Local mode is usually employed (so that line-
turnaround need not be performed for each character).
Although Line mode requires extra work by the computer, it
provides detection of transmission errors (in addition to
parity checking) and is also good for protecting passwords
(i.e., the password is not displayed as typed).
~3
Major differences between the terminals are found in the
features provided for inputting information. We shall first
discuss character input, later turning to two-dimensional
graphic input.
864
able, this improvement can be field-installed in any exist-
ing T4002. This non-storing, refreshed area is obtained via
modifications to the dielectric/phosphor material of the
basic 611 cathode ray tube; these modified 611 displays are
not (currently) commercially available (except as part of a
T4002 terminal). The great advantage of this mode is that
the user can accumulate and check a whole line of typed
input before sending it to the computer.
865
right by displaying a character. Unlike Tektronix however,
COl and Computek offer optional hardware for right margin
detect, which forces a carriage return - line feed, so that
the next character plotted (or typed) is on the next line
below. These options include a bell which is rung automat-
ically when the right margin is violated; the bell can also
be rung under program control. A bell of this sort lets one
program to set the right margin anywhere. Tekt['onix pro-
vides an electronic warning tone which indicates, like on a
normal typewriter, that the typist is getting close to the
right margin; either the program or the typist has to
introduce the carriage return and line feed.
866
a handle which is f~ee to move about a single fixed point.
A mouse is a small hand-held box which digitizes the
position of two o~thogonal wheels on its bottom surface.
These roll as the mouse is moved across a flat surface,
resolving vecto~ motion into X and Y components. A tablet
digitizes the position of a stylus held in the hand above o~
on the writing surface of the tablet which is usually at
least 10 inches square. Although mo~e expensive, a tablet
is much more natural to use than eithe~ a mouse or joystick
because it is like using a pencil or ball point pen on a
piece of paper.
867
the user will tend to lose his train of thought in this
time. Its main attraction is that it costs little extra. 6
869
Prom one point of view the Computek technique of locking
the beam position to the joystick position is a slight
advantage, in that under some conditions the computer does
not really have to read the position. It is possible, for
instance, to imagine an application where the desired
feedback message is merely the addition of an incremental
picture subroutine drawn relative to the current joystick
position. However, in most applications, a) the computer
has to remember enough information to completely redraw the
picture, on operator command; b) it must therefore remember
the current joystick coordinates, and thus c) does have to
read the coordinates.
870
On some displays, positional information (as opposed to
picked information) can be input by obtaining one of the
graphic input devices mentioned above (mouse, joystick,
tablet); on many graphics terminals, however, interfacing
such devices is very expensive, possibly on the order of ten
to twenty thousand dollars! The positioning device most
commonly obtained for a refreshed terminal is a data tablet
(partly because if one can afford the interface, one can
afford a tablet).
871
drawbacks with this technique include the time required to
recalculate, transmit, and paint the picture (especially
with slow communications lines), and the fact that the input
dev~ce might not be positioned accurately, thereby causing
no "detect" to occur and forcing the computer to redisplay
the picture a second time (after the user has re-positioned
the device).
872
positioning device allows the operator to point at non-
visible cha~acters such as blanks, a pa~ticularly useful
p~operty for text editing.
873
character/control mode from a graphics mode. A programmer
for the Computek terminal must take care to always issue
this escape character lest control characters be interpreted
as graphic commands.
All the terminals have output data modes other than the
standard character/control mode and the four-character point
and/or vector mode(s). Data represented in these other
modes have fewer significant bits in X and y than in
four-character mode, because each order has only two charac-
ters (in one case only one character). Typically, these
modes represent fine detail more efficiently than the
four-character mode.
874
Computek has a two character vector mode which contains
six bits plus sign of incremental X and Y data. Depending
on the "scale" (which is set to either: l~fgg or ~.m~11 while
in control mode), the incremental data are added to the high
order six bits or: the low order six bits of the current beam
coordinates. A vector is plotted from the current position
to the new position, either blanked or unblanked, depending
on the "beam" bit. Thus in addition to plotting fine
detail, this two-character mode can be used for rough,
approximate, large scale plotting, something neither CDI nor
Tektronix provide.
875
more primitive instruction set the small computer might not
have any floating point hardware, and might even lack
hardware multiply/divide.
876
With a character generator using a point grid (Tektronix
and CDr) characters displayed at the magnified sizes are not
as pleasing as at the smaller sizes since they are seen as
discrete dot patterns, not as continuous characters.
877
without special programming considerations are as follows:
Computek 2400 Baud, COl - 1200 Baud, Tektronix - 1800
Baud.
4.8 WINDOWING.
878
one terminal controller (that lS vecto~ and cha~acte~
generator, etc.). This is done with blanking logic which
allows only one storage tube (under compute~ control) to
write at one time. It is in this sort of usage where the
flicker-free nature of DVSTs really comes to the fore. To
the best of our knowledge, no one has ever used two
high-power refI~§h~Q displays together fo~ one operato~ to
increase the amount of information available to him. In
contrast, the Science Services Division of Texas Instru-
ments, for instance, has four storage tubes clustered around
one operator displaying maps and graphs of seismological
data.
5. __ SUMM~S OF TERMINALS.
879
but fast incremental point mode (which is good for simulat-
ing mechanical plotters) indicate that this terminal would
be good for plotting graphs and preparing reports. Finally
the lack (at least at the present time) of a graphic input
device, considered with the above, implies it can not be
used for full interaction.
--------------------
9. If one has no large main frame, such a configuration
makes a cheap "stand-alone" graphics system which cOllpetes
favorably on a price-performance basis with the far more
expensive refreshed stand-alone systems, such as the IBM
1130/2250-4~ the DEC 338, the IDIIOM, etc.
881
to 50%. For this increased expenditure, however, it is
possible to get a high data rate between the buffer and the
terminal, allowing rewriting of the screen within an accept-
able time frame (1/2 second to erase, one to three seconds
to rewrite). This rewriting speed is naturally less than
that used to rewrite (portions of) a refreshed display, but
it is orders of magnitude better psychologically than the
speed obtained over a 1200 baud line from a computer which
is not dedicated to servicing just this console or group of
consoles.
882
as possible in the amount of core available. The problems
of segmenting the data structure for remote operations, as
well as making them compatible across incompatible machines,
are challenging, to say the least. One step in this
direction is reported by cotton[l].
883
displays, and (up to) four storage tube displays. The
PDP-15 has an internal cycle time of 600 nanoseconds, with
from 4K to 12BK of BOO nanosecond 18 bit core.
884
allowing cead-only shared access to the progcam acea. In
turn, this implies that each additional display terminal on
the system would requice only an additional 4K of core (if
local manipulations were to be done; no additional core
required if all work would be processed by the main frame).
885
10. Bose, G. A., "Computer Graphics Communications Sys-
tems", IF!L~.Qllg~.2~L1968_IBvited P.a.E~~, August
1968, pp.211-220.
886
MICROCODED MULTIPROGRAMMING
DISPLAY CONTROL UNIT
1. INTRODUCTION
1
Althou h microcoded control of computers was suggested as early as 1951 (by
Wilkes ), microprogramming is only now coming into fairly general use. The
growing interest is evidenced in the appearance of a number of review articles
(2,3,4,5), and in detailed descriptions of specific applications. In the work re-
ported here, a microcoded control unit was used to implement an experimental
display system in the Los Gatos Laboratory of IBM's Advanced Systems Develop-
ment Division. The system presents alphanumeric and graphic images on remote
television terminals under computer control. Keyboards associated with the ter-
minals provide for user-computer interaction, and a key-activated cursor on the
display screen allows the user to point to image locations where changes are to be
made. A microcoded multiprogramming monitor which resides in the control unit
handles the overall sequencing and control of events in the display system.
In essence, microcode resembles primitive machine language for a machine
whose internal registers are all available to the microprogrammer. In some
microprogrammed machines, the organization is more parallel than in conven-
tional computers, since several operations can be performed Simultaneously in a
single microinstruction cycle. This gives the microprogrammer additional power,
of course, and at the same time it places on him a greater demand for optimization.
Microcode can be very useful as a means of simulating the operation of one
machine on another set of hardware. In the experimental Los Gatos display system,
however, microcode is employed directly to implement an operating system for the
control unit without defining a higher level (machine) instruction set.
As Fig. 1 indicates, requests from the host computer are translated by the
control unit and sent on to the character generator or the vector generator, or to
the control circuits. The generators write--or "paint"--on a vidicon tube which
serves as a scan converter. The writing is performed in directed-beam mode.
When the host computer signals completion of an entire image, the scan converter
887
~
Television
Displays
r---
Scan
Converters
Host Micro-
Programmed Graphic Video
Computer Generator Buffer
Control Unit
889
Vector Orders
(see Fig. 4)
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NULL space & - 0
1 ,-oJ \ I • j A J 1
2 $
b k s B K 5 2
3 .r l.: n .. c I t C L T 3
4 <r ~ -(>
b d m u 0 M U 4
6 L .J r -, f 0 w F 0 W 6
7 0 0 ~ 9 p x G P X 7
8 f l t:. h q Y H Q Y B
-< -> z I
[ R
9 J i r Z 9
A ¢ ! 1\ : Control Orders
.
(see Fig. 3)
B I $ , #
C! < • % @
0 I ( ) I
x
w
J: E + ; > =
I-
J:
I
-, ?
(!)
II:
F "
o 2 3 4 5 6 7 8 9 A B c D E F
LEFT HEX
Set Text
A Line
Int Set . Phony Plot
B Off
Dot DimM Match Si7.e 1
Load lnt Reset Load Plot
C S.R. Dim Dash DimM Tag Size 2
o Cond. lnt
Jump Norm
Loaed Type
Line Reset Camp Size 1
x
~
....
E End
S.R.
Exec lilt
S.R. Brite
Load
MBC EOT
Load Type
Apert Size 2
a
ir
F 9 A B c D E F
LEFT HEX
Fig. 3. Order Table for Control of Image Intensity, Plot Size, etc.
890
0 NULL J X.... X+R, J X.... X+R2 J X.... R,
X-I, X-R,
3 J Y-12 J Y.... Y-R, J Y.... Y -R2
J Y.... R2
4 J X-X+I,
S
NL A R,-X
5 J Y-Y+I, LF V
E
X-X+I, S
A
6 J Y-Y+12 BS LR V R2 .... X
E
L S
0 R,-I, A R,-X
7 A
D
V
E
R2_Y
L
0 R2- 1, X-X+R2
L X.... X+R, L X-X+R2 L Y.... Y+R,
8 A
D
X-X+R, X.... X+R2 X-X+R,
9 LX-I, L Y-Y+R, L Y-Y+R 2 L Y.... Y+R2
NL - Carrier Return
LF .. Line Feed L prefix denotes Line
LR .. Line Return J prefix denotes Jump
BS .. Back Space
Fig. 4. Order Table for Lines (L) and Jumps (J) (See Section III)
891
III. GRAPHIC ORDERS
Specifying a line to be drawn as part of an image is obviously a more complex
problem than specifying which of a given set of characters is to be reproduced.
Each line segment ''painted'' on the display starts at the endpoint of the previous
operation. The line may be followed by a change in line direction, or by a I1jump"
to another point. Straight horizontal lines can be specified completely by successive
X values, and straight vertical lines by successive Y values. Curves (composed
of line segments) involve a series of changing X and Y values and are correspond-
ingly more complex. Graphic orders are supplied to cover all these possible needs,
and more.
Several of the orders provided include accompanying data (two or four bytes),
and produce either lines or jumps. The endpoint of the beam motion on the display
screen can be expressed either absolutely or incrementally by the data transmitted
with the order. Orders with two bytes of data move the beam in the X or Y
direction; those with four bytes move the beam diagonally. These orders are most
efficient for large motions of the beam, and for positioning the beam to some
initial location.
Certain graphic orders make use of two control unit registers which can be
accessed by the orders sent from the host computer. These registers, called RI
and R2, can be loaded with two-byte values from the host computer (orders 07,
08 and OF). Lines can then be produced by consecutive application of 24 single-
byte incremental orders which specify operations of this form:
X = X + (RI or R2 or NULL)
Y = Y + (RI or R2 or NULL)
These orders allow complex connected curves to be specified very compactly. A
small number of jump orders also use RI and R2. There is also a one-byte order
(3 F) which will cause RI and R2 to be loaded with the current value of X and Y,
the beam position registers; another (33) will jump the beam to the position given
in RI and R2.
A description of the way a graphic order is decoded by the control unit will
suggest how microcode is employed. For any graphic order, two controlling
parameters are set up by a unique sequence of two microinstructions. The setup
sequence branches to a single entry point of a routine which calculates the infor-
mation needed to move the beam in the necessary manner. If there is data
associated with the order itself, a lower-level subroutine is called to obtain the
required two bytes of data. The "get data" subroutine then returns to the calculation
routine, which figures out the X positioning information on the first pass and the Y
information on a second pass. There are many new types of vector orders which
could be added by simply adding a new setup sequence.
892
IV. GRAPHIC SUBROUTINES
In applications where special characters are needed frequently, they can in effect
be added to the vocabulary of the display system by means of graphic subroutines.
In an electronic circuit analysis program, for example, the symbols needed often
would be resistors, capacitors, transistors, and so on; in a continuous systems
modeling program, they would be integrators, summers, coefficient multipliers,
etc. The graphic subroutines specify special "characters" in such a way that they
can be invoked by single orders. This obviously reduces the size of the order table
which must be generated in the host computer and transmitted from it.
The host computer can load a series of orders, or a subroutine, into the area
of the control unit's core buffer which is reserved for each video buffer channel,
specifying the relative starting address of the subroutine within that particular
core area. The control unit then obtains orders and data from the host computer
and puts them in consecutive core locations until an "End Subroutine" order is
encountered. Orders are not executed as they are being placed into the subroutine
buffer. After a subroutine has been loaded, it can be invoked by a single order
which identifies its relative starting address. The control unit then operates in an
essentially normal manner, except that orders are obtained from its own core
storage rather than from the host computer. When an "End Subroutine" order is
encountered, the subroutine mode of the control unit is reset and subsequent
orders are obtained from the host computer.
While the control unit is in the subroutine mode, a conditional branch order
may be executed to any location within the core storage area associated with that
particular video buffer channel. The branching condition can be a loop counter
going to zero, a vector being drawn off the screen, or the image falling (partially)
within some user-specified rectangular region. The conditional branch order can
also alter the value of the loop counter or the value in register Rl or R2. This
latter ability allows for the introduction of variations in the scale of an object
drawn by a subroutine, with the scale varying as a function of the number of times
the subroutine is invoked.
The graphic subroutine capability can of course be utilized in a great many
ways, but it is particularly useful in producing repetitive image content. One can
position the beam to some absolute location with a jump order, and then request
a given subroutine to be executed at the "current" beam location. The beam can
then be repositioned and the same subroutine invoked again, repeatedly. The image
shown in Fig. 5 required that kind of procedure. One way in which it could be
generated by invoking interconnected subroutines is shown in Fig. 6.
The basic image component in Fig. 5 is a square which is generated by four
one-byte orders. The square is called by another subroutine which reduces its
size and decrements a loop counter each time the "square" subroutine is invoked.
In our application, it was decided to put the loop-counting logic in the control unit
program, but that logic could just as well have been placed in the host computer's
order table. Such flexibility is a real advantage, since functions can be divided
between the control unit and the host computer as desired to achieve optimum
893
Fig. 5. Image Produced by
75 Bytes of Data
(See Section N)
AE FOOO Increase ti It
894
efficiency in any particular application.
Since image generation time is limited by the vector generator, our choice in
this case results in a considerably lower average bandwidth requirement oor the
host-display connection. That is, the average bandwidth would need to be higher
if the entire order table had been placed in the host computer core. To be explicit,
the image shown in Fig. 5 contains 576 visible lines. To load the subroutine
required the transmission of 33 bytes of data, with no speed requirement. Once
the subroutine was loaded, only 75 bytes of data had to be transmitted to produce
the image. Thus, on the average, more than seven lines are produced for each
byte (data or order) sent from the host computer,. If the entire image were sent
from the computer, at least 2050 bytes of data would have to be transmitted. In
this example, then, the fact that the control unit can execute subroutines and
perform conditional branches results in reduction of bandwidth requirements by a
factor of 27. The saving in total core employed (host computer plus control unit)
is also considerable, representing a factor of 20.
The savings in other situations will depend on the degree of repetition in the
image which is generated. The number of distinct images and image generation
routines which can be stored in the control unit is limited by the available core.
If a sub-image can be drawn by 20 incremental lines or jumps, then approximately
25 sub-images can be stored for each video buffer channel in the experimental
system described here. The image in Fig. 7 was invoked by the same order table
required for Fig. 5. The difference in the images was brought about by making
the ''tilt'' data nonzero; that is, by changing the orders given in Fig. 6 so that
order code AE FOOO reads AE F040 instead.
V. MICROPROGRAMMED MONITOR
The monitor residing in the control unit functions as indicated in Fig. 8, checking
requests for service and responding to them as soon as possible. The existence
of a priority structure is indicated in the fixed order for checking requests. When
requests must be placed in a service queue, entries at a given priority level are
held in a first-in, first-out queue using the core of the control unit as buffer
storage.
The operation of the scheduler is determined by the occurrence of key-strokes
at a terminal, by the re-availability of the character or vector generator (after
completion of its last task), and by other asynchronous external events. Some
operations have unpredictable durations (painting an order table, for example),
but many others have a known maximum length--accepting and processing a
character from a keyboard, for instance. Since such "transactions" are always
executed to completion once service has begun, the scheduler is transaction-based.
When any service is completed, control is passed to the top of the scheduler,
i. e., to the waiting request which has the highest priority. This means that a
low-priority request could in theory wait a considerable time for service.
895
Fig. 7. Variation of hnage
Shown in Fig. 5.
896
In general, activities governed by the control unit are not subject to "rate
overrun"; that is, errors will not occur if requests are not serviced within a
fixed time. When the host computer initiates contact with the display system,
however, quick response by the control unit is necessary to avoid an error indi-
cation. To assure prompt response, a priority interrupt is provided which can
be enabled and disabled by the microprogram. When the interrupt is enabled and
the host computer attempts "initial selection" of the display system channel,
control is passed to a microcoded routine. The microroutine saves registers for
working space, completes the initial selection dialog, sets a flag to indicate that
a channel command has been received, and finally restores the saved registers
and returns to the interrupted microprogram. The command from the host
computer is later decoded and carried out, as indicated in Fig. 8.
To understand the way the scheduler microprograms, and the way the system
interacts with the user, we might look at some specific timing information.
Consider a line-producing order code which references registers R1 and R2. Such
an order is interpreted by the control unit microcode in about 16 microseconds,
and a request sent to the vector generator. The vector generator accepts the
request immediately, but will be busy drawing the line for 8 to 125 microseconds
(depending on the length of the line). For a series of lines which are one-fourth
the width of the full screen, the control unit is thus occupied only 40 percent of the
time, leaving the rest of its time available for other activities. While the character
or vector generators are busy, the control unit will service attention requests
from the keyboards and/or cursors. If a keyboard-entered text line is being painted,
the scheduler can transmit status information or accept a line of text to be edited
from the host computer.
If characters are being painted (rather than lines being drawn), the microcode
requires 11 microseconds to present the transformed request to the character
generator. The time to generate a large character averages about 20 microseconds.
If automatic spacing between characters is desired, an additional two microseconds
of microprogram time is required. The vector generator is used to position the
beam to the "next" character location after the current character has been painted.
For a large character, this move requires 3 microseconds. We can see that when
large characters are painted, the control unit is occupied 30 percent of the time.
When small characters are involved, the times are only about half as long, so the
control unit usage becomes 50 percent.
897
Edit and Store
. . . - - - - - - - - - - - -..... Character.
Set Paint
Request
Read Process
Character Fully
Obtain and
Process One
Graphic Order
Yes
Process
Fully
Start
Scan Out
Initialize
Video
Channel
Paint
Initialize
Video
Channel
Paint
898
accomplished by means of coincidence circuits and cursor position registers which
can be set by the control unit. This means that keyboard operations which only
move the cursor can be serviced immediately and never have to wait for the
character/vector generator to become available. Thus keyboard throughput rates
can be quite rapid in situations which involve considerable editing.
The "Enable Keyboard Entry" command from the computer can be accompanied
by control information specifying the size, brightness and vertical location of the
lines to be used for input. Appropriate "default" values are provided by the control
unit to supply any needed information not specified. When a message of any kind
from the keyboard is ready for transmission, the user keys "End of Message, "
and this causes the control unit to alert the host processor.
The keyboard includes keys to advance or backspace the cursor, tab the
cursor, ''backspace'' vertically, erase the line, go to the end of the current line,
and signal "End of Message" (as mentioned). With these tools available, the user
can manipulate the image far more easily than a typist can rearrange the material
on a page of hard copy. Up to three lines of text sent from the host processor, or
the same amount of text entered from the keyboard, can be edited at one time.
Using the cursor as a pointer, the user can insert or delete characters at will,
the system making the requested changes automatically. If characters are inserted
in a line, the rest of the line is moved to the right; if characters are deleted, the
rest of the line is moved to the left to close up the space created. These editing
functions are implemented in the microcode of the control unit, and place no load
on the host computer.
When a character has been inserted or deleted by the user, the text string
must be repainted and scanned out to the refresh buffer. This is accomplished by
a request to paint the altered keyboard text buffer. If the character/vector gener-
ator is busy at the moment with some other video buffer channel, the request is
placed in a queue.
Since the character/vector generator can be allocated for as much as two
seconds for a paint, there may already be a request in the queue to repaint the
current video buffer's text. (The user may have already indicated the need for a
change earlier in the same line, for example.) To keep the queue size manageable
and speed up the procedure, a double-list queue is used: a linear list ordered by
buffer number, and a ring list based on time of arrival of the requests. The linear
list is checked first, when a request is received, to see if a request i", already
in line for the current video buffer. If not, the ''new'' request is entered there, and
the head of the ring list is incremented and replaced. The next location on the ring
list is loaded with the buffer number (offset into the linear list), and the request
is enqueued. This double-list scheme takes additional core, but prevents duplicate
entries and yet avoids the need for searching the whole ring list each time.
It was implied earlier that once the host computer has loaded subroutines
for a given video buffer channel, those subroutines can be used for any subsequent
paints for that channel. An exception occurs when the video buffer channel has
been used to display characters entered from a keyboard. In such a case, the
subroutines must be reloaded by the host computer before they will be available
899
as before. This situation is due to the fact that the control unit core is allocated
in fixed blocks to the separate video buffer channels, with one block for common
control information and waiting queues. Each video buffer's core area can be used
to hold either graphic subroutines or keyboard-entered text, but not both at the
same time. Where the output from several video buffers is mixed to produce a
single display, as is generally the case, one buffer can be dedicated to holding
keyboard-entered messages. With that precaution, the subroutines associated
with the other channels can be kept in operation and will not be overwritten by
keyed entries.
900
The microcode debugging process is no harder than that of debugging ordinary
code. The only real difficulty is correcting the errors once they have been dis-
covered. If the microcode is executed from a writeable control store, it is a fairly
simple matter to alter the erroneous microinstruction. However, our microcode
was contained in a read-only storage device, and it was not possible to correct more
than two microinstructions in an hour. If the error did not require the addition of a
microinstruction, the correction rate was two errors per hour. However, if an
additional microinstruction had to be inserted, two had to be punched--the new one
and the one immediately preceding it (altered to make the new one the next one to be
executed). The impossibility of entering instruction corrections directly through
console switches was the biggest drawback to the control unit we have described.
This limitation is due to the hardware employed, not the nature of microcode.
In some situations it is necessary to decide whether to use microcode or hard-
wired logic to implement a subsystem. If a microprogrammable unit can be obtained
(purchased, rather than being constructed), it will normally provide a quicker im-
plementation of the subsystem. The design problems are comparable for hardwired
logic and microcode, but the production time is much less for microcode. Even if a
microprogrammed unit cannot be obtained without constructing it, a microcode im-
plementation is still desirable for an experimental or developmental vehicle. This
is because even a read-only store can generally be altered more easily, quickly,
and cheaply than can hardwired logic. Of course, read-only storage cannot be easily
altered if it is based on optical or integrated-circuit techniques, but normally these
techniques are employed only after the system design has been thoroughly checked
out.
Occasionally it is possible to choose between implementing some function in
microcode and in ordinary code. Microcode becomes an attractive choice in two
situations: If system performance would be enhanced by the addition of a few
special instructions (to implement list-processing operations, for example), then
microcoding those instructions would be very desirable. The other situation which
favors the use of microcode is one in which a single (micro)program will fully
occupy the system. Then the entire application could be written directly in micro-
code. The penalty one pays for doing this is that any operating system supplied by
the manufacturer (as well as any assemblers, loaders, etc.) will probably not
operate. But in certain cases the increased performance due to direct use of
microcode is worth this price.
VIII. CONCLUSIONS
In the experimental display system described, microcode is employed in an unusual
way to implement a multiprogramming monitor directly. A hardware approach
might not have used multiprogramming or queues; a pure programming approach
might have implemented macro-instructions in the microcode and linked the
901
macro-instructions together via some higher level language. The compromise
approach taken has produced an expandable control unit which can readily accept
additional devices.
The microprogrammed control system was designed, coded, debugged, and
documented with sixteen man-months of effort. An additional investment of nine
man-months was required to produce the micro-assembler, simulator and
interface program in the host computer. We feel these times show that microcode
is a quick way to implement control unit logiG.
The debugging of the microcode was greatly aided by a simulator which
allowed representation of the control unit on a convention3.J. computer even before
the control unit hardware was fully constructed and checked out. The simulator was
written in a higher level language to facilitate the inclusion of hardware changes
which occurred during the construction of the control program. The experience
of building the simulator forced us to understand the operation of the control unit
hardware thoroughly before we had written much of the control unit microcode.
The simulator enabled us to check out nearly all the control unit microcode before
the microprogram was loaded in read-only storage. This was a considerable help,
since it was much easier to rerun the simulator than it would have been to alter
the read-only storage. The simulator also provided diagnostic aids in the form of
traces and dumps which do not exist in the hardware.
The monitor which was microcoded into the control unit resembles a computer
operating system in many ways: It multiprograms; it services requests according
to fixed relative priorities; it services the requests at anyone priority level on a
first-in, first-out basis using queues maintained in the control unit core. By
editing text according to data entered by the user at the terminal keyboard, the
control unit reduces the load on the host computer-display unit connection and on
the computer itself •.
We have also demonstrated that placing more control capability in the control
unit leads to a reduction in the average bandwidth required for the computer-
display connection. In the example given, the use of graphic subroutines executed
from the control unit core reduced the total core required by a factor of 20, and
the average bandwidth more than 25 times. The relative costs of transmission
bandwidth versus logic in the control unit will ultimately determine--for a given
application--how function is distributed between the host computer and the display
system.
ACKNOWLEDGMENTS
We wish to thank Mr. Tony Rall for microcoding the host computer interface
control. Also, Mr. Dale Fisk and Mr. Don Chesarek made valuable comments
on the initial design of the microcoded monitor.
902
REFERENCES
1. Wilkes, M. V., "The best way to design an automatic calculating machine, "
Manchester University Computer Inaugural Conference, 1951, pp. 16-21.
2. Wilkes, M. V., "The growth of interest in microprogramming: A literature
survey, " Computing Surveys, Vol. 1, No.3, September 1969, pp. 139-145.
3. Douglas, J. R., ''References in microprogramming, " ACM Sic Micro Newsletter,
Vol. 1, No.2, August 1969, pp. 7-73.
4. "Project summaries, "Second Annual ACM/IEEE Workshop on Microprogramming,
Phoenix, Arizona, October 13-14, 1969.
5. Tucker, S. G., ''Microprogram control for System/360, " IBM Systems Journal,
Vol. 6, No.4, 1967, pp. 222-241.
6. Rose, G. H., "Intergraphic: A microprogrammed graphical-interface computer, "
IEEE Transactions on Electronic Computers, Vol. 16, No.6, 1967, pp. 773-784.
7. Ophir, D., et al., "BRAD: The Brookhaven raster display," Communications
of the ACM, Vol. 11, No.6, June 1968, pp. 415,-416.
8. Terlet, R. H., "The CRT display subsystem of the IDM 1500 Instructional
System, " Proceedings of the 1967 Fall Joint Computer Conference, AFIPS Vol. 31,
pp. 169-176.
9. Hendrickson, H. C., "A high-precision display system for command and
control, " Information Display, July/August 1967, pp. 32-36.
10. Unimari, D. C., "Standard glass memory modules for low-cost computer-
driven displays, " Computer Design, Vol. 8, No.4, April 1969, pp. 118-122.
11. Ma, J. T., "TV consoles as computer terminals, "Telecommunications, Vol. 3,
No.9, September 1969, pp. 25-26.
12. "Theory of operation of IBM 2314 File Control Unit, " IBM Field Engineering
Form Y26-3671.
903
AN INTERACTIVE GRAPH THEORY SYSTEM*
M. S. Wolfberg
INTRODUCTION
In recent years graphics equipment with proces sing power has been
I
*This .
paper written for the Advanced Research Projects
I Agency under ARPA
Order Number 1228 I describes work done at the Moore School of Electrical
Engineering I University of Pennsylvania I Philadelphia I Pennsylvania for
Rome Air Development Center and the Information Systems Branch of the
Office of Naval Research under Contract NOnr 551 (40) •
905
graphs. Several interactive functions such as graph drawing and editing,
I
are available to a user through light button and pushbutton selection. These
functions, which are local to the terminal, are programmed in a mixture of
the terminal computer's machine language and the interpreter command
language.
ENVIRONMENT
906
and' printed (and punched tape) output a box of pushbuttons
I I and a light
pen for graphical input.
A user of the Interactive Graph Theory System sits in front of the ten-
inch-square display screen of the graphics terminal with the light pen in
one hand and the pushbutton box conveniently placed for accessibility by
his other hand. The system at the user's fingertips provides a simulated
piece of II paper II on which he may draw an abstract graph. The user directs
the system by using the light pen to point at light buttons and by depressing
appropriate pushbuttons. Indicative messages displayed by the system
instruct the user of what he may cause to happen. The novice user slowly
reads these messages and carefully points at his choice of light buttons I
giving the appearance that the system is controlling him. The experienced
user I however, so quickly points at light buttons and depresses push-
buttons that he appears to control the system.
Once a user has drawn a graph he may save it for future use along
with any number of associated key words in the large file or data base which
is available for all users of the MSPSF. Later restoration of any number of
graphs may be specified by a retrieval description as a logical combination
of key words.
907
algorithm to a user-drawn graph. In this case the user has drawn a non-
cyc1ic graph and then applied a layout algorithm to move the vertices so the
graph appears in the form of a tree. Next, the user caused the algorithm to
further refine the layout of the tree by permuting the order of the five arcs
emanating from the root. In particular, the leftmost arc moved to the fourth
position and the tree then appeared as in Figure 3.
908
ALLA. One deficiency of Dodd's APL which has been eliminated in ALLA is
the necessity for specifying in advance the allowable associations an entity
may have.
The additional data type which has been introduced is named entity.
There is no literal naming of entities in ALLA except for the undefined entity
UNDEF. Instead, entities are referenced through entity variables or by a
relation or association with an entity. There are three types of entities:
atom, pair, and set. Each declared entity variable may, at anyone time,
name a particular atom, pair, or set r or it may have a value of UNDEF.
19
,,
'.
ll,3
"\
.,
\
"
Each atom, pair, or set may have any amount of associated data. An
associated datum is called a property and is referenced by a property name.
The value of the property of an entity may be an integer, real, or logical
constant, or it may be an entity.
909
· An entity of the type atom is one which has no structure other than its
associated properties. A pair is a type of entity which, in addition to any
properties, has a left-element and a right-element, each of which may be
an entity or may be undefined.
P8 9 TO PlRMUTl ARCS
PI 18 rOR AHOTHlR ROOT
P8 11 TO ALTER 6RAPH
elements, in which case it is called empty. Although the word "set" is used,
the implementation imposes an ordering to the elements and so one may make
I
use of the "list" nature of this structure. Also, membership in a set is not
limited to a particular element appearing once. There are no restrictions on
the structuring of data in this system. For example I a particular set may
even be a member of itself three times. More important, however, 1s the
unlimited hierarchy of the relationships which can be modelled in this
structure.
910
With this data structure a graph will be defined as an ordered pair,
where the left-element of the pair is the set of vertices, and the right-
element is the set of arcs. Each arc is an ordered pair I where the left ele-
ment is the "from-vertex" of the arc and the right element is the "to-ver-
I
tex". Each vertex will ordinarily be an atom, but the ALLA data structure
permits any type of entity as ;an element of a pair or set. Thus one could
even represent a graph of graphs or other interesting structures. More
I
PI 9 TO P£R"UTl ARCS
PI I. rOR ~OTHlR ROOT
PI II TO ALTlR .RAPH
911
EXAMPLE OF A GRAPH THEORETIC ALGORITHM
of
~-----,#
•
AH "CS IS SHOll"
~. .. TO 5[[ H[XT ON[
with the user, which was responsible for producing Figure 1. The reader
should refer to the source listing of SHPTHW in Figure 5 in the following dis-
cussion. The lines of the function have been numbered for reference.
912
the function and all of the variables used within the function body I both
locals and externals. Line 5 declares DIST as a property name.
LINE
The SHPTHW function assumes that the given graph is of the form
described in the previous section, and associated with each vertex is its set
of incoming arcs (INARC) and its set of outgoing arcs (OUTARC). Also
associated with each arc of the given graph is its integer weight (WEIGHT).
Throughout the body of the function the uses of the names INARC, OUTARC,
and WEIGHT are purposely ambiguous. That is I the ALLA syntax is ambig-
uous I so that each of these three names may be either properties or functions;
913
only the environment determines which is the case. Thus the SHPTHW
function assumes either the given graph already possesses values of the
three properties I or there are equivalent functions which compute them.
During each iteration of the search, the entity variable TDSET refer-
ences the set of previously assigned vertices. DSET names the set used to
keep track of the new vertices being assigned during an iteration. Line 21
contains the test for whether another iteration is needed. EMPTY is a pred-
icate function which is . TRUE. when its argument is a set with no members •.
Note that the ALLA programmer is required to perform his own manage-
ment of storage: on each iteration the DELETE statement on line 20 causes
the freeing of the space used to model the set referenced by TDSET.
914
given ending vertex has been assigned a distance; if its distance has re-
mained infinite it cannot be reached, and there is no trace. Otherwise, the
trace starts with the ending vertex at line 25. Each incoming arc is con-
sidered along with the vertex from which the arc emanates. If the distance
of that vertex plus the weight of that arc equals the distance assigned to
the ending vertex, that arc is part of a shortest path. This process contin-
ues until the statement on line 26 determines the starting vertex ha s been
reached, at which time the answer has been computed as the set of arcs
SHPTHW.
IMPLEMENTATION OF ALLA
The ALLA data structure and language which has been introduced above
is implemented on two modular levels. First, the compilation of the la:ngua~
is effected by preprocessing all of the non-FORTRAN statements into FOR-
TRAN subroutine and function calls. The package of subroutines which con-
stitutes the run-time system to realize the ALLA data structure is the second
level of implementation. In order to provide for machine independence, and
allow for easier writing, debugging and modification, the L6 language was
selected for both the implementation of the ALIA data structure into a par-
ticular memory structure, and the preprocessing of ALLA into FORTRAN.
L6 was originally designed and implemented at the Bell Telephone Labora-
tories where it was named "Bell Telephone Laboratories I Low-Level Linked
List Language or L6 (pronounced "L-six ") [5]. Based on-the 'Original imple-
II
mentation on the IBM 7094, the author implemented UP. L6 for the IBM 7040.
In the process of translation, improvements and new features were added,
including the facility of linking L6 programs with both FORTRAN and MAP
assembly language subroutines [12].
915
computer by voice-grade telephone line, a t least a graphics -oriented
structure must be maintained at the terminal for effective interaction.
One possible solution to the need for two structures in two (often)
different computers is the implementation of the same structure in both
machines. Perhaps the terminal computer woo ld handle a subset of what
the central computer can do. A strong motivation for such an approach is
the capability for having programs which can operate in either or both
machines. Although this is potentially powerful, unless the two computers
are appropriately related, it could be stifling to the effectivenes s of both
machines. Namely, the structure in the smaller one might be so general
that its small capacity is too quickly exceeded, and, at the same time, the
possibility for sophistication in the larger machine might be suppressed.
916
The option is also available for DOGGIE to supply a created internal name
when a vertex or arc is defined. A list of other services performed by
DOGGIE follows:
Note that this system deSign gives the programmer explicit control of
what is displayed instead of automatically monitoring the ALLA structure.
Also the division of labor employed makes it feasible to substitute another
I
INTERACTIVE PROGRAMS
917
The set of DOGGIE commands constitutes a machine-independent
language for controlling the display of graphs. The language in the pure
sense is not interactive since it is only an output language. It becomes
interactive when used in conjunction with other languages which include
control specification. The DOGGIE language is used in two different en-
vironments within the Interactive Graph Theory System: first, it is embed-
ded into ALLA language for execution in the IBM 7040. Second, it is em-
bedded into PDPMAP Assembly Language through macros for use in user
programs operating in the DEC-338. The use of the DOGGIE language in
either environment has the same meaning, which is to direct the DOGGIE
interpreter to perform commands which define, alter, and display graphs.
in real-time.
918
EXAMPLE OF AN INTERACTIVE PROGRAM
LINE
1 SUBROUTINE SAMPLE
2 CALL CLRPB(ll)
3 DOG STAHT LTPEN WHOLE VERTEX# ALL
4 CALL MESSAG(2)
5 DOGSTRING 'POINT TO VERTICES TO BE'
6 CALL MESSAG(l)
7 DOGSTRING 'MADE SQUARE# PB 11 TO STOP'
8 10 DOG ALLHIT
9 20 W'AITCHANGE
10 IF (PBCll» GOTO 30
11 IF CLPHITI .EQ. 0) GOTO 20
12 DOG START EXIST SHAPE VERTEX 6#CLPHIT2)
13 GOTO 10
14 30 TERMINATE
15 STOP
16 END
919
name of the vertex which caused the hit. In this case I the statement on line
12 causes the shape of the hit vertex to be square.
SUMMARY
This paper has described how a remote computer graphics terminal with
processing power is used in a multi-console operating system as an alpha-
numeric console and an interactive graphics device. An Interactive Graph
Theory System was built in this environment to exhibit the effective use of
such a terminal and to demonstrate a design for a programming system for
solving graph theoretic problems.
All of the work described in this paper is fully reported in the author's
Ph. D. disseration [11] which includes complete programming manuals of
I
interactive ALLA and DOGGIE command language. Copies are available from
the author.
REFERENCES
1 C BERGE
The theory of graphs and its applications
John Wiley and Sons NY 1964
2 G G DODD
APL - a la·nguage for associative data handling in pL/I
Proc nCC 1966 677- 684
3 D K HSIAO
Afile system for a problem solving facility
Dissertation in EE Univ of Pa 1968
4 T H JOHNSON M S WOLFBERG
The PDPMAP assembly system
920
Moore School of EE Report 68-11 Univ of Pa 1967
5 K C KNOWLTON
A programmer's description of L6
CACM Vol 9 No 8 1966 616-625
6 E F MOORE
Shortest path through a maze
Annals of the Computation Laboratory of Harvard Univ
Vol 30 Harvard Univ Press 1959
7 R P MORTON
On-line computing with a hierarchy of processors
Dissertation in EE Univ of Pa 1968
8 R P MORTON M S WOLFBERG
The input/output and control system of the moore school problem
solving facility
Moore School of EE Report 67-30 Univ of Pa 1967
9 N S PRYVVES
Man-computer problem solving with multilist
Proc IEEE 1966 1788-1801
10 R L WEXELBlAT
The development and mechanization of a problem solving facility
Dissertation in EE Univ of Pa 1965
11 M S WOLFBERG
An interactive graph theory system
Dissertation in EE Univ of PA 1969
also Moore School of EE Report 69-25 Univ of Pa 1969
921
DEVELOPMENT AND PRODUCTION OF DESIGN
CHARTS USING A DIGITAL PLOTTER
INTRODUCTION
In 1964, a committee was set up to write a new Code of Practice for the
structural use of concrete. This Code is now in draft form and is in the
process of being introduced to the structural engineering profession.
The new Code requires a more complete design study of both the safety and
serviceability of structures and has introduced a more accurate method of
designing critical sections than any contained in previous Codes. The
process of section design involves determining how much steel reinforce-
ment is required to safely carry the imposed loads and moments acting on
the section. This process requires the solution of a set of equations which
is most easily carried out using design charts or design tables.
The introduction of the new Code means that new sets of charts will be
needed. In order to save the duplication of effort that would be involved if
this were done in every design office in the country, the British Standards
Institute commissioned the Cement and Concrete Association to produce a
standard set of charts. This paper describes the production of these charts
and also describes the development work that was carried out to ensure that
that the charts could be used quickly and with a minimum of error.
In order to cover the cases met most frequently in design it was necessary
to produce five different types of chart: two types to design reinforced
concrete beams, with and without compression reinforcement, two for
reinforced concrete columns, and one for prestressed concrete beams. To
923
cover the full practical range of material strengths and geometrical
properties of the members, a number of each of these were required: in all,
156 charts were required. A vital requirement of the charts is that they
should be capable of being used in design to a sufficient accuracy. The
European Recommendations for an International Code of Practice suggest
that design calculations within 3% are adequate and the safety factors in this
and the new Draft British Code assume this order of precision. It was
decided to produce the charts on A4 size paper, as initial tests showed that
charts of this size could be read to the required accuracy.
The complexity of the section design equations and the fact that so many
calculations had to be made with slight changes of data required that a
computer be used to calculate the points from which the charts were to be
plotted. In fact, the early versions of the charts were plotted by hand from
figures produced by the Cement & Concrete Asso~iation 's Sirius computer.
When a Benson and Lehner Plotter was purchased and fitted on line to the
computer, it became apparent that great savings in drawing office time
would be made if the plotter could produce the charts to the required
standard. Obvious advantages are the ease of producing charts once the
programs are developed and the ease of running new charts if the design
parameters in the Code are changed. Another important advantage is that
the plotter is capable of drawing and labelling the charts in one operation,
so eliminating any human error in labelling large numbers of apparently
similar charts.
REQUIREMENTS OF SOFTWARE
The most important property required of the plotter software is that the
charts must be produced in a form suitable for immediate publication. In
this respect, it was fortunate that the software was being written at the
Cement and Concrete Association's Research and Development Laboratories
at the time the charts were being developed, so that a very useful feedback
could be arranged with the software writers. In its earliest form the
plotter software was written with upper case alpha-numeric characters only.
It was soon apparent that, because the Code had a notation employing them,
lower case and Greek letters had to be provided unless the charts were to
be labelled by hand. The first reaction of the software writer was that this
was difficult to provide because of the small size of the computer, the
mounting size of the plotter package and the fact that none of the teleprinters
had lower case letters. Eventually, these characters were provided and
924
12
0.040
/~ 0.025
V 0JJ20
h ~~~ ......::::
10 0.015
V' V J....- t/' ASC
y v V
.....-:::: ~~ /" 0.010
~
~ I--
- b d,
-
~ b-'" l2=
~ ./
~ ~ v t/ 0.005
8 V I-- ..... -
~V J....- I--
4 ~~ ~
~ I--I-- I-- 0.000
..... ~
--
V I -I -
M ~e::: v I-
Ih ~V V l -I-- - ---
----- 2
bd, 6 r;;;" ~ -
~ ~
V t/
~ ~V
j.o'"
~
~ V
~ ~ ./
V
4 ~
~ VV
~b /
V V
V ~~ / V
2 v
~ VV
V ~ 1/
V [7
~ V
V V ..
- d."
0.005 0.010 0.015 0.020 0.025 0.030 0.035
Ast
1. Design chart 1. bd,
--
~
CI1
were addressed by setting a switch for lower case and using a code for the
Greek letters. At first, subscripts and primes which were needed to print
titles such as M/bd12 and Ast/bdl were not available. The titles were
therefore printed in a series of texts using a number of changes in print size
and pen shifts. By this time, the software writer was interested enough to
prove his virtuosity and wrote prime and suffix routines so that each of these
titles could be written in one text instruction. A glance at Figure 2 will give
an idea of the standard that was finally obtained.
At a later stage a need arose for a facility to draw dotted lines and this too
was quickly incorporated into the package. All these requirements were
met very rapidly and their need was seen because the software was being
written at the same time that a major programming job was going on using
the software. A further refinement that could be included is to introduce an
automatic facility to vary the space between letters according to their bulk,
as printers do in typesetting. The titles of the charts were printed in a
series of short texts and fine pen adjustments were carried out between each
section. The word 'prestressed' was printed'from the five text instructions
pr-es-t-r-essed
with a fine pen movement backwards in each space. It is hoped that an
automatic facility for this will be introduced in future versions of the
software.
PROGRAMMING
The programming for the charts was carried out in Sirius auto code from
which the plotter package was designed to be accessed. The programs were
written and developed in a period of three months. As the plotter has two
pens, each chart can be plotted in one run, including the titles. Thus, it
was not possible to title the charts incorrectly, so eliminating a possible
source of error. The section drawings on the charts (Figure 2) were
plotted separately as they required an intermediate size of pen.
LAYOUT STUDIES
The accuracy with which a chart can be read and the likelihood of making
mistakes when reading it depends on its layout. Though a fairly reasonable
layout can usually be achieved using common sense, it was felt· that these
charts required much more careful consideration because, since they are
intended to be a standard set of charts, they can be expected to be in constant
use by a great many people.
926
The nature of the problem set some basic restraints on the layout; for
example, the range of variables which had to be accommodated along each
axis was already fixed by the requirements of practice. The decision to use
A4 size paper imposed a further restraint.
At early discussions on the layout, it was decided that the grid increment
should be either a half, one or two centimetres so that a normal ruler with
millimetre divisions could be used to scale values off the charts. It was
further decided that each increment of the grid should represent O. 5, 1 or 2
units of the variable represented on that axis or multiples of ten of these
figures. Experience soon showed that these rules were incompatible with
producing a chart which reasonably filled the paper. Therefore, since a
brief investigation showed that hardly anyone would scale off the chart, the
rule on the size of grid was relaxed.
Once the programming had reached a stage where a prelim inary chart could
be produced, it was decided to use this to see just how accurately it could
be read. The chart used for this experiment is shown in Figure 1. The
test was carried out with the co -operation of partiCipants on a course on
Limit State Design which was being held at the Cement and Concrete
Association's Training Centre at Fulmer Grange. All people attending this
course were practising designers who would be likely to use design charts
of this type. Each person was given a copy of the chart and a set of fifty
questions to answer. Each question consisted of a value of M/bd12 and a
value of Asc/bd1. The answer was obtained by entering the value of M/bd12
on the vertical axis of the chart, reading across until the line corresponding
to the required value of Asc/bd1 is reached, then dropping down and reading
off the resulting value of Ast/bd1 from the horizontal axis. Four types of
question were set so that the errors resulting from interpolation for each of
the parameters could be isolated. These types of question were as follows
(1) An integer value of M/bd 12 was given, together with a value Asc/bd12
which corresponded exactly to a line on chart; interpolation was only
necessary in reading Ast/bd1
(2) Asc/bd1 exactly on a line; interpolation necessary for both M/bd12 and
A s t/ bd 1·
(3) M/bd 12 exactly on a line; interpolation necessary for both Asc/bd1 and
A st/ ba1.
Each person was told that he had a different set of questions while in fact
they were given the same questions in a different order, the order of the
927
0.5 1.0 1.5 2.0
12
11
10
9
8
N
E
E 7
.........
~
~~
Z
6 J'
"
~ ~ I-"";
-
N_
"C
.0
.........
5 .-
..4 ~
~"7
~ .? / '
10-
~~ ~ ~
::E
t;.......
4 ~ ~~
~ ......
~
3
2 ./
, ~~
~v
/'
V
./
/'
./
oL
0.5 1.0 1.5 2.0
100 Ast/bd,
questions having been randomised by the computer which stored the final
order used on each question sheet and was thus able to re -sort the answers
later. This procedure was adopted to reduce the· possibility of collusion
between participants and to remove any effects caused by the order in which
the questions were answered. A preliminary test carried out on members
of the DeSign Research Department had shown that it was very easy to
misread the scale on the horizontal axis by one square (e. g. 0.023 instead
of 0.024). To try to reduce the likelihood of this mistake, half the
participants were asked to thicken the vertical lines corresponding to the
928
2.5 3.0
4.0
/.
V ~
;--
V ~ L- ~ /
/
2.0
-0
~V
--
~ .c
~~
/
/ ........0
/
r/ ~ f- 1.5
~
Ul
;....- a:
~~
~ ~ V/ ~
~
~~
~
-'
-
/
1..-
-
~
-
dn/d, = 0.3 --------
I-- 0.5
~
/
I...- I-- ~ .-
/
i-- lIn/d, = 0.4 - - - - -
~
~ I-- ~
0.0 d,.Id, = 0.5- - - -
I--
I-- ~
I-- l -
I--I--
Uw 30
numbers on the axis, i. e. 0.005, 0.01, 0.015, etc. (see Figure 1). The
participants were allowed half an hour to answer as many questions as they
could, after which the answers were punched onto paper tape and processed
by the computer. This processing consisted simply of sorting all the
answers to each question into ascending order and printing out the result.
All further treatment was done by hand since no adequate method had been
devised for rejecting answers which were definitely mistakes. These
mistakes were easily removed by hand since they all lay either at the
beginning or end of the list of answers. The only problem was to decide
929
where to draw the line between mistakes and legitimate inaccuracy. The
accuracy of the remaining answers was then assessed.
It was found that up to 15% of the answers were mistakes and since this
seemed an excessively large percentage, a careful study was made to try to
discover the causes of these mistakes. This could usually be done, though
it involved some degree of subjectivity. The causes of the mistakes fell into
four groups.
Once these mistakes had been removed, the accuracy with which the chart
had been read could be studied. This was done by finding the number of
answers which lay outside ~ 3% and ~ 5% of the correct answer. It was found
that five questions were answered particularly badly when judged against
these criteria. Four of these were questions of type (4) where one had to
interpolate for Asc/bd1 in the region of the discontinuation in the curves.
Attempts to do this will show that it is not easy. For example, using
Figure 1, try finding Ast/bd1 for M/bd12 of 6. 35 and Asc/bd1 of 0.0025;
this was one of the badly answered questions. The fifth badly answered
question had as data M/bd12 = 2.65 and Asc/bdl = 0; the correct answer to
this is Ast/bd1 = 0.00795. Not unnaturally, the common answers to this
930
question were either 0.0075 or 0.008; O. 0075 is just more than 5% out.
Table 1 shows the accuracy with which the various types of question were
answered both with the five poorly answered questions included and with them
removed. It is felt that these results are satisfactory.
It was concluded from these results that, although the size of the charts and
of the grid was satisfactory, the likelihood of mistakes would have to be
reduced considerably. Once the common causes of mistakes had been found,
it was not difficult to think of changes in layout which would make it less
likely that these would occur. To this end the following changes were made.
(1) Every line on the M/bd12 axis was numbered instead of alternate lines.
(3) Values of Asc/bd1 and Ast/bd1 were multiplied by 100 and given as
percentages.
(4) The Astlbd1 scale was marked along the top of the chart as well as the
bottom, because the user's hand obscures the bottom scale while the
chart is being read.
(5) One Asc/bd1 line was removed and the numbering of these lines improved.
After the addition of titles and further identifying information, the final
version of the chart is shown in Figure 2. This chart was given to
participants on another similar course at the Cement and Concrete
Association Training Centre and tested in the same way as the earlier
version. Figure 3 shows a comparison of the mistakes made in each
version of the chart tested: the chart as shown in Figure 1, the same chart
with every fifth vertical line thickened, and the chart as shown in Figure 2.
Comparing the first and second columns in Figure 3, it can be seen how
thickening the lines has reduced the number of mistakes made in reading the
Ast/bd1 axis, while mistakes from other causes have not changed signifi-
cantly. If the results from the original chart are compared with those from
the final version, it can be seen that the numbers of mistakes have been
reduced in all categories except for those caused by transposition and
unexplained circumstances. These are in any case errors not associated
with reading the chart but rather with reading the question sheet and writing
the answer down. The largest source of mistakes remains the use of the
wrong Asc/bd1 line. Multiplying the values of Asc/bd1 by 1 00 has reduced
the errors caused by confusion over the number of zeros after the decimal
point by a factor of four. It is not clear how the layout could be further
improved to reduce these errors; however, most reinforced concrete beams
and slabs used in practice are singly reinforced (i. e. Asc/bd1 = 0), in
931
which circumstance these mistakes do not occur. Not surprisingly, the
accuracy with which the second chart could be read once the mistakes had
been removed was not Significantly different from the first chart.
A word of caution must be added here about the results of these tests. The
participants were asked to answer fifty questions in thirty minutes; in a
design office where the charts would be used less intensively, considerably
more care would probably be taken over each reading. Thus, the actual
percentages of mistakes made are probably higher, and the accuracies
lower, than those which would occur in normal use; nevertheless, the
comparisons between charts are still valid.
More generally, these tests have shown how apparently quite trivial
alterations in presentation of data can make great differences to the general
efficiency of a chart. It also raises the whole question of the clear and
unambiguous presentation of graphical or visual information, a subject
which must surely be relevant to a symposium on computer graphics. It
must be clear that it is not sufficient merely to output this information,
whether on a plotter or on a cathode ray tube: it must also be in a form such
that it can quickly and easily be assimilated and used with the minimum of
ambiguity and the maximum possible accuracy. This may be particularly
important in some display techniques where the information is not retained
for future reference.
FURTHER WORK
Because of the results from the tests described above, it was decided to
carry out further tests to gain a greater inSight into the problems involved
in graphical presentation of data and, if pOSSible, to develop some basic
rules of good practice.
In the true research manner, the first tests attempted to break down the
operation of reading a result from a chart into its basic sub-operations and
to study these.
(1) Taking the number which constitutes the input data and interpolating on
the scale on one axis a point corresponding to this number.
932
:4) Estimating the number on the output axis.
rhe first tests, which is shown in Figure 4, was designed to test operations
Land 4 listed above. In the first column (marked 'IN') the 'testee' had to
nark on the short section of scale a point corresponding to the number given
)ll the left. In the second column (marked 'OUT') he had to write down the
lumber which he thought corresponded to the point marked on the section of
scale.
rhe results of this test were treated by tabulating, for each question, the
iifference between the correct answer and the answer given. For the IN
:.!ase, this was in millimetres, and so the results from the OUT case were
:.!onverted to an equivalent figure in millimetres for easy comparison. The
standard deviation of the results about the correct answer was then
:.!alculated.
I\.s the IN and OUT cases both gave substantially the same answers, tLe two
were averaged and these averaged results have be.en plotted in Figure 5.
rhis Figure shows the averaged standard deviation of the errors in milli-
metres plotted against the grid size (i. e. 5, 10, 20 and 40 mm) for the
various ways of numbering the grid. The best result was obtained for the
scale using two units per division of the grid, followed by one unit per
:iivision and half a unit per division. These three gave results which were
fairly closely grouped for each grid size. The final grid numbering used, a
~uarter of a unit per division, generally gave worse results.
933
\
\
\
\
\
\
\
Mistaken \
Ast I bd1 5'28 % \
\
\
\
\
2· 81 % \
\
\
.... ........ \
\
\
\
\
\ \
Mistaken \ \
Asc I bd1 5'65 % \ \
\ \
5.30 % ~
0.53 %
2,82 %
Mistaken
1'67%
-- ....
-
M I bd12 1'61 ....
--
%
Transposi tion
& unexplained 2.18 % 1.81 % 2·00 %
errors
934
IN OUT
6-21 I I I
~
I
7 6 7
5-32
~ ~ l I
~
1-18 I I I I I
1'0 1·5 1'0 1'5
0-38 I I I
0-25 O-~O 0-25
I
0-50
1-65 ---t- I II I
1 1 2 1 2
2-60
7-70
6 4-
3 6 I
~
I I I I
7!5 8 7-5 8
2-79 I I I I I
2 4 2 4
0-11 I I I I I
0 0·25 0 0-25
8'33 I I I I
8 10 8 16
2·90 I I I I I
2·5 3·0 2-5 3-0
4·50 I I I I
2 4 5 4
I
5
3-88 I I I I I
3-75 4-00 3-75 4-00
1- 63 -~
1
-+2 1
I I I
2
2-58 I I II I
2·5 2·75 2-5 2-75
7'75 I
9·20 I
6 8
I
t-+t
3 9 10
I II
9
I
10
0'40 .1. I
0 0·5 oI I I
0-5
3-40 -+-------+ I Ii
3 4 3 4
0·17 -+---+
·1 ·2
-4-+
-1 -2
4
0-32
H -n
2-0
H -4-+-
05
37 -+-+-
25 50
-H-t-
25 50
4_ Interpolation test.
935
5 mm grid with 0.25 units per division, the ratio of the standard deviation of
the errors on the 20 mm grid to the standard deviation of the errors on the
5 mm grid will be about 0.82, not the fourfold increase in accuracy which
might have been expected. .
Grid sizes of less than 5 mm were not examined, but common sense suggests
that the increase in accuracy that would be achieved by reducing the grid
size to, say, 1 mm would be small. It is doubtful whether the standard
deviation of the errors could be much less than 0.2 mm, and experience on
the beam design charts suggests that a high percentage of the results would
be misread by one or two millimetres. Thus, it seems likely that any
increase in accuracy obtained by reducing the grid size below about 5 mni
would be offset by an increase in the number of mistakes.
To check the results from the test described above and to obtain further
information, a series of five charts was produced. The charts were
identical in size with a single identical curve. Four of the charts had a
20 mm square grid but with different numbering systems on each, while the
fifth chart had a 5 mm grid with every fourth line numbered 1, 2, 3, 4, etc.
Figure 6 shows these charts to a reduced size. Each person participatiIig
in the test was given a chart and twenty questions to answer. Although the
numbers given to each person were different, depending on the scale of the
chart, the questions corresponded to the same points on each chart. Thus,
the results from the different charts were directly comparable. The four
charts with the 20 mm grid corresponded to the results for a 20 mm grid
obtained from the previous test while the chart with the 5 mm grid
corresponded to the example discussed above.
In treating the results from these tests, the first task, as before, was to
remove any mistakes from the answers. The total number of mistakes made
on each type of chart was estimated and these figures are given in the fourth
column of Table 2 expressed as percentages of the number of answers
obtained for each chart. As with the design chart tests, the decision as to
whether a particular answer was a mistake or merely on the edge of the
distribution of reading errors is often subjective and different people marking
the results would produce slightly different results; thus the figures should
not be considered as exact. They do, however, clearly show the superiority
of using one unit per division and the inferiority of using 0.25 units per
division.
To study the relative accuracy of the charts, the results from the 20 mm
grid marked with one unit per division were taken as standard and the
performance of 'the other charts was estimated relative to these. Similar
ratios can be derived from Figure 5 for the previous test. The fifth and
936
sixth columns in Table 2 show these comparisons both for the interpolation
test and for the five charts. It can be seen that the two sources generally
agree except for the case of two units per division. This performed better
than one unit per division in the earlier test but was worse in this later test.
Since the chart test result is based on many more data than the interpolation
test, it is probably the more reliable result.
The accuracy with which a particular answer can be obtained on a
particular chart will depend on the gradient of the curve at the point
considered. Elementary statistical theory leads to the following relation-
ship between the accuracy of a result and the gradient of the curve:
-
E "
/
/
",
"
." L"
0,\/
\/
. ~C:>/
~\/
~......
O·~
~ I-' ,~
/'
+
4~ ......
,,- " 4
~"Q
" + ." V"
- "." " "
o
c
~' "
~/
I~
~'
\~
.~J6~""""'"
rr/
o
~
nJ 0-5 + /'
>
tI • = 0'25 units/div
'0
'0
+ = 0·50 units I div
L o = 1-0 units I div
nJ
'0 A = 2·0 units I div
c:
~ 00
1
(/) 10 20 30 40 50
grid size (mm)
Equation 1
937
6
I I
t- .
t- A ,.... '- ~ """"
~~
5
L-- ~
~
~
~tI"
4 l/
V
V
3 I
II
J
2 II
I
II
1 J
I
!I
o
1 2 3 4 5 6 7 8 9
12
B ~
~
~
10
~
l/
/
8
/
/
4
o
v
2 4 6 8 10 12 14 16 18
938
6
c ....--
~
5 ~
~
/
V
4
/
/
2
o ~ 1 2 3 4 5 6 7 8 9
3
D ~
~
~
~
:/
Iv
2
/
/
1
o
/ 1 2 3 4
939
E ~
...-
~
V
V
V
1'0
/
/
0'5
o
I
0'5 1·0 1·5 2·0
6. Chart test.
.-x
.-
80
•
CI)
-,
0
X 70
'0
C
60
•4 •
0
Q)
c 50 '\
t:
Q)
40 \
\•
Q)
~
"".
~
Q)
.0 30
Q)
Ol 20
c
« ~ ~I-----. [calCulated result from
equation 1
II
CD
10
• •
0·2 0'4 0·6 0·8
Standard deviation of error (mm)
Values of Ox and 0y for the scales used may be obtained from Figure 5 and
hence the standard deviation of the errors for each question on each chart
may be calculated and compared with the actual values from the tests.
Agreement was generally found to be good, as can be seen from Figure 7.
Where there is a family of curves and interpolation between these is
necessary, there will be a further term in equation 1 defining the accuracy
with which this operation may be carried out.
A number of additional tests has been carried out with other courses at the
Training Centre. These have investigated other types of design chart, the
accuracy obtained when equations for the design of reinforced concrete
beams are solved using a slide -rule instead of a chart, some general work
on the accuracy of slide-rule calculations and some work on the optimisation
of graph paper deSign. However, sufficient has-been written here to support
the formulation of some general rules on layout for the clear presentation of
information in graphical form.
LAYOUT RECOMMENDATIONS
(3) Accuracy.
For the most satisfactory result, the commonly used parts of the curves
should make an angle with the x axis of not less than 30 0 (assuming the
graph is to be read, y axis ---> curve ---> x axis).
941
In practice, these recommendations may sometimes be incompatible and
may need modification. It is hoped that there is enough general information
in the paper to show the likely effect of any such modification. The precise
criteria which a particular chart or graph is required to fulfil should be
borne in mind in designing the layout: e. g. for some uses, clarity may be
more important than accuracy.
TABLE 1
Accuracy with which design chart could be read.
(1 ) - - X 0 0
I
(4) with four I
questions removed X X X 4.7 0.3
All questions
combined 7.1 2.2
I I
All questions
except the five
badly answered
questions. 4.7 0.5
942
TABLE 2
Comparison of various types of grid and numbering for the interpolation tests
and the chart tests.
B 20 2.0 4 0.85 1. 38
CONCLUDING REMARKS
The authors feel that the production and proving of the design charts
described in this paper has highlighted a number of points of general
relevance.
943
Secondly, the function of any graphical output is to communicate information.
The latter part of this paper shows clearly how the user of computer-graphic
facilities must take great care in the presentation of this visual information
if it is to be communicated with maximum efficiency. The precise layout
chosen will depend on the use to which the information is to be put. For
example, maximum accuracy of reading a chart is not compatible with an
absolutely minimum likelihood of mistakes being made. A balance has to be
struck between these two. This paper gives data which should allow this
balance to be struck more rationally than has hitherto been possible.
ACKNOWLEDGEMENTS
944
PART 11
Graphic Languages
A FORTRAN PACKAGE FOR
INTERACTIVE GRAPHICS
O. A. Budin
1. INTRODUCTION
1.1 Hardware
The hardware used throughout this development work was an Elliott 4130
64K 2J,lsec, 8 mag. tape handlers and 4280 grap~al dispJ.q. The effect
of the 64K of core dedicated to the display and the effect of no disks
and no separate keyboard for the display each played a positive part in
shaping these programs. Furthermore the author struggles to remain an
engineering applications programmer.
1.2 Origins
This package of routines has developed from the need te rationalize and
organise the various problems of producing-a large interactive graphics
applications program (the LUISA system (Ref. 1, 2)). The illustrations
show the layout used on the screen and an example of each of the present
display control devices (only one device would normally be used at a time).
The main interaction processor or reaction handler subroutine is the
kernel of the package but there are also other routines which ofier
separate facilities in themselves. These include same routines for
reading users' messages from data cards, displaying them on the screen
and changing them by simple subroutine calls referring to a code for each
message. Display control device routines can also be used independently
of the main interaction processor routine. They are described below in
more detail. There are also some routines for updating the display of
"last operation", "central processor unit" and "real" times on the screen.
947
(a) the selection of an operation or sequence of operations which the user
may wish to perform. ("DO THIS"),
(b) the identification of an object or symbol which represents some part
of the users data or model ("TO THAT"),
(c) the control of the value of one or more program variables ("BY THAT
MUCH") .
The means of interaction on the Elliott 4280 graphical display are:
(a) the lightpen which can return the identifying number of the item
which it sees while the footpedal is depressed,
(b) the eight display console buttons which can return a number
between one and eight each time they are depressed,
(c) the keyboard which can return a code for each key as each key lS
depressed.
Three other means of control are also available:
(a) a "mechanism" is available whereby the execution of a program may be
delayed for a specified number of refreshments of the displayed
picture,
(b) a tracking cross may be activated to return its x and y coordinates,
(c) the eight display console buttons along with six sense switches on the
main control console may be examined to see whether they are on or off.
2. INTERACTION PROCESSOR
948
main control program for the package of programs which are becoming known
as the LUISA system. However it is written in such a way that subroutines
which it is desired to control with this interaction processor have
simply to be loaded onto the operating system tape, a deck of data cards
(which describe each subroutine and their arguments), have to be added
onto the end of the main program deck, and a few program cards have to
be added to the main control program. These two last mentioned decks of
cards are prepared according to a few'simple rules (see 2.4.2 below and
page 14). With these facilities the introduction of additional interactionf
and controls is so simplified as to actually encourage such additions,
whereas, experience proves that without these facilities a definite
discouragement exists. Apart from LUISA, this package has been used in
the three dimensional drawing scheme (Ref. 4) being developed in
Leicester (by Mr. R.J. Hubbold).
2.2 The Operation of a Program from the Display Screen Using the
Interaction Processor (I.P.)
The layout of the screen prepared for the execution of programs using
the I.P. is shown on page 12. The main features of the operation of the
I.P. are:
(a) the display control devices, the buttons, the tracking cross, the
lightpen and the keyboard all supply values to a set of value buffers,
(INTEger, REAL, etc.) where the value in the buffer is displayed
immediately above the name of the buffer,
(b) one of the value buffers on the screen will be the active value
buffer, but anyone can be made active by 'hitting' (i.e. seeing)
it with the pen; the active value buffer has an arrow beside it to
indicate that it is active,
(c) at the start of a run only the top lightbutton name in the hierarchy
will appear on the screen.with.the next level ax menu. of options
(or lightbutton names) displayed beneath it,
(d) when one of this menu of options is hit then that particular
lightbutton name is placed in the next command position and the
current manu of options is replaced with the next lowest menu,
relevant to this last option chosen,
(e) if there is only one option in a particular menu then this one is
automatically 'chosen', placed in the next command position and its
next menu of options is displayed,
(f) if a route has previously been specified through. the hierarchy of
menus then this route will automatically be 'chosen' and displayed,
(g) the last command hit with the pen (whether it is one from the current
menu or a command previously chosen) will be the active command and
will have an arrow placed above it,
(h) if when a string of command names exist and a new option is chosen
higher up the hierarchy which will indicate that a different route
is being started through the hierarchy then the rest of the existing
949
command string is removed from the screen to avoid confusing or
irregular command strings,
(i) a command name may be made active by hitting it with the lightpen,
and the current menu of options will be replaced with the menu
relevant to this new active command,
(j) the last command name in any route through a hierarchy must be the
execute command name (ensured by the order of the data cards - see
below), which when hit causes an attempt to be made to execute the
command specified by the string of command names (which are simply
a list of subroutine names and those arguments requiring values to
be input at run time),
(k) if when an attempt is made to execute a command string an argument is
found which does not have an appropriate value 'in' it then a message
is displayed to this effect and that argument or command name is made
active and therefore ready to receive a value from a value buffer,
(1) execution may also be attempted at the depression of button one if
that mode of execution has been chosen with a lightbutton; the option
is also available to be able to attempt execution whenever button one
is found to be 'on',
(m) values are inserted from the active value buffer to the active command
when the value buffer is seen, or when button two is depressed, or
when button two is found to be 'on'; the particular mode of insertion
being chosen again by lightbuttons,
(n) if on an insertion attempt the value types of the active value buffer
and the active command do not match, a message to that effect is
displayed, and the insertion is not made,
(0) whenever the machine is busy with a calculation or an operation, a
message to that effect is displayed, the message being replaced by
a call for action on the part of the user when it is idle again,
(p) when button five is on, values are inserted directly into the
appropriate active value buffer from any display control device which
is seen, from the buttons when depressed, from the tracking cross,
from the lightpen when it sees items on the screen and from the
keyboard,
(q) a menu of display control devices is permanently on the screen with
an arrow indicating which one is active at anyone time,
(r) when button six is depressed another copy of the active control
device is set up and displayed at the position of the tracking cross,
(s) when button seven is depressed the next control device of the active
type which is seen by the pen, is removed from the screen,
The main processor subroutine is in two parts. The first calls on the
various "set-up" routines, creates data structures for the menus, displays
the first menu on the screen and puts all the logical variables in their
initial state. The second part has a flow-chart which starts with a
"main control" label followed by a main line which can be diverted around
several side loops depending on whether certain buttons are on or off.
This is followed by a call to the interaction routine after which the
flow of the program branches according to the type (button, pensee,
keyboard) of interaction received. Along the path for each type there
are then further branches corresponding to the various values which may
have been returned by the interaction device.
951
CALL MOVE (WHAT. HOWNOD. IVAL, XMVE, YMVE, HOW, WHLINE,
INTEGX, INTEGY, ZD, DF)
where
(a) ZD and DF are present to carry over the free storage data zone (array)
and the display file (array),
(b) WHAT is expected to be a code indicating that a NODE, or an ELEMNT
or a NDLIST (node list) is to be moved,
(c) HOWNOD is a code only relevant to the option NOD~ of the previous
argument and js expected to bea code indicating whether the node
to be moved is to be located with a tracking cross, WCROS, or a
quadrilateral device, WQUAD (see below),
(d) IVAL will be a boundary of an element in which a node is to be
selected or a boundary of the element to be moved or a pointer to a
node list, depending on the option. chosen in the first argument,
etc., but the diagram on page 13 makes the rest of this subroutine and
its corresponding command almost self-explanatory in the light of these
few note s above.
Having designed each subroutine and its command structure (like the one
shown for MUVE in the diagram on page 13) a single call to each sub-
routine must be prepared in a special generalized form to go into the
execute routine of the I.P. This execute routine contains a computed
GO TO statement and the calls to all the subroutines to be executed
from the processor. Data has also to be prepared to describe the command
structure and to arrange for each series of options to appear on the
screen at the appropriate time and place.
(a) Each subroutine name and each option for each subroutine argument
952
needs one data card (i.e. one for each name, or lightbutton, that
will appear on the screen),
(b) in addition one data card is needed which forms the head (or starting
point) of the hierarchy, called OPERAT, and which points to the first
level of options. One other card is also needed which forms the tail
(or lowest level or terminating point) of the hierarchy and is called
EXECTE,
(c) the format for these data cards is shOw"ll on page 14. There follows
here a more detailed explanation of the names of these input variables:
VALTYP (12) - Is the type of value which is associated with the display
option. If VALTYP is equal to 2 it indicates that the
option is the name of the subroutine. If it is greater
than 2 it indicates that the option is an argument name.
If it is equal to 3 then it indicates that no value has to
be inserted into the argument name but its selection will
make available a code (associated with the particular
argument name) to the execute routine. If it is equal to
4 or 5 or 6 then the argument needs an integer, real or
953
character value, respectively, to be inserted before
execution is possible.
ILLIM (17)
Are the lower and upper limits of the range of values
IULIM (18) which will be expected by the execute routine if the
VALTYP is equal to 4 (i.e. an integer value).
RLLIM (FIO.5) Are the lower and upper limits of the range of values
which will be expected by the execute routine if VALTYP
RULIM (FIO.5)
is equal to 5 (i.e. a real value).
The development of these devices was prompted by the often recurring need
to control the value of one or more program variables - such as scales,
orientations, dimensions, coordinates, aspect ratios and the values of
various parameters used in optimization routines. Parts of a picture
more closely representing the actual parameter to be varied or controlled
could easily be arranged to change in sympathy with the movement of the
tracking cross or a value input from buttons or the keyboard. Indeed
there will be cases where this is preferable to using any special control
device. But there are other problems of varying the value of a variable
interactively.
One problem of inputting a number from buttons or keyboard is how to be
explicit about how many digits are to be input and which digits they are
954
intended to be. A problem of directly controlling the value of a variable
from the position of the tracking cross is the limitation on the range and
the sensitivity. The need to be able to specify the magnitudes of the
upper and lower limits of the range of variation and the problems of
definition in controlling more than one variable at once all add to the
incentive to produce some routines to organise these methods of controlling
variables.
After specifying some routines for all these cases some common features
were apparent and a set of control devices have been designed and
implemented on the following lines. For each control device there are
three routines,
(a) a routine for setting up a device on the screen, assigning. identifYing
numbers, to the parts of the device, in a strictly controlled range.
These identifying numbers are grouped into distinct sections:
those which will, when seen, lead to action and those passive to being
seen. Any number of devices of anyone type can be set up at one
time because the group of identifying numbers is. relative to a number
specified to, and incremented by the set up routine~
(b) a routine for operating the device; enabling values to be changed andl
or ranges to be set as those active parts of the device are seen,
(c) a routine for removing the device from the screen.
The set of devices are controlled by a menu of names of devices which are
displayed on the screen along with an arrow indicating which device type
is active. The active device type is then the one which can be set up,
made operational or removed by three buttons reserved for these purposes.
The values returned from a device can then be used for setting the values
of the variables that are to be controlled. For instance a program loop
could be set up which would cycle through (a) a check on the button
assigned to make the active device operational, (b) a call to the active
device operation routine to pick up one or more variable values, (c) an
entry to the user's calculation and redisplay routines and (d) a return
to (a) (producing a "Figure of eight" flowchart). This would then enable
some dynamic calculation and display to proceed in sympathy with the
control device.
955
3.3.1 Devices in Use at Present
(1) A digit changer (DIGT): Three routines have been written to set up
~SUDICR), operate (OPDICR) and remove (REDICR) a device to enable the
s~ven digits of an integer variable to be specified by lightpen sees of
displayed digits. The device as it appears on the screen is shown on
page 12, where
(a) the digits at the top represent the value of the variable being
changed,
(b) the small arrow underneath one of these seven digits indicates which
digit is to be changed next - i.e. the active digit position,
(c) the digit, of those in the circle, seen by the pen will be inserted
into the active digit position if the device is in the 'digit value
required' state,
(d) a pensee of a digit puts the device into a 'triangle required state',
whereupon the central triangle must be seen to return it to the
'digit value required' state,
(e) a pensee of the W puts the device into a 'digit number (or position)
required' state, whereupon the next digit seen will move the small
arrow to sit under that digit position and sets this as the active
digit .position,
(f) the active digit position increments one position to the left or
right depending on whether the L or the R was last seen.
956
into a state which requires the thermometer rectangle to be seen
next, and also moves the bar to the opposite end of the rectangle,
(e) a number of devices of this type can be set up and operated in turn
as the user chooses,
(f) the exponential of the range is set within the set up routine and is
of course in this case, equal to 2; if there is a need for being able
to easily change this exponential then it could be arranged to change
it dynamically during the operation of the device.
(3) .An orientation changing" joystick" (JOYS): Three routines have been
written, to set up (SEALS) a set of "angled lines", to operate (OPALS)
and to remove (REALS) any or all of the set. On calling SEALS a line
appears at the tracking cross, on calling OPALS one end of the line
follows the tracking cross and an angle between 00 and 3600 is returned.
Thus for example the orientation of an object on the screen can be
arranged to move w sympathy with this angle. (Also shown on page 12.)
4. DISPLAYED MESSAGES
957
interesting extreme where no instructions or warn~ngs are displayed but
just the effects of each action are shown to the operator, however
bizarre. This is only possible in cases where all the information being
handled and the effects of the operations on this information can be
expressed in totally graphical form. There is of course a need then to
incorporate all the facilities necessary to recover from the effects of
single, or ·sequences of, regrettable operations.
One routine has been designed to read characters from a data card and
insert them in A-format into a bead of data (using the free storage
allocation routine) and return the handle or pointer to this stored string
of characters or message. Another routine reads a series of such
messages and stores the pointers to each in another data bead, and a
third routine sets up two positions on the screen where all the messages
will be placed and replaced. This routine also initially displays the
first two messages at these two positions. A further routine enables
the message displayed at either of the two positions to be changed for
another message. The programmer uses a code number to refer to a
particular message and a code number to refer to the position where that
message is to be displayed. Thus CALL MESCHG (2, 3) causes the present
message at position 2 to be replaced by message 3. A fifth routine is
used to display series of characters at the required size and brightness
and location on the screen. The data input for messages is illustrated
in this example :
01
04
WAITING FOR YOU
03
04
INPUT MISMATCH
02
07
DATA STRUCTURE WRONG TYPE
04
958
where the first number is the code number of the message and the second
is the number of characters divided by 4 and rounded up to .the next
largest integer. "WAITING FOR yOU" etc. are of course the messages to
be displayed.
5. FUTURE DEVELOPMENTS
At the time of writing, this package of Fortran subroutines and its various
sub-packages are undergoing a maj or overhaul to introduce several new
features which have arisen from several months of use of the packages,
and discussions with colleagues and friends in Leicester and Cambridge
(namely Mr. R.J. Hubbold, Dr. R.F.D. Porter Goff, Mrs. C. Grafton and
Dr. C.A. Lang). Some of the new features will be:
(a) the digit changer and the thermometer device will be replaced by a far
more flexible and convenient device for controlling the value of a
variable,
(b) the ability to put a value into this variable controller as well as
take one out of it will be introduced,
(c) the control of a synchronised camera will he included in therapertoire
of controls available at the 'top level',
(d) the ability to be able to create a personal file or list of commands
which will be output at the end of each run and re-input at the
beginning of the next run, each personal command being defined by the
user of the c.r.t. in the usual way from the pre-defined hierarchy,
except that it will be possible to store its definition instead of
executing it. The file will also be editable from the screen,
(e) the limitation of a maximum of 100 subroutines on the ICL 4100 series
has led to an effort to amalgamate several groups of subroutines
into single subroutines (as large as they are allowed to be) to
minimise the number 'taken up' by the package. Care is also now being
taken to ensure that as much Fortran code as possible is in the
setting up routines to enable as much as possible to be overlaid.
(f) Variable length 'value buffers' will also be introduced,
(g) the execute light button will always be placed on the far right-hand
side of the screen regardless of the number of options within a camman~
(h) some routines are being written to ease the problem of keeping an
accurate display of the division of real time between the user and
the central processor unit,
(i) a larger character size will be used for the menu options and a
corresponding adjustment will be made in the layout on the screen.,
(j) each successive menu will be displayed at a different position from
the last one (i.e. alternating between two nearby positions) in
order to prevent gulps of options by the light button (which although
entertaining are inconvenient) ,
959
(k) the majority of the items displayed for the 'top level' control will
be removed from the screen whenever the execution is down 1n a level
below the 'top level' (i.e. within a users sub:toutine),
(1) a separate light button package will be developed on much the same
lines as a device for individual use in users suites of 'screen
executable' subroutines,
(m) a dimensioning device is being produced to simplify the interpretation
of dimensions on the screen.
REFERENCES
ACKNOWLEDGEMENTS
The work presented 1n this report was done while the author has been
960
employed as a Research Fellow in connection with S.R.C. Grant No.
B/SR/3383. The University's Elliott 4130 was used for this work and
the assistance of the Computer Laboratory's staff is gratefully
acknowledged. This project was initiated by Professor G.D.S. MacLellan
in 1966. The author also acknowledges the many useful discussions
held with members of the C.A.D. group in Leicester and the extensive
assistance from many members of the assistant staff of the Department.
Acknowledgement is also made to Dr. D.T. Ross and Mr. D. Thornhill
for their extremely valuable assistance in introducing me to computer
graphics while I was a guest at MIT in the spring of 1968.
001
~
81324
"Joystick" device with c.
tracking-cross "Digit Changer" device with the
L W R sixth digit about to be changed
0 9
1
~ b. 8
2 7
3 6
4 5
INCREASE
4.000000
"Thermometer" device with a
value between 2.0 and 4.0 "Quadrilateral" device placed
available over two nodes of a triangular
element which have just been
aligned on the y-axis by exe-
cution of the operation MUVE
2.000000
ILLUSTRATION OF THE SCREEN SHOWING THE LAYOUT AND FOUR CONTROL DEVICES
MENU DATA SHEE.T FOR INTERACTION PROCESSOR
, ~ ~." /.'" ~.
"((,4r ~ "'~ ~.,4r ~~ ~
,,~, CI"""; .".:. ~ ., ~ .... ~ ,~AO ~ .$ .$ 4
....
, ,v
# rJ. tf .,,"~ ~~ ~fl...I;,.'-' .)-I':.J,.q. ..l~·" ~' fl·
~~
!/'fI) rJ>oII,.. y>'" ..i" ~, Jl" o· ,~ o. ~.". I "," I
~..> ..q; ~.. ~..,. +~.., ~q ~ ..., .tJ ~q ,tit
ffi
~
I~i -SERIES 1
•
. • ~
f- <
rrw:.:1 ... i\Z" ,..,.,..",.. I."..,..,.,.,. •I SERIES 2
argument
DO. name
, t SERIES 3
1 WHAT ELafir
- -.... SERIES 4
SERIES 8
6 HOW ITOLINE TOPONT TOCROSr
I I 9
7 WHLINE I • SERIES
I I SERIES 10
8 INTEG X lWH~EJ IXPOSI
II • SERIES 11
9 IlfTEGY lyJ,SI
-- SERIES 17
IEXt:.'~ I t:.1
G. Shearing
1. INTRODUCTION
The fundamental idea is that man and computer should work together in
partnership, for the abilities of one naturally complement the abilities of
the other. In some fields, clearly the computer is very much superior to
man - inverting matrices, for example. However, it should never be over-
looked that man is far superior to the computer in many other fields. For
example, consider the problem of recognising human faces, something we all
do every day with apparently little effort, regardless of the angle of view
or the lighting conditions. This is rather an extreme example but, in
general, the human eye-brain combination is extremely efficient at extract-
ing vital facts from pictorial information.
Although this sounds straightforward, when one gets down to the details,
it is quite difficult to provide really good facilities for this type of
interactive system. There are often constraints and conflicting requirements
from other computer users to be taken into consideration.
967
frequently referred to while the work described here was under development.
They are listed at the end as References 7, 13, 14, 16, 17, 18 and 22.
In C.S.I.R.O. we now enjoy all the above facilities. (There are also
other, more specialized, types of interactive system such as 'computer aided
design', 'computer aided instruction', and airline seat reservation systems.
These are rather outside the scope of the typical general-purpose scientific
computing environment and will not be considered further).
968
the program right at first, hence the desirability of the type vi) inter-
active system. The way in which this has been achieved within an existing
computing environment is the main topic of this paper.
~ Computing in C.S.I.R.O.
The D.C.R. does computing for users from a very wide range of scientific
disciplines. Its main computing facilities are located in Canberra but
there are smaller machines in other cities.
The Canberra computer is a Control Data 3600 and most of the work
(about 70% of all jobs) is run in a batch-processing manner. The operating
system known as 'DAD' (irums ~nd iisplays) has been developed mainly by
members of the Division over the past four years and will be described in
the next section.
The VISPLAY (Vista and dis~) system has been written completely
within the existing DAD framework. However in order to understand the
development and workings of VISPLAY, it is necessary to describe some back-
ground information in the next three sections.
The 3600 at Canberra has a 32K, 48-bit word core store of 1.5 ~s
cycle time. A magnetic drum backing store has a capacity of over a million
words and the transfer rate is 250,000 words/sec (2 million characters/sec)
with an average access time of 17 ms. Furthermore, any number of consecut-
ive words can be transferred directly between any core and drum locations -
an extremely useful feature. A disc file provides storage for a further
16 million words. A collection of standard peripherals includes card reader,
card punch, three line printers, two graph plotters, two paper tape readers,
two paper tape punches and 8 magnetic tape units. Thus, it is evident that
the installation caters for a wide range of scientific programs in a
conventional batch-processing system.
969
at anyone time. The teletype system is organised so that it appears, to the
3600, to be part of the display subsystem, (see 2.2).
The main feature of the DAD system is its use of the high-speed drums.
All input and output is buffered via the drums. A document is a piece of
information, usually a program and/or data for input or produced by a
running program to be sent to one of the output devices. However, the
program can also manipulate documents directly. Most documents are serial
access documents; that is, they are stored on the drums as a series of
linked records in a kind of list structure. As documents come and go, this
allows the space to be fully used without frequent re-ordering of the
material. Documents can also be preserved in the system; this is necessary
for the display and teletype systems.
970
numeric keyboard. There is also a row of function keys and an interrupt
button. The information on the screen can be transmitted to the CPU (and
vice versa) in about 35 ms. The information on the screen is not copied
to the CPU until the interrupt button is pressed. The screen acts as if
it were a memory while the user types or thinks.
One special feature of the DAD system in this respect is that anyone
with sufficient knowledge can write and develop his own display programs
while the main system is running. There is little danger of 'crashing the
system' while this is being done since the displays monitor acts as a safe-
guard. It is now even possible to write display programs in Fortran, [6],
but there are restrictions because a display program is limited to 2000 words.
To run a job under DAD, besides his program and data, a user must
include some control statements. For standard jobs, these usually have
almost the same form and the simple-minded user regards these as somehow
necessary for the running of his job.
i) *DESC,BK,1630
971
The job uses the breakout facility and will not start before 4.30 p.m.
(see 3.2 below).
ii) *EQUIP,I=(CBCCR*GS,ABC),RO,SV
iii) *FTN,I=10,L,X=20
Call in the Ior~ra~ compiler to read source program input from lun 10
and list the program on the standard output unit. The program is to be
executed and the resulting relocatable binary (RLB) document written to
lun 20.
iv) *LOAD
*RUN,2
These two almost always come together. Load the various RLB
subroutines, filling in cross references, read the complete program into
core and enter it. The program will be terminated automatically if it
runs for over 2 minutes.
972
instruction times are: move the beam to a new position, 1.25 ~s; display a
character, 2.5 ~s; draw a basic vector, (see 3.3. below), 2 to 12 \.lS,
depending on the length. Any part of a picture may be made 'penable' i.e.
capable of being detected by the light pen. When the pen is pointed at
such a part an interrupt is generated and its buffer address stored.
973
A fairly recent development has been the addition of a camera,
automatically operated by the Vista controller, (and thereby, indirectly,
by the user's program in the 3600). It is a Robot Recorder with a 75 mm
lens mounted 6 feet in front of the screen and permanently focussed on it.
Photographs may be taken either manually or under program control [24].
Since a picture on the Vista screen will remain displayed until another
one is sent from the 3600, the 3600 is not required for the full duration of
a Vista job. There are times when the user merely wants to study the
picture at leisure. Also, since most Vista programs use elaborate Fortran
subroutines, it is not normally possible to incorporate them into the
display subsystem since their storage requirements are too great.
974
For these reasons, the breakin-br~akout facility was provided. On
encountering the special breakout instruction in the 3600 program, the DAD
monitor causes the main Vista program in core (with a record of all vital
registers and other necessary information) to be copied directly to the
drum and the program temporarily suspended while another one starts or
resumes (see below). This is normally done immediately after displaying a
picture on the screen.
975
user with a real problem to solve, some high-level software is absolutely
necessary so that he doesn't have to worry about these complications.
Two such systems are now in common use. They are both subroutine
packages, originally written in Compass Assembly Language, but used as
Fortran subroutines. They are known as the PLOTV and VISTRAN systems and
are fuily described in [12] ancCT26] respectively. Both of these packages
are independent of the VISPLAY system and they differ fundamentally in the
range of facilities provided.
PLOTV was designed for fairly simple applications where the main
program generates a complete picture, displays it on the screen, and breaks
out. The user then studies it, alters parameters, generates another picture
and so on. It does not allow the light pen to be used but the programming
is very simple, (especially for one familiar with the local graph plotter
software).
VISTRAN , on the other hand, allows all the potential power of the
Vista to be used. Instead of a complete picture being the basic unit as
in PLOTV, it allows the user to work with parts of pictures. These basic
parts may then be displayed, shifted, rescaled, rotated and erased in any
combination. A simple example of the use of VISTRAN is shown in Fig. 3.
It provides light pen detecting, tracking and drawing facilities. There is
also a group of subroutines which use VISTRAN for performing standard tasks,
including the copying of pictures on the graph plotter [25] and the use of
the Vista camera [24].
Both PLOTV and VISTRAN include simple Fortran calls to break out and
read the Vista function keys. As a measure of their relative complexity,
their specifications are 7 and 51 pages long respectively.
4. KWIKTRAN
(i) The most commonly used library subroutines are read into
fixed core locations in a single drum transfer. This
not only avoids the scan of the whole library but the
loading of the necessary library subroutines as well.
(iii) The system uses random access drum transfers for maximum speed.
(iv) With the experience of the previous system under DAD, some
vital parts were rewritten in a more efficient manner.
976
Fortran Program Vista Screen
977
The two main effects of this are that less storage is available than
with the Fortran compiler-loader system but the whole translation process
is about six times as fast.
A feature of Kwiktran, (which has been added since [20] was written),
is a facility to process relocatable binary documents. It turns out that
due to the general speeding up, this can be done about seven times as fast
as the corresponding Fortran source code. Since all the basic Vista soft-
ware must necessarily be written in Compass Assembly Language (from which
a relocatable binary version can be easily obtained), Kwiktran can now be
used for Vista programs.
978
5. THE VISPLAY SYSTEM
VISPLAY is not a complete system for using Vista since it must be used
in conjunction with one of the packages PLOTV or VISTRAN, described earlier.
Since these are both self-contained systems, it is natural to ask what extra
facilities are provided by VISPLAY. The answer is, briefly, three things.
Firstly, a very convenient form of input using the DD 210 console, secondly,
built-in rescue and diagnostic facilities and thirdly, (and the most power-
ful), the ability to modify any part of the user's source program on-line
using the 210 console. In other words, a VISPLAY program can recompile
parts of itself.
The user 'logs in' to a special display program (see 2.2 above) which
displays data on the 210 screen, [19J. While the Vista program is 'broken
out', he alters this data by re-typing the necessary parts of it and inter-
rupting on the 210. This causes a corresponding drum document to be altered.
When the Vista program breaks in, this drum document is read by standard
Fortran READ and FORMAT statements. Since DAD only allows a document to be
used by one program at a time, in order to share the drum document in this
way, both the main Vista program and the display program must release the
document when they have finished reading or writing it and they must
Ire-define' it before they can use it again. This system has worked very
well in practice for it is easy to program and to use on-line.
Having firmly established the use of the DD 210 for altering data on-
line, it was natural to explore the possibility of changing the program as
well. Clearly, if this could be done then whole new realms of interactive
problem solving would be opened up.
900
We shill now describe in detail) what happens when the program calls in
the VIsPLAy·recompiling mechanism. Other calls will be described in section
5.4 but some of the more straightforward ones will not be discussed in detail
Note that the Fortran calls, in a way, correspond to DAD control statements,
(see 2.3).
allows the user to alter lun 10. The details are as follows:
i) Lun 10 is released,
ii) A message is displayed on the Vista screen,
MODIFY KTNPART AND INTERRUPT
iii) The program breaks out.
iv) The user modifies the document KTNPART using the DD 210 console.
v) He interrupts Vista to breakin.
vi) Lun 10 is defined to be the new KTNPART.
vii) The program resumes at the next statement.
The statement
CALL LOADRUN
The statement
CALL CONTROL(25H*FTN,I=30,X=40,L.FTNPART.)
9Rl
viii) If the compilation is successful, control returns to the next
statement in the user's program. Again, see 5.4, if errors
are discovered. Lun 30 must be free of Fortran source code
errors before the program can continue.
< SR 7"< FR ?
-
0 SF
0 RLB
..
Kwiktran
CompHer
OBJECT
PROGRAM
S Doc. X Doc.
Fortran
SF RLB
Compiler
S Doc.
C0Il!pass EJDOC'
SC ~----~---------- RLB
Confpiler
.-
For example, a test program which was used during the development of
VISPLAY displays a graph of a mathematical function on the Vista screen.
HH2
The scalefactors, range of the independent variable etc. were defined in a
data document; the function itself was defined as a Fortran function sub-
routine in a K document. (Later, it was realized that these two could be
combined into a single document and this made the program even more conven-
ient to use on-line). The rest of the program, about 12 subroutines, was
subaitted in the form of R or S documents. The complete program occupied
about 4500 words of core.
Various stages of the process were timed with a stopwatch and the
results recorded in the table, Fig. 6. As with all other interactive use
of the DAD system, the response varied considerably depending on the number
of on-line users active at the time and the amount of background 10 activity.
(There are also periods when DAD is busy 'housekeeping' and on-line users
find themselves ignored for possibly minutes on end. Timings obtained during
these periods have been ignored.) During the experiment, separate timings
~re made in a period when it was noticed that the system was less busy than
10 an earlier period. These periods are defined as 'not busy' and 'busy' in
the table. It should be noted that however busy the system is, there is
always an average delay of one second before DAD takes action on a breakin.
rbis is because it only tests for a breakin condition at the time of its
'two second interrupt'.
The pleasing thing about these figures is that the time for an FR
~er reasonable conditions is not much greater than the breakin time. Even
~ith a much longer program, provided the K documents are kept very short,
the time for an FR should not be very much longer since a substantial part
)f the time is taken up with fixed overheads anyway.
One of the first statements in the users program must be of the form
where ISN has been set to the address of a statement number (by a previous
ASSIGN ••• statement),
984
FTTS is the name of a "first .!ime .!hrough ~ubroutine" and pl, p2, •••
are actual parameters of FTTS.
The effect of this call is threefold. The very first time that the
program is entered, a simulated call is made,
but whenever the program is recompiled and entered (i.e. after a LOADRUN
call), this call is bypassed. The purpose of this is mainly to allow the
user to display a preliminary message or 'test pattern' on the Vista screen.
However, it also provides a means whereby a large set of data need only be
read once as a serial access document and then converted to a random access
document. Any other preliminary processing of data can also be done at this
stage.
has the effect of interrupting the running program 20 seconds after every
subsequent breakin. It calls the user's subroutine SUB and then resumes
where it left off. SUB can be used to display a warning on the screen,
after which, the user may wish to manually interrupt as described above.
If the parameter SUB is omitted, a short subroutine in VISPLAY itself is
called instead. This causes a flashing warning message to appear but it
also erases any picture from the screen, hence the optional user's
subroutine.
985
Whenever the program encounters a non-fatal error, including recompil-
ing errors, VISPLAY causes a whole Vista screenful of diagnostic information
to be displayed. This consists of a message followed by the last 36 'usefu~
lines written to the standard output unit, (lun 61) which is later output
on the line printer. An example is shown in Fig. 7. 'Non-useful' lines
include blank ones and standard page headings etc. produced by the Fortran
compiler. Thus the maximum amount of useful information is displayed. To
display the information from 1un 61, the following basic cycle takes place:
backspace a record,
[ copy it to the Vista buffer if useful,
backspace a record,
display the contents of the Vista buffer,
skip to the end of the document.
The Y coordinate of the first line read and displayed is set to the
bottom of the screen and this is then decreased for each successive line.
Thus although the lines of text are stored in reverse order in the Vista
buffer, they appear correct when displayed on the screen.
However, the most awkward case is the one where there is faulty cross-
reference ('loading error') due to a wrong name in an S document which
cannot be detected by the Fortran compiler. Thus it is necessary to be able
to go back to an SR after the FR finds an error. This is done by the user
setting the Vista function keys to define the lun of the faulty S document.
Since, it is possible to set the keys wrongly, an extra check has to be
included and if necessary yet another error message displayed.
Since Vista jobs form only a very small proportion of the total number
of jobs run on the CSIRO 3600, (certainly very much less than 1%), any
system for using Vista must fit into the normal operating system. However,
because of their special requirements, Vista users were provided fairly
early in the development of DAD with the fundamental breakin-breakout
facility, and later, with the other two special facilities described in
3.2, above.
9~
VISPLAY was developed completely within the framework of the existing
DAD system apart f~om two very minor modifications to the monitor. That
such a system was possible says much for the versatility of DAD, bearing in
mind that the Control Data 3600 is now a comparatively old-fashioned machine
and lacks many of the hardware features which are currently found on machines
designed for multiple-access use. Some of the DAD facilities which were
useful or vital will now be described.
ii) The use of the drums as a large store for serial access documents.
A1~hough the request, "'read the last line printed on the line-printer" is
meaningless, the request "read the last record of the standard output unit"
is not. This unit is just the same as any other until the job terminates,
when the printing actually starts. Other strange requests which have been
found to be necessary are, "write a card to the card reader", "delete cards
in the card reader" and "read cards backwards through the reader". The point
is, of course, that by the time 'cards' are read by the program, they have
long since passed through the reader and exist as card ima~ on the drum.
(By using the display consoles and the disc file, the card reader is often
bypassed altogether).
iii) The use of the drums for random-access transfers, though not
strictly necessary, has made the system far more efficient, especially for
Kwiktran recompiling and performing the breakin and breakout operations.
iv) The large number of special 'system macros' allows the sophistic-
ated programmer to take full advantage of DAD's basic versatility. In
particular should be mentioned the macro for calling in a compiler which
was provided for part of DAD itself ('Interjob'). This has been used, as
far as the author is aware, in only one other program besides VISPLAY.
Although its use is far from straightforward, the fact that it was available
at all has made the VISPLAY recompiling facilities very much more efficient.
v) The provision for running more than one program in a single job
was essential. One reason was that certain information about the structure
of the main program, (in connection with the names and numbers of the user's
K, R and S documents), had to be stored on a drum document before the main
program could start. This is set up by running a short preliminary program
in the same job. A 'switch' for controlling the calling of the user's FTTS
subroutine (see 5.4 above) is also stored in this document. It was vital .
that this document could be used for the duration of the whole job and not
just for the period of the preliminary program.
987
vi) The facility for any user to write his own 'display program' h..
been mentioned above in 2.2. This was useful since the standard editing
programs CIDER [15] and FRED [10] were not entirely suitable for the on-line
input of parameters via the 210 console. A special display program, BEEk.
was written for this purpose [19].
6. ON-LINE MATHEMATICS
Y = A*X**2 + B*X + C
Y = A*COS(X) + B*SIN(X)
Y = F(A,B,X**2,COS(2.*X» + X**N/LOG(X)
If A,B,C and N are constants and F( ••• ) is a given function then all
these statements may be regarded as expressing a functional relationsh~
between an independent variable X and a dependent variable Y.
Now 3600 Fortran [5] makes provision for a user to define other tyPes
of variables besides the five basic ones (real, integer, double, complex~d
logical). Having defined a new type, the user must provide subroutines
which define what is meant, for example, by
One such system has been written at C.S.I.R.O. for dealing with
matrices, [9].
Y X**2
to be equivalent to
DO 1 I 1,N
1 Y (r) x(r)**2
988
With a short VISPLAY K document containing a list of such mathematical
statements displayed on the DD 210 screen and all the other necessary sub-
routines in RLB form, the mathematician will have a powerful tool for
exploring problems involving functions of a single variable.
iv) A simpler system (e.g. PLOTV), which does not use all the
facilities of the ha=dware is very much worthwhile as it
will be adequate for many problems. Preferably, it should
form a subset of a more powerful system.
990
8. ACKNOWLEDGMENTS
Dr. B.J. Austin not only provided the special DAD facilities described
in 3.2 but also started off the main part of the VISPLAY project with a
bright idea and gave much assistance with the earlier versions of VISPLAY.
REFERENCES
2. AUSTIN, B.J., HOLDEN, T.S. and HUDSON, R.H. (1967): "DAD, the
C.S.I.R.O. Operating System", Comm. A.C.M., Vol.IO, p.575.
991
4. CONTROL DATA CORPORATION, Data Display Division (1967): CDC 250
Series Display Equipment Reference Manual.
6. EWENS, P.M. (1968): "A Fortran I/O Package for On-line Consoles".
Technical Memorandum 68/4, C.S.I.R.O., Division of Land
Research, Canberra.
10. HUDSON, R.H. (1969): "FRED, Fast Reliable Editor". C.S. I.R.O.,
Division of Computing Research, Canberra.
11. HUDSON, R.H. (1969): "KWIKTRAN, a Version of the Control Data 3600
Fortran System Modified for Fast Translation and Rapid Loading".
Manual Supplement No. 33, C.S.I.R.O., Division of Computing
Research, Canberra.
12. HURLE, R.J. (1968): "PLOTV, Plot and Text for the Vista Display".
Subroutine Library Specification, C.S.I.R.O., Division of
Computing Research, Canberra.
17. ORR, W.D. (1968): "Conversational Computers". John Wiley & Sons,
Inc., New York, London, Sydney.
18. SASS, M.R. and WILKINSON, W.D. (eds.) (1965): "Computer Augmentation
of Human Reasoning". Spartan Books Inc., Washington. Macmillan
and Co. Ltd., London.
992
19. SHEARING, G. (1968): "BEER, Brief Easy Editing Routine". Display
Program Library Specification. C.S.I.R.O., Division of Computing
Research, Canberra.
993
SOFTWARE FOR SATELLITE GRAPHICS
A. R. Rundle
Abstract
Configurations
There are two main reasons for putting a graphical display onto a
satellite computer linked to a larger, multi-access machine, instead of connecting
it directly. The first of these is to spread the computing load in an efficient manner
on the basis that, for trivial operations such as pent racking , a word of core in a
low cost satellite is cheaper than a word of core in a large computer with many
expensive pe riphe rals. Secondly, if the display is to be situated remotely from the
main computer, some local computing power may be necessary to provide response
to users actions within an acceptable time limit.
The nature of the link connecting the machines is dependent on the distance
between them. If less than 1,000 ft. (approx.), a parallel interface such as a
peripheral interface or the British Standard Interface may be considered, with a
high transfe r rate of the hundreds of kilobaud. Above this distance it is normal to
use modems, either over private lines or via the public telephone network. The
G. P. O. wideband facilities are usually too expensive to be worthwhile.
995
The ideal size for each computer theoretically depends on the application.
For satellites over a modem link, there has to be sufficient storage to hold all
routines giving immediate response, and the data that they need to operate on. The
size of the big machine and the power of the central processor is determined by the
calculations involved and the response required from the main computer. This in
turn depends on the characteristics of the operating system and the number of
displays to be serviced within the maximum allowable response time.
Where a very fast link is used it is usual to employ the smallest satellite
configuration possible to perform the trivial but repetitive tasks, such as pent racking ,
reading keyboards, joysticks, etc. It is worth noting, however, that there is a large
step in the price of multi-access systems when ohangtngfrom a situation where
"active" programs are held on disc, to one where they are resident in core. If this
change has to be made in order to provide a fast enough response time, the use of a
larger satellite may ease this restriction and reduce the total cost of the system.
We have noticed, however, that these criteria are not always the dominant
ones when choosing a configurati on. Given an adequate response time for the big
machine, the factors which affect the choice most seem to be,
a) Cost
If the big machine is expensive to use and the line charges are high, it
soon becomes worthwhile to add extra core, or possibly backing storage,
to the satellite, using the big machine only when absolutely necessary.
Indeed it is possible to imagine situations whe re the cost of using a
large expensive comouter a long way away is sufficient to justify a
local stand alone graphics installation.
b) Availability
The main machine may not be available for sufficient periods of time,
for example, it may not be possible to use it for evening shift working.
This could necessitate the use of a large satellite, probably with some
996
form of backing storage, so that data can be created ove rnight and
sent, next day, to the main computer
In the worst case, such restri'ions could rule out the use of
satellite displays altogether.
c) Loading
A factor that then has to be considered is the loading on the big machine.
If it is heavily loaded, it is usually sensible for the Eatellite to do more
work to avoid having to upgrade the main system. On the other hand, if
it is very lightly loaded then it is not worthwhile buying a large satellite
to do work that could be done, albiet inefficiently, by the big machine.
I might add that this latter case does not occur often.
d) Other Work
On occasions there are other reasons for having local computer power
especially if the satellite has to perform other work in addition to
graphics, such as data logging, or providing a remote batch service.
e) Finance
Finally, it is possible that by adding the smallest satellite possible to
an existing installation, one can minimise capital expenditure. On the
other hand, if this requires a large core resident program in the
multi -access compute r, this will downgrade the total syst em and
increase the cost per job.
The most vital piece of software in any satellite graphics system is the
communications package, since it is this package which organises the transfer of
all data between the two machines. Part of the package will therefore, be
resident in each machine.
997
different interpretations of the "handshake" procedure that has to be adopted to
ensure that no data is transferred until the device at the other end of the line is
ready to receive it, although the actual operations involved are fairly standard.
998
big machine program may only be running intermittently.
Ideally, the re should be the option to display sho rt messages
on the display screen to keep the operator informed about
the state of the link and the information waiting to be processed.
Graphics Software
a) the large backing store which will hold all data relevant
to the problem (the data base) will be attached to the main
computer. The system therefore, has to cater for
transfers of data from this backing store to the satellite.
b) the satellite will generally be too small to hold all the data
it reqUired, and hence some method of fragmenting the data
structure has to be provided.
We are dividing our free storage into pages, and each reference pointer
will, therefore, contain a page number and an address relative to the start of that
OBJECT TYPE
LENGTH OF SIDE
ORIGIN X CO-ORDINATE
ORIGIN Y CO-ORDINATE
1000
page. Page tables will be kept in each machine to indicate the whe reabouts of
each page. When a page is transferred from one place to another, only the page
tables need be updated, not the pointers, so that each page is relocatable.
The algorithm we use for storage allocation within the pages basically
forms free store lists, merging adjacent areas of free store where possible, but
does not move data records to perform a proper garbage collection operation.
An example of the type of sub-routine that the user would have to write
is shown in figure (2~ IGET (L) is an intege r function which takes the value of a
pointer to a record of free store of length L. (Its counterpart IPUT(R, L) returns
a record whose reference is R, of length L, to free store.) IFIND(R) is an
integer function which takes the reference pointer R, brings the appropriate page
into core if not already there, and becomes the page relative pointer (i. e. the
reference R minus the page number). SETUP will have initialised the system, and
have allocated array A as the area to be used for core resident page. ILAST(I) will
find the last record in the ring starting at I.
A large satellite can be used like a stand-alone machine except for the
fact that occasional data transfers occur when lengthy computation or file searching
is required. For smaller satellites, however, stand-alone graphics software is
1001
not enough; the big machine user will want to generate pictures, but it is often
useful for the satellite to perform operations such as zooming or edge clipping
without recorse to the big machine, for example, to change the view of an object.
J = IGET(5)
C CREATE A RECORD FIVE WORDS LONG, POINTER IN J
I = IFIND(J)
C COLLATE OUT PAGE No.
A(I) = 100
C OBJECT TYPE
A(I+1) = IRING
C IRING IS A POINTER TO THE START OF THE RING
A(I+2) = LENGTH
A(I+3) == IX
A(I+4) +IY
I + IFIND(IRING)
C FIND LAST RECORD IN RING
I == IFIND(I)
A(I+l) == J
Since this normally means the use of a pseudo display file, we can define
many geometriC shapes as functions of the system. We are no longer restricted
to lines, arcs, characters, etc. This in turn means that we can present the user
with a much higher level software interface, for example, he may merely tell the
system to draw a transistor or a surface patch without having to generate these
line by line. Similarly, it is possible for the satellite to inform the big machine of
changes to the picture by communicating in terms of alterations to specific objects.
1002
• I PSEUDO DISPLAY ... ....
M
o
o,....,
, ,
ALGORITHMS
FILE
i
I
,
DATA ~ COMMUNICATIONS 928
LINK PACKAGE DIS MAN I. I DISPLAY FILE DISPLAY
INTERACTION
MODULE
......-
~
•
• -- lIGHTPEH
1
~- I.
I ~ .. I: DECISION
TABLES
I
FIG.3. SCHEMATIC DIAGRAM OF SOFTWARE IN SATELLITE 905.
Ideally, the display should ope rate on the data structure directly,
but any major alteration is likely to involve examining the whole of the data
structure, which could take a considerable time, especially if the link between the
machines is slow. The satellite will, therefore, probably hold its own minimal
subset of the data structure containing only the information which requires
graphical representation. We are, therefore, providing a mechanism to enable
the user to specify new object types. Each object type will require an algorithm
in the satellite to process the pseudo display file to generate a suitable picture,
since, for complex objects this is likely to be more efficient than holding complete
graphical information in the pseudo display file. It will be possible either to
generate the file completely in the big machine for subsequent transmission to the
satellite, or me rely to communicate changes so that the file can be updated in the
satellite.
When using this system, each installation will have to define the classes
of object that it is desired to operate on, for example, one user may wish to
operate on pipes, valves and pressure vessels, while another may wish to operate
on transistors, resistors and capacitors. Once this has been done, the user has
his own application orientated graphics package and to use it merely has to note
changes to the graphics data structure and update his problem data structure
accordingly.
Although we have now made life much easier for the application
programmer writ ing for the big machine, we have in some respects merely
transfe rred the problems to the satellite, since the satellite has to conve rt the
pseudo display file into real display file, and also has to modify the picture and
the display file in response to the operator's actions.
1004
Again, a certain amount of initial work has to be done to define the
routines required for each installation, but we can provide a number of the more
basic routines. We believe that this approach will significantly reduce the amount
of work necessary in this area.
User Packages
ACKNOWLEDGEMENTS-
References
1005
5. Newman W. M. A System for Interactive Graphical
Programming Proc.1968 SJCC. P. 47.
Thompson Books (April, 1968).
1006
OPTIMUM SYSTEMS DESIGN OF
COMPUTER DRIVEN GRAPHICS
TERMINALS
1. D. Foley
1. Introductio~
1007
a::
w
zl-
:::>
<:to...
22
o
()
0::
WW
1-1-
0:::>
~o...
w~
0::0
()
~
~ffi
-1-1
0...6
(/)0::
o~
o
'-----.()
---
o
~------~---------+------ ----~
1008
display terminal's core storage, and the display terminal's bulk
storage. In specific cases the terminal's bulk store may not
exist, or the data link may simply be a cable between adjoining
rooms. In most cases, at least the remote computer-display
control and its core storage will be part of the display system,
with the core serving both as a refresh buffer for the display,
and as program and data storage for the remote computer. This
computer (usually small and inexpensive) is used to take the
burden of much of the display processing from the main
computer. The exact nature of the relationships among the
display control, remote computer, and core storage is discussed
in a reference (11). The main computer is included in the
system to provide inexpensive bulk storage and, above all,
because of the extensive computations demanded by most display
applications, such as network analysis (3, 4, 14, 18), drafting
and numerical control (13), integrated circuit layout (8, 15),
and many others.
When designing a display system, there are large numbers of
hardware-software and hardware-hardware tradeoffs or
alternatives which can be exploited. By hardware-hardware
tradeoffs we mean the possibility of increasing the capability
of one display subsystem in exchange for decrease capability of
another display sybsystem, while keeping response time constant.
The purpose of juggling hardware in this manner is of course to
minimize cost. As a specific example, if we wish to maintain a
specified response time at the display console and wish to
decrease the data link speed, it is necessary to increase the
"power" of the remote computer-display control, or the amount of
core storage, or the amount of remote bulk storage, in order to
compensate for the longer data transmission time. The converse
also applies. Increasing remote computer power cuts computation
time, while increasing core storage decreases bulk storage
accesses, either at the terminal or at the main computer, and
increasing remote bulk storage cuts down on data link usage.
In some cases, however, it may not be possible to
completely compensate for a lower transmission rate. This will
depend both on the amount of decrease in transmission rate and
on the relative usage of the four system components.
Specifically, a small decrease in transmission rate for an
infrequently used data link is far easier to accomodate than a
large decrease in a heavily used link.
Similar statements can be made with respect to each of the
other system resources: a decrease in anyone can be
compensated for by an increase in one or more of the other
resources, within certain limits.
With hardware-software tradeoffs, we are referring only to
the remote computer-display control. Certain display-oriented
1009
functions can be implemented either by software with the remotE
computer or by hardware in the display control. Severa:
possiblities exist here.
When a position indicating
device, such as a RAND table1
(2) is used at the display console, it is often necessary t<
correlate a position with an entity currently being displayed OJ
the CRT. This can be done with software, or with displa:
control hardware which continually compares the current CRT beal
position with the indicating device's position (9). The firs1
method can consume much remote computer time, but cost:
nothing: the second method takes neither computer time no]
display time, but does take money.
If, on the other hand, a light pen-type entity indicatinl
device is employed, its position will frequently need to bl
known: this is the familiar light pen tracking problem. Onci
again, the work can be done with either special purpose hardwarl
built into the display control, or with a program running on thl
remote computer. A current hardware implementation takes abou'
10% of the display control's time. decreasing by a like amoun'
the quantity of flicker free material which can be displaye l
1010
display system components, an important question arises: for a
given display system application, and a given dollar cost, what
combination of display subsystems will produce the best possible
service for display users? The best hardware will produce the
fastest, or minimum, average response time experienced by the
display system's users.
1011
likely to occur in the total system. Each box in the mode
represents a server and when R is greater than 1. a possib]
queue of tasks waiting to use the server. As can be seer
servers are the remote computer. its bulk storage, the dat
link. the main computer. and its bulk storage. It is often tt
case that several servers in the model refer to the sarr
physical device. performing different functions.
1012
CPU will be treated implicitly in the CPU's service rate, rather
than explicitly by having non-display tasks in queue 8. No
matter what the priority structure (or lack of it) may be.
intervals of main computer service ensue, interspersed with bulk
storage accesses to programs and/or data.
Whenever processing ends, a message containing results is
queued for transmission to the remote computer via server 10.
Following transmission the task queues to use the remote
computer, server II, for post-processing. During post-
processing, results received from the main computer are expanded
into a display file, after which the user sees his results on
the display console, and is able to generate a new service
request.
Several general observations concerning the model are
appropriate. A very clear distinction is made between the two
roles played by the main computer. The first role, that of a
processor, is modeled by servers 8 and 9; the second role, that
of storage for data programs for the remote computer. by server
4.
Because several servers are in fact the same physical
device. a system of priorities is included in the model. They
are indicated in Figure 2. For example. if tasks are waiting to
use the remote computer in both its pre- and post-processing
roles, post-processing is given priority. This is just an
extension of the read before write philosophy used in scheduling
the paging drum of current time-shared computer systems (10,
19). The goal of course is to keep response time down. In the
case at hand reads are associated with post-processing and
writes with pre-processine;, since it is the "reads" which bring
a task nearer to completion with more certainty than a "write".
Indeed, in this example, post-processing completes a task.
Beyond this, however, remote processing (server 1) 1s given
top priority for use of the remote computer. This helps the
display terminal users maintain a high interaction rate while
doing the ordinary work supported by the remote computer, for
which the user expects fast responses. Interactions involving
the main computer, for which users are usually prepared to wait
a bit longer, are accordingly given lower priority. Priorities
for use of the data link are assigned on the same basis, that
is, read before write, with preference Given to the remote
computer.
Finally, it is important to remember that each of the R
users can have only one task in the system at any time. This
means that the maximum queue length at any server is R-I (one
will be in service), and that no more than R tasks can
101:3
MAIN COMPUTER
9 BULK STORAGE 4
,
a
n. j
MAIN
8 COMPUTER
•
a
n.
0
PRIOR IT Y2 PRIORITY 3
REMOTE REMOTE
COMPUTER:
POST-
PROCESSING
II 6 COMPUTER:
PRE-
PROCESSING
• 0
cr
Q.
I
~RE MOTE
~d CO MPUTER
f-+ 2 f.+- BU LK
STORAGE
•
u
~ cr
0
Q.
j REMOTE
'-- I ~ CO MPUTER:
PRIORITY I ,IrRE MOTE
PROCESSING
u
I-PM cr
PM 0
Q.
-
I
". :11SERVICE
USER .
WAIT FOR NEXT REQUESTS WAIT FOR NEXT
REQUEST REQUEST
1014
simultaneously be in the system.
1015
At this point it must be very evident that the forgoing
paramater1zed application characterization may, in fact, be very
difficult to estimate. This is true. However, what is equally
true 1s that the better an application and the programming and
computational requirements of that application are understood,
the easier will the estimating process be, the better will the
parameter estimates be, and the better will the average response
time estimate be. This model does not give something for
nothing. It does not give a good estimate of response time for
an ill-defined application implemented on an ill-defined
hardware display system. On the other hand, the model should
give an accurate estimate of the system response time for a well-
defined application, subject only to the appropriateness of the
assumptions incorporated into the model.
1016
there is certainly nothing inherent in display applications to
preclude the desirability of such actions. By eliminating the
possibility of such accesses, the model will tend to
underestimate the modeled system's response time if the system
actually makes the accesses.
The model also allows only one level of bulk stor'age at the
remote computer, specifically head-per-~rack disks or drums.
This limitation is based on two premises. The first is that
other reasonably priced bulk storage media which might be used
at the remote computer (magnetic tape, for ins~ance) a~e not as
cost-effective as disks or drums, unless very large ahlounts of
on-line bulk storage are needed. The second is that if a large
amount of on-line bulk storage is needed, there should still be
included a disk or drum for storing the more frequently used
files, to help maintain a reasonable response time.
Why have these assumptions been made? Why can~t the Thodel
be bigger and more sophisticated so that the as~umptlons arenit
needed? For several reasons: the most impor~ant is that as the
model becomes larger and more detailed. more and more must be
known about the fine details of an application to determine the
model's parameters. The model as it exists now is already
detailed, and is rather demanding in what must be known about
the display system application; asking for even more application
parameters is most unreasonable and unI'ealistic.
1017
system's hardware capabilities also increases the system's cost
and decreases its response time. These properties will prove to
be most useful.
3. Analysis Techniques
In the preceeding section a mathematical model of a display
system was presented. The model attempted to abstract and
solidify the essential salient characteristics of display system
operation. In and of itself, however, the model is not
particularly helpful unless we can use it to find response time.
When the display terminal serves only one display console,
no queueing occurs. In this case a closed form expression gives
the system response time. However, with more than one user,
queues can occur, so that either simulation or Markovian
(queueing) analysis must be used. A problem arises here.
Markov analysis requires that the model possess certain
properties. there is unfortunately no assurance that the display
model satisfies the requirements. Simulation, on the other
hand, places virtually no restrictions on the model. The
problem is that in terms of computer time, simulation costs from
5 to 15 times more than Markov analysis.
Because of this problem a study was made to compare the
results of simulation and Markov analysis as applied to the
model, even when the model did not meet the requirements for
Markov analysis. The results showed less than a seven percent
difference between the two analysis methods for the paramater
set used with the model. While this is definitely not
generalizable to other models or to greatly different parameter
sets, it does justify the use of Markov analysis for the work
reported here. This means that the Recursive Queue Analyzer
(RQA) programs developed by the University of Michigan's Systems
Engineering Laboratory (20) can be used to analyze the model.
4. Optimization
An optimization procedure has been devised to find the
display system (data link, remote computer-display control, its
core storage and bulk storage) which minimizes response time
subject to a cost constraint. The optimization accepts as
inputs a paramaterized description of the display system's
application, and descriptions of up to sixteen choices for each
of the four display subsystems.
The optimization procedure occasionally uses the display
system model to calculate the response time which a display
system will yield. indeed, the most important feature of the
optimization is that it uses the display model's properties
1018
pointed out at the close of section 2, along with a lower bound
on response time, to minimize the number of times RQA is used:
even though RQA is less expensive than simulation, it is still
not cheap. Typically in examining about a thousand possible
display systems, RQA is used but two or three times during the
optimization: therefore an optimization becomes very
inexpensive, sometimes costing less than a single simulation.
5. Computing Power - Display Capacity
A critical necessity in the optimization is the creation of
a suitable data base of hardware subsystems from which an
optimal display system can be chosen. This can be rather easily
done for all the display subsystems except the remote computer-
display control subsystem for which not just computing power,
but also display capability must be determined. Display
capability must be known because not every display control can
display the same amount of information. Only those able to
display some minimum amount of information can even be
considered for inclusion in a display system; this minimum
amount of information is application dependent. If some display
controls can be eliminated by this criteria, the remaining
display control-remote computers need then be rated only
according to their computational abilities.
A convenient way to measure the display capability of
various display controls is with standard test patterns typical
of various applications. The method used by Adams Associates in
The Computer Display Review is typical of this approach.
The second part of the problem, measuring the computing
power of remote computer-display controls, is a bit more
difficult. The most expeditious approach is to create a list of
display oriented macro level operations, such that any and all
display work can be performed be programs made up of sequences
of these macros. Different pieces of hardware are evaluated by
finding the execution time of each macro. These times will vary
as the hardware's capabilities change, and will decrease or
increase as more or less of the hardware-software tradeoffs are
manifested in hardware. By taking a weighted sum of the
execution times (where the weights are application dependent), a
particular remote computer-display control is evaluated for a
particular application. A detailed discussion of this technique
is available in two references (5, 6). Its final result is a
set of remote computer-display controls, each of which can
display at least some minimal amount of information, and each of
which can execute display macros faster than any other unit of
comparable price. These units are then input to the
optimization program.
1019
6. Application
1020
Text Editing
Two-Dimensional Drawing
Three-Dimensional Drawing
Aside from the addition of a third dimension, the
only substantial external difference between this
and the previous application is the capability to
rotate a solid object in three dimensions.
Computationally, however, more effort 1s needed
to keep track of the third dimension.
1021
springs, masses, and dashpots, or they might
represent the stochastic service system elements
of queues, servers, branches, and blocks.
Whatever the case, the user progresses through
several phases. First, a network consisting of
elements and their connections is constructed.
Elements ar~ chosen from a menu and moved into
place with the light pen, and connections drawn.
Changes and deletions are made as required. In
the next phase, numerical attributes are assigned
each element. For electrical networks, this
would correspond to ohms, henrys, farads, or a
transistor type. In the third phase, the desired
analysis results are specified. The network is
then analyzed by whatever numerical techniques
are appropriate to the type of network drawn, and
finally, the requested results are plotted.
1022
----------------------------------------------~o
-
d
(\/rt')
II " II
0:: 0::0::
0
r<)
•
(f)
u
w
.
(f)
w
-:Et-
q LLJ
(f)
Z
0
a.
(f)
w
cr
LLJ
~
ffi
rt')
•
~
:E
::>
~
-:E:2
rt')
~----------O-O~O-g----O-O~O-v--~O-O~O-£--~O~O~O-G---O-O~blq
S(:IVllOa lSO:> AlH1NOLN
Figure 3. Optimum text editing system costs and response times.
1023
'. -
r<)
o.
~------------------------o~------~------~o~------~o
a '
0 0 0
0 0 0
v (\J
1024
The results of applying equation (1) to the optimum display
systems found for the 3-D.drawing application (Figure 5) with
one, two, and three display consoles are shown in Figure 7.
The peaks in cost-effectiveness determine which of several
optimum (in the sense of minimum response time) display systems
is optimum in the cost-effectiveness sense. The three most cost
effective systems occur at costs of $2180, $2065, and $1999 per
display console. This is just a reflection of economies of
scale: for more users, the most effective system costs less,
and provides more interactions/second/dollar. On Figures 3 to
6, an asterisk denotes those systems chosen as most cost-
effective on the basis of (1).
1027
o
r-------------------------------__------------~Oo II)
0
en
~ 0::
<t
..J
..J
0
C
..,:
en
0
u
~
~
~
Z
0
0 :E
0
0
",
o
o
oC\I
1028
~-------------------------------------------------'Q
r<>
(/)
c
z
Q 0
u
w
(/)
.
w
~
t-
w
(/)
z
0
r<> a.
(/)
w
rx:
w
(9
•
<t
0::
W
>
<t
- ~
:J
:E
z
:E
Figure 5
1025
o
o
rt) - C\J
II II II
a:: 0::: 0:::
0
r<>
(,
(,
L
C.
ole
..-=
l
« ~
l
q (
..
(
(
(
l
(
l
(
c
r<)"
.
1026
Additonal response time improvements are obtained (at high cos
first by improving the remote computer-display control and th
by using more core storage."
To justify the necessity for these guidelines, Figure
shows just how scivere the penalties of using a nonoptimal desi,
can be. The figure plots response ti~e versus cost for tl
network analysis application with three users. Both optimum ru
worst case response times for various values of cost al
plotted. The worst case response time is the maximum respon~
time of those display systems which cost the same as an optimt
system. The graph's interpretation is that, for instance, j
$2340 per month is to be spent on a display system, the respon~
time can range from .155 seconds (Point A) to 3.92 secone
(Point B). These times differ by a factor of 25. Also, tl
graph can be interpreted to show that if a response time of ,
seconds is needed, the display system's ~onthly cost can val
from about $2600 (Point C) to about $3400 (Point D). Th~
represents an unnecessary expenditure of up to $800! Thus ~
see that the differences between optimu~ and worst case displc
systems are significant, with respect to both cost and respon~
time. Therefore, display system designers must have at thej
disposal means of making intelligent design decISions, becau~
the consequences of making bad decisions are too serious.
In conclusion, the goals set forth at the start of thj
section have been ~et. The tools presented in earlier sectior
have been applied to several display applications, and tt
results have been interpreted so as to justify the search fc
display system design guidelines. These guidelines have beE
stated. Of course these guidelines must be used in the propE
perspective, first because parameters on which they are basE
were only estimated, and second because the relative costs c
the subsytems studied might change in the future.
7. Summary
The purpose of the research reported here has been t
develop aids for the analysis and design of highly interactiv
graphical display systems. These aids are needed because iner
design decisions can be very wasteful.
To provide a framework within which to work, a mathematica
model of a display system was developed. The model uses
description of the system's application and hardware to predic
response time. Included in the model is a scheme for dividir
display processing between the main and remote computer. 2
that the model can be simple enough to facilitate quic
analysis, and to make it realistic to use, the level of detai
is relatively crude.
1030
examined in an attempt to deduce general guidelines for display
system designers.
1029
10.0..----< \-----------------~
F \
\
,,
,,
\
sq
\
\
\
\
\
\~
C/)
o \\~
z \~
o
~ 1.0 \0
C/) \~
... \\"\\
w \
2 \
I- \
W
C/)
\
Z \
o \
,,
0...
(f)
W ~
0::
\
\ ,
.I 0 "~ \ 0
\
E
8. Critical Evaluation
9. Acknowledgements
1032
Engineering Laboratory, The University of Michigan. The
author's work was guided by Professor K. B. Irani.
REFERENCES
(1) Adams Associates, The Computer Display Review, Bedford,
Massachusetts, 1968.
(2) M. R. David and T. O. Ellis, "The RAND Tablet; A Man-Machine
Graphical Communication Device," Proc. FJCC, Washington D. C.,
Spartan, 1964, pp. 325-331.
(3) D. F. Dawson et. al., "Computer-Aided Design of Electronic
Circuits - A User's Viewpoint," Proc. IEEE, vol 55, pp. 1946-l954j
November, 1967. .
(4) M. L. Dertouzos, "An Introduction to On-Line Circuit Design,'
Proc. IEEE, vol. 55, pp. 1961-1971, November, 1967.
(5) J. D. Foley, "Evaluation of Small Computers and Display
Controls for Computer Graphics," IEEE Computer Group News,
January, 1970.
(6) J. D. Foley, Optimum Design of com~uter Driven Display Syster
Systems Engineering Laboratory Report 3 , The University of
Michigan, Ann Arbor, 1968.
(7) T. S. Hagan et. al., "The Adage Graphics Terminal,"
Proc. FJCC, Washington D. C., Thompson, 1968, pp. 747-755.
(8) J. S. Koford et. al., "Using a Graphic Data-Processing Syster
to Design Artwork for Manufacturing Hybrid Integrated Circuits,"
Proc. FJCC, Washington D. C., Spartan Books, 1966, pp. 229-246.
(9) K. H. Konkle, "An Analog Comparator as a Pseudo Light Pen fOl
Computer Displays," IEEE Trans. on Elec. Comp., vol. 17, pp.54-55
January, 1968.
(10) H. C. Laver, "Bulk Core in a 360/67 Time-Sharing System,"
Proc. FJCC, Washington D. C., Thompson Books, 1967, pp. 601-609.
(11) M. H. Lewin, "An Introduction to Computer Graphfc Terminals,
Proc. IEEE, vol. 55, pp. 1544-1552, September, 1967.
(12) N. R. Nielsen, "The Simulation of Time Sharing Systems,"
Comm. ACM, vol. 10, pp. 397-412, July, 1967.
(13) D. f1. Prince, "Man-Computer Graphics for Computer-Aided
DeSign," Proc. IEEE, vol. 54, pp. 1698-1708, December, 1966.
1033
(14) H. C. So. "OCLA: An On-Line Circuit Analysis System,"
Proc. IEEE, vol. 55. pp. 1954-1961. November. 1967.
(15) A. Spita1ny and M. J. Goldberg. "On-Line Graphics Applied t
Layout Design of Integrated Circuits," Proc. IEEE, vol. 55,
pp. 1982-1988, November, 1967. ,
(16) R. F. Sproull and I. E. Sutherland, "A Clipping Divider,"
Proc. FJCC, Washington D. C., Thompson, 1968, pp. 765-775.
(17) R. Stotz, "Man Machine Console Facilities for Computer-AidE
Design," Proc. SJCC, Washington D. C., Spartan, 1963,
pp. 323-328.
(18) G. C. Ternes and D. A. Calahan, "Computer-Aided Network
Optimization - The State-of-the-Art," Proc. IEEE. vol. 55,
pp. 1832-1863.
(19) University of Michigan Computing Center, Michi~an
Terminal System, (2nd Ed.), Ann Arbor, Michigan, 19 7.
(20) V. L. Wallace and R. S. Rosenberg, RQA-1, The Recursive
Queue Analyzer. Systems Engineering Laboratory Report 2, The
University of Michigan. Ann Arbor. 1966.
(21) T. G. Williams, "Time Sharing System Organization for
Computer Graphics," Proc. Second Hawaii International Conferenci
on System Sciences, Western Periodicals Company, 1969.
1034
TOO
AN INTERACTIVE THREE DIMENSIONAL
DRAWING PROGRAM FOR GRAPHICAL
DISPLAY AND LIGHTPEN
R. J. Hubbold
Department of Engineering, University ofLeicester,
Leicester, England.
INTRODUCTION
Various data structures are being tried, which express the topological
nature of the associations between data. The design of the data structure
is discussed and a list of the programs which comprise the system is
included in an Appendix.
1035
flow of information in the reverse direction by attempting to provide a
natural means for constructing three dimensional pictures.
Using a tracking cross and lightpen, only two degrees of freedom can
be controlled independently at anyone time, corresponding to the X and
Y coordinates of the cross. Effectively, in drawing in three dimensions,
three coordinate values must be controlled and if this is to be achieved
with the tracking cross, one of the coordinates must be related in some
way to the other two, or held constant. The choice of how to relate these
coordinates plays a significant part in determining how it will be
possible to arrange the operation of the program.
1036
the last defined point in space, parallel to the XY, YZ or ZX plane.
This plane is termed the ACTIVE PLANE.
If the active plane had been YZ the options would have been Y, Z or N.
and similarly Z, X or N for the ZX plane.
1037
1 (0) 1 (b)
1 (c) 1(d)
1 (c) 1(1)
(3) The facility for moving items around on the screen and joining
them to other objects (and linking their data structures)
enabling larger aRd'mere complex· objects to be constructed
from a series of simpler units for building bricks.
(4.) The possibility of rotating objects to view them from another
point and also as a check on their three-dimensionality.
(5) The ability to cause the pseudo tracking cross to latch on to
any previously defined point when it is within a certain
distance of it. The test for proximity ean be made in both
a two and three dimensional mode.
(6) The whole picture may be scaled, or individual objects may be
scaled aepa?ately.
1039
TDD DATA STRUCTURE
1040
OBJ
~ NEXT f-+ Pointer to next ~ead on object ring
XORIG X
YORIG Y global coordinates of origin of local axes
ZORIG Z
ALPHA
BETA orientations of local axes w.r.t. global axes
GAMMA
SCALE Local scale for this object
NVERTS Number of vertices
NEDGES Number of edges
FVERT ~ Pointer to ring of vertices
LVERT ~ Pointer to last vertex bead on ring
FEDGE f- Pointer tOi ring of edges
LEDGE ~ Pointer to last edge bead on ring
VERT
---iI NEXT 1-+ Pointer to next bead on vertex ring
OBJ f-p Pointer to object bead
LAST ~ Pointer to preceding bead on ring
X
Y Local coordinates of vertex
Z
GX
GY Global coordinates of vertex
GZ
DX
Display coordinates of vertex
DY
Number of objects
Pointer to ring of objects
Pointer to last object bead on ring
1041
becomes difficult with these tree structures, although they may be
suitable for batch programs if dynamic modification is not needed.
Modification of the structure requires the use of a free storage package
for the dynamic allocation of workspace and data areas (beads), otherwise
"garbage collection" becomes an overWhelming problem.
several
VERTEX BEADS containing data about vertices (for example their
coordinates in space)
several
EDGE BEADS containing information about the edges of the object
(e.g. length, orientation)
Figure 3 shows the contents of the data beads and figure 4 illustrates
the relationships between them. In order to make some of the algorithms
more efficient several additional pointers have been included. These are:
(1) A pointer from each EDGE bead to the bead for the OBJECT
containing the edge.
(2) A similar pointer from each VERTEX bead to the OBJECT bead.
(3) A pointer from the object to the last VERTEX and another to the
last edge on the vertex and edge rings respectively.
Both forward and backward pointers are used for beads on a rlng.
When the command "DRAW A NEW OBJECT" is executed a new object bead is
allocated and added to the ring of objects. A set of local axes appears
at the position of the tracking cross on the screen. The values of the
global coordinates of the origin of the local axes are stored in the
object bead along with the orientations of the axes.
1042
j -
---., l ---.,
('I)
!;
('I)
~~ ___ J
If)
~ ~i. _ _ .J I
..,
~ii ..,
~
_lttt
LLI
,> w
Nr
~I __ ---II
0 1
" ,( .., (
- -
~
8
t-
~
-
LLI
-
- ~
r
a ~
Ij
-
~
~
1
'"'"z
As vertices and edges are defined, new beads are added to the vertex
and edge rings for the object concerned. This involves some updating of
pointers and several checks. In creating an edge, for example, it becomes
necessary to ascertain whether a new vertex is being created or whether
the ends of the edge correspond to some previously defined vertices. When
an edge is deleted it is necessary to perform a check on the vertices at
its ends. If these vertices do not form the end of some other edge they
too must be deleted and the appropriate edge and vertex beads returned
to free storage. Removing beads necessitates further updating of pointers.
CONCLUSIONS
One problem which has been experienced has been the time to process
the whole scene to produce rotations for purposes of viewing the objects
in three dimensions. This is because of the time taken to search round
a ring updating the global coordinates. As a result of this a suggested
modification of the data structure is to remove the global coordinates
from the vertex beads and to place all of them together in one bead.
In their place in the vertex bead a pointer is inserted which indicates
their position in the global coordinates bead. For complete picture
transformations only the global coordinates bead needs to be processed
and search times are much reduced.
1044
Finally, some comment is called for to justify the use of the feedback
loop mentioned earlier, because this does lead to greater use of central
processor time. At present, emphasis is beginning to shift towards the
use of small satellite machines for interactive graphics work. As a
consequence of this the user has at his disposal a dedicated computer,
and extra use of C.P.U. time does not incur extra cost. Depending on
the amount of local (satellite) computing power available it is necessary
to arrange the programs accordingly, to use as little of the main computer
C.P.U. time as possible.
REFERENCES
ACKNOWLEDGEMENTS
1045
encouragement, and in particular to Dr. G.A. Butlin for many useful
discussions.
APPENDIX Li st of programs
KOPY
enable an object and its data and data structure to be copied
COPYOB
(122, 453)
BUILD
enable objects to be moved or to be joined together and their
JNOBJ data structures linked (180, 772, 354)
TRLATE
AXISLB
dynamic lightbutton routines (265, 48)
RIDLIB
DISPIK main display routine to extract data from data structure and
display pictures (161)
DSPRNT for printing the data structure and data on a line printer
(344)
1046
SCENE
NEWOBJ
NEWEDG programs for building and manipulating the data structure
NEWVRT (56, 280, 200, 264, 321, 144)
RIDEDG
RIDVRT
All programs, with the exception of two or three small ones, and the
display routines, are written in FORTRAN IV.
1047
LANGUAGES FOR GRAPHIC
ATTENTI ON-HAN 0 LI N G
I. w. Cotton
INTRODUCTION
1049
of different subroutines, while the second case requires that the satel-
lite be programmed to analyze the actions of the console operator, define
new structures, alter existing structures, and perhaps notify the central
computer of such additions and deletions. However, most remote systems
are limited in their flexibility since it is difficult, if not impossible,
for the ordinary user to specify the program in the satellite processor.
Adequate language facilities for multiple processor systems have been slow
to develop.
Computer response begins with operator input. Graphic attention
handling refers to the processes and techniques whereby human inputs to a
computer graphic system are serviced. An attention event, or simply
"attention", is a stimulus to the graphic system, such as that resulting
from a keystroke or light pen usage, which presents information to the
system. Servicing includes accepting or detecting the hardware input,
processing it to determine its intended meaning, and either passing this
information to a user routine or taking some immediate action related to
the display and/or its underlying data structure, or both. The emphasis
is on "immediate". Attention-handling is not intended to include any
detailed, application-oriented processing which the attention information
may indicate is to be performed. Thus, attention handling may be consid-
ered separately from any particular application.
This paper will examine the various levels of software support which
have been provided for programming the attention-handling task. Since
most of the graphic systems constructed in the past were single processor
systems, most of the discussion will not be complicated by multiple
processor considerations. The last systems to be discussed, however, will
be systems designed expressly for such a central site - satellite config-
uration. Languages will be described whereby each user can specify the
processing required in the satellite for his particular application.
HARDWARE CONSIDERATIONS
1050
TABLE I USEFUL HARDWARE FEATURES FOR ATTENTION-HANDLING
There are two basic ways in which input devices may enter attentions
into a }raceMo!': setting internal "flags" or via interrupts. The setting
of an internal flag is the more basic and simple-minded approach, but is
less efficient in terms of the programming required. Under this sort of
scheme, whenever the status of the input device changes (as, for example,
a key is depressed), an internal "flag" or indicator is set ("posted")
which may be tested and cleared under programmed control. This testing
may be performed in a "wait loop" waiting for a flag to be raised, or.by
periodically "polling" the device to see if the flag has been raised.
For example, the following block of code is used in the PDP-8 [4J to read
a character into the accumulator from the teletype:
1051
A similar sequence is used to test if a light pen detect has occurred.
•
INTRPT ri .SUBROUTINE ENTRANCE
S ACCUM • SAVE ACCUMULATOR
SCA .RETRIEVE INTERRUPT DATA & ACKNOWLEDGE
1052
S KEYBUF • STORE IN BUFFER
L ACCUM .RESTORE ACCUMULATOR
SET 1,0 • ENABLES INTERRUPTS
J IN'l'hPT .S~BROUTINE EXIT
The advantage of this scheme is that the processor and the attention
sources may function completely asynchronously. Interrupts may occur at
any time, be rapidly processed, and the normal control flow resumed (or
altered, as a result of information form the interrupt, by changing the
return address). Many different interrupt entrances may be provided for
the different classes of interrupts which may occur.
In fairness, it has been pointed out* that while the interrupt method
is intuitively preferred, it does not always gain as much as expected,
since the processing of attention information still may have to wait for
an idle point in the monitor loop. Consequently the interrupt processing
routine now sets flags rather than the hardware.
1053
consequent discussion) on the various language forms for the specification
of attention routines.
2. Language Extensions
1054
1. Subroutine or Macro Libraries
The first actual level of support to be considered consists of librar-
ies of routines for the various attention-handling tasks. This level may
be provided as macros for assembly language usage, or as subroutines
(which, of course, use the attention-handling macros), for compiler-
language usage. Compiler language usage is somewhat easier (though likely
to be less flexible) since data areas and assorted control blocks needn't
be explicitly coded. However, considering the level of support in terms
of services provided and functional capability, there is no justification
for splitting the assembly language and compiler language implementations
into separate levels.
There is justification, though, for splitting the consideration of
such library support into low-level and high-level classes on the basis of
functional capability.
a. Low Level Libraries
The routines provided at this level of support have the purpose
of routing attention information to user routines. Polling is
generally required, either explicitly by the user or implicitly
within the software, so we may refer to this level as s,rnchronous
attention handling. Furthermore, attention information is not gener-
ally queued at this level, so that if an attention is not serviced
before a second attention occurs, information about one of the
attentions will he lost. (Note, however, that these restrictions
make no assertions concerning the level of complexity of the graphic
hardware.) There is no correlation of the attention information with
any of the user's data structures or picture elements. The infor-
mation provided by the attention is simply routed to a user-defined
routine for processing.
An example of a macro library at this level is provided by IBM's
"express" attention handling [9J. The macros provide linkages to a
graphic attention analysis routine which tests for attentions and
routes attention information to user routines according to attention
type, and to a graphic attention service routine which resets the
system to accept further attentions. Polling must be provided either
by a program loop (very inefficient in a multi-programming environment)
or use of the system interval timer to provide periodic linkages to
the graphic attention analysis routine.
1055
within GPAK. For light pen detects and function key depressions, the
GPAK attention routines examine two secondary tables which also have
enable codes associated with individual keys or graphic elements.
The routines to process these types of attentions are entered through
the secondary tables.
1056
(1) Assign his own processing routines for specific groups of
attention sources'
The macros provided for "basic" attention handling for the IBM
2250 are listed in Table II. The user can designate one attention-
handling routine to service all attention sources, or he can provide
separate routines for individual graphic devices, attention types,
or both. Whatever his decision, he must define his attention handling
capability to the system using the SAEC, SPAR and DAR macro-instruc-
tions. The ATTNINQ macro-instruction is also provided to facilitate
establishing and maintaining a communication sequence between the
display operator and an attention-handling routine.
1057
TABLE II. IBM BASIC ATTENTION HANDLING MACRO-INSTRUCTIONS FOR S/360-2250
1058
no further test is made on it and the next routine is
e:xamined.
1059
(2) The address of a Qata Qontrol ~lock (DCB) associated with
the device to be serviced.
1060
Following is a brief outline of functions that might be performed
by a housekeeping/background routine and by an attention handling
routine (most typical of case 2):
Attention Routine
1061
interrupted (housekeeping/background) routine when completion is
posted (hybrid, cases 1 and 2) continues as long as the attention
routine is available and as long as attentions occur. A sample pro-
gram may be found in reference [9J.
The compiler language counterpart of basic attention handling, as
implemented in the Graphic Subroutine Package for FORTRAN IV, COBOL,
and PL/I [11, 23J is somewhat easier to use, though functionally no
more powerful. The queuing of processing of attentions is permitted
for sources which are explicitly enabled by the programmer. GSP
permits several enabled attention sources to be grouped into sets,
according to how and when they are used in the program. These sets
are called "attention levels". Only one level, called the "active
attention level" is able to accept attention information at any given
time. All other levels are called inactive attention levels. When
an attention occurs for an enabled source, attention information is
placed in the queue for the active attention level and processed as
directed by the programmer. The queued attention information contains
the identification of the source which caused the attention, and
other data as appropriate for the attention source. Once the atten-
tion information is queued, control is immediately returned to the
user's program at the point where the program was interrupted. The
program is not notified that an attention has occurred until atten-
tion information is requested by a call to a subroutine for this
purpose. When the use of an attention level is terminated, all
attention information in the queue for that level is deleted.
2. Language Extensions
1062
In GRAF, the DETECT function returns information about the occurrence
attentions. Its form is:
J DETECT (array)
The value of the function (J) indicates the type of attention, and
additional information appropriate to the particular type is returned
in the parameter array. DETECT may return with J - 0 if no attention
has occurred. A second function, DETAIN, has the same parameters and
sense as DETECT, except that it waits for an attention to occur before
returning.
DIMENSION INQ(5)
DISPLAY s, T, U(5,4), W(7,3,5)
IB = PLOT (S, T, U, W)
J = DETAIN (INQ)
Thus, in general, the value is II if the detect occurred on the nth display
variable in the calling sequence.
The use of this function relieves the programmer of the task of keep-
ing track of all his display variables. In general, all the elements
which must be plotted, erased, or identified with the light pen as distinct
entities will be defined using distinct display variables or distinct
elements of an array of display variables.
1063
and PL/I "ON" statement. The ON statement specifies the action to be
taken for a particular as,Ynchronous interrupt or condition. For example,
the following type of statement is presently permitted:
ON OVERFLOW GO TO ERROR;
It is an obvious extension to add statements of the form
ON KEYSTROKE GO TO KEYSUB;
or
ON LIGHTPEN BEGIN;
statement 1
statement n
END;
1064
language will suffice.
a. Graphical Approaches
Some of the work on attention handling languages has focused on
languages which were themselves interactive or graphical, or both.
Flowcharts have been a popular area of investigation, with a number
of researchers desiring to specify programs by drawing their flow-
charts interactively [16, 21J. Most such systems are designed to
create programs for batch submission later. We should not consider
any of these systems as attention handling schema unless it is
possible to specify the interactive program itself graphically. One
system which is not truly an attention handling scheme will be briefly
discussed, because it is typical, has been widely referenced, and has
served as a basis for systems more within the scope of our discussion.
b It
Figure 1
1065
written languages. Connections between terminals with incompatible
data types are disallowed (see below). The data type restrictions
and a restriction that connection lines be directed from output to
input terminals provide a rudimentary syntax for the pictorial pro-
gramming language.
1
CONNECTION IS ILLEGAL
(BOOLEAN- NUMERICALl Figure 2
1066
MOVE PEN
RESPONSE:
STORE Figure 3
STARTING POINT
END
1067
The language has been designed to avoid explicit references to
peripherals. As a result, the state-diagrams are largely device-
independent and compile into similarly device-independent programs.
The Network Definition Language does not even contain facilities of
its own for coding the procedures named in the state-diagrams. Rather,
it is intended to be used in conjunction with some procedure-oriented
language more suited to the required tasks. The result is an inter-
active program consisting of three separate components: the control
component, procedure component, and supervisor.
1068
user actions. They have also developed a control meta-language
for describing such state-charts, and a translator which can process
such a description to produce a corresponding version of an inter-
active system which responds to user actions exactly as described.
The system appears to have been restricted to text and file manip-
ulation applications thus far.
As was mentioned previously, Sutherland's system is not a ff,Ystem
for attention-handling in the strict sense such systems had been
considered up to then. This is because the attentions mu£t actually
be analyzed at a lower level in the supervisor in order to implement
his scheme. This is not true in Newman's system, since the language
statements directly interrogate the attention sources at a logical
level, and the processing is directly driven by them. Thus, we may
freely consider this as a full-fledged, general purpose method
of attention handling. As such, however, it has its shortcomings,
though perhaps it was not ever intended as a comprehensive attention-
handling system.
The crux of Newman's system is the scheme for defining and proces-
sing state graphs, both defined interactively and through the Network
Definition Language. The system is most powerful when used to indi-
cate control flow, with the actual routines executed at each stage
almost an afterthought. (Indeed~Newman's claim is that need to
separate the control and the procedures). In particular, no attention
is paid to data structures or picture processing, and the scope of the
currently available procedures does not seem overly rich. On another
level of criticism, state-diagrams are not a method of representation
familiar to most programmers, although they are not difficult to
learn. It is not desired, however, to cast aside the state-graph too
lightly, for once understood, it does seem well adapted to specifying
the type of control flow desired for attention-handling processors.
1069
specified language. The system can be applied to the graphics L14J
since it permits the intermingling of graphical elements (e.g.,u,~ of
particular keys or the lightpen) with verbal elements (e.g., +, -, for)
in the syntax of a single language. The AED system is not in wide-
spread use at the present time (perhaps due to its obstruse documen-
tation), so no more can be reported on this approach.
-b. Command Languages
The two systems to be described next satisfy both objections to
Newman's system: they are richer in the procedures and types of
processing which may be specified, and they are coded in a form more
familiar to most programmers. Both systems arose from a common
ancestor -- a graphic software study contract let by the Univac
Division of Sperry Rand Corporation to Adams Associates. The basic
requirement was to support a satellite graphics controller and termin-
al connected over a voice-grade telephone line to a large central
data processing system. The system was to have the twin goals of
providing an immediate and meaningful response to console operator
actions, while minimizing the load on the central computer. This is
an interesting and increasingly popular software problem -- to provide
sophisticated control procedures in a small computer of distinctly
limited capability, connected to a large central time-shared
computer.
The Adams Associates' report [lJ (an internal document not gener-
ally available) recommended a scheme whereby a basic monitor program
would be loaded in the graphics controller, along with an interpreter
for an attention-driven, graphically-oriented language. Programs
written in the language would be converted to a byte string in the
central computer (similar to a compilation process) and then trans-
ferred to the controller for interpretive execution as required. A
syntax and semantics for such a language was proposed.
From this base, two separate efforts emerged, both, incidentally
for the same customer: NASA's Marshall Space Flight Center. Computer
Sciences Corporation undertook to develop a system for the PDP-9/339
display system, and Univac, in a joint effort with Adams Associates
continued development of the system for the 1557/1558 Advanced Graphic
Display System. Both systems were intended to remotely access a
UNIVAC 1108 multi-processor at Marshall. The resultant systems are
functionally very similar, as is not surprising, but differ in many
details of implementation, as is also not surprising. What is some-
what surprising is the fact that the CSC system more closely resembles
the original Adams Associates system than does the final Univac-Adams
Associates system.
CSC System
The CSC system has been described in published literature [2J and
in internal programmer's reference material. An interactive Erogram-
1070
ming language, IPL, is provided, with a simple, event-oriented grammar,
consisting of structuring rules, instruction codes, and the logical
operators AND, OR, and NOT. Instructions are of two types: condi-
tional, used in forming BOOLEAN strings; and action, used in perfo~
ing tasks. The general format of statements in the language is
1071
8. Response buffer - permits programmed into a buffer and trans-
mission to central site computer.
1072
functions to be performed by the system at any given time. Other
mask functions al~ow recording of item identification in the response
buffer, designation of an item as a light button, and binary control
of item light-pen sensitivity.
Use of the above features together with the IPL instructions which
control them provides the programmer with a high degree of interaction
and program flexibility in design of a graphics application.
Jtather than describe all the IPL commands in detail, a sample
program will be offered to give a feel for the flavor of the language:
Example of Tracking Cross Usage
= GOT 2.
END
1073
if Point Count is 40 then Clear Response Buffer, Reset
Program Logic.
END OF PROGRAM.
1074
graphics [7J. The justification for graphic data structures may be
very simply stated: data structures give meaning to points and lines.
As a very simple example of this, consider Figure 4. Figure 4a
indicates the end coordinates of a set of vector defining some graphic
image. Looking at the set of coordinates gives no insight into the
organization of the image. Figure 4b shows that same basic data
organized into a very simple data structure. Figure 4c shows the
graphic image represented in both cases. Certainly the organization
in Figure 4b is more perspicuous.
SQUARE
10,10
10,10 10,20
10,20 20,20
rn
20,20 20,10 (20,20)
20,10 TRIANG
15,10 15,10
15,20 15,20
1075
-l
I
APPLICATION
I
I PROGRAM
I
I
I
I COMMUN-
...._ - I - J ICATIONS
ENTITY
TABLE
EXECUTIVE ... .,.. -------+-+~
"'--+-r- - ---, I
I
HANDLER
I ~__~__~~~
I
I
I
I
I GRAPHIC
I
PROGRAMMING
( paging) I
LIBRARY
I
I
....I--+_J CENTRAL COMPUTER
a. Central-Site Organization
INTERACTION ( Interrupts)
CONTROL TABLE
INTER- INTERPRETER
ACTION
CONTROL
TABLES
COMMUN-
ICATIONS II I L. ________ _
HANDLER
- l.--t-- -::~~~~O~_-:
i
DISPLAY FILE
CONTROLLER
DISPLAY CONSOLE
SATELLITE PROCESSOR
b. Satellite Organization
1076
explanation of the graphic data structures on which the system oper-
ates. Such explanations may best be gleaned from a previously
published description [3J, of which a brief summary will be presented
here.
The data structure with which the system works, both in the central
site and at the satellite, is a hierarchically organized system of
groups (masters) and uses of groups (instances). The groups and uses
constitute an organizational structure only, with the displayable data
being contained in structures called items which, along with uses of
other groups, constitute the data within a group. Conceptually, we
have a directed graph structure whose heads are the groups, whose nodes
are positioned uses of other groups, and whose terminals must be items
in order to contain any actual graphical data. Figure 6 illustrates
this concept (For a more complete discussion see references [12, 13J).
1077
Interaction Control Table syntax is somewhat more powerful than
that for the IPL system. Commands are of two types, interrogatory
commands which determine the truth value of a statement or phrase,
b. Picture Elements
--1r---
a. Meta-Linguistic Symbols
C> o
---'\IVY-
RESISTOR CAPACITOR
FILTER
SUPER FILTER
c. Directed Graph Representation
and action commands, which are performed so long as the truth value
is true. Statements are preceded with a period (.) which initializes
the truth value to TRUE. The "not" operator ('-.) may be used to
change the sense of an interrogatory command. There are two types of
statements: basic statements which do not contain alternative clause~
~nd complex statements which do. Basic statements are simply strings
of action and interrogatory commands. The commands are performed so
long as the truth value of the statement is TRUE. Whenever an inter-
rogatory command causes the truth value to become FALSE, all subse-
quent commands, including interrogatory commands, are ignored until
the next start of statement (period). The truth value cannot be
chwged back from FALSE to TRUE in a basic statement. Some examples
of the form of basic statements follow, where "A" represents any
action command, and "Q" any interrogatory command:
• A (A performed l'Dconditionally)
• QA (A performed iff Q is TRUE)
· Al Q A2 (AI performed unconditionally)
(A2 performed iff Q is TRUE)
1078
• Ao QI Al Q2 A2 (Ao performed unconditionally)
(AI performed iff QI is TRUE)
(A2 performed iff QI and Q2 are both TRUE)
1079
. NODE,5 A1 Q1 A4/ A2 Q2 A5 /A3 GO,10 = At) Q3 A1
. NODE,6' ..
A1
YES
A4
A2
YES
A5
A6
A3
GO,10
YES
A1
1080
• Facilities for obtaining the complete genealogy (hierarchical
identification) of an entity in the data structure, as well as
the identification of its type
Interrogatory Commands
For example, the following command will test whether the leT
interpreter was invoked as a result of the key labeled "A" having
been struck:
KEY, 'A'
Likewise, the following command yields TRUE if software registers
10 and 11 are equal:
REQ,lO,ll
Control Commands
1081
"." start-of-statement) establishes a logical address to which GO
commands may refer. In the following ICT fragment, control passes
to node 4 if the key "A" is struck, otherwise it continues with
node J:
1082
is moved beyond this range is an attention generated.
Light pen picking and tracking are important and complex oper-
ations, and are discussed in greater detail following this summary
section.
Arithmetic Commands
SUB,10,11,12
STR,12,lJ
Note that it is the structure file, not the display file, which
is searched by the ICT commands. The organization of the structure
file parallels the data structure at the oemtral site.
1083
items which comprise a single group) may be accessed by the RING
command.
Figure 8
1084
Display Aid Commands
For example, if the light pen is used to pick one of the resist-
ors in Figure 6, it may be fed back by blinking by the following code:
1085
register contents, pushdown list contents (genealogy of an entity),
coordinates of a particular point, text, and new use and item entries.
This information becomes available to the graphic application program
in a general parametized form which the application program can employ
to reconstruct the actions of the display console operator which the
Interaction Control Tables were programmed to record. Based on this
information, the application program may alter the data structure in
the central computer to reflect the current status of the image on
the tube face. Thus, the report block facility provides a path for
the console operator to express his wishes to the graphic application
program.
1086
With the PDL thus defined, the ¢NE and FLASH commands may be
used to provide feedback in the form of blinking of the item instance
picked. Interaction Control Table response is sufficiently rapid so
that if this is one of the first commands executed, the feedback will
appear to be instantaneous.
1087
Figure 9
A range of approximately til is established by loading the constant
25 (raster Units) into a defined console register (#23). The tracking
cross is displayed at a screen position defined by the contents of
console registers 8 and 9 for X and Y respectively. These console
registers are continuously updated to reflect the current position of
the pen. Construction points are always drawn at an X, Y position
defined by console registers 10 and 11. The clear command erases con-
struction points. The ORGXY command obtains the origin coordinates
for the structure at the top of the PDL and stores them into selected
console registers. The REPLAC command causes the following LINE
structure definition command to replace the last line, rather than
add a new line.
The ICT advantages of providing a data structure as well as
satellite - central site communications have already been mentioned.
By way of comparison with the IPL system, the ICT syntax is more
powerful and the mnemonics somewhat more perspicuous" since they are not
limited to three characters in length. There are less commands in the
ICT system, but these are each generally more powerful than the IPL
commands. This would seem to make for easier programming. The system
is operational and has proven to be a viable system for attention
handling. Its most serious shortcoming is the lack of usable debug-
ging aids.
CONCLUSIONS
Now that the survey of existing attention-handling systems is completed,
it would perhaps be appropriate to try to draw some conclusions. The first
of these is that the lack of really workable, easy to use, powerful and
general facilities has certainly been a major factor in delaying the boom
in computer" graphics which was predicted some years ago. A second con-
clusion is that ~ of the methods surveyed provides the final solution.
~~cro and subroutine liberties are the most commonly available support, and
simply are not adequate. The special languages just described are experi-
mental only, and not too widely used. The attempts at integration into
existing languages appear to have been interesting projects which were
attempted, results published, and then abandoned. No attempts at standard-
ization appear to be in the works.
1088
solution lies in the integration of attention-handling facilities into the
syntax of existing, standardized programming languages. It is this author's
further opinion that languages with a block structure are the best can~
dates for this integration. Facilities already exist in some of these
languages for specifying asynchronous processing.
Additional work appears required in the area of satellite processor
systems, to provide some convenient means of specifying the processing to
be performed in each machine. The main objection to the special purpose
languages is that they require a bi-linguality in programming which ought
not to be required. An advantage of a uni-lingual system would be that
programs could be run on either main-frame driven or satellite display
systems without modifieations.
But until such time as more flexible software facilities become
available, the special-purpose languages, and especially the ICT system,
offer the most complete and general support for programming the attentio~
handling process.
BIBLIOGRAPHY
1089
10. IBM Corporation. GPAK - An on-line Systeml360 graphic data processing
subroutine package with realtime 2250 input and display. Version II.
International Business Machines Corp.,~ite Plains, N.Y.
11. Subroutine
Inter-
1090
24. Sammet, J. E. Programming Languages: History and Fundamentals.
Prentiss-Hall, Englewood Cliffs, N. J., 1969.
29. van Dam, A. and D. Evans. "A compact data structure for storing,
retrieving and manipulating line drawings." Proc. FJCC, 1967,
pp. 601-610.
30. van Dam, A. and J. W. Brackett. Lecture Notes: Interactive Computer
Graphics. Cybex Associates, Inc., Great Neck, N. Y.
1091
PART 12
Computer Generated
Geometric Shapes
INTERROGATION TECHNIQUES FOR
PARAMETRIC SURFACES
M. A. Sabin
B. A. C. Weybridge
EXAMPLES
The 'aircraft' shown in Fig. 1 took about 1~ to 2 hours to design,
using paper and pencil.
Also visible are the canted frames at the back of the fuselage, seen
in side view in Fig. 4.
1095
<C
t
1096 ~
o
-
>-
...
W
1--1
>
o
z
w
w
(f)
0
Z
LL
0
~
W
1--1
>
0
Z
W
1097
INTERIOR VIEW OF FUSELAGE
SHOWING:-FRAMES
CANTED FRAMES
AND WING INTERSECTION
3
1098
These frames couple the fin loads into the structure and typiCally
have cutouts where the stringers (the fore and aft lines) pass through.
For the detailed design of the frame to proceed, information is required
about the shape of the outside profile and of the cutouts as drawn in
Fig. 5. The skin thickness and stringer dimensions have here been
exaggerated by a factor of about 20 to make them visible.
Wings are usually designed in terms of fore and eft sections,
because, to a first approximation, that is the way the air flows.
Fig. 6 shows these sections; the change in shape from root to tip is
fairly evident.
To make this wing, though, needs the shapes of its spars and ribs.
Figs. 7 and 8 show the structure in plan and perspective views. Two
spars run outboard along lines which cannot be made isoparametric
because they are chosen quite a while after the surface is 'frozen'.
Main ribs run more or less perpendicular to the rear spar and leading
edge ribs perpendicular to the forward spar. This structure is
considerably simpler in detail than actual wing structures, but
demonstrates the kind of capability needed to produce the actual shapes
of the ribs (Figs. 9 and 10).
1099
(f)
a::
w
~o
WZ
r-~ 1--1
>0:::
~
W (J)
o
1--10
(f)Z
<C
(J)
l.iJ
w~
0<C
<C 0:::
---1 LL
W
(j) 0
:J Lu
LL t-
Z
LL<C
OU
1100
!he si!houette proces8, which was intended to have supplied a line
aloDg the leading edge of the wing also failed (in the region wi. th high
rate of change of ourvature near the tip) for the same reason.
!be author implemented these faoilities as a ohallenge rather than
because of their usefulness, (although there was a suggestion that
aiihouettes and reflections woUld be a powerful test of fairness) but they
do illustrate the power of the parametric surface S,Ystem. The equations
tor the reflection, which wou~d be extremely cumbersome in tradi tl.onaJ.
ooordinate geometr,y becrmes ver" terse and elegant in vector form
d( 11(14,") - ~ + j1>(IA,v} - £ J)/dL4.,V : 0
1101
CANTED FRAME - TRUE VIEW
WITH STRINGERS
(J)
Z
o
I--i
I-
U
W
(J)
w
(J)
I--i
~
2
<C
w
cr:
5 I-
(J)
1102
METHOD
f, - fo
will lie between the two and will be a good approximation to the required
start point. flo is then calculated and tested. If it is within the
necessary tolerance of zero (f is in fact the distance of the point from
the plane), then the required start point has been found. If not, then
depending on the sign of f). either (u o Vc fc) or (u l VI f.) is replaced
by (u~ v~ f~) and the process repeated. This process is the classio
divided difference technique.
Once the starting point has been found the stepping commences. Let
the initial point be Po. Then(P~ x p v ) at Po gives No, the surface
normal, and (No x N) gives To, the tangent to the intersection.
1103
W
0::::
LL:::::)
0"-
U
3::::::)
wO::::
I-i ..-
>(f)
zO
<cZ
-1 I-i
0..:3:
1104
The increments in u and T to give a step of length e along To may
be calculated as follOWS
<: To '> e ~
f~ ~ ~ ~ f~ ~v
[< To ') )(
f"1t = ['P~ x1\] ~"'- ;;.
No ~'"
8To) )t fv J. No t .: tv I) • No b"
S~ ~
[<10> , 1" , Nol /( tva . Nt)
and similarly ~v -- [ 1'" )
t. 10 ")
)
No 1/ ( No. No)
The increments give a new position (u l VI)' which is the first
approximation to the required point.
Near P ~ -; Q, + e. . . ~ . . -+ e." ?, 1/
r
r :: +, -l- f~ b~ ~
t" ~ V
e. [~- ~,]
[::J r~'f ...
and therefore
I
-:::
C, - t,
to give u 1. v t' the second approximation to the required point.
1105
GENERALITY
It is a feature of the NMG system that the same plane seotion
algorithm is applicable to all situations. Most systems based on
curves in parallel plane sections would require three routines to ooyer
the four tasks:- spars, ribs, wing horizontal seotions and canted trame ••
The generality is deeper than this, though, because the marching
method described above does not use the surface equations. These appear
only inside the EVALUATION subroutine, whi9h calculates P, fir h ... and
~p /~IJ from u and v. By interposing the offsetting process the same
algorithm takes sections through an offset surface (demonstrated in lig. 5),
and by supplying a suitable evaluation routine rational biotibios, or any
other surface expressed in parametric form, can be sectioned.
REFERENCES
(1) Ferguson, J.C. MultivariabJ.e CUrYe Interpolation
The Boeing Comp~, Document D2-22501f.,
July J.963. Also J. JeM, Vol. 11 No.2,
ApriJ. J.964.
(2) Coons, S.A. Surfaces for Computer-Aided Design ot
Space Forms
M.I.T. Project MAC, MAC-TR~1, June 1967.
Pages 21, 59.
(3) Forrest, A.R. Curves and Surfaces for Computer Aided
Design
Cambridge Computer-Aided Design Group Thesis,
July 1968. pp 65, 71, 80 - 81.
(4) Payne, P.J. Contouring Program for Coons' Surface Patohes
Cambridge Computer-Aided Design Group
Document 16, November 1968.
(5) Armit, A.P. A Mllltipatch Design System for Coons'
Patches
lEE International Conference on Computer
Aided Design, Conf. Publ. 51, Southampton,
April 1969.
(6) Gel~ert, G.O. Geometric Computing - Electronio Geometry
for Semi-Automated Design
Machine Design, March J.965.
1106
(9) Hamilton, M.L An Approach to Computer Aided Preliminar,y
Weiss, A.D. Ship Design
January 1965.
ACKNOWLEDGEMENT
The author gratefUl~y acknowledges the help that he has received from
colleagues in the preparation of this paper. He would also like to thank
the management of the British Aircraft Corporation for permission to
present it.
Appendix Interrogation facilities in Numerical
Master Geometry system.
Plane sections
Intersections of two surfaces
Cylinder intersections
Silhouettes
Simple offsets
Non-isotropic offsets
Line intersects
Nearest points
Reflections
1107
<..')
Z
1--1
3: (f)
0 en LL
:c 1--1 0
(f) 0::::
3:
<..') w
<..') Z 1--1
Z 1--1 >
1--1 3:
3: w
z ::>
1--1 0::::
<t: f-
~
1108
L·EADING EDGE
RIBS
1109
I-
%
UJ
~
a..
0
..J til
UJ a:::
>
UJ
<C
0-
0 til
UJ z:
(.) w
<C w
u... ~
a:::: I-
:::J LLJ
til CO
(!) ....
-
z
):
ow
Z
4:
a..
~
w
C-
o...
::>
1110
w
() 2 I
N ::::> f-
--.J 0....
OOw
>f-O
,/
,/
,/
,/
,/
,/
,/
;'
;'
;'
;'
;'
;'
;'
;'
;'
;'
;'
;'
;'
;'
;'
;'
-'
;'
/
/
/
/
/
(
I
I
I f-
I
I
0....
~ w
\
\
o
\
\
,
""
""
" " '-
"-
"-
"-
"-
"-
"-
'- .... ....
.... ....
.... ....
.... ....
.... ....
'-
'-
....
.... ....
"-
,,
"-
"-
....0 "
N~ ___________________________________________________'_,~
w
U
<C
w LL <C
w cr:: w
cr:: ::::> cr::
LL (f) <C
1111
WING WATER LINES
1112
(f)
z
ot-"\
\-
t-"\
o
Z
o
<..)
1113
1114
1117
1118
ANALYSIS OF AN EFFICIENT
HOMOGENEOUS TENSOR REPRESENTATION
OF SURFACES FOR COMPUTER DISPLAY*
T. M. P. Lee**
SUMMARY
There has been growing interest in the interactive construction of free-
form surfaces using displays to view and control the design process. Appli-
cation of computer graphics in this area requires a wise decision as to the
class of surfaces to be considered and careful selection of an appropriate
mathematical representation for them. We present and analyze such a repre-
sentation, placing emphasis both on its mathematical properties and on the
implications for the associated computer algorithms. The primary goal of
this research was to enable the efficient and rapid presentation of true
perspective views of a moving object while permitting convenient means to
specify the desired surfaces. Within this context it is desirable that the
mathematical representation chosen be capable of handling as wide a variety
of surfaces as possible. In particular, the algorithms encompass as simple
cases such surfaces as cones, spheres, toroids, and saddle surfaces, with-
out recourse to lengthy trigonometric functions.
1119
one operation and introduces significantly useful extra degrees of freedom
into the representation.
1.0 GOALS
This paper presents some of the results of a research effort~]directed
towards the development of a computer-aided system for the design of free-
form surfaces. Since the previous publications of the work [1, 4]have been
primarily concerned with the theoretical mathematics of the surface dis-
play algorithms, I will be here coneerned with the not-so-obvious implica-
tions of the nature of the mathematics on the practical problems of inter-
facing the computer with the designer. In order to make this paper more-or-
less independent, I will briefly repeat some of the basic surface material
as well as develop the goals and motivating considerations behind the re-
search.
1120
As usual we make such a comparison based on ill-defined criteria of cost
and performance. Since such evaluations are difficult to perform at any
time, much more so during the research phase of a project, our goals have
had to be more ephemeral, based on a desire to apply the techniques of inter
active computer graphics to the designer's task, while maintaining the bene-
fits of precise mathematical formulations. Hopefull~ the favorable results
of previous such commitments imply eventual positive benefits from this
particular research.
We thus assume our goal as the following: to develop an interactive
system of computer hardware, software, and terminals replacing the conven-
tional modelling clay and sketch paper traditionally used by a surface
designer. As is usual in such a situation, this primary goal can be re-
phrased as a question of representation--how does one talk about surfaces
in a language suitable for both man and machine, where by the term language
we imply a complex set of pre-defined actions and reactions capable of re-
presenting and communicating information, either internally between compon-
ents of a system (including the designer) or externally with other individ-
uals or systems, such as a programmable machine tool. Implicit in this
phrasing of the problem is the assumption that computer processes are cap-
able of providing and manipulating the representation we are seeking; im-
plicit in the direction we have taken for the research is the assumption
that mathematical formulations will provide such a representation, even
though they may have to be translated into more human terms and actions.
1.2.2 Efficiency
Since the scarcest and most expensive resource on a computer display
system tends to be memory, we need a representation which makes efficient
use of that resource. More specifically it must be amenable to swapping
from lower-cost but slower backing stores as well as being inherently par-
simonious in its demands for memory.
1121
1.2.3 Simplicity
It has been widely observed that on the order of 40 bits is all that is
necessary to select any particular document from the entire U.S. Library of
Congress. This is an efficient representation, but not at all simple. We
require thus in addition to efficiency in a representation, simplicity both
in specifying the particular representation for the object desired and in
transforming between one internal representation and anot~er, such as be-
tween the mathematical formulation about to be discussed and the list of
commands necessary to create a picture on the display screen. Similarly,
even though a certain representation may have a degree of mathematical ele-
gance and simplicity, it should also be comprehensible in simple terms to
the primarily non-mathematical potential users of the surface design system.
1.2.4 Generality
Lastly, once all the above goals have been met we may find that the
chosen representation is suited only for the most elementary cases. Hence
we demand a certain level of generality in the representation in order that
we may talk about interesting and useful surfaces. Luckily the representa-
tion here discussed meets this goal very well, in that it can talk about
a wide variety of surfaces in a mathematically precise but efficient way--
the simplicity will have to be created by the interactive software mediat-
ing between the mathematics and the user.
1122
between three-dimensional object coordinates and the two-dimensional coor-
dinates of a flat display. Once it has been decided to use this division it
becomes convenient and desirable to represent the position of a point in
three-dimensions by four numbers, rather than three. Thus, a general point
[ x, y, z ] can be represented by any of a set of numbers [hx, hy, hz, hl
where h is an arbitrary scale factor. This is called a homogeneous coordinate
representation.
Such an apparent 33% increase in memory space for the representation of
a point leads eventually to three ameliorating circumstances, which when
taken together increase the effectiveness of a surface design system by de-
creasing program size, simplifying notation, and increasing the surface re-
presentation's capability:
1123
where S is a set of homogeneous coordinates for all the points on the sur-
.face and B is a 4 X 4 matrix each of whose 16 elements is a four-dimensional
vector; B has the properties of a tensor under appropriate interpretation
of the allowable transformations for points represented in homogeneous coor-
dinates. Or, more directly, if T is a matrix representing translations
along an axis, rotation, and perspective; and if B represents a surface in
a given orientation; then B X T represents the same surface after the trans-
lation, rotation, and perspective projection have been performed. (The
multiplication B X T here is to be interpreted to mean the application of
the transformation matrix T to each of the 16 vectors in B.)
The practical problems of using this representation will take the remain
der of the paper; at this point notice that we will eventually talk about
surfaces composed from several "'elementary" surface patches, each of which
is represented in this fashion by a different tensor. Our two primary pro-
blems will thus be on the one hand to find or compute the tensors necessary
to represent a particular object--often only vaguely defined as a designer's
mental conception--and on the other hand to produce a visual representation
of the object suitable for human observation, control, and understanding.
The display problem is more-or-less solved; the specification problem has
only the beginning, albeit a strong one, of solution.
1124
compute Cn through the difference equation C~~~ = C~J'k +KC~J'+lk where
o n n IJ
C" k = C" k and C' k = C' Ok C" k is a 4 X 4 X 4 tensor derived from the
IJ IJ 1 1; IJ
initial representation of the surface. The successive points on the curve
are computed via
1125
3. Conclusion: For the most severe pOlynomial the accumulated error
after drawing n points on m curves is on the order of 36 (n + m),
or, for 32 points and 32 curves, eleven bits. To leave a suitable
number of bits (say, seven) for display, this requires at least 18
bits in the calculations.
~ason: Fixed point arithmetic forces normalization of the largest
value in the computations to be one; in the worse case polynomial
u~ v3 this worse term is the third difference, which like the third
derivative is rather large compared to the polynomial itself.
4. Conclusion: Use of a proper unbiased rounding process rather than
mere truncation is important.
Reason: Truncation has a mean error on the order of one bit, which
grows linearly with the number of increments; rounding has a mean
error of zero, which does not propagate, and a standard deviation 0:
one bit, which only grows as the square root of the number of incre·
ments.
Notice that these conclusions are of general nature and do not take inti
account the possible magnifications of errors caused by the perspective
divide; t~ey are, however, experimentally quite valid when talking about
relatively smooth surfaces which just fill the display.
1126
-
P(u,v) -
- [FO(U)' Fl(u), GO(u), Gl(U)] x 00 01 00
v
01
v FO(V~l
10 11 10 11 FO(v)
v v X
00
u
01
u
01
uv
01
uv GO(V~
10 11 10 11 Gl (v)
u u u uv
- -
where the vectors in the tensor have the following meanings:
00 =
OP OP etc.
v Ov u=O' 01 v = Ov u=O'
v=O v=l
02p iJ2p
00 = 01 = etc.
uv OuOv u=O uv OuOv v=O
v=O v=l
Notice that once the four boundary curves have been specified there are
1127
, A AUI
UO
'"
h;J
#fa ) I '\
AOV
h~
h'lf
h;f AIV
•pOO ..
pal •pOO
v
..
pal
v
"II
P
.
pia
v
...
pOO
U
.pal
u ?• ?•
..
pia
U
..
pll
U
?• ?•
1128
still sixteen elements undetermined in the surface tensor. Any of several
alternative conditions could be used to completely determine the surface;
each of the condition sets can be viewed as a different means of represent-
ing the surface. We will briefly mention four examples of such additional
condi tions. (See Figures 2-5.)
1. Specifying the J'twi st vectors'" at the corner points of the surface
patch; this is mathematically simple, but difficult to interpret
physically since a second partial derivative is not very intuitive.
2. Specifying outward tangent vectors at one point on each boundary;
this is far more intuitive, although it would require a more complex
set of equations to be solved to fill out the surface tensor.
3. Specifying a pair of non-intersecting interior curves lying on the
surface and passing from one boundary curve to the opposite curve.
These interior curves could themselves be specified in any of a
number of ways.
4. Forcing the surface to pass through four points at specified values
of the parameters; again we have an intuitive formulation which is
not too demanding in terms of computation.
ov
u=O
v=1
• p.s
uo
1129
All of the above surface characterizations (as well as those to follow)
are supposed to be designed to permit a user to directly control the appear-
ance of the surface desired. At this stage, most of these concepts are only
00
aP
av u= a
v= 1
uo
IV
mathematical possibilities since they have not been tested for their inter-
active characteristics; we have however specified curves in terms of end-
pOints and tangent and found such a characterization to be useful.
3.3 Constraints
In most of the above examples we have been talking about internal pro-
perties of the surfaces; in most practical cases additional external contin-
uity constraints will have to be imposed in order to fit adjacent surface
patches together. The additional flexibility supplied by the use of homo-
geneous coordinates allows such continuity to be specified directly in terms
of the tangent vectors and partial derivatives associated with the boundary
between two surface patches. As a result of such specification, we can
force two adjacent patches to have boundary continuity to first order and
yet be able to mold them to fit several additional internal shape require-
ments; in particular, the boundary curves of the adjacent surfaces will be
arbitrary except for the requirements of first derivative direction contin-
ui ty. (See Figure 7)
1130
solution of such problems is best done by a digital error minimization hill-
climbing technique. Other constraints, such as that a surface be a surface
of revolution or be quadratic or have conic sections, are more readily
specified analytically and have been explored to some detail.
UI
u=b
bv Iv
u=b
Uo
Figure 4. Interior Curves as Conditions
on the Surface
1131
mathematical and functional appearance. These changes need to be incorpor-
ated into the system in as painless a manner as possible by the use of
appropriate data structuring.
v =b
v =a
= c
Four Interior
Points Spec-
ified
=d
Boundary
Curves
Specified
1132
model, ask that question or questions of the data base, built in accordance
with the chosen data structure, and map the answer back to an answer of the
1133
4.1 Multitude of Concepts
the problem. The claimed result of thi s research is that the homo\jl'ieous
tensor representation of surfaces as rational bi-cubics is desirable. We
thus assume that part of the representation of a surface will be such a
tensor. Immediately we notice that this tensor is not unique. since there
are several different such representations suitable for different purposes:
1134
In addition to these explicit representations applicable to the general
bi-cubic rational surface we have the representation of a I~roduct surface fl
in terms of two curves, each curve in turn represented as a matrix. And
then we have a surface of revolution represented as a product surface in
which one of the curves is an arc of a circle and the other an arbitrary
plane curve. Or, by the results mentioned in section 3.2, we can represent
a surface by six curves and a few additional parameters. In the course of
working with a particular surface all of these different representations
might be useful and might exist at the same time.
2. ~'I find that there is no display code for this surface; how do I
generate it in order that I may answer question 1?I'
1135
flow of information in the reverse direction by attempting to provide a
natural means for constructing three dimensional pictures.
Using a tracking cross and lightpen, only two degrees of freedom can
be controlled independently at anyone time, corresponding to the X and
Y coordinates of the cross. Effectively, in drawing in three dimensions,
three coordinate values must be controlled and if this is to be achieved
with the tracking cross, one of the coordinates must be related in some
way to the other two, or held constant. The~ice of how to relate these
coordinates plays a significant part in determining how it will be
possible to arrange the operation of the program.
1136
the last defined point in space, parallel to the XY, YZ or ZX plane.
This plane is termed the ACTIVE PLANE.
If the active plane had been YZ the options would have been Y, Z or N.
and similarly Z, X or N for the ZX plane.
11:J7
Fig ure 9. Tor us
113 8
Fi gu re 11. Sp he re
Fi gu re 12 . Cy lin de r
11 39
1. Surface construction and display shall be sufficiently fast so that
the appearance of continuous motion and immediate resppnse to simple
requests will be possible. .
2. Surfaces shall be able to be specified in terms of previously de-
fined surfaces or surface types, allowing several simpler surfaces
to be composed into a more complex surface.
3. We do not propose to use an actual three-dimensional display of the
surfaces; rather, a two-dimensional perspective display providing
several different simultaneous views will be used to give the illu-
sion of a true three-dimensional object. The visual appearance of
the surface will be a flwire frame" image consisting of a user-
selectable network of curves lying on the surface, such as the
latitude and longitude lines on a globe. The intensity of the lines
should decrease with increasing apparent distance from the viewer.
4. Interaction with the system is to be via graphical input and output
devices and with such continuous controls as joysticks or potentio-
meters; keyboard devices shall be used only when suitable graphical
means are not available or convenient.
5. The graphical surface design system shall be easy to interface with
other processing functions, such as the computation of surface areas
or aerodynamic properties. Permanent output via mechanical plotter
or photographic means can be considered in this context. In the
latter case, a halftone image wi til hidden lines removed is a
possibility.
6. An advanced information retrieval system using techniques borrowed
from artificial intelligence research in deductive systems should be
used in order that the system may take into consideration an expand-
ing set of facts about surfaces in general and the current design
problem in particular. This is an ambitious goal in that very few
serious attempts have so far been made to apply the results of
artificial intelligence experiments to practical problems. A
specific goal here would be allowing a natural specification of
various continuity constraints, interpreted for the particular
surface on hand.
REFERENCES
1. Cohen, D., and Lee, T. M. P., ·'Fast Drawing of Curves for Computer
Display," Proceedings of the 1969 Spring Joint Computer Conference.
1140
4. Lee, T. M. P., nA Class of Surfaces for Computer Display, II Proceedings
of the 1969 Spring Joint Computer Conference.
5. Lee, T. M. P., Three-Dimensional Curves and Surfaces for Rapid Com-
puter Display, Ph.D. Thesis, Harvard University, June 1969;
available as ESD-TR-69-l89 to ESD, AFSC, USAF, L. G. Hanscom
Field"Bedford, Massachusetts.
6. Roberts, L. G., '''Homogeneous Matrix Representation and Manipulation
of N-Dimensional Constructs, 'I' The Computer Di splay Review, Adams
Associates (May, 1965J.
1141
ON LINEAR DIFFERENCES CURVES*
D. Cohen'
Aiken Computation Laboratory, Harvard University,
Cambridge, Massachusetts 02138, U.S.A.
1143
Abstract
are drawn by connecting the points which are generated by the following
of the iteration.
(1) Summary
incrementally by using:
P(n+l) a TP(n) •
1144
The simplicity of this iteration makes it very attractive for
programming.
use only the fJrst of these definitions we want to point out that
1145
In (4) we show that if two curves are obtained from each
generates:
spaced points) and hyperbolas with the right kind of speed (i,e"
1146
It is important to mention that the family of conics includes
two kinds of slraigilt lines, the ones which pass through the origin,
1147
AP(n) .. P(n+l)-P(n) - TP(n)-TP(n-l) a T[P(n)-P(n-l)] a T6P(n-l) (QED).
llP(O) a (T-I)P(O)
then:
1 ~ +l~ ~
P(n+l) .. (Tn+Tn- +"'+I)(T-I)P(O)+P(O) a Tn P(O)+(P(O)-P(O»
which shows that (b) defines the same curves as (a) but they
l148
dP(n) = (tg T) Tn P{O) • (tg T) pen) • T3 pen)
dn
dP(n) .. Tl{n)
dn
exist a real matrix T3 " 19 T, and (a) does not imply (d).
position the initial P{O), and generate the {IlP(n)} using (b).
is not available.
1149
We construct a matrix T, such that if P(i) is on the conic,
Define:
Expand it:
E a 2ax(~x)+a(~x)2+2bY(lh)+b(~y) (~x)+
~x = k [2bx+2cy+b(ilx)+c(ily)]
~y co -k [2Clx-1-2bx+a(flx)+b(~Y)J
~x and ~y:
1150
Introduce:
then,
values of k:
6P • 2k{I-kG)-lGP
Then for k2 ~ e- 1 :
1+2kb+k 2 e
(
-2ka
1+k2 e
trace(T) .. 2 .=...:..:-=-..;::;.
trace(T) .. { :
> 2
~ ~!
if
: ~> ~ }
e 0
for all k.
1151
an hyperbola, and. e - 0 implies straight lines.
1 2k ] [cose -Sine]
T ---
C 1+k2 1-k2 • sine cose
and b - 0 (e - +1) :
·T 1-
a- (
1+k 2 -2k 1 rCh~ Sh~l
H l-k 2 -2k l+k~ a lSh~ Ch~J
-2k -2k
where e- arctg and ~ - argth
1+k2 l-k2
1152
matrices for ellipses and hyperbola. Consider the ellipse, whose
axes are parallel to the X-Y axes, the length of the horizontal
( Ch~ sh~l
sh~ ch~
H • R(a)D - [
cosa
-sinal [A 0]
sina eosa 0 l.I
1153
Hence its generating matrix is:
A
'l .' a+2d + V 41 l'a+d)2 - 1. T can b e wr i tten as:
T • QnQ
-1
where Q .. [A-ab t c-d] and n ...
1154
D can be vritten as
D ... STIIS
-1
where S· [ Ch~ Sh~]
sh~ ch~
(QS)ll.
T• -QLQ-1 •
then
If . c .. 0 then T CI 1-1o -1
b] which generates one or t\'lO lines.
A.. ~d + V 1 - t (a+d)2 i
.. e ia where cosO = 1-.2 (a+d)
I cose
-sine
Sine]
cose
Q
-1
•
QT Q-l ..
c
[
X y] [ cose Sine]
( w -Y] _ [a b] T.
co
Equate components:
1156
(E l ) : a .. (xw - yz)cosG - (xz+YW)!:iinG
(E 2 ) : b = (x + y)s1nG
(ES) : 1 = X\v-yz.
then
1
w=-a sin0
x
\J b sinG
d-a d-a
z c
:c: -=;::====.
2x sinO 2 ~ b sinG
1 [2b
Q D
2 Vb sin0 i
d-a 2 :ine]
This is the real matrix Q such that T • QTcQ-l, hence
[Zb
d-a
o
2 sin0
] [ cose Sine]
-sinG cos0
[2b
d-a 2 :ine r .. [: :] .
1157
This completes the proof of the theorem.
Te -
[cose -Sine]. and TH =
[Ch~ .h~l
sh4> ch¢
sin0 cos0
[COS(ne) 1
n • Te ~ 0 ..
p
sin(n0)
[
Ch (n4» 1
sh(n¢)
hyperbola
1158
d
n
= (x n+l _X)2
n
+ (y
n+l
_ Y )2 -
n
2n+l
= (-2 sin 2n+l Gsin ~ +
2 2
(2 cos ---2- Gsin 2) 2 a
which is independent of n.
d 2
n
= (x n+l x )2 + (y
n
y)2
n+l n
=
gets longer.
1159
The first theorem shows that is is possible to
conics. The ones which pass through the origin, and the ones which
do not.
hyperbolas, and are generated by the same matrices ,...hich generate the
The lines which do not pass through the origin, are arcs of an
ellipse whose major axis is infinite. For example, the ellipse who~e
Proof:
1160
Substitute P(l); Tr(O) and get AO a t P(O)*GTP(O)
Similarly
Consider
T*GT =
[: :] [-: :] [: :] .. [-c
-d
a] [a b]
bed
..
.
(-: :]
(-ac+ac -bc+adj .
- TG
-ad+bc -bd+bd
Using the method 0), and substituting a" b .. 0; c ... I (e "" 0), we
get:
1 2k ]
T(k) z: - - -
1+k 2
As expected: trace(T(k») - 2 •
1161
This matrix, with the initial point generates
the line Y ... YO' in the positive direction along the ellipse, which
is to the right for YO > 0 and to the left for YO < 0. All the
eigenvectors.
do not have any real eigenvectors, and cannot generate any lines.
know what happens if one iterates with a matrix with non-unit deter-
1162
If S generates an hyperbola, then T has two distinct eigenvalues,
a Then
and p. If both are positive then we can define a by ~ • lJ.
-1
T a:: H H
a If
which shows that T generates a linear transformation of y - kx •
PCO), and the curve which is generated by -T from -P(O). Note that
lines which belong to a family of curves, all of which pass through the
origin.
generated by T2. The other points {P(2n+I)} are on the curve which
1163
points which oscillate between two curves of the same type.
We pointed out in (2) that the same scheme which is used for genera til
iteration is:
ax + by ... temp
cx + dy ... Y
temp ... x
The need for the temporary storage "temp" rises because x cannot
1164
Multiply by Pen):
[
Xn+1] [8 b] [Xn] [ 1 •
Yn+1 = c d Yn a cIa
ax + by -+ x
ax + By -+ y
where 0"'-
c
an d B • ad-be If a - 0 but d ,. 0, a similar
a a
scheme works. This eliminates the need for the temporary storing.
x - <s.y -+ x
y + <S·X -+ y
x .. x - <s.y
n+1 n n
or:
1165
det(E) = 1, trace (E) = 2 - 0 2 < 2, hence E generates an ellipse.
x+O·y~x
y + o·x ~ y
(10) ~xa~p1es
All the pictures (except 10.2) wh~ch are appended to this section
were taken from a PDP-1 program which generates curves using the
spacing.
1166
the same matrix. Note the good spacing.
generated separately.
generated separately.
1167
···~
I
.0
+
.0
"\1
t0
I-'-
OJ
r.n
:-.
0) 0
+
~O
+
,0
'''1 :--
m -{\
0) ~
:- 0
'i1 CJ 0)
-.0
-.:.
1168
···
·
/-
.
_.
r.~.h.:.::.~
f·~"
~.. .
:. ~~".
""",
" !. ""-
:r~,
~ / ~
I" l -\\
~I
l i: \.
/ \jt -
:
o•
~~ ,~
', .~
-
u.
'\. J"
", ~~"
~~";,i~V'~
,'" ~
.. "
./
~~
·
··..
~
1169
0
N
~
~
l~.
'
+ -}
~ ttl
ttl r..J
a .-
(t'
~
'-
.••..••..•••••.•••••..•..•.•..•..•.•...•....
-
(\) 0 ""~•
u:~ ~
I,f.- ru 0
U) ru u.s
L., 0
....,( o· at
-:-- -:-::>
-
..!>
~
.....
0 "-
(.\j
ru CD
N cu
.....
'-'. v.
0,
+
1170
CJ a
a CJ
CJ C'J
0 ~
0 D.
;;=t ru
+ +
I- LU
LU u
0 a:
cr.
t-
~ ...... : ........ .. . . .... .. .............. .. . . . ..........................
0 a
-
-
0
..... a ~
0-
0
a
ru
ru
0. U3
o· ......
.:- + §
0
0
0
CJ
~
a-
@ 0.-.
0. Cli
~ o·
+ ......
1171
. , .. .. .. .. . ~ .~ ~ ....
,
.. .. .. .. . . ... ..
"
... .. .. .. .
.
1172
...................... .. e ........ •• ~ ... ~._~ .... .- . . . . . . . . . . . . . . . e ......... e .......... ~ ...... _ .. ~ ........ , ............................. ..
.................... ",. ................ .......................................................... ........................ ....................................................... .
~ '
1174
o
.. .. .. .. .. .. ..
.. .. .. .. .. .. ..
.. .. .. ..
cU Cf)
.
(Y :) (.0
¢
.. -4
-
o U)
(\j (Li
CU.
0
+
o
,
......
.\
.
( \1
to
~
(\l
CU.
0•
'.~
1175
0
t.) P
-\"-
(j)
0
80 ~
0
0
~
C)
A(h
,+...
0
,d.~ 0
0 0
.....0..:..1........00...
......•........... ............
............
.. .... .. ....
"
"
"
. . . . . . . ".
"
"
-4
:?J
0
~
r ~
n
.......
·nm.l
to\-
r-
~
g
0 '"
0
0 -
o
:.0
(ll) Conclusion
(12) Acknowledgments
Reference
(1] L. G. Roberts
sional Constructs"
1177
INTERACTIVE SURFACE DESIGN
I. Introduction
1179
main headings: mathematics, and software and hardware.
2.1 Mathematics
At first sight it might seem that the methods for surface fitting
developed by numerical analysts may be applied to shape description.
These techniques are certainly applicable but only to restricted classes
of shapes. Conventional numerical analysis tends to assume a surface
equation of the form z ; f(x,y), for example the bipolynomial
m n
z I
i;O
I
j;O
1180
This implies several restrictions on the type of surface which can be
represented - the surface must be single valued for given x and y ,
slopes must not be too large (infinite slopes are of course out of the
question) and the data defining the surface must normally lie on the
planes where x = constant or y = constant. Examining the surfaces
encountered in engineering, for example, car bodies, aircraft wings, etc.,
one finds typically that the surfaces may be multi-valued, slopes are
large, and there is no convenient orientation of the coordinate axes to
avoid these difficulties. Moreover, some of the curves which bound or
otherwise define the surfaces are not planar but are fully three-
dimensional. Although a surface is a function of two independent
variables, one cannot arbitrarily declare that these are x and y; it is
more logical to assume that the surface equations are of the implicit or
potential form: f(x,y,z) = 0 or the vector parametric form [x y z] =
[x(t,u) y(t,u) z(t,u)]. In numerical analysis considerable emphasis is
placed on error. In computational geometry, however, error analysis is not
always meaningful. Naturally, if a designer requests a circular cylinder
he will expect an exact representation or failing that a close approxima-
tion, but often the designer merely requires a surface to conform exactly
to certain localised conditions and as a general condition to have the
indefinable quality of looking right, a quality which is generally
impossible to measure.
1181
smaller surfaces called patches which are joined by their edges to adjacent
patches with any desired order of continuity. Depending on the desired
continuity conditions the effects of a change can be confined to one
patch, one patch and its adjacent patches, or to as many patches as the
designer requests. Where more detail is required in a localised area
patche~ may be subdivided or split to provide more control. In multiple
patch design systems it is important that careful attention is paid to
the correct handling of the various continuity conditions.
Fig. 1
A duct designed on the multipatch design ,system (Armit/Forrestl
1182
except for some of the special subsets of the patch, such as quadric
surfaces and 'polyconic surfaces'. In particular, a good shape characteri-
sation of the general rational bicubic patch is awaited. It must be
possible for the designer to have a good feel for the shapes which the
rational bicubic formulation, or indeed any other formulation, can produce.
Fig, 2
The duct with viewing ambiguity removed by brightness modulation
The combination of man and machine can leave design decisrons to the
man and calculations to the computer. The main distinction between
'design decisions' and 'calculations' is that the latter are readily
programmed and the former are not, being a function of experience, etc.
This sharing of the work seems useful in many areas of design and is best
achieved when man-machine communication is good. Computer aided design
systems consist of programs for calculation and presentation of the
results the man needs to make his design decisions and programs enabling
the man to communicate his decisions and data to the machine.
1183
Fig. 3 Surface moulding. Longitudinal moulding using morbero
1184
Fig.4 Cross·section moulding using radial and angular controls
1185
Fig. 5 Blending functions controlling longitudinal extent of
cross-section moulding
1186
Fig. 6 3rd angle projection of moulded fuselage
1187
Fig. 7 3rd angle projection of aircraft
llSS
effort is not directed at the 'model' held in the machine. (Pictures of
the object rotating at speed help visualisation but do not allow design to
proceed.) Half-tone pictures is one way to show three-dimensional objects
on the screen but is expensive in hardware, computing time and program
size. Stereo pairs of space figures may be used but involve wearing
special glasses, etc. or placing one's head in a fixed position relative to
the screen. (About 10% of the popUlation cannot perceive stereo.) A
cheap and effective method is to show 'brightness modulated' space figures
where bright parts of the picture are near the man and dim parts further
away, Figures 1 and 2. This takes very little computation and can easily
be appreciated.
The man may spend some time modifying the surface he sees represented
on the screen (much more time than to create the surface). A direct
approach is to point the light pen at the offending part and then drag it
'by pen' (on a plane parallel to the scope face) to effect a change.
However, the rate at which the picture can follow the pen is limited by
the picture recomputation time and exact data is not easily specified.
Also, after an incorrect change to a design the man cannot easily correct
his mistake since he does not know the exact alteration made - he there-
fore has to redesign rather than restore after errors. A particular
difficulty with 3D information is the recognition of front and back when
projected onto a 2D screen.
In any surface design system commands are needed for three areas of
activities. Apart from those to alter the design we need commands to
show the required aspect of the shape on the screen. This may involve
1189
changing the scale of the screen representation and showing a 'rotated'
view of the object, etc. Often the manoevuring to a suitable view takes
longer than the surface modifications then suggested. A 'joystick' may
be used to control the rotation of the object but knowledge of the
rotations is needed to give commands in terms of object X, Y, Z. Design
in screen X, Y, Z may be allowed but this means a change in screen X only
may cause changes in object X, Y, Z and this effect is less easily
removed once the rotation is altered.
The other necessary commands are those for input and output of
designs. Any picture on the screen should be able to be plotted and any
data-structure representing the object under design should be savable.
segmentation of the design (i.e. the data-structure) can be helpful when
attempting large designs. Any values the user gives (for insertion in
data structures r-he should be able to interrogate and have printed on
the teletype or displayed on the screen.
When the shape under design looks satisfactory the user will want
to apply various application programs in a controlled way to the data-
structure holding his design and to get intelligible results. At first
he may wish to ensure that various criteria are satisfied (e.g. maximum
surface area). Thereafter he may wish to generate the NC control tape
to cut the surface.
3. Practical Systems
3.1 Introduction
1190
Three of the systems we shall discuss were intended for specific
applications, aircraft fuselages in the case of Lockheed, car bodies
at Renault, and ship hulls at Imperial College, whereas Armit's
Multipatch Design System was intended for research into the interactive
design of three-dimensional shapes. These differing applications make it
difficult to compare the different systems' capabilities. Our comments
on the patch systems are based on hands-on experience (the Lockheed
system is no longer available). We designed a simple duct on the
Cambridge system and on the Imperial College system, and we hope to show
a model of this duct cut on the Renault system.
1191
Figure 5, top and bottom, respectively. Similar modifications which may
overlap are used to specify other fuselage features. Figure 6 shows the
completed fuselage in 3rd angle projection and Figure 7 shows the entire
aircraft (less engines) with additional longitudinal lines drawn,
specified by angular position. The design can be displayed in any
orientation with any number of cross-sections computed.
Bezier's Systeme Unisurf (12) is intended for car body design and is
implemented on novel hardware consisting of a drawing machine and a
3-axis NC milling machine on-line to an 8K computer. Standing at the
large drawing board (5' x 24') of the drawing machine the designer draws
a freehand curve with a pencil. This can (approximately) be modelled
into one or more parametric curve segments by simple means. High order
curves can be managed by one high order segment or piecewise by several
low order segments, e.g. parametric cubics (12,14).
The drawing head of the machine is moved until it is over the start
of the curve and the drawing machine X-Y coordinates are noted
(currently on a piece of paper) from a digital readout. This is repeated
for the points defining the slopes and the end of the curve segment,
Figure 8. These four X-Y pairs - the model - may be set on some
computer-readable switches and the computer asked to draw the curve thus
specified. The computer now controls the drawing machine which draws a
curve similar to the designer's, Figure 9. If this curve differs
greatly from the designer's the points defining slopes are modified and
the model redrawn.
Repeating the above process the designer completes his model of the
curve segment by specifying the Z values of the four points, Figure 10.
1192
After defining more curves sufficient data to define a surface patch is
obtained, Figure 11. The man can punch this data onto paper tape for
p------~
/ curve by
y
/
/
/
,.
/
x
FIGURE 9
FIGURE 10
...
aBNAULT SYSTEME UNISURF CURVE DESIGN
1193
This system provides a mechanisation of a projected-view design
process (at full size), plus the ability to rapidly produce the shape
itself cut in soft material on the NC machine. B~zier quotes about 4
hours to design and produce a shape, and himself refers to the NC
machine as a '3D drawing machine'.
FIGURE 11
RENAULT SYSTEME UNISURF PATCH DEFINED
BY 8 CURVES OR 16 POINTS.
1194
"
.00
(")
'"..........
o
o....
"0
'"
::l
(1)
V>
Q.
(1)
V>
.00
::l
(1)
Q.
'"::lQ.
3
(1)
Q.
0-
-<
CIl
-<
....
V>
CD
3
CD
C
::l
V>
C
....
.....
1195
'TI
~'
w
m
x
:T
Q)
C
~
3
Q)
::J
:;;
o
a:
0..
Cl>
VI
<C'
::J
...,
Cl>
Q)
::J
0..
3
...,
Cl>
cr
'<
Ul
'<
~
Cl>
3
Cl>
C
::J
VI
C
~
1196
3.4 Surface Dragging
This system lacks visualisation aids and suffers from the readiness
with which work is destroyed when errors are made. Changes in 3D are
achieved by modifying two 20 projections - unfortunately modifying the
second projection provides opportunity to upset a carefully adjusted
1197
value of the first. The problem of pen identification of front or back
of surface exists, but the system was developed for half-hull ship design
where no great nuisance occurs. Very good 'analogue' communication
between man and machine is achieved in this system when surface dragging
by light-pen. Figures 14 and 15 show two views of the duct the authors
designed by surface dragging.
The system can show three 3rd angle views and an arbitrarily
rotated view, Figure 16. Any of these may be shown singly or as a
1198
stereo pair to be viewed using a mirror. Any of the views may be
brightness modulated, Figure 2. Patches are represented by lines of
1199
constant parameter and/or normals. Design is relative to the X-Y-Z
of the object; rotation may be set by command or varied using a joystick.
The system holds up to about twenty patches and maintains any J01ns and
continuity conditions the designer requests. Designs can be output on
paper tape and may be segmented, and data describing patches can be output
on the teletype.
4. Conclusions
1200
been taken, influenced by the type of application in mind. The systems
we tested were by no means ideal, even for their intended purposes, and
we have indicated some of their varying failings in the paper. We
consider that experience with further practical applications and
different implementations is necessary before more definite principles for
interactive surface design systems can be formulated. We believe,
however, that interactive surface design is practicable.
5. Acknowledgments
6. References
(2) Flanagan, D.L. Surface Moulding - New Tool for the Engineer
Hefner, O.V. Astronautics and Aeronautics, April 1967.
(5) Forrest, A.R. CUrves and Surfaces for Computer Aided Design
Cambridge Computer-Aided Design Group Thesis,
July 1968.
1201
6. References (Cont'd.)
1202
THE USE OF INTERACTIVE GRAPHICS FOR
THE PRELIMINARY DESIGN OF A
SHIP'S HULL
K. J. MacCallum
1. INTRODUCTION
The work reported in this paper was carried out
under a contract awarded by the Ministry of Technology to
Imperial College to study the use of interactive graphics
in the shipbuilding industry. The equipment initially
available to those working on the contract was an 8K
PDP-7 without any form of backing store, and a D.E.C.
type 340 C.R.T. display. (1) In February 1969 the
PDP-7 was replaced by a 16K PDP-9 and an exactly similar
display unit. Backing store on the PDP-9 consists of two
'DECtape' units and will soon be augmented by a disc.
The machine chosen to be linked to the PDP was the
Univac 1108 situated at The National Engineering
Laboratories, East Kilbride, and for some time a telephone
line connection between the PDP and 1108 has been available.
The software which was developed to allow the machines to
communicate and to work under the time sharing operating
system of the 1108, EXEC~8, is described in another paper (2)
2. THE PLACE OF HULL DESIGN IN THE SHIP DESIGN PROCESS
The preliminary design of a ship, in common with
that of most other engineering objects, involves careful
compromise between a number of factors in order to pro duc e
the most economical result satisfYing the functional
requirements of the design. In ship design the basic
functional requirements are usually stated as the ability
to take a given payload a certain distance at a certain
speed, where payload is a general term whose definition
depends on the type of ship. It may mean the weight of
cargo to be carried (deadweight), or the volume of cargo
to be carried, or even the number of passengers to be
carried.
1203
To satisfy the functional requirements a hull
form must be determined such that it minimises drag,
motions in a seaway,hull weight, and constructional
complexity. These functions can all be related to a
desire to reduce the capital or running costs, or both.
At the same time the hull must provide adequate static
and dynamic stability and have good manoeuvrability
characteristics.
A recent example of the constraints involved
in hull design is provided by the growth in the size of
tankers and bulk carriers. The maximum dimensions of the
ship (length, beam and draught) are limited by the
facilities for building, berthing, and even by the depth
of water at any part of the proposed route of the ship.
At the same time, the desire to reduce the total
structural weight and hence the building costs provides a
constraint on the dimensions, particularly length. The
shipowner will wish to have as much cargo as possible
fitted into the limiting dimensions and the logical
conclusion is a hull which occupies a cuboid block.
However, the power necessary to drive such a shape would
be prohibitive. In fact, for a given Rueed and len~th
of ship there is a limit of fullness or degree to which
the hull fills its circumscribing cuboid above which it
would be uneconomic to go.
Because of the complexity of the shape being
developed, an initial design usually progresses by
relating the functional requirements to a set of parameters
which are of greatest significance to the characteristics
desctibed above.
The normal procedure is to assume for the ship a
total loaded weight from which the size can be
approximately calculated. By estimating the power
necessary to drive this size of ship a check is provided
on the weight intially assumed. Any variation between
the initial assumption and the final check can be
minimised by repeating this 'design cycle'. At all stages
of the design cycle, empirical relationships based on
previously successful designs are used to generate more
information although the designer can use his specialised
experience, knowledge of current trends, and variation
with ship types to adapt these basic relationships for his
own particular design.
The complete initial design cycle is executed
without determining the actual shape of the hull and yet
predictions are made about the power necessary to drive
1204
the ship. The power predictions are derived from a
series of tank tested models and the use of this technique
obviously assumes that the hulls which are produced
conform to modern practice. Production of a hull form,
therefore, usually depends on an ability to use the
information from existing designs. Considerable work
has been done on the determination of the parameters which
most affect the resistance of a ship and these parameters
have been linked to existing information available from
the results of previous stages of the design cycle.
The parameters available from the initial design
cycle which directly relate to the shape of the hull
provide non-dimensional measures of the volume, longitud-
inal and vertical centres of the volume, longitudinal
distribution of area and a number of boundary conditions
such as a measure of the area of the waterplane and a
measure of the angle at the foremost point of this
waterplane.
At this stage the naval architect is ready to
prepare, usually to a scale of 1/48th of 1/50th, a sketch
of the hull which will form the basis of all design
calculations and of more detailed design. The hull is
described by a series of plane sections taken through it
in the three principal co-ordinate directions. The
sketch is usually initiated by defining the principal
design lines on the ship. Thus the midship section can
be defined by the area at midships and the waterline can
be estimated from its measure of area and its'
angle of entrance. The remainder of the hull can usually
be estimated by sketching sections which have an area
consistent with the longitudinal distribution of area.
Sketching a hull can be a complex task principally
because it is necessary to relate a two dimensional
sketch to a three dimensional object. Thus once a sketch
has been produced in one view it is necessary to draw the
other two vi ews and perfonn a manual cros s-fairing or a
check on all curves in all three views to ensure that the
same points correspond on each.
During the development of the hull form, the
designer will introduce a number of other constraints
based on his own experience and on special requirement s of
the design. For example, the need for a large deck area
in a car ferry may result in the introduction of a knuckle,
or longitudinal discontinuity in slope, into the hull;
or the resistance characteristics may be altered by the
introduction of a bulbous bow. Practical considerations
may also affect the hull shape even at the initial design
1205
stage. Extreme examples of this are provided by a series
of ships being built with straight line sections (3).
Tank tests have indicated that careful alignment
of the discontinuities between the plane surfaces may
result in only a small increase in resistance while
considerable savings can be made at the fabrication stage.
Most important is the architects own judgement with
respect to the drag of the hull. Especial care has to be
taken close to the stern to provide an adequate and even
flow of water to the propeller. If separation occurs
prematurely, it can result in poor efficiency of the
propeller with an increase in vibration and reduced
manoeuvrability. Separation has also been known to occur
in the forebody and thus 'hard shoulders' should be
avoided.
The preliminar,y hull form is used in many ways in
further design and production stages. In design, a number
of calculations are based on the hull form. The
calculations relate to the compartmentation of the ship,
and its resultant ability to carry cargo and to resist
complete flooding if damaged. If tank tests are to be
carried out on the hull shape then the preliminary hull
form can be used as a basis for building the model. For
the production stage the preliminary hull form is used for
producing a larger scale drawing (either full scale or
1/10th scale) from which production and steel design
information can be taken.
3. PROPOSAL FOR A HULL DESIGN SYSTEI'1
It was shown in the last section that, although a
part of the traditional method of hull design comes from
the formulation of rules and from previous successful
designs, a very important constituent of the process is a
graphical assessment and modification by the naval
architect. The creative ability of the designer and the
need to allow him to contribute to a design has long been
recognised and has resulted in emphasis on the use of
interactive facilities when using computers to assist in
the design.
In the present proposal for a hull design system,
an interactive graphics terminal will effect the
communication between the computer and the designer. In
hull design this is necessar,y since so much of the assess-
ment is visual and since feedback from modifying a design
should be rapid to allow experimentation and convergence
on the final design. However, visual assessment of a hull
is not nearly enough. As previously stated, a number of
1206
parameters of the design should be adhered to; but lacking
a completely automatic way of generating a hull with
these parameters, it is necessary to supply the naval
architect with their values. Thus the interactive displ~
becomes a way of inputting data to a number of analysis
programs and of outputting the results of these
calculations. Because of the flexibility to change this
graphically expressed input data and because of the
quick response of results of calculating the design
coefficients, the designer can be closely involved and
can make effective use of his experience.
It is, therefore, proposed to set up a central
data base containing information relevant to the design,
in this case hull information. A suite of analysis
programs can operate on this data base and produce
results relevant to the design. Such programs might, for
example, calculate volumes, stability of the vessel, or
a number of other parameters. A graphical program
operates on this data base to display the hull surface on
the screen and will accept modifications to this surface,
using some kind of input device. At any time, the
designer may request some analysis to be performed on the
current data base and may compare the result with his
desired value.
Implementation of this proposal has been
commenced at Imperial College. It was decided at an
early stage to use the concept of a fast graphics
satellite computer, linked over telephone lines to a
large central multi-access computer. This type of
configuration is justified for a number of reasons:-
a) Interaction with surfaces is a somewhat
complex task and a fast local processor is
required to support the graphical display
(servicing of this interaction by the central
computer would be liable to impose unacceptable
delays).
b) The use of a central data base and of a
suite of analysis programs requires the
existence of a large and fast computer.
c) The use of a large machine which can be
multi-accessed means that data bases and
programs may be shared among a number of
users.
d) Since many users will be accessing the
1207
large machine, the cost of running a
program is minimised,
e) The use of telephone lines implies
(theoretically) that choice may be made,
at short notice between a number of central
machines; it certainly places no constraints
on the distance between the central machine
and its satellite.
The allocation of tasks between the two computers
depends on the fact that transmission of data along the
link is relatively slow and that immediate access to the
central machine is not normally guaranteed. Thus the
central machine can only be used where delays are
acceptable; this is in running analysis programs and in
making major accesses to the data base. As much graphics
activity as possible must be controlled in the satellite
and thus it has to contain a subset of the data base, all
the display and graphical interaction routines and a fairly
comprehensive communications handler.
This paper is chiefly concerned with techniques
for designing surfaces on the satellite machine. They
provide a general approach to surface design, although
they have been,to some extent parti~llarly related to
the problems and approaches met in ship design. It is
felt, however, that their use has something to offer in
other fields of surface design.
4. HULL SURFACE DESIGN
For the work on the design of hull surfaces the
mathematical surface representation of Coons (4) was
chosen as the most suitable. In the Coons representation
the surface is defined by blendings of a number of given
coefficients; normally four boundaries and slope conditions
across these boundaries. For computer-aided design work
it is normally written in its tensor form, i.e.
f(u,v) = u M B Mt v t
where u is a vector of linearly independent functions of
parameter u,
v is a vector of linearly independent functions of
parameter v,
M is a constant square matrix and B is a tensor of the
surface coefficients. The choice of Coons' surfaces was
made for a number of reasons:
1. Continuity with neighbouring patches is
simple to define,
1208
2. Since the surface is defined para-
metrically infinite slopes can be catered for,
3. Again, due to the parametric definition,
the definition of the three co-ordinate
directions is independent, and,
4. The relation between engineering surfaces
and a bounded analytic definition is close.
The principal disadvantage in using a parametric
definition of the surface has been that it is, in general,
time consuming to present a useful display to the user,
i.e.to display plane sections through the surface. Sections
are often required in ship design for assessment of the
hull and methods should be available to allow this to be
done interactively.
A design, therefore, will consist of an arrangement
of surface patches joined along common boundaries and made
continuous to some degree across these boundaries. In
ship design, in particular in the initial stages,
continuity is only required up to the first degree.
Having chosen the mathematical model by which
designs are represented the most important problem is to
relate this to the design methodology. The principal
difference between the design method and the model is that
the former deals in shapes whereas the latter deals in
numbers. It is the work of a surface design program to
provide the interface between the two. Using an inter-
active graphics terminal an nbvious method for providing
this interface is to use the graphical input device (light
pen or tablet) to indicate a part of the surface to be
altered. Then by entering a 'dragging' function this part
of the surface will follow all movement s of the input
device. Since the algorithm will relate these movements
to changes in the mathematical model the intrinsic
properties of the model will not alter. This method of
providing a complete interface between the model and the
graphiB poses a large number of problems principally
concerned with interpreting the meaning of a designer when
alt ering the surface.
One of the more basic problems is to determine the
range over which an alteration should take place.
Flanagan and Hefner (5) solved this problem by letting the
designer indicate the range graphically. In general this
is difficult to specify for surfaces and the patch approach
can be used more simply and more effectively. Thus
constraint s can be applied so that any alt eration will
1209
oIlly aLfect a single patch, unless continuity conditions
with neighbouring patches are affected. In this case the
alteration will affect the neighbouring patch. The range
of alteration can be termed the 'effective segment'.
Allowing for this constraint on the range of dragging,
what characteristics can be stated for the effect of a
dragging operation? In other words, when a designer changes
a point on a Gurface patch what happens to other points in
the effective range?
Subjectively one can say that the only condition
should be that the effective segment should retain its
character. This can be defined more precisely by the
following conditions:
a) The new surface should pass through
the new position of the dragged point.
b) For a given dragging operation, the
maximum deviation of the final position
of the surface from its first position
should be small in relation to the size
of the effective segment. It is important
to note that intermediate positions of the
surface should not affect its final
position,
c) The effective segment should retain
its boundary conditions (in this case
boundaries and slopes across boundaries
for first degree continuity) and, by
definition, nothing outside the effective
segment should alter,
d) The deviation from the original surface
should be a maximum at the dragged point;
this condition is not so stringent as the
others although large variations from it
cannot be tolerated, and,
e) the deviation from the original
surface should be of one sign, in
other words, the new surface should
lie totally on the same side of the
original surface.
When endeavouring to satisfy these conditions,
it immediately becomes obvious that the bi-cubic surface
normally chosen for surface design does not have enough
degrees of freedom. In order that the effective segment
can be a single patch an extra term is reqQired in the
1210
boundary equations and in the blending functions. By a
simple extension, this would suggest a bi-quartic
surface. In fact to satisfy condition Cd) more degrees
of freedom are required. However, it has been found that
if the point being dragged is central to the surface, the
variation from this condition is small. An alternative to
choosing bi-quartics is to use a rational cubic surface
(6). This equation provides the extra degree of freedom
required together with a number of other advantages.
However, this surface form has been rejected for the
following reasons:
a) The principal advantage of the
rational approach is the simple
representation of conic curves and
quadric surfaces. Since these are
relatively unimportant in ship design
the bene fi t is not so great.
b) A number of problems arise when trying
to apply the techniques of surface
dragging. Principally this is due to a
longer more complex algorit4ill and
the occasional appearance of slngularities
in the surface when the denominator term
of the equation goes to zero.
In practice the bi-quartic has been found to be
satisfactory for surface dragging. To cater for the
number of different conditions of dragging which may occur
depending on the position of the dragged point the
following rules have been adopted:
a) If the point being dragged is in the
central region of the surface only that
surface is affected,
b) if the point being dragged is near
to or on a boundary common to another
patch then both patches are affected,
and,
c) if the point being dragged is near
to or on a patch corner common to other
patches then all patches with that common
point will be affected.
The concept of being near to a point or boundary
can conveniently be described by using values of the
parameters within certain ranges.
1211
In the case of altering single surface patches
the algorithm for dragging has been simply to alter the
single relevant coefficient. Where more than a single
patch is involved, more than one coefficient often needs
to be changed; an attempt is then made to find a solution
which satisfies dragging condition Cd).
In solving the problem of dragging, an implicit
range over which a change will take place has been
introduced. How, therefore, does the designer use this to
specify the range he wants? Design is a convergent process
and in normal surface design methods alterations start by
being of a gross nature. As the design gets closer to its
objective, changes are smaller and the range of alterations
decreases. This convergent process can be simulated in
surface patch methods as long as there is a process for
splitting a patch into more than one patch. If this is
possible then a design can begin with a single patch and
as more local areas of design are required the patch is
split into subpatches. The splitting Crul continue to allow
fine detail to be designed. An important criterion to make
splitting effective is that the result of splitting a patch
should be two patches initially identical to the original.
If this condition is not satisfied then plitting ceases to
be a convergent process. In fact it can be shown that the
bi-quartic surface can be split along a parameter line to
result in two bi-quartic patches identical to the first.
The split is simply a transformation in parametric space.
Although splitting is a powerful convergent process
it is necessary to be able to join patches as well. The
situations in which this will arise are as follows:
a) Where the complete surface has a
discontinuity. In ship design this might
be a knuckle or chine and as such is a
design line which will be configured as a
patch boundary. It is useful in this case
to design both parts separately and to join
them at a later stageo
b) Where there is a continuous surface
composed of two distinct objects joined
by blending surfaces. An example of this
would be an aircraft fuselage and wing with
the wing fillet as the blending surface.
Although this forms one continuous surface
it is important that the designer should
consider the wing separately from the
fuselage and should leave the blendlllg
problem until later.
1212
Other problems involved in interpreting the
designers wishes are those of working in three dimensions
with a two-dimensional screen and two dimensional drawing
device. The basic solution to this problem is provided
by the normal engineering representation. This is
particularly convenient in ship design since all lines on
the three views of the object are true views and
alterations are only made in two dimensions at a time.
A secondary problem is determining which surface (i.e. which
depth co-ordinate) is required when using the pointing
device, if two surfaces are superimposed. Armit (7) has
conveniently surmounted this problem by supplying nares to
all the patches. Fortunately the problem seldom arises in
ship design.
1213
starting point for the design. It is not satisfactory for
the program to supply a single surface patch which only
resembles a ship type shape. The designer does have some
geometric constraints which he wishes to apply and from
these he should be abl e to get a reasonab le first
approximation to the design.
Traditionally, one of two techniques are generally
adopted as a starting point. In the first of these the
designer uses the available design coefficients to produce
the main boundary curves i.e. waterline, midship section
line, and stem and stern lines. From this he proceeds to
produce interpolating sections which satisfy the boundaries
and also the requirements of sectional area at various
stations along the length. A similar technique could
obviously be used with surface patches to define the
boundaries. However, lack of information on the
interpolation required could result in a poor first
approximation.
The second technique uses information generated
by a previous design to directly produce the new hull.
Methods exist for methodically varying an existing hull
surface to produce a new one with the required design
characteristics. Unfortunately this method suffers from
lack of flexibility. It assumes that th basic ship is
approximately the same type and shape as the new design.
If any new design features are incorporated (e.g. a knuckle
or bulbous bow) then only a very preliminary solution to
the problem is found.
With the surface patch design program, it is
realised as soon as several examples of hull shapes are
developed that the sequences of splitting of surfaces to
create the correct shapes are similar each time. In
other words, parts of the hull are created from
topologically similar sets of patches. This leads
immediately to the idea of 'topologies of patches'
where a topology can be considered as a fixed set of
patches in a predefined arrangement. In Ship design the
need for a topology can arise from a number of
considerations: the midship section should for practical
reasons be defined by two straight lines connected by a
curve; patches should be joined at a knuckle line; the
planar constraint (i.e. where parameter lines are in
co-ordinate planes) should be applied to the main portion
of the hull.
Here, therefore, is a method which a designer can
use to rapidly construct a starting point for his design.
1214
The naval architect can re~est types of bow forms, types
of sterns, length of parallel middle body, the existence
or not of a knuckle and any other features which might
affect the design. The program can be left to construct
an initial form by piecing together items from its
library of topologies, and so provide the designer with
a good starting point. It should also be possible to define
new topologies as the need arises and to store them in the
librar,y. This obviously achieves more flexibility than the
normal library of ships since the starting point is a
'composite' of a number of re~ired features. At the
same time all the flexibility of the surface design
program becomes available to make small modifications.
6. CONCIDSIONS
The central graphics operation of a complete intial
design process for ships has been described. Where
possible, the traditional approach to developing hull
forms has been parallelled by a graphics approach but in
this case a system with much mere flexibility than is
normally available with computer systems has been made
available. Where possible, the computer provides a
rapid feedback of design information, but there are no
restrictions on the designer in how he develops or changes
his design.
The use of an interactive graphics terminal has
thus given the naval architect the power of the computer
without removing his control over the design.
7 REFERENC ES.
1215
3. 'Blohm and Voss "Pioneer" Ship'
Shipping World and Shipbuilder, April,
1968 p.661.
~. Coons, S. A. 'Surfaces for Computer Aided Design of
Space Forms' M.I.T. MAC-TR-41, July,
1967.
5. Flanagan, D. L.,
Hefner, O. V. 'Surface Molding - New Tool For the
Engineer' Astronautics and Aeronautics,
April, 1967.
6. Lee, T.M.P. 'A Class of Surfaces for Computer
Display' Proceedings of SJCC, 1969.
7. Armit, A. P. 'A Multipatch Design System for Coons
Patches' Cambrid.ge· University Maths.
Lab. December, 1968.
1216
The all-round graphics system.
The new ICL 7300 Advanced Graphics graphics console with a 22" diameter screen,
E1
System is powerful and comprehensive. an ICL 7301 processor with 24K words of core
It can be used as a satellite to both ICL 1900 store; an EDS transport; console typewriter;
series computers and ICL System 4 computers. paper tape reader punch.
The user has the advantages of a new The system can be enhanced by
advanced graphics software package, a flexible additional core store (28K or 32K words), line
and comprehensive operating system,
a FORTRAN compiler and a very large
screen area. When used as a free-
ICL. primer, card reader/punch and second
EDS transport.
For full details write to
standing configuration, it has the same Mr. V. H. Cross, International Computers
software facilities. Limited, Computer House, Snow Hill,
The basic system consists of a Birmingham.Or telephone 021-6435033.
International Computers
Europe's world-class computer company
Ir you were one of tbe
1138 people who visited
tbe: CompugnpbJ
tud at the G 10
exblbitlon you wm be:
intefi d to note: tblt
IdJlomnow costs
£27,000 I teld of
£34,000.
You mlgbll.lsobe:
inlefi ted in
ompu raphi lat
developm ts In
rvi offered' 10
printed drcu1t IUd
lnttgJated circuit
d Ignc •
For r informa-
tion, Dr. Hlrr I the
man to talk to al
ompugnp ClI
tau do
ted
Croft
, CroftROId
Aldersbot
Tel: AId tll386
A "quick-look" facility to
c.omplement your mechanical
Incrementel plotter but much
more than lust this.
I High-speed Incremental plols.
The most
ext nsiv
softw r
Product deIogn
5 tellite
or
t nd- lone
r------..,
I I DISMA II
I I DOAR II
I Any I FR D II
QD Plot
I
I
I
m in
fr m
I
I
I
+ G APH P ck
COMMUNICATOR
T ••t dlt
I comput r I D. nOltle.
I I
L ______ ...JI
I Softw ,. 921 D'.pl Y
marc[]n.L
ELL.L[]TT
C[]mpUTEr
Marconi-Elliott Computer Systems Limited
the real-time data communicators
SYSTEmS
Elstree Way, Borehamwood, Herts
Telephone: 01 -953 2030 Telex: 22777
A GEC~Engli5h Electric Company LTD/C07
The 430
is the first dataplotter to
understand curves.
Aswe11 as figures.
Electronic Associates 430 resolution of 0.001"! You get 430 saves on-line computer
Da taplotter is the world's fastest software to print special symbols, time in a big way. Or, if you're
hybrid system capable of plot- to plot poin ts and to scribe alpha- off-line, it sa ves tape. Ei therway,
ting true curves as well as numerics. You get eithera you save cash for other things.
straight lines. 3l"x26"ora54"x76"plottingarea. So write, or phone and ask
It plots straight lines and And above all, you get re- us to show you a curve or two.
shallow curves at an incredible liability by using large-scale Theywon't bequite like the
20 inches per second. Sharp integration techniques, and by ones in the picture, but we know
curves smoothly at 5 inches per eliminating relays, mechanical you'll find them interesting.
second using the unique 'look- choppers and linear feedback Electronic Associates Limited.
ahead' facility. And never gives potentiometers. The 'data verify' Burgess Hill, Sussex. Telephone
you the saw-tooth 'curves' of feature ensures absolute Burgess Hill (04446) 5l0l.
the conventional digital plotters. positional accuracy. •. •.
You get this speed and a The efficient, high speed Electromc Associates limited
anders
a at1ce
sy te .
Unrivalled flexibility is the secret. It gives the Sanders Data entry devices having a common interface for standard 1/0
Advanced Data Display System/900 the ability to meet nearly data transfer include Photopen®, trackball, joystick, keyboard,
every display system need. data tablet, and cursor control.
ADDS*/900 System interacts with analog, digital and Sanders ADDS/900 System can solve your most demanding
operator input. Information is processed and formatted, then display problem. We've got the hardware, interfaces and software
presented visually on up to 12 displays. support. On the shelf. Whatever your data handling requirement
ADDS/900 System features a larger variety of display sizes -from microimage retrieval to a complete data management
and speeds than any other comparable system available today. system---consider Sanders as your single
High-speed vector, position and _character function generators source.
permit unrivalled density of displayed graphics and alpha- Contact the Marketing Manager,
numerics. ADDS/900 System offers rotation and translation of Sanders Associates Incorporated, Bury Mead ...-------1
data, and exclusive graphic overlay on TV or radar video data. Road, Hitchin, Herts. Tel: 0462-51185. SANDERS
ASSOCIATES, INC.
"TM.sandersAssociates.lnc.
IBM demonstration of graphics
in engineering and science
This IBM 1130/2250 Graphic Data Processing System was shown at Brunei
University in April. Visitors were able to experiment with the light pen,
using programs available from the system's Disk Storage.
The 1130/2250 is a powerful and direct method of man-machine
communication. It gives designers, engineers and research scientists
instant visual access to results of their computer programs. And the
information presented is in an immediately usable form. Using the IBM
Graphics Subroutine Package, you can easi Iy write your own programs. And
with the latest Disk Monitor Operating System, now available, the full
power and flexibilityofthis disk based graphics system is at your command.
IBM
The 1130/2250 can also be linked to IBM Systemj360 thus giving
access to the facilities of Operating System/360. If you would like a leaflet
and more information about the IBM 1130/2250, write to Mr. K. Parkes,
IBM United Kingdom Limited, 389 Chiswick High Road, London W4.
A Berman, M. L. 735
Bijl, A. 433
Academy of Sciences, USSR, Computer Centre Blanking die & technology 179-193
701 Boeing Airplane Company 105
Adage (AGT) 109, 803, 831-850 Bootstrap cycle 171
Adams Associates 1070 Bown, H. G. 279
Advanced Research Projects Agency 905, 1119, Bracchi, G. 263
1143 Briabrin, V. M. 701
Aerodynamic design 201, 1095-1118, 1184- Britch, A. L. 463
1187 British Aircraft Corp. (BAC) 1095, 1179, 1200
Aero engine design 1200 British Shoe & Allied Trades Research Assoc.
Aiken Computation Laboratory, Harvard 1143 1200
Aircycle 170, 172-3, British Standards Institute 923
Air traffic control 58-59 Brookhaven National Laboratory 59-61
Analysis techniques 1018 Brown University 831, 851, 884
Analytical studies 562 Building component assemblies 463
Anderson, S. E. 717 Building design (See "Architectural design")
Animation, computer 327-344, 717-721, 723- Bunker-Ramo computer 562
730 Burgers' Equation 408
Application characteristics 4-7, 21-25, 46, Butlin, G. A. 947
58-65, 84-85, 111-113, 138-159, 201
Architectural design 263, 433-448, 477-486, c
513-529, 531-540, 541-551
Architectural practice 439 CADEP 263-277
ARDS terminals 858 Calcomp plotters 339, 444, 474, 638, 717
Argonne National Laboratory 681 California, University Dept. of Engineering
Armit, A. P. 1179 161
Armour, G. C. 531 California, University Graduate School of
Artwork generation, history of 314-6, Business Admin. 531
Atiyah, J. 301 Cambridge, University Computer-Aided De-
Attention handling 1049-1091 sign Group 11 79
Automobile hood linkage 155-156, CAMP System 316-324
Avionic design 202 Canopy design 1199
Avon High School project 516 Canton Junior High School Project 516
Car body design 1192
B Cardwell, D. W. 555
Carr, C. S. 549
Beeby, A. W. 923 Cement & Concrete Assoc. 923
Bell, D. A. 629 Chace, M. A. 115
Bell Telephone Laboratories 1119 Character displays 56-57
Bergeron, R. D. 831 Character recognition 614-617, 619
Berhold, E. D. & M. P. 161 Charts, production of 923-944
Chasen, S. H. 17
1225
Chromosome analysis 621, 624 Design wheel 545
Circuit analysis 279-299 Diagram generation 555-573
Colorado, University Computing Center 345 Digigraphics System Div., CDC. 635
Colorado, University Dept. of Civil Engineering Digital Equipment Corp (DEC) 71, 75, 92,
327 120, 281, 444, 546, 563, 726, 858, 883,
Colour displays 53 90S, 1203
COMDAC Project 487 Digital plotter 923-944
Commands, language 275 Digital television 49
Communications Research Centre, Canada 279 Direct program control 596
Communications techniques 30-33 DISGOL package 489
Computational array 166, 169 Display control devices 954-957, 962
Computek display terminal 724-726, 858, 880 Dot grid routine 164-166,
COMPUTE Routine 168 Dot matrix characters 56
Computer-Aider Design 18, 72 Dowe, R. J. 27
Computercentrics 22 Drafting machine 316, 323
Computer Displays Inc 858, 881 Duct design 1197
Computer Industries MTD plotter 324 Durachka, R W. 577
Computer Sciences Corporation 1070 DVST characteristics 854
Concomp Project 115, 120 Dynamic analysiS 115-160,
Construction routine 255-256
Control Data Corp. (CDC) 27, 29, 73, 105, I
107, 322, 339, 340, 347, 635, 637, 969,
Economics (See "Costs, Economics")
973, 974
Edinburgh, University Architecture Research
Cossor Cosprite text editor 659
Unit 433
Costs, economics, cost effectiveness 14, 19-
Electrocardiagram signals 622
20, 30, 45-46, 49, 104, 113, 526, 540,
Element symbols 93-100,
730, 852, 996, 1022-1031
Elliott 4130 444, 947
Cotton, I. W. 1049
Elliott 4280 1035
CRAFT Program 515-517, 531-540
Elliott, W. S. 71
Cramer, P. A. 531
EMILY system 681-699
Crawley, S. W. 541
Engineering drawing proceSSing 245-259
Crittall-Hope Ltd 489
Engineering tool 103,
C. S. I. R. 0., Australia 967, 969 Errors, line transmission 80-83
CUG 345-365 . Errors, recompiling 986, 989
Curve generators 875 Evans, D. C. 551
Cutrell, J. D. 327 Ewing, D. K. 245
EXEC 8 72, 73, 1203
D Exhaust manifold design 1196
DAD System definition 970
"Daisy chain" of events 21 F
Daly, C. J. 577 Falk, P. 887
DAMN System 119 Federal Aviation Agency 58
Data array 162, Federal Highway Administration ADP Branch
Data Language System (DL/1) 7 327
Data Reduction Laboratory, NASA. 577-580 Feeser, L. J. 327
Data structuring 775-802, 1039-1044 Ferenczy, J. 179
Datel72 Ferrari, D. 263
Debugging 735 File Handler 77-80
DeSign considerations 34, 108, 196 Film scanner 601, 602
Design Drafting (DD) 208-215 Fingerprint scanning 618
Design process 544 Flow control valve routine 174
1226
Fluid flow analysis 407 Heat exchanger routine 173, 175
Foley, J. D. 1007, Herbst, N. M. 595
Forrest. A. R. 1179 Hertfordshire County Architects' Dept 489
FORTRAN Packages 947-965, 967-993 HICAMP, HICAMPER programs 718-719
Fractionator analysis 219-243 Hidden line removal 334
Freedman, R. A. 635 Hierarchical data structures 778, 781-783
Fundamental problems 17-26 Highway engineering 327-344
Future developments 11-15, 26, 37, 46-47, H. M. Stationery Office 258
65, 299, 536, 690-692, 712, 884, 959- HPCG Program 136
960, 1044 Hubbold, R. J. 1035
Hungarian Academy of Sciences 179
Hypertext editing system 831, 851
G
Garnett, A. 487
General model builder concept 799
General Motors Research Labs. 31 IBM 2250 163, 463, 599, 655, 682, 717, 1058
Generators, character & vector 861-862 IBM360 8, 41, 92, 107, 120, 198, 339, 463,
Geometric variables 269 562, 563, 717, 726, 884, 1058
Geometry data base 247-249 IBM7040 905
Gerber 323 IBM 1130 13, 659
Gillespie, R. G.103 IBM1401595
Giorgini, A. 407 IBM Advanced Systems Devit. Div. 887
Goddard Space Flight Center 577 IBM CRAFT 532
GOFAST 219-243 IBM Los Angeles Development Center 3
GRAF Language 163 IBM Los Gatos Laboratory 887
Graph generation 555-573 IBM Scientific Subroutine Package 136
Graph theory 775-802, 905-921 IBM Thomas J. Watson Research Center 595
Graphical Data System 50 ICG Systems 513
Graphics Subroutine Package (GSP) 42, ICL4120489
Graphics Terminal Services (GTS) 9, 42 ICL 4130 303, 371, 381, 1035
Graphic symbols 161-178 ICL System 4 474
Graphic variables 272 IDIlOM hardware 578
IGS System 34, 35
Image description formats 814-822
H Image processing 617
Imperial College Centre for Computing &
Hamilton's Principle 127 Automation 71, 1203
Hansen, W. J. 681 IMS/360 7
Hardware, role of & configurations 10, 24-25, Information Control Systems Inc. 1007
35, 41, 71-73, 87-89, 109, 198-201, Information systems, nuclear safety 563
229, 281-2, 303, 322-4, 339-341, 444, Input tablet 602
546, 556, 562, 578-580, 595, 599-614, Integrated circuits design 313-324
629, 637-638, 655, 658-659, 717-718, Interdata Mod. 3. 884
724-727, 805-813, 832-834, 851-885, Interface problems 25
906, 947, 969, 972-975, 995-989, 1050- International Computers Ltd (See also "ICL")
1053 489
Harris Intertype Fototronic CRT 655, 659 Interrogation techniques 1095-1118
Harvard Computation Laboratory 1119, 1143 Istituto di Elettrotecnica ed Elettronica,
Harvard Graduate School of Design 449 Milan 263
HASP priority monitor 138-140
Hazeltine Corporation 49
Hazlett, L. 313
1227
J Marconi-Elliott Computer Systems Ltd 995
Markov analysis 1018
Jenkins, A. P. 71
John Hopkins University 717 Massachusetts Computer Associates Inc. 905
Mass storage 29
Jones, C. 487
MASTER operating system 34
Jones, C. B. 71 .. ~ McAllister, A. S. 887
McDonnell Douglas Corporation 195
K
McNamee, L. P. 161
KAM System 118 Mechanical networks, analysis of 115-160
Keyboards, Terminal 862 Merlin project 735-774
Korybalski, M. E. 115 Merlin Systems Corp. 735
Krueger, E. R. 345 Messages display 957-959
Meta System 735-756
L Michener, J. C. 851
Michigan, University of 115, 120, 138, 723,
Labelling 296-7,
1033
Laboratory for CG and Spatial Analysis, Har-
Microcoded programming 887
vard. 449
Milan Polytechnic 263
Lagrange's Equation 127-137
Minimum cost tree structure 790
Language design criteria 264
Ministry of Technology 245, 1203
Lavick, J. J. 195 Ministry of Technology, National Physical
Leckie, F. A. 397
Lab. 489, 629
Lee, T. M. P. 1119
Mixing duct routine 174
Leicester University Dept. of Engineering
ML language 735, 741, 744
367, 381, 397, 947, 1035
Mobil Oil Computer Communications Dept.
Library routine 293-6, 317 219
Light buttons 251-254, 280 Mona Lisa ripple picture 643
Limit loads 397
Monitor Systems 61
Linear differences curves 1143-1177 Moore School of Electrical Engineering 905
Line drawing 621 Moseley plotter 562
Links, computer 995, 997-999, 1029 Motorola Semiconductor Division 313
Link Handler 76 MTS time-sharing monitor 138, 726
Liverpool, University Dept. of Building Science
Multipatch design 1182, 1198-1200
463
Multiprogramming 28-29, 34
Load analysis 397-405 MVT 8, 41
Lockheed Georgia Company 17, 1201
Loft engineering 205-208
LOKAT 449-456 N
Longitudinal Strength Program 85
NASA 61, 62, 63, 577, 1070
LUISA 367-379, 949 National Engineering Lab. (NEL) 72, 1203
Lunday, P. A. 3
National PhYSical Laboratory 489, 629
Navier Stokes equations 407
M
Network analysis 1021-1022
MacCallum, K. J. 1203 New South Wales, University of 50
Machanik, J. W. 735 New York, University School of Engrg &
Maclean, M. A. 279 Science 775
Magazine composing 655-680 Northwestern University 118
Management approach 105-6 Nuclear reactor development 555-573
Manned Space Flight Center 50 Numerical control 215-217
Map analysis 621, 623 Numerical Master Geometry System 1107
1228
o Program logic 223-229
Programmer considerations 43
Oak Ridge National Laboratory 555 Purcell, P. 487
Office of Naval Research 905, 1119 Purdue, Univeristy School of Civil Engineering
Olivetti teleprinter 658 407
Opaque document scanner 600, 602
Operating System/360 8 Q
Operating Systems, programs & languages
28-33, 58, 73-76, 110, 138-159, 162- QAS System 93
177, 180-191, 250, 282-297, 302-308, Quann, J. J. 577
316-322, 330-335, 347-361, 369-371, "Queues" 91
383-386, 449-461, 467-474, 490-512,
515-517, 532-535, 578-590, 597-598, R
608-614, 630-634, 638-650, 684-692, Racal Research Ltd 301
718-721, 727-729, 735-774, 838-849, Ranaweera, M. P. 397
892-895, 947-965, 967-993, 999-1001, RECOUP facility 43
1003, 1036-1047, 1049-1091, REDAC Software Ltd 303
ORACLE first generation computer 556 Refresh problem 852-853
OUtput specification 297-8 Reinforced concrete building design 3'81-395
Renault Systeme Unisurf 1192-1196
p Resedent core 29
Response time (See also "User considera~
Page layouts magazine 655-680
tions") 983, 1022-1031
Paging scheme 792
Rich, Phinney, Lang & Cote Inc 514
Panel displays 231-243
Ring structures, definition 778-779
Panel format 221-223
Rohn, J. 531
Parametric surfaces 1095-1118
Rolls Royce Ltd 41, 1200
Patch techniques 1181
Rome Air Development Center 905
Pattern recognition 595-627, 629-634
Royal College of Art, Industrial Design
PDP (See Digital Equipment Corp.)
Research 487
Pendry, B. 487
RUMOR program 449
Pendulum, dynamic compound 150-155
Rundle, A. R. 995
Pennsylvania, University 905
Performance routine 171
Perkins & Will 449 5
Perspective transformation 332 Sabin, M. A. 1095
Peters, B. 463 Sanders hardware 578
Philco Ford 64 Satellite displays 995-1006
Phillips, R. L. 723 SCADS scan pattern 614
Phosphor control loop 607 Schaefer, L. J. 803
Phosphor correction 605 Schiffman, R. L. 345
Photographic processing 729 School design 487-512
Picture processing 822 Science Research Council 367, 382
PIXIE System 1036 SCOLA 489
Plan layouts 449 Scottish Special Housing Assoc. 443
PLAN System 6, 13 SEAC Building System 489
Polaroid photographs 717 SELMA System 93
POLYGRAPHICS package 727 Sender, M. 487
Poole, E. J. 577 Sequential decision logic 629-634
Porter Goff, R. F. D. 381 Service d'Etudes Techniques des Routes et
Printed circuits 301-312 Autoroutes de France 340
Productive environment 41, 103 Sewell, D. S. 219
1229
Shearing, G. 967 Turbine routine 173
Shellans, S. 735 Turbulence model dynamics 407-430
Shepherd, B. J. 887 Turner, F. C. 342
Sherr, S. 49 Two-dimensional drawing 1021
Ship'S design 84, 1203-1216 Two-dimensional patterns 263
Shoe last design 1199
Shut-off valve routine 174 U
SIGMA 7 time sharing system 282 UMMPS supervisory program 138
Signal processing 595-627, 635-651 Union Carbide Corporation 555
Sirius computer 924 Unisurf System 1192-1196
Smith, P. 41 Univac 71, 546, 578, 1049, 1070, 1119, 1203
Software (See "Operating systems, Urban planning 263
programs & languages") U. S. Air Force Contract 1032
Software design 803-829, 831;. . 850 U. S. Atomic Energy Commission 555, 681
Soil engineering 345-365 U. S. Dept. of Defense 1119, 1143
Space science displays 577-591 User considerations & reactions 42, 104, 112,
Sperry Rand Corp. 1049, 1119 199. 220-221, 279-281, 298, 350, 434-
Stein, J. R. 345 439, 514-515, 556, 577-578, 682, 804,
Stereoscopic animation 720 897-900, 907-908, 984-986, 989-990,
Steuber, P. 655 1049-1050, 1189
Storage tube terminals 851-886 Utah, University 541, 1119
Stromberg Datagraphic film recorder 717
Structural analyses 202-204 v
Structural building data 381-395
Van Dam, A. 831, 851
Structural design 367-379
Varian computer 587
Structural optimization 204-205
Video systems 853
Sun Printers 655
Viewing, film 729
Surface design 1179-1202
VISPLAY system 967-993
Surface dragging 1197
Visualization 257
Surface moulding 1191
Voice grade line 71, 1029
Surface representation 1119-1141
Sussex Research Associates 531
Systems design of terminals 1007-1034
w
Systemshare 444 Wall, P. K. 301
Systems support 8 Walter, P. E. 477
Washington, University Computer Center 103
T Water separation routine 174
Taylor, H. P. J. 923 West Sussex C. C. Architect's Dept. 477
Tedd, D. W. 245 Will, P. M. 595
Tektronix Inc 858, 879 Williams, J. H. 513
Tensor representation 1119-1141 Williams, R. 775
Text editing 655-680, 681-699, 701-713, 747, Windowing comparisons 878
831, 851, 1021 Wolfberg, M. S. 905
Text reading 614-617 Wood, J. 487
THREAD 245-259
Three-dimensional drawing 1021, 1035-1047 x
TIES 327
X-ray movies, study of 621
Timing experiment 983
Torson, B. T. 41 y
Tree structure, graphic representation 778,
780, 783-795 Young, A. G. 367
1230