{"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/primal-dual-mesh-convolutional-neural","title":"Primal-Dual Mesh Convolutional Neural Networks","arxiv_id":"2010.12455","date":"2020-10-23","proceeding":"NeurIPS 2020 12","authors":["Francesco Milano","Antonio Loquercio","Antoni Rosinol","Davide Scaramuzza","Luca Carlone"],"abstract":"Recent works in geometric deep learning have introduced neural networks that allow performing inference tasks on three-dimensional geometric data by defining convolution, and sometimes pooling, operations on triangle meshes. These methods, however, either consider the input mesh as a graph, and do not exploit specific geometric properties of meshes for feature aggregation and downsampling, or are specialized for meshes, but rely on a rigid definition of convolution that does not properly capture the local topology of the mesh. We propose a method that combines the advantages of both types of approaches, while addressing their limitations: we extend a primal-dual framework drawn from the graph-neural-network literature to triangle meshes, and define convolutions on two types of graphs constructed from an input mesh. Our method takes features for both edges and faces of a 3D mesh as input and dynamically aggregates them using an attention mechanism. At the same time, we introduce a pooling operation with a precise geometric interpretation, that allows handling variations in the mesh connectivity by clustering mesh faces in a task-driven fashion. We provide theoretical insights of our approach using tools from the mesh-simplification literature. In addition, we validate experimentally our method in the tasks of shape classification and shape segmentation, where we obtain comparable or superior performance to the state of the art.","url_abs":"https://arxiv.org/abs/2010.12455v1","url_pdf":"https://arxiv.org/pdf/2010.12455v1.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":"primal-dual-mesh-convolutional-neural","repo_url":"https://github.com/MIT-SPARK/PD-MeshNet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2010.12455","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2010.12455"}},"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":"deterministic:regex_extraction","url":"https://github.com/MIT-SPARK/PD-MeshNet","reach":null}],"summary":{"unverified":3},"by_repo_kind":{"official":{"samples":3,"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":"8d53789e2cad9e76","entry":"DualPrimalConv","repo":"MIT-SPARK/PD-MeshNet","repo_kind":"official","path":"pd_mesh_net/nn/conv/dual_primal_conv.py","file_url":"https://github.com/MIT-SPARK/PD-MeshNet/blob/HEAD/pd_mesh_net/nn/conv/dual_primal_conv.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":"8d53789e2cad9e76"}},{"code_sha256_prefix":"641d7afa1895132e","entry":"GATConvNoSelfLoops","repo":"MIT-SPARK/PD-MeshNet","repo_kind":"official","path":"pd_mesh_net/nn/conv/dual_primal_conv.py","file_url":"https://github.com/MIT-SPARK/PD-MeshNet/blob/HEAD/pd_mesh_net/nn/conv/dual_primal_conv.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":"641d7afa1895132e"}},{"code_sha256_prefix":"78e0ad4fcb337ae3","entry":"PrimalConv","repo":"MIT-SPARK/PD-MeshNet","repo_kind":"official","path":"pd_mesh_net/nn/conv/dual_primal_conv.py","file_url":"https://github.com/MIT-SPARK/PD-MeshNet/blob/HEAD/pd_mesh_net/nn/conv/dual_primal_conv.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":"78e0ad4fcb337ae3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}