{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/subdivision-based-mesh-convolution-networks","title":"Subdivision-Based Mesh Convolution Networks","arxiv_id":"2106.02285","date":"2021-06-04","proceeding":null,"authors":["Shi-Min Hu","Zheng-Ning Liu","Meng-Hao Guo","Jun-Xiong Cai","Jiahui Huang","Tai-Jiang Mu","Ralph R. Martin"],"abstract":"Convolutional neural networks (CNNs) have made great breakthroughs in 2D computer vision. However, their irregular structure makes it hard to harness the potential of CNNs directly on meshes. A subdivision surface provides a hierarchical multi-resolution structure, in which each face in a closed 2-manifold triangle mesh is exactly adjacent to three faces. Motivated by these two observations, this paper presents SubdivNet, an innovative and versatile CNN framework for 3D triangle meshes with Loop subdivision sequence connectivity. Making an analogy between mesh faces and pixels in a 2D image allows us to present a mesh convolution operator to aggregate local features from nearby faces. By exploiting face neighborhoods, this convolution can support standard 2D convolutional network concepts, e.g. variable kernel size, stride, and dilation. Based on the multi-resolution hierarchy, we make use of pooling layers which uniformly merge four faces into one and an upsampling method which splits one face into four. Thereby, many popular 2D CNN architectures can be easily adapted to process 3D meshes. Meshes with arbitrary connectivity can be remeshed to have Loop subdivision sequence connectivity via self-parameterization, making SubdivNet a general approach. Extensive evaluation and various applications demonstrate SubdivNet's effectiveness and efficiency.","url_abs":"https://arxiv.org/abs/2106.02285v2","url_pdf":"https://arxiv.org/pdf/2106.02285v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"subdivision-based-mesh-convolution-networks","repo_url":"https://github.com/lzhengning/SubdivNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"3d-classification","task_name":"3D Classification"},{"task_slug":"pose-estimation","task_name":"Pose Estimation"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/pose-estimation-on-salsa","task":"Pose Estimation","dataset":"SALSA","model":"SubdivNet","rank_in_archive_order":1,"of":4,"metrics":{"Accuracy":"93"},"uses_additional_data":false},{"leaderboard":"/sota/pose-estimation-on-salsa","task":"Pose Estimation","dataset":"SALSA","model":"MeshCNN (Hanocka et al., 2019)","rank_in_archive_order":2,"of":4,"metrics":{"Accuracy":"87.7"},"uses_additional_data":false},{"leaderboard":"/sota/pose-estimation-on-salsa","task":"Pose Estimation","dataset":"SALSA","model":"Pointnet++ (Qi et al., [2017b])","rank_in_archive_order":3,"of":4,"metrics":{"Accuracy":"82.3"},"uses_additional_data":false},{"leaderboard":"/sota/pose-estimation-on-salsa","task":"Pose Estimation","dataset":"SALSA","model":"Pointnet (Qi et al., [2017a])","rank_in_archive_order":4,"of":4,"metrics":{"Accuracy":"74.7"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.02285","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.02285"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lzhengning/SubdivNet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":5},"by_repo_kind":{"official":{"samples":5,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"7381832330dc7360","entry":"augment_points","repo":"lzhengning/SubdivNet","repo_kind":"official","path":"subdivnet/dataset.py","file_url":"https://github.com/lzhengning/SubdivNet/blob/HEAD/subdivnet/dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7381832330dc7360"}},{"code_sha256_prefix":"1f1b29c5a2a2bfaf","entry":"check_duplicated","repo":"lzhengning/SubdivNet","repo_kind":"official","path":"maps/utils.py","file_url":"https://github.com/lzhengning/SubdivNet/blob/HEAD/maps/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1f1b29c5a2a2bfaf"}},{"code_sha256_prefix":"a00abf6e8641d97b","entry":"from_barycenteric","repo":"lzhengning/SubdivNet","repo_kind":"official","path":"maps/geometry.py","file_url":"https://github.com/lzhengning/SubdivNet/blob/HEAD/maps/geometry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a00abf6e8641d97b"}},{"code_sha256_prefix":"502bfe3f4b0eed0c","entry":"maximal_independent_set","repo":"lzhengning/SubdivNet","repo_kind":"official","path":"maps/utils.py","file_url":"https://github.com/lzhengning/SubdivNet/blob/HEAD/maps/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"502bfe3f4b0eed0c"}},{"code_sha256_prefix":"8d210223ae02689c","entry":"to_barycentric","repo":"lzhengning/SubdivNet","repo_kind":"official","path":"maps/geometry.py","file_url":"https://github.com/lzhengning/SubdivNet/blob/HEAD/maps/geometry.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8d210223ae02689c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}