diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1c8e96d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,14 @@
+CMakeLists.txt.user
+CMakeCache.txt
+CMakeFiles
+CMakeScripts
+Testing
+Makefile
+cmake_install.cmake
+install_manifest.txt
+compile_commands.json
+CTestTestfile.cmake
+_deps
+CMakeUserPresets.json
+build
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2e3191..87d4c1d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,11 +1,9 @@
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
-find_package(CUDAToolkit 11 REQUIRED)
-
project(TinyVBD LANGUAGES CXX)
## Use C++11
-set (CMAKE_CXX_STANDARD 11)
+set (CMAKE_CXX_STANDARD 17)
find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIR})
diff --git a/README.md b/README.md
index 71d5157..64803e2 100644
--- a/README.md
+++ b/README.md
@@ -4,10 +4,12 @@ A tiny version of VBD, focused on mass spring strand simulation.
This code is a tiny demo of our Siggraph 2024 paper:
[Vertex Block Descent](https://arxiv.org/abs/2403.06321 "The NEXT simulator")
-The only dependency is Eigen3.
+The only dependency is Eigen3. https://eigen.tuxfamily.org/index.php?title=Main_Page
-If you compile and run it, it will output the simulation results as a series of JSON files to C:\Data\Test_20Verts_30degree_withSkip_stiffness1e8.
-You can use the VisualizeStrand.blend to convert them to obj files for visualization.
+If you compile and run it, it will output the simulation results as a series of JSON files to a subdirectory of where it is run.
+
+You can use the VisualizeStrand.blend to convert those to fbx files for visualization. This is a Blender python scripting file that is used to convert the JSON output of the program into geometry.
The default configuration will run the high mass ratio experiment.
-Except for the default configuration, there are other experiment configs that you can try, all you need is to uncomment those options.
\ No newline at end of file
+Except for the default configuration, there are other experiment configs that you can try, all you need is to uncomment those options.
+
diff --git a/VisualizeStrand.blend b/VisualizeStrand.blend
index a8d2ccb..5272ab7 100644
Binary files a/VisualizeStrand.blend and b/VisualizeStrand.blend differ
diff --git a/main.cpp b/main.cpp
index a4c4278..b0414dd 100644
--- a/main.cpp
+++ b/main.cpp
@@ -10,7 +10,12 @@
#endif
inline bool saveJson(std::string filePath, nlohmann::json& j, int indent = -1) {
+ std::filesystem::path path(filePath);
+
+ std::filesystem::create_directories(path.parent_path());
+
std::ofstream ofs(filePath);
+
if (ofs.is_open())
{
try
@@ -120,7 +125,7 @@ struct StrandSim
std::vector ls;
float m0 = 1;
float m1 = 1000;
- params.outPath = "C:\\Data\\Test4_20Verts_30degree_withSkip_stiffness1e8";
+ params.outPath = "Test4_20Verts_30degree_withSkip_stiffness1e8"; // this is a multi-platform toy app, let the files land where they do
std::vector ms;
@@ -159,7 +164,7 @@ struct StrandSim
bool addSkipSpring = true;
float skipSpringStrength = 100;
float tanAngle = 0.57735f; // 30 deg
- params.outPath = "C:\\Data\\Test4_20Verts_30degree_withSkip_stiffness1e8";
+ params.outPath = "Test4_20Verts_30degree_withSkip_stiffness1e8"; // this is a multi-platform toy app, let the files land where they do
params.useAcceleration = false;
params.accelerationRho = 0.5;