[comp.sys.amiga] Amigas for graphics prog. class: result & replies

gore@eecs.nwu.edu (Jacob Gore) (05/31/88)

A while back, I seeked advice on using Amigas for an undergraduate class in
graphics programming.

The decision made was:
	5 Amiga 2000's, each with:
		1 floppy, 3M RAM, monitor,
		Ameristar's Ethernet card and TCP/IP & NFS software,
		Manx's C ("Professional" package) & SDB

If anybody is interested in details, I can mail them (or post, if there are
a lot of requests and no objections) the writeup.  It is mostly in LaTeX;
there is a diagram in PostScript, and a cost breakdown in plain text
(spreadsheet output).

Here is an edited summary of the replies I got.  My comments are in "[[",
"]]".  As a matter of policy (to avoid flame wars), I deleted all answers
(positive & negative) to the question "do you think something other than
Amiga would be better".  Since this is quite long, I cut out as much as I
could, including signatures (sorry).

---
From: Matt Dillon <dillon@cory.Berkeley.EDU>

>[[ about the class ]]

	Last semester I took a graphics class here at UC Berkeley using
'Computer graphics, A programming approach' by Steven Harrington.  I also
have the book you are using 'Fundamentals of Interactive Computer
Graphics' by Foley and Van Dam.

	My final project was a ray tracer.  I did most of the homework
assignments and part of my final project on my Amiga.  We used a
minimal set of primitives making it easy to port it between the Amiga 
and a VAX750 we were using as host for some Tek graphics terminals.

	The Amiga certainly has the capabilities (easily).  The only
problem I had was crashing it sometimes when I made programming mistakes.
One advantage running it on a UNIX machine is, of course, that crashing
the program does not crash the machine.


>[[my initial configuration idea]]

	That sounds about right.  The amount of memory you want to
stick in the Amiga depends on what you will expect for a graphics
project.  In my final project, I used the entire 6 Meg virtual address 
space of our VAX in an attempt to optimize the ray tracer.  I finally ran
the thing for 3 days straight on a uVax II (40 hours cpu for a 1024x1024
image, bletch).

	Memory isn't cheap these days, but if you are rolling in $$ I
would add another meg or three to the Amiga's.  The NFS is the way to
go.

	Consider that floppies are not all that slow if they are only
used to hold source.  That is, just keep the compiler enviroment and
utilities on the NFS, and have students keep their individual projects
on a floppy (880K is enough to hold all the source they could possibily
type up in a semester).  This also has the advantage of being more
secure.  If you have enough memory, you can have it download high-use
programs to the ram disk on boot to unload the NFS server during normal
operation.

	If you get a bit more memory, it might be advantageous to get
Facc II, by ASDG (a floppy disk cache) which would make using floppies
more efficient.

				---

	My opinion is biased, of course, but the multitasking nature of
the Amiga makes it very easy to use.  There are many PD programs out 
there that makes life easier, such as a CSH-like shell (no where near a
CSH but has the fundementals), good editors, etc...    There is also a
recoverable RAM disk called VD0: which might be a good idea to use.

	To actually get a class programming on the Amiga you will need
one person with experience on it to help the students quickly avoid the
usual problems associated with using a machine for the first time.  Another
advantage my class last semester had using the Tek terminals was that we
didn't have to deal with any OS or graphical structures... one simply
generates ascii sequences to send to the Tek terminal.  On the Amiga
students will have to deal with openning a window, handling various
intuition messages (like when the close window gadget is hit), etc...
You might want to set up some kind of 'standard' library which makes 
these things easier.

	To avoid crashing the Amiga, I suggest you make your 'standard'
library do large amounts of error checking, bounds checking, etc... sort
of like a buffer between the Student and the OS.

	And, of course, get a complete manual set or two.

				-Matt
---
From: Chuck McManis <cmcmanis@sun.com>

>[[my initial idea]]

Jacob, 
Sounds good, here at Sun I have an Amiga 2000 with nothing but a floppy,
memory card, and ethernet board. Ideally you will want to get 'autoboot'
ethernet cards however in the mean time the 1 floppy configuration works
well. There is plenty of speed/power in this setup plus you have the 
ability to export the NFS file system read only so that the compilers and
such can be protected from getting zapped by the students. For more 
serious graphics you might consider the Sun 3/60, as a university I think
the cost would be <5K each (more if you want color). Both should meet your
needs. I all depends on how much money you want to spend :-)

[[...]]

--Chuck McManis
[[...]]

---
From: Drew Wingard <wingard@amadeus.stanford.edu>

