{"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/structured-object-aware-physics-prediction-1","title":"Structured Object-Aware Physics Prediction for Video Modeling and Planning","arxiv_id":"1910.02425","date":"2019-10-06","proceeding":"ICLR 2020 1","authors":["Jannik Kossen","Karl Stelzner","Marcel Hussing","Claas Voelcker","Kristian Kersting"],"abstract":"When humans observe a physical system, they can easily locate objects, understand their interactions, and anticipate future behavior, even in settings with complicated and previously unseen interactions. For computers, however, learning such models from videos in an unsupervised fashion is an unsolved research problem. In this paper, we present STOVE, a novel state-space model for videos, which explicitly reasons about objects and their positions, velocities, and interactions. It is constructed by combining an image model and a dynamics model in compositional manner and improves on previous work by reusing the dynamics model for inference, accelerating and regularizing training. STOVE predicts videos with convincing physical behavior over hundreds of timesteps, outperforms previous unsupervised models, and even approaches the performance of supervised baselines. We further demonstrate the strength of our model as a simulator for sample efficient model-based control in a task with heavily interacting objects.","url_abs":"https://arxiv.org/abs/1910.02425v2","url_pdf":"https://arxiv.org/pdf/1910.02425v2.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":"structured-object-aware-physics-prediction-1","repo_url":"https://github.com/jlko/STOVE","is_official":1,"mentioned_in_paper":1,"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=1910.02425","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.02425"}},"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/jlko/STOVE","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"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":"93fcda1b3ffc3f86","entry":"encode_img","repo":"jlko/STOVE","repo_kind":"official","path":"model/mcts/mcts_stove.py","file_url":"https://github.com/jlko/STOVE/blob/HEAD/model/mcts/mcts_stove.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":"93fcda1b3ffc3f86"}},{"code_sha256_prefix":"29f7fbb68f8a1858","entry":"generate_fitting_run","repo":"jlko/STOVE","repo_kind":"official","path":"model/envs/envs.py","file_url":"https://github.com/jlko/STOVE/blob/HEAD/model/envs/envs.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":"29f7fbb68f8a1858"}},{"code_sha256_prefix":"e40725e62306ffd3","entry":"load_and_encode","repo":"jlko/STOVE","repo_kind":"official","path":"model/rl/main_rl.py","file_url":"https://github.com/jlko/STOVE/blob/HEAD/model/rl/main_rl.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":"e40725e62306ffd3"}},{"code_sha256_prefix":"4414a482ef6ea681","entry":"multi_one_hot","repo":"jlko/STOVE","repo_kind":"official","path":"model/mcts/mcts_stove.py","file_url":"https://github.com/jlko/STOVE/blob/HEAD/model/mcts/mcts_stove.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":"4414a482ef6ea681"}},{"code_sha256_prefix":"66d9b15aaa1af8ef","entry":"norm","repo":"jlko/STOVE","repo_kind":"official","path":"model/envs/envs.py","file_url":"https://github.com/jlko/STOVE/blob/HEAD/model/envs/envs.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":"66d9b15aaa1af8ef"}},{"code_sha256_prefix":"6671b44fe3654fd2","entry":"parse_args","repo":"jlko/STOVE","repo_kind":"official","path":"model/rl/main_rl.py","file_url":"https://github.com/jlko/STOVE/blob/HEAD/model/rl/main_rl.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":"6671b44fe3654fd2"}},{"code_sha256_prefix":"17a350274b0cf4c1","entry":"parse_wrapper","repo":"jlko/STOVE","repo_kind":"official","path":"model/envs/envs.py","file_url":"https://github.com/jlko/STOVE/blob/HEAD/model/envs/envs.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":"17a350274b0cf4c1"}},{"code_sha256_prefix":"78aa7a12549439c7","entry":"tile","repo":"jlko/STOVE","repo_kind":"official","path":"model/mcts/mcts_stove.py","file_url":"https://github.com/jlko/STOVE/blob/HEAD/model/mcts/mcts_stove.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":"78aa7a12549439c7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}