Origins of AFNI
Before AFNI was FD2, and before FD2 was FD and FIM.
FD and FIM ("Functional Display" and "Function IMage") were 2 programs by Andre Jesmanowicz and Eric Wong. FD loaded a sequence of 2D images and displayed one image in a window and displayed an array of time series graphs in another window. These displays were the basis for the AFNI image and graph viewers. FIM was a program to compute the "correlation image" from a sequence of 2D images and a reference file.
FD2 in some sense was a merger of FD and FIM. Originally, I used FD as a platform to test my realtime correlation coefficient code, developed in February 1994. In the process, I modified FD enough to give it a new name, cleverly chosen to be FD2. As time went on in the spring of 1994, FD2 became more widely used at MCW, and I made a number of changes to it to make it more useful for the various neuroscientists (e.g., Jeff Binder, Steve Rao, Ted DeYoe, Elliot Stein).
In mid-to-late June 1994, we had a meeting to discuss the future directions of FMRI data analysis at MCW. This meeting was dominated by Steve Rao and Jeff Binder, who were single-minded in their pursuit of the Talairach transformation -- they basically said that if they couldn't get this done, their careers as scientists would be over and their children would starve in the gutter. In a fit of madness, I agreed to write a program to transform functional images to Talairach space. I thought this might take 3-5 weeks.
After some consultations with the Talairach and Tournoux Atlas, I talked at more length with Steve, Jeff, and Ted. They pretty much didn't know what they wanted, but were insistent on it. So I decided to follow the Talairach-Tournoux Atlas prescription for spatial transformation as closely as possible. This meant having the ability to find and mark the various defining points in 3D.
Recall that FD (and FD2) was a program for dealing with time series of 2D images -- the images could only be viewed in the plane of acquisition. So a 3D viewer was needed. At first, I planned to add this capability to FD2, and was going to call the new program "FD3". However, FD2 was now a patch of code written by 3 people, used a million global variables, and I didn't want to hack around in it any more. So I decided to build a new program from scratch. After a couple weeks, I decided that this program was to be so far beyond FD2 that it needed a new name. I chose "AFNI" because it was pronounceable and was not of the form "Brain Something" -- at that time, I'd heard of a zillion programs called "Brain Something" and couldn't stomach contributing to this proliferation.
The first thing written was the image sequence viewer (the imseq.c file). This was the fundamental problem with FD -- the code was far too spaghetti-ized to pull it apart to allow for multiple image viewing windows. AFNI would need 3 image viewers -- the now-familiar Sagittal, Axial, and Coronal viewers -- to let the user place the various markers needed for the Talairach transformation.
The initial development was done on an HP-UX workstation in the MCW Biophysics EE lab. This had a big 32 MB of RAM.
Of course, things took longer than I predicted, since my vision for the program became more ambitious. I conceived of a program that would let the user browse through 5 "dimensions" of data: 3=space + 1=imaging run + 1=subject. (Time didn't come in until 1996.) Plus color overlays controllable by the user -- FD2 had color overlays, but the color map and thresholding was fixed.
The first version of the program was ready in Sept 1994 -- about 8-10 weeks after I started. I can clearly recall the first demo, up on Steve Rao's SGI. Everyone was quite impressed with the color overlays, surfing through the brain in multiple directions, etc. However, the program crashed when doing the Talairach transformation. Out of memory -- the SGI had 16 MB of RAM. At that time, AFNI transformed the dataset entirely in memory, and so had to be able to hold the two whole datasets in RAM at once: the +orig and +tlrc. Too much for Steve's computer. He ordered more RAM that day, got it the next, and away he went.
That little event was one motivation for the invention of "warp-on-demand" viewing, though. The other motive was that I didn't like it when the user pressed the "Transform" button and then had to wait for a couple minutes -- the program should do something NOW when you press a button, but the computers then were pretty slow at transforming a 3D volume.
So the original motive for AFNI was just the Talairach stuff. But I decided to hang more things onto it as my plans developed in July 1994. After a long while, I eventually decided that all my FMRI software developments would take place in the AFNI context. And so it has been for the last 10+ years.