[[...]]  I personally think the idea is wonderful.
I would also like to give you some thoughts that immediately spring to mind.

First, some background.  I had a similar undergraduate class in graphics in
the EE department at UT-Austin in the Spring semester of 1985.  We also used
Foley & Van Dam as our text, and the hardware we used were Macs - what a
disaster!  At the beginning, all of the machines had only 128K, since the
512K upgrade was still a very new concept.  Our programming assignments were
done in MacPascal (interpreted, since there were no well-respected compilers
yet).  Also, Inside Macintosh Vol. 1 was in pre-release (i.e. they had a non-
typeset copy at the library, which no one in the class knew about).  So we
were trying to use an interpreted language on underpowered machines without
access to the system routines (except for QuickDraw).  MacPascal had a 
program text limitation of about 20K bytes at that point, even on a 512K
machine (I can vividly remember going through my program and shortening all
my variable names trying to make my program fit!).  Making alogorithms from
the book work was no problem - making the resulting application look like a
Mac program, however, was a big problem.

With that out of the way, I would like to move on to my suggestions.

I think the Amiga could work well for such a task, with the proper amount of
preparation ahead of time.  The initial learning curve is quite steep, and 
finding the answers is made difficult by the number of references one has to
deal with.  First, you have to choose a language - in terms of compiled
languages on the Amiga, the only two sensible choices are C and Modula2 (based
on the compilers available).  If your students have a knowledge of C, I would
recommend using that; otherwise it's a tossup, since you have to balance
Modula2's similarity to Pascal against the large volume of code examples in C
in the references.

In any case, I think that you would need to provide some sort of library code
on top of that provided by the compilers and the Amiga that would open a new
screen and window, etc. so the students can spend more time learning graphics
and less time mastering the Amiga libraries.  At least at the beginning of the
course.

In terms of hardware, I'm not sure you need A2000's, but if your budget can
afford it I can't fault the long-term options that offers.  I don't think I'd
plan on starting with NFS, since I'm not sure Amiga software vendors are
prepared to deal with licensing their software to run on networks.  Of course
I'm not even sure how you would deal with getting each student access to the
compiler but preventing him/her from walking away with copies for which he did
not pay...

I should think that 1 Meg A2000's with 2 3.5" floppies would be a good minimal
configuration.  My next step would be to add 2 Meg to each machine, so the
compiler could be kept in RAM: along with the include files, etc.  At this
point I would think a floppy-based system is still the best way to go.

Please keep us posted.  We're all excited about prospects for the Amiga in
education - the local JC is even teaching nighttime animation courses on
Amy!

Regards,
Drew Wingard
[[...]]

---
From: Dale Luck <boing!dale@amiga.uucp>

Regarding using amiga's for college course work.
Ohio state Univerisity is using amiga's as well.
They, according to my sources even decided to not use their own
software in favor of using sculpt3d to teach 3d rendering
techniques. Light source, etc.
Try 614-422-3416, and ask for Computer Graphics Lab
Dale

---
From: Gerard Lachac <lachac@topaz.rutgers.edu>

>[[my question]]

Just in case no one tells you this, I thought I would mention it because
it could be overlooked.  There is a small company that has a small advert
in Amazing Computing sometimes.  They offer a library of graphics routines
to supplement the OS.  I don't have access to the magazine right now, but
I thought I would let you know just to give you a feel for what's out
there right now in Amiga graphics programming.

[[...]]

---
From: David Roch <roch@b.cs.uiuc.edu>

[[...]]
	I used my Amiga as an alternative to 3B2's
in my undergraduate class (shame on me, I work for
AT&T).  Overall, it wasn't too bad.  The library
support is very good (too good actually, I wasn't
allowed to use most of it).  Two BIG complaints:
	1) No source level debugger (Manx keeps promising)
	2) It's fairly easy to crash the machine
	   if you don't play by the rules.
I'm afraid I don't know about the networking
question, but if you want to know anything else,
don't hesitate to ask.

		david roch
[[...]]

---
From: Edwin Wiles <ewiles@netxcom.uucp>

[[...]]

Although I own an Amiga, and am greatly pleased with it, I could not in all
honesty recommend it for class use.  This is mainly due to the large number
of GURU messages and reboots that occur during the development of a program.
(I know from experience.)  This is especially hard on a person who knows
nothing about Amigas, how to read the GURU messages, and what potentially
could cause GURU's on an Amiga.

Having been a student recently, I have fresh memories of just how agravating
unreliable operating systems can be.  And for students, having to spend the
majority of your time waiting for reboots is sure to be slow, painful, death.

Thus, though I really enjoy my Amiga, for my own personal use, I cannot
recommend it for use in a teaching environment.  At least not until they
make the operating system much more robust.

Although I'm not terribly fond of them, and they were rather slow, I took
my graphics class using Apple IIe's and UCSD Pascal.  They worked rather nice,
and didn't require a reboot when your program screwed up.

The problem with Apple IIe's is that they are SLOW compared to Amigas.  The
advantages are that they're probably much cheaper, and much more robust.

[[...]]

---
From: Ali Ozer <ali@polya.stanford.edu>

There are some plans to create a graphics lab with Amigas here at
Stanford as well. We were thinking of a lab filled mostly with 1 Meg
Amiga 500s, with possibly one or two ``fully-equipped'' 2000s --- Fully
equipped meaning 3 or 5 Megs of memory, and possibly a hard disk.  The
2000(s) would also be equipped with other hardware, such as DigiView
digiziter, and maybe even a genlock/VCR combo. Ethernet board running
FTP would be nice too... 

As far as off-the-shelf graphics packages goes, you probably won't be able
to find some of the ``standard'' software packages that are out for the
PC, such as GKS. But, on the other hand, you do have wonderful ray-tracing
software (Sculpt 3D), 3D animation software (VideoScape 3D, Forms in Flight),
that can be used by graphics and art students alike, and even others.

There's a steep learning curve while learning to program the Amiga; but
despite that students familiar with C should be able to write programs
within a couple of weeks. (Several friends of mine here at Stanford 
learned to program the Amiga while taking a graphics course wher they normally
use Macintoshes. None had any special difficulty learning the Amiga
(not only graphics but also user interface and OS issues) and writing the
programs required for the class.) And for students not familiar with C
but Pascal or Modula II, there are several good Modula II packages out
now. If you do plan on having the students program, make sure you have
at least 1 Meg machines (no problem with the Amiga 2000's), and make sure
you have the ASDG Recovrable RAM disk (available freely). It will cut down
the development time (especially during the first few weeks, when students
crash the machines *all* the time) drastically. 

BTW, don't worry too much about hard drives --- A 1 Meg system with 2 floppies
makes a good enough development environment, and with smart use of RAMdisk
you don't miss a hard disk at all. But still, a few harddisks for archive,
etc, isn't a bad idea, if you've got the budget for it!

As far as a name at Commodore --- You might want to try contacting
Dave Archambault. He was interested in contacting schools about educational
uses of the Amiga. He's at Commodore at PA. From what I understand he did
talk to several colleges on the East Coast, and even to several people
at Stanford.

Ali [[...]]

[[In reply to my request to clarify what VD0: had to do with development
  time:]]

Jacob,
Normally it's best to put very temporary files (such as temporary
assembly files, and other stuff generated by the compiler) in RAM:.
If you've got the memory, then it becomes desirable to also put 
the various library files and even the compiler itself in ram.
But, everytime the system crashes, you need to reload these files
back into RAM: --- Just the library files and the compiler might
occupy about 200-300K and you might end up wasting a good half a minute
copying these files into RAM: after every boot. This gets to be
rather annoying. With the recoverable RAMdisk, however, you put the
files in VD0: instead of RAM:, and when the system boots, the files
are still there! So you would put a test like the following in your
startup-sequence file:

if exists vd0:cc
  echo "VD0: intact, no copy"
else
  echo "VD0: empty, copying..."
  copy c:cc vd0:
  copy lib:... vd0:
  etc
endif
path vd0: add

VD0: is truly a timesaver...

Ali

[[about the "graphics library" for the class:]]

About creating a GKS-shell : Yes, it would be no problem. Amiga provides
a good set of graphics routines, and all you'd need to provide is some
sort of mapping functions, which all would be fairly small. (Of course
I am not very familiar with GKS, so I can't be sure.)

Oh --- You might want to look at comp.graphics. Just in this past day someone
posted a message about GKS implementation in C. That might be of some use...

You might want to stick a Bridgeboard in the Amiga 2000 when you're demoing
the machine to the prof who wants to go with the IBM. 8-) He won't be able
to tell it's not IBM until you drag the screen down and show the Amiga
running some ray traced animations. That should convince him! 

Ali [[...]]

----
From: "Craig D. Hubley" <craig@unicus.com>

>[[is using Amigas a good idea?]]

The University of Toronto thinks so.  They have a lab of Amigas that they
use in a senior graphics course, which includes designing and implementing
a paint program and other goodies on top of a graphics kernel.  I could
dig up the email addresses of people who've tutored and taught and worked
with the Amigas in the course, if their experience would be helpful.
[[See message from Bill Buxton below]]  They're
now part of the curriculum.  I think they even use the same textbook.

>[[graphics library available?]]

There's a lot of excellent graphics support in the ROMs;  better than any
other personal computer, including the Mac.  Doing really scary stuff, like
object-oriented graphics and the like, requires some work, but that's life.
A lot of public domain code is available as well.

>[[initial idea]]
>
>  *  6-12 A2000's, with monitors (of course :-), I don't know how much memory

A2000s are about twice the price of A500s, though I suppose you know that.
A500s should be expanded with the same cards as A2000s, using an expansion
chassis, like the one Pacific Perhipherals sells. Don't even *think* of
mounting stuff inside the A500 case or using the slot on the side, especially
not in a lab where many people access the stuff. 

The A2000s are a better graphics box because of the video slot and CPU slot.
You could add a 68020/68881 card with static RAM in the CPU slot and do mandelbrots
and the like... hmmm.  Some people I know in the video industry are cursing
and swearing that they'll have to cut prices on their video graphics machines
down to *A TENTH* of their old prices to compete with the Amiga.  It's become
pretty much a intro-level video industry standard, and has been used in some
professional studios and for some television productions.

For most applications, a single megabyte is OK, but if this is going to
require compiling and editing and running programs, it's *far* better to
do it all from a RAMdisk, with 3 meg.  2 meg expansion for A2000s, from 
Commodore, is cheap anyway, at the educational price, and that gives you
3 meg total.  More than worth it.  You might, if you have cheap access to
RAM chips, buy unpopulated third-party boards and stock it inhouse.

>  *  Ethernet hardware, with TCP/IP and NFS software

Yow, what bandwidth!  Could be laughs to share graphics in realtime...
I don't know of any Ethernet vendors other than Ameristar, so you should
find out how good their TCP/IP support is.  Hopefully it's complete.

>  *  Hard disks for shared software, maybe for students' files (or students 
>     can use their own floppies).  Two possibilities:

Best to avoid floppies altogether, for all the usual reasons.  IF someone
has their own Amiga, great, but if you can login remotely and they have a 
modem, you can keep workbench in the floppy drive all the time, which is 
better for everyone, reliability-wise.

>     a)  Attach hard disk(s) to one or two of them (how much space?)
>     b)  Have one of our VAXes farm out the disk space

For graphics, lots of space.  If you're using NFS, use a remote file system.
Amiga hard disks are too slow and too expensive.  You can buy an Eagle for
the price of some of the bogus Amiga drives that run at a tenth the speed.
Using PC drives with The Wedge or something is faster.

>If you can point out problems with this plan, I'd appreciate hearing your
>thoughts.  Is any of this unnecessarily inconvenient? complicated?
>underpowered? 

The Ethernet hardware is a good idea.  You could hack together something
serial-based cheaper, but it doesn't seem worth the bother, if everything
else runs on NFS.  Could lead to some fun applications being developed 
in spare time (collaborative information environments, anyone ?)

[[...]]

Hope this helps, I hope you go for it, U of T did!
[[...]]

----
From: Bill_Buxton.EuroPARC@xerox.com
      [[one of the people who help U of Toronto's choice]]

This will be brief, but I assume that is better than no reply at all.

We went with Amigas, and they were, in my opinion, a reasonable choice.
One can do basic graphics algorithms (shading, raster ops, anti aliasing,
3D, etc, without much problem.  Not only that, students can buy their own
machine which helps everybody.  Apple IIs maight be an alternative now, but
wasn't for us at the time.  We developed a simple programming environment
around Aztec C which simplified the whole thing.  Check with DGP for info
and availablity.  I am now in England, so not much help.

----

[[The first response I got to my plea for Ameristar's address (there were
several others -- thanks, folks!):]]

From: Sam Paolucci <paolucci@snll-arpagw.llnl.gov>

[[...]]  Ameristar is doing very well, but it is a small
company which cannot afford to advertise.  I have been using their board
for about a year now, and it works wonderfully with TCP/IP and NFS.  As
a matter of fact, I have my lowly Amiga at work talking directly to a
CRAY X/MP among many other nodes on the network including VAX's (running
VMS), Suns, and Apollos.  I like it so much that I just bought a second
board from them for my other Amiga.  Their address is:

		Ameristar Technologies Inc.
		P.O. Box 415
		Hauppauge, NY
		(516)698-0834

[[disclaimer]]

---- The End ----