(Contributed by Tiantian Liu at UPenn. They did not get TAUCS to work; you may have to replace it with Eigen. -- Rahul Narain)

0. Build a visual studio project and include all the src files.

--LIBRARIES--
1. Remove TAUCS
remove implicit_update in physics.cpp
remove dependency of "taucs.h", "taucs.hpp" from physcis.hpp and physics.cpp
remove the files taucs.hpp and taucs.cpp from the project
I use Eigen as the linear solver in windows, it is a header-only library.

2. libpng and zlib:
download libpng from http://gnuwin32.sourceforge.net/packages/libpng.htm
download zlib from http://gnuwin32.sourceforge.net/packages/zlib.htm
IMPORTANT: Make sure your libpng is compiled using win32 settings. (If you meet a run-time dll linking error, it is propably caused by libpng.)

3. compile alglib and json in windows
json has its own vs make file, you can simply choose \makefiles\vs71\jsoncpp.sln to make file.
you need to create a new vs solution and inlcude all the alglib files to make it to libs.
IMPORTANT: make sure you are choosing MD and MDd settings instead of MT and MTd settings (which is the default setting in jsoncpp.sln)
EDIT: I did not use the vc project that comes with jsoncpp, I created my own project like what I've done for alglib.

4. boost
download boost from http://www.boost.org/users/history/version_1_54_0.html
and compile it using: http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#simplified-build-from-source
Link it in visual studio at Property_Pages->VC++_Directories->Include/Library

--Possible Compilation Problem--
5. unresolved external symbol "int frame" problem:
change "extern int frame;" in display.cpp to "int frame;"

6. identity() redefinition problem:
change identity() function to Transformation();
identity() has been defined in vs stl library.

--Possible Warnings--
7. kill the warnings:
change all FORCEINLINE to inline in bvh.cpp and bvh.hpp, delete the "#define FORCEINLINE inline" in bvh.hpp (since windows has already defined FORCEINLINE)
delete "double s, distance;" in geomerty.cpp, they are not used.
delete "#pragma warning(disable:161)  // unrecognized #pragma" and "#pragma warning(disable:1011) // missing return statement" from winport.hpp
add an extra "#pragma warning(disable:4018) // signed/unsigned mismatch" in sparse.hpp

--Runtime error (stack overflow)--
8. Stack overflow problem
The default stack size in visual studio is not large enough to hold "struct StretchingSamples {Vec4 s[40][40][40];};"
I increased it to 10000000 in "Properties - Configuration Properties - Linker - System - Stack Reserve Size"

