The MD generates data like this: (Explanation is in /**/.) n /*there are totally n atoms*/ x1, y1, d1, type1, color1 /*Atom #1 is at position (x1,y1). its dia. is d1, and is type1 atom, w/ color color1*/ x2, y2, d2, type 2, color2 .. xn, yn, dn, typen, colorn 1, 2 /*there is a bond between atom#1 and atom#2*/ 1,5, 1, n, ... n-2,n You should notice that there are two parts in the original data, the first part is for atoms, and 2nd part is for bonds between these atoms if exist. The 2nd part can be empty. Transformations include: 1. transform from file w/ only atoms information to file w/ both atoms info. and bonds info. Bonds can be calculated based on the distance of each pair of atoms. 2. transform the original data to a 2D ppm file based on current view point of the observer and its view angels. 3. render the original data as a 3D scene. (with opengl/mesa) 4. transfer the original data to triangle representation of the 3D scene. Let's say the result data is called 'TriData'. 5. simply the 'TriData' to simplified data 'SimTriData' based on triangle mesh simplication algorithm. 6. transform the original data to a bond list like this: 0-1 10 1-2 20 ... 20-21 10000 ... 50-infinite 10 This data set means that there are 10 bonds w/ length of 0 to 1 unit distance, 10000 bonds w/ length of 20 to 21 unit distance, and so on so forth. There are some sample data(small to very large) in coc nfs, and we have several filters available. I will give you related files and pointer to where to find the sample data tomorrow.