{"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/revisiting-point-cloud-shape-classification","title":"Revisiting Point Cloud Shape Classification with a Simple and Effective Baseline","arxiv_id":"2106.05304","date":"2021-06-09","proceeding":null,"authors":["Ankit Goyal","Hei Law","Bowei Liu","Alejandro Newell","Jia Deng"],"abstract":"Processing point cloud data is an important component of many real-world systems. As such, a wide variety of point-based approaches have been proposed, reporting steady benchmark improvements over time. We study the key ingredients of this progress and uncover two critical results. First, we find that auxiliary factors like different evaluation schemes, data augmentation strategies, and loss functions, which are independent of the model architecture, make a large difference in performance. The differences are large enough that they obscure the effect of architecture. When these factors are controlled for, PointNet++, a relatively older network, performs competitively with recent methods. Second, a very simple projection-based method, which we refer to as SimpleView, performs surprisingly well. It achieves on par or better results than sophisticated state-of-the-art methods on ModelNet40 while being half the size of PointNet++. It also outperforms state-of-the-art methods on ScanObjectNN, a real-world point cloud benchmark, and demonstrates better cross-dataset generalization. Code is available at https://github.com/princeton-vl/SimpleView.","url_abs":"https://arxiv.org/abs/2106.05304v1","url_pdf":"https://arxiv.org/pdf/2106.05304v1.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":"revisiting-point-cloud-shape-classification","repo_url":"https://github.com/princeton-vl/SimpleView","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"revisiting-point-cloud-shape-classification","repo_url":"https://github.com/axeber01/point-tnt","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"revisiting-point-cloud-shape-classification","repo_url":"https://github.com/jiachens/ModelNet40-C","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"3d-point-cloud-classification","task_name":"3D Point Cloud Classification"},{"task_slug":"point-cloud-classification","task_name":"Point Cloud Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/3d-point-cloud-classification-on-modelnet40","task":"3D Point Cloud Classification","dataset":"ModelNet40","model":"SimpleView-DGCNN","rank_in_archive_order":37,"of":111,"metrics":{"Overall Accuracy":"93.9"},"uses_additional_data":false},{"leaderboard":"/sota/point-cloud-classification-on-pointcloud-c","task":"Point Cloud Classification","dataset":"PointCloud-C","model":"SimpleView","rank_in_archive_order":19,"of":24,"metrics":{"mean Corruption Error (mCE)":"1.047"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2106.05304","atlas_url":"https://app.syntology.ai/?focus=2106.05304","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.05304"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/jiachens/ModelNet40-C","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/axeber01/point-tnt","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/princeton-vl/SimpleView","reach":null}],"summary":{"ran":3,"ran_fixture":1,"unverified":8},"by_repo_kind":{"official":{"samples":9,"ran":1,"repositories":1},"listed":{"samples":3,"ran":3,"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":"15cfb9f4479acd04","entry":"Attention","repo":"axeber01/point-tnt","repo_kind":"listed","path":"model.py","file_url":"https://github.com/axeber01/point-tnt/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"15cfb9f4479acd04"}},{"code_sha256_prefix":"fe12c37bc8cebc08","entry":"Baseline","repo":"axeber01/point-tnt","repo_kind":"listed","path":"model.py","file_url":"https://github.com/axeber01/point-tnt/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fe12c37bc8cebc08"}},{"code_sha256_prefix":"bea49fdbe8f8578a","entry":"FeedForward","repo":"axeber01/point-tnt","repo_kind":"listed","path":"model.py","file_url":"https://github.com/axeber01/point-tnt/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bea49fdbe8f8578a"}},{"code_sha256_prefix":"ca82893aff5e0d2e","entry":"fixed_padding","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"ca82893aff5e0d2e"}},{"code_sha256_prefix":"0aada2a0a966a06e","entry":"Model","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"0aada2a0a966a06e"}},{"code_sha256_prefix":"b941b66d21901b83","entry":"_bottleneck_block_v1","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"b941b66d21901b83"}},{"code_sha256_prefix":"bd2e7dfc294b27b6","entry":"_bottleneck_block_v2","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"bd2e7dfc294b27b6"}},{"code_sha256_prefix":"11702804c488ed55","entry":"_building_block_v1","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"11702804c488ed55"}},{"code_sha256_prefix":"d4516530837fed03","entry":"_building_block_v2","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d4516530837fed03"}},{"code_sha256_prefix":"6cccb6ae78594ebb","entry":"batch_norm","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6cccb6ae78594ebb"}},{"code_sha256_prefix":"5425aca7fe65bb0d","entry":"block_layer","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5425aca7fe65bb0d"}},{"code_sha256_prefix":"a5cb548e4b581359","entry":"conv2d_fixed_padding","repo":"princeton-vl/SimpleView","repo_kind":"official","path":"ScanObjectNN/SimpleView/multi_model.py","file_url":"https://github.com/princeton-vl/SimpleView/blob/HEAD/ScanObjectNN/SimpleView/multi_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"a5cb548e4b581359"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}