[
    {
        "Variant name": "macOS ",
        "Reviewer name": "David Coeurjolly <david.coeurjolly@liris.cnrs.fr>",
        "Is master variant (boolean)": true,
        "Is variant deprecated (boolean)": false,
        "Operating system for the test": "macOS Catalina",
        "Title": "Weaving geodesic foliations",
        "DOI": "10.1145/3306346.3323043",
        "Year": 2019,
        "ACM Keywords": [
            "Mesh geometry models",
            "Continuous simulation",
            "Geometric topology"
        ],
        "Topic {Rendering, Animation and Simulation, Geometry, Images, Virtual Reality, Fabrication}": "Geometry",
        "Co-authors from academia (boolean)": true,
        "Co-authors from industry (boolean)": false,
        "ACM Open Access (boolean)": false,
        "PDF on the authors' webpage / institution (boolean)": true,
        "PDF on Arxiv or any openarchive initiatives (boolean)": false,
        "Arxiv/OAI page URL": "",
        "PDF URL": "https://www.cs.utexas.edu/~josh/papers/weaving.pdf",
        "Project URL": "https://www.cs.utexas.edu/~josh/",
        "Code available (boolean)": true,
        "Code URL": "https://github.com/evouga/RibbonSim",
        "Code URL2": "",
        "MD5 sum (for archives)": "",
        "MD5 sum (for archives) URL2": "",
        "git/hg/svn commit hash or revision number": "273b7e0b463196f184e34bc211df95d2baca63e6",
        "git/hg/svn commit hash or revision number URL2": "",
        "Software Heritage permalink": "https://archive.softwareheritage.org/swh:1:dir:6c09fd1feaa7003303064b096d9c61e94b0fac6b;origin=https://github.com/evouga/RibbonSim;visit=swh:1:snp:62673a6fcbc21d599eb194c642bfab6f267bac40;anchor=swh:1:rev:d7e2040a831a9bccdca1d97c9162fa2670268bc2;path=//",
        "If code not available, pseudo-code available (boolean)": false,
        "If pseudo-code, could the paper be trivially implemented? {0..4}": 0,
        "Software type {Code, Binary, Partial Code}": "Code",
        "Software language": "C++",
        "Code License (if any)": "Mozilla Public License 2.0",
        "Are the code authors explicit? (boolean)": false,
        "Build/Configure mechanism": "cmake",
        "Dependencies": "libigl",
        "Does the software require paywall/proprietary software/material (boolean)?": false,
        "Does the code need data (not examples) (boolean)": false,
        "Nature of the data (pretrained model, LUT...)": "",
        "License of the data": "",
        "Able to perform a replicability test (boolean)": true,
        "If not able to perform a test, was it due to missing hardware/software? (boolean)": false,
        "Documentation score {0=NA,1,2,3}": 2,
        "Dependencies score {0=NA, 1,2,3,4,5}": 5,
        "Build/configure score {0=NA, 1,2,3,4,5}": 5,
        "Fixing bugs score (if any) {0=NA, 1,2,3,4,5}": 4,
        "Replicate paper results score {0=NA, 1,2,3,4,5}": 3,
        "Adaptability score to other contexts {0=NA, 1,2,3,4,5}": 4,
        "Time spent for the test (code download to first successful run, [0,10], 10min slots, 100min max)": 2,
        "Build instructions/comments": "The code is pretty easy to compile. I only have to edit few files to update the LibIGL viewer API (see diff below). From the code, one can optimize some rod structres (many of the strucres presented in the paper are given as examples). However, the direction field part of the paper does not seem to be presented in the code (the author mentions another, no-yet-available, project for the field design.\n\n\ndiff --git a/RodsHook.cpp b/RodsHook.cpp\nindex ae8de98..11c6d49 100644\n--- a/RodsHook.cpp\n+++ b/RodsHook.cpp\n@@ -144,8 +144,8 @@ void RodsHook::drawGUI(igl::opengl::glfw::imgui::ImGuiMenu &menu)\n     menu.callback_draw_custom_window = [&]()\n     {\n         // Define next window position + size\n-        ImGui::SetNextWindowPos(ImVec2(180.f * menu.menu_scaling(), 10), ImGuiSetCond_FirstUseEver);\n-        ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiSetCond_FirstUseEver);\n+      ImGui::SetNextWindowPos(ImVec2(180.f * menu.menu_scaling(), 10), ImGuiCond_FirstUseEver);\n+      ImGui::SetNextWindowSize(ImVec2(0, 0), ImGuiCond_FirstUseEver);\n         ImGui::Begin(\n             \"Stats\", nullptr,\n             ImGuiWindowFlags_NoSavedSettings\n@@ -190,9 +190,9 @@ bool RodsHook::mouseClicked(igl::opengl::glfw::Viewer &viewer, int button)\n     Eigen::Vector3f bc;\n     // Cast a ray in the view direction starting from the mouse position\n     double x = viewer.current_mouse_x;\n-    double y = viewer.core.viewport(3) - viewer.current_mouse_y;\n-    if (igl::unproject_onto_mesh(Eigen::Vector2f(x, y), viewer.core.view,\n-        viewer.core.proj, viewer.core.viewport, this->Q, this->F, fid, bc))\n+    double y = viewer.core().viewport(3) - viewer.current_mouse_y;\n+    if (igl::unproject_onto_mesh(Eigen::Vector2f(x, y), viewer.core().view,\n+        viewer.core().proj, viewer.core().viewport, this->Q, this->F, fid, bc))\n     {\n         int prevId = 0;\n         int nextId = 0;\n@@ -1531,7 +1531,7 @@ void RodsHook::renderRenderGeometry(igl::opengl::glfw::Viewer &viewer)\n         viewer.data().set_points(Eigen::MatrixXd(0, 3), Eigen::MatrixXd(0, 3));\n     }\n\n-    viewer.core.lighting_factor = 0.;\n+    viewer.core().lighting_factor = 0.;\n     viewer.data().set_colors(faceColors);\n\n     if(constraintEdges.rows() > 0)\ndiff --git a/main.cpp b/main.cpp\nindex 39dc709..d99844f 100755\n--- a/main.cpp\n+++ b/main.cpp\n@@ -72,10 +72,10 @@ int main(int argc, char *argv[])\n\n     hook = new RodsHook();\n\n-    viewer.core.background_color = Eigen::Vector4f(.9, .9, .7, 1);\n+    viewer.core().background_color = Eigen::Vector4f(.9, .9, .7, 1);^M\n\n     viewer.data().set_face_based(true);\n-    viewer.core.is_animating = true;\n+    viewer.core().is_animating = true;^M\n     viewer.callback_key_pressed = keyCallback;\n     viewer.callback_mouse_down = mouseDownCallback;\n     viewer.callback_pre_draw = drawCallback;",
        "Misc. comments": ""
    }
]