I am the technical lead for a digital retinal imaging application that
currently runs on the MacOS, and we are considering creating a version of
our program for the Unix enviroment. (We have a BeBox on the way, as
This is for a variety of reasons...mostly though to take advantage of the
raw throughput of the workstations and networking, and to get access to a
wider variety of stereo display options.
What I would like to find out from you is your (hopefully unabashed :-) )
opinions on which hardware, imaging libraries, and variant of Unix that we
should try to target for our development. I wanted to get the strong
opinions of Usenet before I started talking with sales people about
getting a development machine.
We are currently a MacOS shop. We don't have any Windows or Unix based
machines at all - and our experience is with Windows and Unix is quite
limited. (Mind you...we don't think that will be a major obstacle - this
is just for you to understand our mindset.)
Initially, we had thought that either Windows NT or Unix would make a good
foundation for a second version of our application, and, after some
research and internal struggle, we decided to run with Unix and to ingore
NT for religious reasons (even though it might make some sense with our
existing MacOS setups.)
Our source code base is straight C and works directly with the MacOS
toolbox. To a point, we don't have any fantasy about being able to port
our code - to create a great version for Unix about the only thing we will
keep is our File format library. We realize for the Unix version (as well
as for the new MacOS version) that we want to use C++.
Our development enviroment is Metrowerks CodeWarrior and we love the
source-level de*. We would be estatic to have a similar (or better)
enviroment to it in our Unix eniviroment as well. We hate makefiles, but
probably realize we won't lucky enough to get away from them.
We love the speed of QuickDraw and worship Bill Atkinson and Bruce Leak,
among others, for its speed and responsiveness. We speak of Futurist
programming with a slight smile on our faces...
We are speed freaks and we like threads...
A typical patient study is a series of 20 to 50 images, each 1280x1024 by
8 bit grayscale. The next version of the software has requirements to
handle up to 3Kx2K by 24 bit color for each image.
We bring up thumbnails of the images and, then, the user can bring up any
one of the images, performing brightness and contrast adjustments,
thresholding, and live magnification of a ROI. The live magnification is
so that a user doesn't continually have to choose between close detail and
the full image...
Right now, we provide all off the image adjustments in real time, with
almost no delays (except for pulling the images off the disk) - on Quadra
800s and above. This is an important requirement, as the docs who use the
software do not like to wait...at all. With the progression to much higher
spatial and color resolution, the speed of the graphics libraries (and
what we can do with them) will be very important.
An additional requirement of the next version is to provide more control
over the image display, including some convolution kernels and histogram
We also need to be able to (on our reading workstations) to be able to
display in stereo. Our current setup is a custom NuBus graphics card from
Dome Imaging (we had it custom built), a 1600x1200 by 8 bit grayscale
stereo display (120 Hz), and StereoGraphics CrystalEyes. Of these pieces,
we only have an emotional attachment to the CrystalEyes...(Anyone who has
info on PCI-based stereo display cards for MacOS should mail me, too.)
After using our current system, we realize that we don't need that much
spatial resolution, and that a stereo display resolution of around
1024x768 would be fine - maybe even less. (Our live zoom tools help here.)
The refresh needs to be 120 Hz.
Digital video support is important (We like QuickTime), as well as nice
What I need your opinions on:
First, I have to be able to meet the above requirements that I have listed
above. Obviously, we have narrowed things down to a Sun or SGI (from the
news headers), so I need your recommendations on which workstation,
graphics card and display we should get.
I need a recommendation on which graphics libraries to use. Opinions about
XIL or ImageVision (or some other equivalent) are greatly appreciated and
I also want to get a general feeling off the strengths and weaknesses of
Solaris and IRIX, and whether or not the 32 bit OS vs 64 bit OS issue will
make a difference here.
In addition, I need to know which development enviroments to purchase, and
which ones that we will be the most comfortable in.
Also, we need to know if we need some kind of library to be able to talk
SCSI or if there already exists some kind of scanner support in the OS.
We also would like the machine to work fairly well with our Macs, and be
able to hang out talking AppleTalk to printers, AFP servers and the like.
Having the Unix box provide AFP services would be cool, too.
Ease of setup, adminstration and use is very important.
Comments about online support (News and the like) is very important.
Comments like the one I read recently, "Is Dave Olson for Solaris out yet?
:-)" are very telling to us.
CDE vs. Indigo Magic? comments are needed as well.
If you read this far, I thank you. We are stepping into a great unknown
and need the advice of experts.
(Please mail me with copies of followups, as the University NNTP server
seems to routinely chew up some followups...)