{"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/supervised-fitting-of-geometric-primitives-to","title":"Supervised Fitting of Geometric Primitives to 3D Point Clouds","arxiv_id":"1811.08988","date":"2018-11-22","proceeding":"CVPR 2019 6","authors":["Lingxiao Li","Minhyuk Sung","Anastasia Dubrovina","Li Yi","Leonidas Guibas"],"abstract":"Fitting geometric primitives to 3D point cloud data bridges a gap between low-level digitized 3D data and high-level structural information on the underlying 3D shapes. As such, it enables many downstream applications in 3D data processing. For a long time, RANSAC-based methods have been the gold standard for such primitive fitting problems, but they require careful per-input parameter tuning and thus do not scale well for large datasets with diverse shapes. In this work, we introduce Supervised Primitive Fitting Network (SPFN), an end-to-end neural network that can robustly detect a varying number of primitives at different scales without any user control. The network is supervised using ground truth primitive surfaces and primitive membership for the input points. Instead of directly predicting the primitives, our architecture first predicts per-point properties and then uses a differential model estimation module to compute the primitive type and parameters. We evaluate our approach on a novel benchmark of ANSI 3D mechanical component models and demonstrate a significant improvement over both the state-of-the-art RANSAC-based methods and the direct neural prediction.","url_abs":"https://arxiv.org/abs/1811.08988v4","url_pdf":"https://arxiv.org/pdf/1811.08988v4.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":"supervised-fitting-of-geometric-primitives-to","repo_url":"https://github.com/csimstu2/SPFN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"supervised-fitting-of-geometric-primitives-to","repo_url":"https://github.com/lingxiaoli94/SPFN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"shape-representation-of-3d-point-clouds","task_name":"Shape Representation Of 3D Point Clouds"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1811.08988","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1811.08988"}},"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/lingxiaoli94/SPFN","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/csimstu2/SPFN","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":7},"by_repo_kind":{"listed":{"samples":7,"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":"0bb257461f31944c","entry":"adaptor_P_gt_pairwise","repo":"csimstu2/SPFN","repo_kind":"listed","path":"spfn/lib/fitters/adaptors.py","file_url":"https://github.com/csimstu2/SPFN/blob/HEAD/spfn/lib/fitters/adaptors.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":"0bb257461f31944c"}},{"code_sha256_prefix":"e1231d173fdf60e6","entry":"adaptor_pairwise","repo":"csimstu2/SPFN","repo_kind":"listed","path":"spfn/lib/fitters/adaptors.py","file_url":"https://github.com/csimstu2/SPFN/blob/HEAD/spfn/lib/fitters/adaptors.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":"e1231d173fdf60e6"}},{"code_sha256_prefix":"fd7152d1a898bab0","entry":"load_single_bundle","repo":"csimstu2/SPFN","repo_kind":"listed","path":"spfn/lib/bundle_io.py","file_url":"https://github.com/csimstu2/SPFN/blob/HEAD/spfn/lib/bundle_io.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":"fd7152d1a898bab0"}},{"code_sha256_prefix":"14c87b9417755b4b","entry":"make_rand_unit_vector","repo":"csimstu2/SPFN","repo_kind":"listed","path":"spfn/lib/primitives.py","file_url":"https://github.com/csimstu2/SPFN/blob/HEAD/spfn/lib/primitives.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":"14c87b9417755b4b"}},{"code_sha256_prefix":"dc28d02cc0a5b207","entry":"nn_filter_W","repo":"csimstu2/SPFN","repo_kind":"listed","path":"spfn/lib/evaluation.py","file_url":"https://github.com/csimstu2/SPFN/blob/HEAD/spfn/lib/evaluation.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":"dc28d02cc0a5b207"}},{"code_sha256_prefix":"54a81e4dabf13648","entry":"normalized","repo":"csimstu2/SPFN","repo_kind":"listed","path":"spfn/lib/primitives.py","file_url":"https://github.com/csimstu2/SPFN/blob/HEAD/spfn/lib/primitives.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":"54a81e4dabf13648"}},{"code_sha256_prefix":"36bf6a2af25946b6","entry":"primitive_name_to_id","repo":"csimstu2/SPFN","repo_kind":"listed","path":"spfn/lib/fitter_factory.py","file_url":"https://github.com/csimstu2/SPFN/blob/HEAD/spfn/lib/fitter_factory.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":"36bf6a2af25946b6"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}