diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b2dce3f10a18cfb75af61e0f15c2cc3d5f1113ec
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,98 @@
+The multitemporal association tracker is a multitarget tracking system, this
+version has a cost function which was developed for tracking cells in 2D,
+though it would not be difficult to modify the cost function for 3D.
+
+This directory includes Visual Studio 2008 solution files, but the underlying
+tracker should build on other platforms if necessary.
+
+
+Directory Structure
+-------------------
+- root: README and project files
+|
+|-- src: All source files for the MAT cell tracker
+|
+|-- samples: Some sample MATLAB read/write code and sample data
+
+
+Input File Format
+-----------------
+The tracker reads detection (segmentation) information using a simple text
+format. If a more complex or faster format is required, or new detection info
+must be integrated into the tracker then all the related codecan be found in
+detection.cpp. A sample MATLAB writer for the current format, along with some
+sample data is included in the samples subdirectory.
+
+Here is an abstract example of the file format:
+Note: <> indicate the description of a single text number in the file format
+
+<imW> - The width of the source image or movie (in pixels)
+<imH> - The height of the souce image or movie (in pixels)
+<numT> - The total number of frames in the source movie
+<numD> - The total number of detections found over all frames
+<numD_#> - The total number of detections found in frame #
+<comX_$> - The centroid X coordinate of detection $ in frame #
+<comY_$> - The centroid X coordinate of detection $ in frame #
+<numP_$> - The number of pixels in connected-component of detection $ in frame #
+<pixX_@> - The X coordinate of pixel @ in detection $ in frame #
+<pixY_@> - The X coordinate of pixel @ in detection $ in frame #
+
+---------------------
+<imW> <imH>
+<numT> <numD>
+
+<numD_1>
+<comX_1> <comY_1> <numP_1>: (<pixX_1>,<pixY_1>) (<pixX_2>,<pixY_2>) (<pixX_2>,<pixY_2>) ...
+<comX_2> <comY_2> <numP_2>: (<pixX_1>,<pixY_1>) (<pixX_2>,<pixY_2>) (<pixX_2>,<pixY_2>) ...
+.
+.
+.
+<numD_N>
+<comX_1> <comY_1> <numP_1>: (<pixX_1>,<pixY_1>) (<pixX_2>,<pixY_2>) (<pixX_2>,<pixY_2>) ...
+.
+.
+.
+
+
+Output File Format
+------------------
+The MAT tracker outputs two important structures to a text file, first the
+edges which were assigned during tracking and a global ID which indicates to
+which "track" they were assigned.
+
+We also output the tracking graph which contains the costs the multitemporal
+tracking assigned to each feasible edge (connection) between detections in 
+nearby frames.
+
+Here is an abstract example of the file format:
+Note 1: <> indicate the description of a single text number in the file format
+Note 2: ID fields are global detection IDs, these begin at 0 and are assigned
+        to the detections in the order they are read from the input file.
+
+<inID> - Incoming vertex ID of a directed edge (ie. destination vertex)
+
+<outID> - Outgoing vertex ID of a directed edge (ie. source vertex)
+
+<labelT> - Global track label, numbers are arbitrary but all edges with the same
+           label are on the same track
+
+<cost> - Edge connection cost in the tracking graph
+
+------------
+<labelT>,<outID>,<inID>
+<labelT>,<outID>,<inID>
+<labelT>,<outID>,<inID>
+.
+.
+.
+-1,-1,-1
+<outID>,<inID>,<cost>
+<outID>,<inID>,<cost>
+<outID>,<inID>,<cost>
+.
+.
+.
+
+Thus, reading until the -1,-1,-1 line will give all the necessary tracking info
+but reading further gives costs and information for other edges which were not
+assigned to tracks.
\ No newline at end of file