Work started on GROATS in April 1968 when the purchase of an SC4020 was approved. The users of Atlas were approximately 80% Fortran and 20% Algol.
Paul Nelson wrote SCFOR to support the Fortran users and Bob Hopgood wrote GROATS to support the Algol users.
GROATS was heavily influenced by POLYGRAPHICS which the Laboratory ported to the IBM 360/195 for IBM Fortran users.
The main novel features were:
The definition of regions with their own user coordinates was hierarchical. So regions could be defined within regions each with their own coordinate system.
The Bell Labs fonts were ported so that a set of fonts were available for textual output
A font definition program was implemented on the PDP15 so that non-standard fonts could be defined. In consequence there was support for Greek, Hieroglyphics
etc
An open text font that could easily be zoomed was defined in conjunction with the BBC for the Open University Mathematics films
Regions could be reflected, rotated and expanded so that a variety of animation effects were possible
Regions could be masks that stopped drawing inside the boundary of the region
Shading a la Flash was available so that lines drawn could have a shadow that appeared above to the left, right or below the curve specified.
Right to left and left to right writing directions for text was allowed
Sets of drawing commands could be filed away for future use as pictures
Inbetweening was achieved by a function draw from to that changed one picture into another over a sequence of frames
Transitions were provided in the same way as SCFOR, gradually randomly eroding the lines drawn in the starting picture and replacing them with lines drawn in the second picture
A library of useful functions for drawing graphs etc and even 3D hidden line elimination with perspective viewing were eventually added
A full description of the system can be found in the GROATS Manual .
A Film describing the system is available on the Chilton website:
Groats Film:
A version of the original film has been created using SVG with a few changes where the original art work no longer exists:
SRC
ATLAS COMPUTER LABORATORY
The complete plotting area
is square. It is called
region 0
Units are defined by
limits(xmn, ymn, xmx, ymx);
limits(0, 0, 10, 5);
vector(2, 3,
vector(2, 3, 6, 2);
xmn
ymn
xmx
ymx
0
0
10
5
2
3
6
2
Sub-regions may be defined
limits( 0, 0, 10, 10);
region( 1, 1,
region( 1, 1, 5, 5, 1);
region( 6, 6, 9, 9, 2);
Plotting orders always refer
to the selected region
Units of sub-regions are
defined by a call of limits
select region (1);
limits(3, 4, 7, 8);
0
0
10
10
1
1
5
5
Region
1
6
6
9
9
Region
2
Region
1
3
4
7
8
Usually plotting is constrained
by the limits of the
selected region
Plotting is not contained if
we first call :-
extend
Of course plotting must
always be within the
total plotting area
region
redefines the position on the
plotting area
region ( 1, 1, 5, 5, 1);
region ( 3, 3, 7, 7, 1);
region ( 3, 3, 9, 7, 1);
region ( -4, 2, 3, 6, 1);
region ( 1, 7, 3, 9, 1);
Size, shape and position
of plotting can be changed
by a call of region
Individual plotting
orders need not
be altered
region(1, 1, 5, 5, 1);
boat;
region(3, 3, 7, 7, 1);
region(3, 3, 9, 7, 1);
region(-4, 2, 3, 6, 1);
region(1, 7, 3, 9, 1);
expand( X, Y, E );
This will expand plotting
by a factor E about
the point (X, Y)
A region can be rotated by
R radians about (X, Y) by
rotate (X, Y, R)
A new plotting area can be
positioned by calling
advance film;
Output is to paper
or microfilm
We can produce films.
For example this one.
The following sequence was
obtained using facilities
described so far
Line drawing has many modes
standard
dark(3)
dark(5)
dark(7)
thick(3)
thick(5)
thick(7)
broken(10)
broken(20)
broken(30)
broken(40)
broken(50)
Line drawing has many modes
GROATS has 256 characters
in 4 different fonts
Font 0 characters are single
line and can be expanded to
any size
Fonts 1-3 originate at Bell
Labs and are made for high
quality textual output
Expanding them becomes
rather bizarre
The GROATS system is
augmented by many library
procedures
axes at ( 0, 0 );
graticule at ( 0.1, 0.1 );
scales at ( 0.5, 5, 0, 0, 1, 1, 2, 0 );
Conic production:-
conic ( 0., 0. 1., 1. );
conic ( 0., 0. 1., .8 );
conic ( 0., 0. .2, -.2 );
5
10
15
20
0.5
1.0
1.5
2.0
2.5
3.0
Curve drawing :-
curv func(sin, 0, 3PI );
curve (1, 21, XV, YV );
histograms :-
texturing :-
composite histograms :-
Illustrating :-
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................##########......................................................................................................
..............##############....................................................................................................
............##################E E E E ..........................................................................................
........E ####################E E E E E E E E ..................................................................................
....E E ########################E E E E E E E E E E E ..........................................................................
E E E ############################E E E E E E E E E E E E E E ..................................................................
E E E ############################E E E E E E E E E E E E E E E E ..............................................................
E E ##############################E E E E E E E E E E E E E E E E E E ..........................................................
E ##################################E E E E E E E E E E E E E E E E E E E E E ..................................................
E ##################################E E E E E E E E E E E E E E E E E E E E E E - - - - - - - - - - - - - - - - - - - - - - - -
######################################E E E E E E E E E E E E E E E - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
######################################- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
######################################- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
######################################- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
########################################- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
########################################= = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
######################################= = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
##################################= = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
############################= = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
####################= = = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
##########= = = = = = = = = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = = = = = = = = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = = = = = = = = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = = = = = = = = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = = = = = = = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = = = = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = = = = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= = = - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
= - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
XXXXXXXXXXXX
XXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX