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 ----