{"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/gameformer-game-theoretic-modeling-and","title":"GameFormer: Game-theoretic Modeling and Learning of Transformer-based Interactive Prediction and Planning for Autonomous Driving","arxiv_id":"2303.05760","date":"2023-03-10","proceeding":null,"authors":["Zhiyu Huang","Haochen Liu","Chen Lv"],"abstract":"Autonomous vehicles operating in complex real-world environments require accurate predictions of interactive behaviors between traffic participants. This paper tackles the interaction prediction problem by formulating it with hierarchical game theory and proposing the GameFormer model for its implementation. The model incorporates a Transformer encoder, which effectively models the relationships between scene elements, alongside a novel hierarchical Transformer decoder structure. At each decoding level, the decoder utilizes the prediction outcomes from the previous level, in addition to the shared environmental context, to iteratively refine the interaction process. Moreover, we propose a learning process that regulates an agent's behavior at the current level to respond to other agents' behaviors from the preceding level. Through comprehensive experiments on large-scale real-world driving datasets, we demonstrate the state-of-the-art accuracy of our model on the Waymo interaction prediction task. Additionally, we validate the model's capacity to jointly reason about the motion plan of the ego agent and the behaviors of multiple agents in both open-loop and closed-loop planning tests, outperforming various baseline methods. Furthermore, we evaluate the efficacy of our model on the nuPlan planning benchmark, where it achieves leading performance.","url_abs":"https://arxiv.org/abs/2303.05760v2","url_pdf":"https://arxiv.org/pdf/2303.05760v2.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"gameformer-game-theoretic-modeling-and","repo_url":"https://github.com/MCZhi/GameFormer-Planner","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2303.05760","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2303.05760"}},"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/MCZhi/GameFormer-Planner","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":5,"unverified":11},"by_repo_kind":{"listed":{"samples":16,"ran":5,"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":"cb5cb6d0e7e6b54e","entry":"bernstein_poly","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/bezier_path.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/bezier_path.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cb5cb6d0e7e6b54e"}},{"code_sha256_prefix":"dbd18e4b11cb39be","entry":"calc_4points_bezier_path","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/bezier_path.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/bezier_path.py","link_basis":"harvester_set","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":"dbd18e4b11cb39be"}},{"code_sha256_prefix":"4821a6353f2620ba","entry":"calc_bezier_path","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/bezier_path.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/bezier_path.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4821a6353f2620ba"}},{"code_sha256_prefix":"8a7f01d886d3a4bf","entry":"convert_to_model_inputs","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/observation.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/observation.py","link_basis":"harvester_set","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":"8a7f01d886d3a4bf"}},{"code_sha256_prefix":"0950505f865f0908","entry":"global_velocity_to_local","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"GameFormer/data_utils.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/GameFormer/data_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0950505f865f0908"}},{"code_sha256_prefix":"0b1d117c7cb55ec5","entry":"acceleration","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/refinement.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/refinement.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":"0b1d117c7cb55ec5"}},{"code_sha256_prefix":"290321a202342cc2","entry":"annotate_occupancy","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/planner_utils.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/planner_utils.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":"290321a202342cc2"}},{"code_sha256_prefix":"fcb62ec99b519182","entry":"annotate_speed","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/planner_utils.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/planner_utils.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":"fcb62ec99b519182"}},{"code_sha256_prefix":"b035159f75f8704e","entry":"calc_spline_course","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/cubic_spline.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/cubic_spline.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":"b035159f75f8704e"}},{"code_sha256_prefix":"5c7a943caab0bfde","entry":"extract_agent_tensor","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/observation.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/observation.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":"5c7a943caab0bfde"}},{"code_sha256_prefix":"b448c6864e6f8e25","entry":"imitation_loss","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"GameFormer/train_utils.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/GameFormer/train_utils.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":"b448c6864e6f8e25"}},{"code_sha256_prefix":"f1627cd7a0d4f819","entry":"level_k_loss","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"GameFormer/train_utils.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/GameFormer/train_utils.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":"f1627cd7a0d4f819"}},{"code_sha256_prefix":"6b60c79300dd01ee","entry":"planning_loss","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"GameFormer/train_utils.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/GameFormer/train_utils.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":"6b60c79300dd01ee"}},{"code_sha256_prefix":"74f953374c54713f","entry":"speed_constraint","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/refinement.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/refinement.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":"74f953374c54713f"}},{"code_sha256_prefix":"7eac29926d6d6f7c","entry":"speed_target","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/refinement.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/refinement.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":"7eac29926d6d6f7c"}},{"code_sha256_prefix":"a164c593eacff041","entry":"wrap_to_pi","repo":"MCZhi/GameFormer-Planner","repo_kind":"listed","path":"Planner/planner_utils.py","file_url":"https://github.com/MCZhi/GameFormer-Planner/blob/HEAD/Planner/planner_utils.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":"a164c593eacff041"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}