SurfRelax
Software tools for cortical surface reconstruction, visualization, and analysis

SurfRelax is a set of Linux programs and Tk/Tcl scripts, with a GUI wrapper, for extracting cortical surface models from anatomical MR images of the brain. SurfRelax is based on the TFI C++ library. If you are still stuck with a computer running an inferior OS, SurfRelax can be run in a virtual Linux box.
For more information, refer to the documentation (somewhat outdated but mostly accurate).
MGL
A Matlab/Octave interface to OpenGL for visual stimulus presentation

MGL is a library for Matlab and Octave that allows easy programming of visual (and some auditory) stimuli using OpenGL. Current versions run on Mac OS X, Linux, and a Windows port is underway. MGL was developed jointly by myself and Justin Gardner at Stanford University, but several other people have also contributed; see the documentation for details.
Example code (draw some dots on a second screen):
mglOpen(2,800,600,60,32); % Open screen 2 (second monitor) with 800x600 resolution at 60Hz
mglVisualAngleCoordinates(57,[16 12]); % Set coordinate frame to visual angle using a 16x12 cm monitor at a viewing distance of 57 cm
mglClearScreen; % Clear back buffer
mglPoints3(16*rand(500,1)-8,12*rand(500,1)-6,zeros(500,1),2,1); % Draw 3D points on back buffer (in visual angle coordinates)
mglFlush; % Swap buffers to show points
mglWaitSecs(1); % Wait for 1 sec
mglClose; % Close screen
cbiNifti
An I/O library for Matlab/Octave
Matlab and Octave library for reading and writing Nifti-1 files. Unlike the fslio library, cbiNifti makes fairly minimal assumptions about what Nifti files should look like and will not do silly things like setting the x dimension to negative or force the image size to 1x1x1 voxels (unless the image really is that size). cbiNifti handles compressed file formats for reading and writing. Note that compression and decompression is handled by Unix pipes, and probably does not work under Windows (though it might work with Cygwin).
cbiNifti requires the mlpipe library (see below).
Example code (averaging two images):
[data1,hdr1]=cbiReadNifti('myNiftiFile1.img.gz');
[data2,hdr2]=cbiReadNifti('myNiftiFile2.nii');
data=(data1+data2)/2;
[byteswritten,hdr3]=cbiWriteNifti('myNewFile.nii.gz',data,hdr1,'float32');
disp(hdr3)
single_file: 0
hdr_name: 'myNewFile.hdr'
img_name: 'myNewFile.img'
endian: 'b' sizeof_hdr: 348
dim_info: 57
dim: [8x1 double]
intent_ps: [3x1 double]
intent_code: 0
datatype: 16
bitpix: 32
slice_start: 0
pixdim: [8x1 double]
vox_offset: 0
scl_slope: 1
scl_inter: 0
slice_end: 255
slice_code: 0
xyzt_units: 10
cal_max: 3820
cal_min: 0
slice_duration: 0
toffset: 0
descrip: 'FSL3.3 v2.01 NIfTI-1 Dual file format ' a
ux_file: ' '
qform_code: 1
sform_code: 1
quatern_b: 0
quatern_c: 1
quatern_d: 0
qoffset_x: 87.5000
qoffset_y: -127.5000
qoffset_z: -127.5000
srow_x: [-1 0 0 0]
srow_y: [0 1 0 -127.5000]
srow_z: [0 0 1 -127.5000]
intent_name: ' '
magic: 'ni1 '
matlab_datatype: 'float32'
is_analyze: 0
qform44: [4x4 double]
sform44: [4x4 double]
mlpipe
Functions for reading and writing to Unix pipes and compressed files. To use, you need to compile the mlpmex.c file (mex mlpmex.c).
Octave toolboxes for Matlab
Octave has lately become a serious open-source rival to Matlab, and current versions can do almost everything Matlab can (except the GUI), making Octave an eminent and free substitute for Matlab. What’s more, there are many more toolboxes available for Octave than for Matlab, some of which replicate most of the function of various Matlab toolboxes. Since Octave is mostly source-compatible with Matlab, I decided to translate some of these functions to work under Matlab (as well as under Octave). Unless you are in dire need of every function provided by Mathworks’ image processing and statistics toolboxes, you are likely to find these Octave translations fine substitutes, and they have the benefit of being free. Coming soon.