{"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/meshdiffusion-score-based-generative-3d-mesh","title":"MeshDiffusion: Score-based Generative 3D Mesh Modeling","arxiv_id":"2303.08133","date":"2023-03-14","proceeding":null,"authors":["Zhen Liu","Yao Feng","Michael J. Black","Derek Nowrouzezahrai","Liam Paull","Weiyang Liu"],"abstract":"We consider the task of generating realistic 3D shapes, which is useful for a variety of applications such as automatic scene generation and physical simulation. Compared to other 3D representations like voxels and point clouds, meshes are more desirable in practice, because (1) they enable easy and arbitrary manipulation of shapes for relighting and simulation, and (2) they can fully leverage the power of modern graphics pipelines which are mostly optimized for meshes. Previous scalable methods for generating meshes typically rely on sub-optimal post-processing, and they tend to produce overly-smooth or noisy surfaces without fine-grained geometric details. To overcome these shortcomings, we take advantage of the graph structure of meshes and use a simple yet very effective generative modeling method to generate 3D meshes. Specifically, we represent meshes with deformable tetrahedral grids, and then train a diffusion model on this direct parametrization. We demonstrate the effectiveness of our model on multiple generative tasks.","url_abs":"https://arxiv.org/abs/2303.08133v2","url_pdf":"https://arxiv.org/pdf/2303.08133v2.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":"meshdiffusion-score-based-generative-3d-mesh","repo_url":"https://github.com/lzzcd001/MeshDiffusion","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"scene-generation","task_name":"Scene Generation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2303.08133","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2303.08133"}},"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/crawforddoran/quartet","reach":{"status":"ok","spdx":"ISC"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lzzcd001/MeshDiffusion","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":4,"ran":2,"unverified":8},"by_repo_kind":{"official":{"samples":9,"ran":4,"repositories":1},"community":{"samples":4,"ran":1,"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":1,"samples":[{"code_sha256_prefix":"fe28ada12e5b4764","entry":"construct_template_variables","repo":"GuyTevet/motion-diffusion-model","repo_kind":"community","path":"sample/generate.py","file_url":"https://github.com/GuyTevet/motion-diffusion-model/blob/HEAD/sample/generate.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fe28ada12e5b4764"}},{"code_sha256_prefix":"8ff7c24dade9904c","entry":"get_optimizer","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/losses.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/losses.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8ff7c24dade9904c"}},{"code_sha256_prefix":"366bb8c7035a2fc8","entry":"optimization_manager","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/losses.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/losses.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"366bb8c7035a2fc8"}},{"code_sha256_prefix":"d01b68a634f71551","entry":"parse_comma_separated_list","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"d01b68a634f71551"}},{"code_sha256_prefix":"a05b1d0cf3f508b4","entry":"register_corrector","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/sampling.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/sampling.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a05b1d0cf3f508b4"}},{"code_sha256_prefix":"473066ddf62a075a","entry":"register_predictor","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/sampling.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/sampling.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"473066ddf62a075a"}},{"code_sha256_prefix":"0eba32186c812b63","entry":"evaluate_diversity","repo":"GuyTevet/motion-diffusion-model","repo_kind":"community","path":"eval/eval_humanml.py","file_url":"https://github.com/GuyTevet/motion-diffusion-model/blob/HEAD/eval/eval_humanml.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":"0eba32186c812b63"}},{"code_sha256_prefix":"6a6a115008da7ad3","entry":"evaluate_fid","repo":"GuyTevet/motion-diffusion-model","repo_kind":"community","path":"eval/eval_humanml.py","file_url":"https://github.com/GuyTevet/motion-diffusion-model/blob/HEAD/eval/eval_humanml.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":"6a6a115008da7ad3"}},{"code_sha256_prefix":"0f0a2de622a554fe","entry":"evaluate_matching_score","repo":"GuyTevet/motion-diffusion-model","repo_kind":"community","path":"eval/eval_humanml.py","file_url":"https://github.com/GuyTevet/motion-diffusion-model/blob/HEAD/eval/eval_humanml.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":"0f0a2de622a554fe"}},{"code_sha256_prefix":"765e2b314d64f9a6","entry":"get_ddpm_loss_fn","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/losses.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/losses.py","link_basis":"harvester_set","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":"765e2b314d64f9a6"}},{"code_sha256_prefix":"0bfcb6b2d940e393","entry":"get_div_fn","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/likelihood.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/likelihood.py","link_basis":"harvester_set","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":"0bfcb6b2d940e393"}},{"code_sha256_prefix":"d613d83520b430a7","entry":"get_likelihood_fn","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/likelihood.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/likelihood.py","link_basis":"harvester_set","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":"d613d83520b430a7"}},{"code_sha256_prefix":"a58facb8fe71823a","entry":"get_predictor","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/sampling.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/sampling.py","link_basis":"harvester_set","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":"a58facb8fe71823a"}},{"code_sha256_prefix":"445022320acba4c2","entry":"slerp","repo":"lzzcd001/MeshDiffusion","repo_kind":"official","path":"lib/diffusion/evaler.py","file_url":"https://github.com/lzzcd001/MeshDiffusion/blob/HEAD/lib/diffusion/evaler.py","link_basis":"harvester_set","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":"445022320acba4c2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}