Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

applications_implications

  • Clone with SSH
  • Clone with HTTPS
  • cpp_reps

    C++ project to compare search of different design representations against a target static shape, and later against a physical function.

    Search methods used: nelder mead, gradient descent, EM and CMAES.

    Representations

    • global Representations
      • parametric frep (~ 5 parameters)
      • frep trees (~ 10 parameters)
      • dft (~ 20 parameters)
      • DNN/DMN (~ 100 parameters)
      • distance fields (~ 400 parameters)
      • point cloud/mesh (~ 1,000 parameters)
      • voxel search (~ 10,000 parameters)
    • local
      • morphogenes
      • Arep
      • lsystems

    Representation Comparison

    Comparison Criteria

    • Number of Parameters
    • Expressiveness
    • Convergence rate
    • Best Score

    Target Images

    All target Images are 100*100


    Example Best Results

    • parametric frep (~ 5 parameters)
    • frep trees (~ 10 parameters)
    • dft (~ 20 parameters)
    • DNN/DMN (~ 300 parameters)
      • cmaes

    • sgd

    • distance fields (~ 400 parameters)

    • point cloud/mesh (~ 1,000 parameters)
    • voxel search (~ 10,000 parameters)


    dft progress


    Dependencies

    Similar to cpp_starter:

    • a modern C++ compiler (i.e. one that supports C++17 features, ex. gcc 7+)
    • cmake 3.13 or newer
    • Eigen3 (installable via apt, yum, or homebrew)
    • openCV (installable via apt, yum, or homebrew)
    • json Library: https://github.com/nlohmann/json

    Building

    From the project's root directory,

    mkdir build
    cd build
    cmake ..
    make

    Tips:

    • you can build using multiple threads at once using e.g. make -j4
    • you can specify a specific compiler using cmake .. -DCMAKE_CXX_COMPILER=g++-8
    • for debugging symbols use cmake .. -DCMAKE_BUILD_TYPE=Debug

    Running

    From the build directory,

    cpp_frep/cpp_frep
    cpp_dnn/cpp_dnn
    cpp_dft/cpp_dft
    cpp_voxel/cpp_voxel