diffCheckOrg / diffCheck

diffCheck is a CAD-integrated tool for evaluating digital timber fabrication processes.
GNU General Public License v3.0
1 stars 1 forks source link
3d-computer-vision benchmark digital-fabrication point-cloud-processing timber-construction

Roadmap

gantt
    dateFormat  YYYY-MM-DD
    title       diffCheck - general overview
    excludes    weekends

    section Publication
    Abstract edition                    :active, absed, 2024-03-01, 2024-03-15
    Submission abstract ICSA            :milestone, icsaabs, 2024-03-15, 0d
    Paper edition                       :paperd, 2024-10-01, 2024-10-30
    Submission paper ICSA               :milestone, icsapap, 2024-10-30, 0d

    section Code development
    Backend development                 :backenddev, after icsaabs, 6w
    Rhino/Grasshopper integration       :rhghinteg, after backenddev, 6w
    Documentation & Interface           :docuint, after fabar, 3w

    section Prototype testing
    Fabrication of AR Prototype         :crit, fabar, 2024-07-01, 2024-08-30
    Fabrication of CNC Prototype        :crit, fabcnc, 2024-07-01, 2024-08-30
    Fabrication of Robot Prototype      :crit, fabrob, 2024-07-01, 2024-08-30
    Data collection and evaluation      :dataeval, after fabrob, 4w

3rd party libraries

The project uses the following 3rd party libraries:

How to build c++ project

To build and test the project, follow the following steps:

cmake/config.bat
cmake/build.bat
./build/bin/Release/diffCheckApp.exe <-- for prototyping in c++

Prototype diffCheck in C++

To prototype: 1) add a header/source file in src/diffCheck and include the header in diffCheck.hh interface 2) test it in diffCheckApp (the cmake will output an executable in bin)

See the CONTRIBUTING.md for more information on how to prototype with diffCheck (code guidelines, visualizer, utilities, etc).

Component roadmap

From the 3/5/2024 meeting, the architecture of the different grasshopper components was discussed as following:

stateDiagram

classDef notAComponent fill:green
    (brep):::notAComponent --> global_registration&ICP : [brep]
    State diffCheck{
        State for_additive_and_substractive {
            PLY_loader --> global_registration&ICP : pointcloud
            global_registration&ICP --> semantic_segmentation : pointcloud
            global_registration&ICP --> semantic_segmentation : [brep]
            semantic_segmentation --> error_estimation : [pointcloud]
            semantic_segmentation --> error_estimation : [brep]
            semantic_segmentation --> error_visualisation : [pointcloud]
            semantic_segmentation --> error_visualisation : [brep]
            semantic_segmentation --> per_joint_refinement : [pointcloud]
            semantic_segmentation --> per_joint_refinement : [brep]
            error_estimation --> error_visualisation : csv   
            per_joint_refinement --> error_estimation : [[pointcloud]]
            per_joint_refinement --> error_estimation : [brep]
            }
        State for_substractive {
                per_joint_refinement
            }
    }

Note : [] = list