{"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/tapip3d-tracking-any-point-in-persistent-3d","title":"TAPIP3D: Tracking Any Point in Persistent 3D Geometry","arxiv_id":"2504.14717","date":"2025-04-20","proceeding":null,"authors":["Bowei Zhang","Lei Ke","Adam W. Harley","Katerina Fragkiadaki"],"abstract":"We introduce TAPIP3D, a novel approach for long-term 3D point tracking in monocular RGB and RGB-D videos. TAPIP3D represents videos as camera-stabilized spatio-temporal feature clouds, leveraging depth and camera motion information to lift 2D video features into a 3D world space where camera motion is effectively canceled. TAPIP3D iteratively refines multi-frame 3D motion estimates within this stabilized representation, enabling robust tracking over extended periods. To manage the inherent irregularities of 3D point distributions, we propose a Local Pair Attention mechanism. This 3D contextualization strategy effectively exploits spatial relationships in 3D, forming informative feature neighborhoods for precise 3D trajectory estimation. Our 3D-centric approach significantly outperforms existing 3D point tracking methods and even enhances 2D tracking accuracy compared to conventional 2D pixel trackers when accurate depth is available. It supports inference in both camera coordinates (i.e., unstabilized) and world coordinates, and our results demonstrate that compensating for camera motion improves tracking performance. Our approach replaces the conventional 2D square correlation neighborhoods used in prior 2D and 3D trackers, leading to more robust and accurate results across various 3D point tracking benchmarks. Project Page: https://tapip3d.github.io","url_abs":"https://arxiv.org/abs/2504.14717v1","url_pdf":"https://arxiv.org/pdf/2504.14717v1.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":"tapip3d-tracking-any-point-in-persistent-3d","repo_url":"https://github.com/zbw001/tapip3d","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"3d-geometry","task_name":"3D geometry"},{"task_slug":"depth-and-camera-motion","task_name":"Depth And Camera Motion"},{"task_slug":"point-tracking","task_name":"Point Tracking"}],"methods":[{"method_slug":"attention","method_name":"Attention"},{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2504.14717","atlas_url":"https://app.syntology.ai/?focus=2504.14717","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2504.14717"}},"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/zbw001/tapip3d","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":5,"ran_draft_wrong":2,"unverified":1},"by_repo_kind":{"official":{"samples":8,"ran":7,"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":"5adfd3248a930a41","entry":"MAD","repo":"zbw001/tapip3d","repo_kind":"official","path":"annotation/video_depthanything.py","file_url":"https://github.com/zbw001/tapip3d/blob/HEAD/annotation/video_depthanything.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"5adfd3248a930a41"}},{"code_sha256_prefix":"700e241270a74a17","entry":"distance_to_depth","repo":"zbw001/tapip3d","repo_kind":"official","path":"annotation/video_depthanything.py","file_url":"https://github.com/zbw001/tapip3d/blob/HEAD/annotation/video_depthanything.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"700e241270a74a17"}},{"code_sha256_prefix":"d3e6c8d699e5efde","entry":"dummy_collate","repo":"zbw001/tapip3d","repo_kind":"official","path":"annotation/utils.py","file_url":"https://github.com/zbw001/tapip3d/blob/HEAD/annotation/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d3e6c8d699e5efde"}},{"code_sha256_prefix":"dc2291123a9ff3e9","entry":"load_annotations","repo":"zbw001/tapip3d","repo_kind":"official","path":"annotation/utils.py","file_url":"https://github.com/zbw001/tapip3d/blob/HEAD/annotation/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dc2291123a9ff3e9"}},{"code_sha256_prefix":"2dcb277b78902447","entry":"nanstd","repo":"zbw001/tapip3d","repo_kind":"official","path":"models/point_tracker_3d.py","file_url":"https://github.com/zbw001/tapip3d/blob/HEAD/models/point_tracker_3d.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2dcb277b78902447"}},{"code_sha256_prefix":"3dc94406bdfb6cc2","entry":"nanvar","repo":"zbw001/tapip3d","repo_kind":"official","path":"models/point_tracker_3d.py","file_url":"https://github.com/zbw001/tapip3d/blob/HEAD/models/point_tracker_3d.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3dc94406bdfb6cc2"}},{"code_sha256_prefix":"a29d5d812b39e387","entry":"scale_shift_align_depth","repo":"zbw001/tapip3d","repo_kind":"official","path":"annotation/video_depthanything.py","file_url":"https://github.com/zbw001/tapip3d/blob/HEAD/annotation/video_depthanything.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a29d5d812b39e387"}},{"code_sha256_prefix":"ebac3f54aa56f887","entry":"nanmin","repo":"zbw001/tapip3d","repo_kind":"official","path":"models/point_tracker_3d.py","file_url":"https://github.com/zbw001/tapip3d/blob/HEAD/models/point_tracker_3d.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ebac3f54aa56f887"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}