{"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/craftsman-high-fidelity-mesh-generation-with","title":"CraftsMan3D: High-fidelity Mesh Generation with 3D Native Generation and Interactive Geometry Refiner","arxiv_id":"2405.14979","date":"2024-05-23","proceeding":null,"authors":["Weiyu Li","Jiarui Liu","Hongyu Yan","Rui Chen","Yixun Liang","Xuelin Chen","Ping Tan","Xiaoxiao Long"],"abstract":"We present a novel generative 3D modeling system, coined CraftsMan, which can generate high-fidelity 3D geometries with highly varied shapes, regular mesh topologies, and detailed surfaces, and, notably, allows for refining the geometry in an interactive manner. Despite the significant advancements in 3D generation, existing methods still struggle with lengthy optimization processes, irregular mesh topologies, noisy surfaces, and difficulties in accommodating user edits, consequently impeding their widespread adoption and implementation in 3D modeling software. Our work is inspired by the craftsman, who usually roughs out the holistic figure of the work first and elaborates the surface details subsequently. Specifically, we employ a 3D native diffusion model, which operates on latent space learned from latent set-based 3D representations, to generate coarse geometries with regular mesh topology in seconds. In particular, this process takes as input a text prompt or a reference image and leverages a powerful multi-view (MV) diffusion model to generate multiple views of the coarse geometry, which are fed into our MV-conditioned 3D diffusion model for generating the 3D geometry, significantly improving robustness and generalizability. Following that, a normal-based geometry refiner is used to significantly enhance the surface details. This refinement can be performed automatically, or interactively with user-supplied edits. Extensive experiments demonstrate that our method achieves high efficacy in producing superior-quality 3D assets compared to existing methods. HomePage: https://craftsman3d.github.io/, Code: https://github.com/wyysf-98/CraftsMan","url_abs":"https://arxiv.org/abs/2405.14979v4","url_pdf":"https://arxiv.org/pdf/2405.14979v4.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":"craftsman-high-fidelity-mesh-generation-with","repo_url":"https://github.com/wyysf-98/craftsman","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok"}},{"paper_slug":"craftsman-high-fidelity-mesh-generation-with","repo_url":"https://github.com/wyysf-98/craftsman3d","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}},{"paper_slug":"craftsman-high-fidelity-mesh-generation-with","repo_url":"https://github.com/Seed3D/Dora","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-generation","task_name":"3D Generation"},{"task_slug":"3d-geometry","task_name":"3D geometry"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.14979","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.14979"}},"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/wyysf-98/craftsman","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/wyysf-98/craftsman3d","reach":{"status":"gone","observed_at":"2026-09-17","how":"tree_404+repo_404"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Seed3D/Dora","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":2,"ran_draft_wrong":1,"ran_honours":1,"unverified":2},"by_repo_kind":{"official":{"samples":6,"ran":4,"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":6,"samples":[{"code_sha256_prefix":"456eeade4275ae9d","entry":"dot","repo":"wyysf-98/craftsman","repo_kind":"official","path":"craftsman/models/geometry/utils.py","file_url":"https://github.com/wyysf-98/craftsman/blob/HEAD/craftsman/models/geometry/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"456eeade4275ae9d"}},{"code_sha256_prefix":"eb8518e9fda0464c","entry":"extract_near_surface_volume_fn","repo":"wyysf-98/craftsman","repo_kind":"official","path":"craftsman/models/autoencoders/volume_decoders.py","file_url":"https://github.com/wyysf-98/craftsman/blob/HEAD/craftsman/models/autoencoders/volume_decoders.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eb8518e9fda0464c"}},{"code_sha256_prefix":"49ac4006bc03e709","entry":"generate_dense_grid_points","repo":"wyysf-98/craftsman","repo_kind":"official","path":"craftsman/models/autoencoders/volume_decoders.py","file_url":"https://github.com/wyysf-98/craftsman/blob/HEAD/craftsman/models/autoencoders/volume_decoders.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"49ac4006bc03e709"}},{"code_sha256_prefix":"a5e3d9618aac5205","entry":"t2i_modulate","repo":"wyysf-98/craftsman","repo_kind":"official","path":"craftsman/models/denoisers/utils.py","file_url":"https://github.com/wyysf-98/craftsman/blob/HEAD/craftsman/models/denoisers/utils.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a5e3d9618aac5205"}},{"code_sha256_prefix":"20336f4981288332","entry":"auto_grad_checkpoint","repo":"wyysf-98/craftsman","repo_kind":"official","path":"craftsman/models/denoisers/utils.py","file_url":"https://github.com/wyysf-98/craftsman/blob/HEAD/craftsman/models/denoisers/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"20336f4981288332"}},{"code_sha256_prefix":"9e2fda9b596dfbd6","entry":"get_embedder","repo":"wyysf-98/craftsman","repo_kind":"official","path":"craftsman/models/autoencoders/dora_autoencoder.py","file_url":"https://github.com/wyysf-98/craftsman/blob/HEAD/craftsman/models/autoencoders/dora_autoencoder.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9e2fda9b596dfbd6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}