{"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/extrudenet-unsupervised-inverse-sketch-and","title":"ExtrudeNet: Unsupervised Inverse Sketch-and-Extrude for Shape Parsing","arxiv_id":"2209.15632","date":"2022-09-30","proceeding":null,"authors":["Daxuan Ren","Jianmin Zheng","Jianfei Cai","Jiatong Li","Junzhe Zhang"],"abstract":"Sketch-and-extrude is a common and intuitive modeling process in computer aided design. This paper studies the problem of learning the shape given in the form of point clouds by inverse sketch-and-extrude. We present ExtrudeNet, an unsupervised end-to-end network for discovering sketch and extrude from point clouds. Behind ExtrudeNet are two new technical components: 1) an effective representation for sketch and extrude, which can model extrusion with freeform sketches and conventional cylinder and box primitives as well; and 2) a numerical method for computing the signed distance field which is used in the network learning. This is the first attempt that uses machine learning to reverse engineer the sketch-and-extrude modeling process of a shape in an unsupervised fashion. ExtrudeNet not only outputs a compact, editable and interpretable representation of the shape that can be seamlessly integrated into modern CAD software, but also aligns with the standard CAD modeling process facilitating various editing applications, which distinguishes our work from existing shape parsing research. Code is released at https://github.com/kimren227/ExtrudeNet.","url_abs":"https://arxiv.org/abs/2209.15632v1","url_pdf":"https://arxiv.org/pdf/2209.15632v1.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":"extrudenet-unsupervised-inverse-sketch-and","repo_url":"https://github.com/kimren227/extrudenet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"cad-reconstruction","task_name":"CAD Reconstruction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/cad-reconstruction-on-deepcad","task":"CAD Reconstruction","dataset":"DeepCAD","model":"ExtrudeNet","rank_in_archive_order":11,"of":11,"metrics":{"Camfer Distance (median)":"3.37","IoU":"40.3"},"uses_additional_data":false},{"leaderboard":"/sota/cad-reconstruction-on-fusion-360-gallery","task":"CAD Reconstruction","dataset":"Fusion 360 Gallery","model":"ExtrudeNet","rank_in_archive_order":11,"of":11,"metrics":{"Chamfer Distance (median)":"4.95","IoU":"37.3"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2209.15632","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2209.15632"}},"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/kimren227/extrudenet","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/kimren227/ExtrudeNet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"unverified":1},"by_repo_kind":{"official":{"samples":3,"ran":2,"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":"a0998fa05207e3e1","entry":"CSGStump","repo":"kimren227/ExtrudeNet","repo_kind":"official","path":"model.py","file_url":"https://github.com/kimren227/ExtrudeNet/blob/HEAD/model.py","link_basis":"first_harvest_node","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":"a0998fa05207e3e1"}},{"code_sha256_prefix":"dcd0963c0312771a","entry":"CSGStumpPrimitiveHead","repo":"kimren227/ExtrudeNet","repo_kind":"official","path":"model.py","file_url":"https://github.com/kimren227/ExtrudeNet/blob/HEAD/model.py","link_basis":"first_harvest_node","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":"dcd0963c0312771a"}},{"code_sha256_prefix":"e8450afc4c59cb8a","entry":"ExtrudeNet","repo":"kimren227/ExtrudeNet","repo_kind":"official","path":"model.py","file_url":"https://github.com/kimren227/ExtrudeNet/blob/HEAD/model.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":"e8450afc4c59cb8a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}