[
    {
        "Variant name": "main",
        "Reviewer name": "Julie Digne <julie.digne@liris.cnrs.fr>",
        "Is master variant (boolean)": true,
        "Is variant deprecated (boolean)": false,
        "Title": "The layer laboratory: a calculus for additive and subtractive composition of anisotropic surface reflectance",
        "DOI": "10.1145/3197517.3201321",
        "Year": 2018,
        "ACM Keywords": [
            "Reflectance modeling"
        ],
        "Topic {Rendering, Animation and Simulation, Geometry, Images, Virtual Reality, Fabrication}": "Rendering",
        "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 URL": "https://rgl.s3.eu-central-1.amazonaws.com/media/papers/Zeltner2018Layer_1.pdf",
        "PDF on Arxiv or any openarchive initiatives (boolean)": false,
        "Arxiv/OAI page URL": "",
        "Project URL": "https://rgl.epfl.ch/publications/Zeltner2018Layer",
        "Code available (boolean)": true,
        "If code not available, pseudo-code available (boolean)": false,
        "If pseudo-code, could the paper be trivially implemented? {0..4}": "",
        "Code URL": "https://rgl.s3.eu-central-1.amazonaws.com/media/papers/Zeltner2018Layer_2.zip",
        "Code URL2": "https://rgl.s3.eu-central-1.amazonaws.com/media/papers/Zeltner2018Layer_1.zip",
        "MD5 sum (for archives)": "744fa17a495a639abbf8836d2bd5db25",
        "git/hg/svn commit hash or revision number": "",
        "MD5 sum (for archives) URL2": "",
        "git/hg/svn commit hash or revision number URL2": "",
        "Software Heritage permalink": "",
        "Software type {Code, Binary, Partial Code}": "Code",
        "Code License (if any)": "unspecified",
        "Are the code authors explicit? (boolean)": false,
        "Build/Configure mechanism": "CMakeLists, Not applicable (python, Matlab..)",
        "Dependencies": "umfpack / sparseqr/ libvips / jupyter",
        "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)": false,
        "If not able to perform a test, was it due to missing hardware/software? (boolean)": false,
        "Documentation score {0=NA,1,2,3}": 1,
        "Dependencies score {0=NA, 1,2,3,4,5}": 5,
        "Build/configure score {0=NA, 1,2,3,4,5}": 1,
        "Fixing bugs score (if any) {0=NA, 1,2,3,4,5}": 1,
        "Replicate paper results score {0=NA, 1,2,3,4,5}": 5,
        "Adaptability score to other contexts {0=NA, 1,2,3,4,5}": 3,
        "Time spent for the test (code download to first successful run, [0,10], 10min slots, 100min max)": 10,
        "Operating system for the test": "Linux",
        "Build instructions/comments": "Linux : compiled successfully after several major changes:\n\n** File mitsuba-layers/src/liblayer/microfacet.cpp: because of a delete use of = for a std::bind, I changed lines 602 forward to: \n    auto const &integ1 = std::bind(&microfacet_fresnel, mu_o, mu_i, 0.0, std::placeholders::_1, alpha_u, alpha_v, eta_);\n    auto const &integ2 = std::bind(&microfacet_fresnel_no_additional_factors, mu_o, mu_i, 0.0, std::placeholders::_1, alpha_u, alpha_v, eta_);\n    auto integrand = &integ1;\n    if (fresnel_only) { integrand = &integ2;  }\n\n** File mitsuba-layers/include/mitsuba/layer/sparse.h add #include<memory>\n** File mitsuba-layers/ext/enoki/include/enoki/alloc.h add #include<cstring>\n** File mitsuba-layers/CMakeLists.txt : add  -fpermissive to CMAKE_CXX_FLAGS\n\n** Files mitsuba-layers/ext/openexr/CMakeLists.txt an nori/ext/openexr/CMakeLists.txt\nadd_custom_target(CopyIlmBaseLibs\n  COMMAND ${CMAKE_COMMAND} -E copy_directory\n  ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Half/\n  ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/\n  COMMAND ${CMAKE_COMMAND} -E copy_directory\n  ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/IlmThread/\n  ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/\n  COMMAND ${CMAKE_COMMAND} -E copy_directory\n  ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Iex/\n  ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/\n  COMMAND ${CMAKE_COMMAND} -E copy_directory\n  ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Imath/\n  ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/\n)\ninstead of \nadd_custom_target(CopyIlmBaseLibs\nCOMMAND ${CMAKE_COMMAND} -E copy_directory\n  ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Half/$<CONFIGURATION>\n  ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>\n  COMMAND ${CMAKE_COMMAND} -E copy_directory\n  ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/IlmThread/$<CONFIGURATION>\n  ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>\n  COMMAND ${CMAKE_COMMAND} -E copy_directory\n  ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Iex/$<CONFIGURATION>\n  ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>\n  COMMAND ${CMAKE_COMMAND} -E copy_directory\n  ${CMAKE_CURRENT_BINARY_DIR}/IlmBase/Imath/$<CONFIGURATION>\n  ${CMAKE_CURRENT_BINARY_DIR}/OpenEXR/IlmImf/$<CONFIGURATION>\n)\n\n** file nori-layers/ext/tbb/include/tbb/pipeline.h\nReplace line 328:\ntemplate<typename T> struct tbb_trivially_copyable { enum { value = std::has_trivial_copy_constructor<T>::value }; };\nby:\n template<typename T> struct tbb_trivially_copyable { enum { value = std::is_trivially_copy_constructible<T>::value }; };\n\n\n\nHowever none of the jupyter notebooks worked due to a problem with the version of prompt_toolkit. jupyter notebooks to replicate the results are provided. I could turn some of them into python scripts, but there were a lot of compatibility issues with matplotlib. Also don't forget to source setpath.sh to be able to import the compiled mitsuba in python.\n\nMacOS Attempt: The paper provides the code and data to reproduce the paper results (C++ code and jupyter notebooks to reproduce the figures). Unfortunately, the mitsuba-layers and nori renderer fail to compile on linux and macOS. E.g.:\n  - mitsuba-layers (on macOS): issue with tbb\n     [  1%] Built target mitsuba-layer-obj\n     [  1%] Built target tbb_def_files\n     [  1%] Linking CXX shared library libtbb.dylib\n     clang: error: no such file or directory: 'and'\n     clang: error: no such file or directory: 'data/mitsuba-layers/b1/ext_build/tbb/tbb.def'\n  - nori : Thread issue at cmake level.",
        "Misc. comments": "",
        "Software language": "C/C++, Python"
    }
]