{"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/meshgpt-generating-triangle-meshes-with","title":"MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers","arxiv_id":"2311.15475","date":"2023-11-27","proceeding":"CVPR 2024 1","authors":["Yawar Siddiqui","Antonio Alliegro","Alexey Artemov","Tatiana Tommasi","Daniele Sirigatti","Vladislav Rosov","Angela Dai","Matthias Nießner"],"abstract":"We introduce MeshGPT, a new approach for generating triangle meshes that reflects the compactness typical of artist-created meshes, in contrast to dense triangle meshes extracted by iso-surfacing methods from neural fields. Inspired by recent advances in powerful large language models, we adopt a sequence-based approach to autoregressively generate triangle meshes as sequences of triangles. We first learn a vocabulary of latent quantized embeddings, using graph convolutions, which inform these embeddings of the local mesh geometry and topology. These embeddings are sequenced and decoded into triangles by a decoder, ensuring that they can effectively reconstruct the mesh. A transformer is then trained on this learned vocabulary to predict the index of the next embedding given previous embeddings. Once trained, our model can be autoregressively sampled to generate new triangle meshes, directly generating compact meshes with sharp edges, more closely imitating the efficient triangulation patterns of human-crafted meshes. MeshGPT demonstrates a notable improvement over state of the art mesh generation methods, with a 9% increase in shape coverage and a 30-point enhancement in FID scores across various categories.","url_abs":"https://arxiv.org/abs/2311.15475v1","url_pdf":"https://arxiv.org/pdf/2311.15475v1.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":"meshgpt-generating-triangle-meshes-with","repo_url":"https://github.com/MarcusLoppe/meshgpt-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"meshgpt-generating-triangle-meshes-with","repo_url":"https://github.com/lucidrains/meshgpt-pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"decoder","task_name":"Decoder"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.15475","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.15475"}},"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/MarcusLoppe/meshgpt-pytorch","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lucidrains/meshgpt-pytorch","reach":null}],"summary":{"ran_violates":4,"ran_honours":1,"unverified":3},"by_repo_kind":{"listed":{"samples":8,"ran":5,"repositories":2}},"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":"99b3563ebc6734ad","entry":"default","repo":"MarcusLoppe/meshgpt-pytorch","repo_kind":"listed","path":"meshgpt_pytorch/meshgpt_pytorch.py","file_url":"https://github.com/MarcusLoppe/meshgpt-pytorch/blob/HEAD/meshgpt_pytorch/meshgpt_pytorch.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"99b3563ebc6734ad"}},{"code_sha256_prefix":"f912c209e9c899ca","entry":"divisible_by","repo":"MarcusLoppe/meshgpt-pytorch","repo_kind":"listed","path":"meshgpt_pytorch/trainer.py","file_url":"https://github.com/MarcusLoppe/meshgpt-pytorch/blob/HEAD/meshgpt_pytorch/trainer.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f912c209e9c899ca"}},{"code_sha256_prefix":"b7c3487f192e31b7","entry":"exists","repo":"MarcusLoppe/meshgpt-pytorch","repo_kind":"listed","path":"meshgpt_pytorch/data.py","file_url":"https://github.com/MarcusLoppe/meshgpt-pytorch/blob/HEAD/meshgpt_pytorch/data.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b7c3487f192e31b7"}},{"code_sha256_prefix":"0ff658860f6a6e4f","entry":"first","repo":"lucidrains/meshgpt-pytorch","repo_kind":"listed","path":"meshgpt_pytorch/meshgpt_pytorch.py","file_url":"https://github.com/lucidrains/meshgpt-pytorch/blob/HEAD/meshgpt_pytorch/meshgpt_pytorch.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0ff658860f6a6e4f"}},{"code_sha256_prefix":"f3232418205f7cbd","entry":"identity","repo":"MarcusLoppe/meshgpt-pytorch","repo_kind":"listed","path":"meshgpt_pytorch/data.py","file_url":"https://github.com/MarcusLoppe/meshgpt-pytorch/blob/HEAD/meshgpt_pytorch/data.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f3232418205f7cbd"}},{"code_sha256_prefix":"360032808d3d3b2a","entry":"always","repo":"MarcusLoppe/meshgpt-pytorch","repo_kind":"listed","path":"meshgpt_pytorch/typing.py","file_url":"https://github.com/MarcusLoppe/meshgpt-pytorch/blob/HEAD/meshgpt_pytorch/typing.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":"360032808d3d3b2a"}},{"code_sha256_prefix":"b572240c2b17cf77","entry":"get_angle","repo":"MarcusLoppe/meshgpt-pytorch","repo_kind":"listed","path":"meshgpt_pytorch/mesh_render.py","file_url":"https://github.com/MarcusLoppe/meshgpt-pytorch/blob/HEAD/meshgpt_pytorch/mesh_render.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":"b572240c2b17cf77"}},{"code_sha256_prefix":"3ee8c79584a2c46a","entry":"orient_triangle_upward","repo":"MarcusLoppe/meshgpt-pytorch","repo_kind":"listed","path":"meshgpt_pytorch/mesh_render.py","file_url":"https://github.com/MarcusLoppe/meshgpt-pytorch/blob/HEAD/meshgpt_pytorch/mesh_render.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":"3ee8c79584a2c46a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}