{"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/learning-flexible-body-collision-dynamics","title":"Learning Flexible Body Collision Dynamics with Hierarchical Contact Mesh Transformer","arxiv_id":"2312.12467","date":"2023-12-19","proceeding":null,"authors":["Youn-Yeol Yu","Jeongwhan Choi","Woojin Cho","Kookjin Lee","Nayong Kim","Kiseok Chang","Chang-Seung Woo","Ilho Kim","Seok-Woo Lee","Joon-Young Yang","Sooyoung Yoon","Noseong Park"],"abstract":"Recently, many mesh-based graph neural network (GNN) models have been proposed for modeling complex high-dimensional physical systems. Remarkable achievements have been made in significantly reducing the solving time compared to traditional numerical solvers. These methods are typically designed to i) reduce the computational cost in solving physical dynamics and/or ii) propose techniques to enhance the solution accuracy in fluid and rigid body dynamics. However, it remains under-explored whether they are effective in addressing the challenges of flexible body dynamics, where instantaneous collisions occur within a very short timeframe. In this paper, we present Hierarchical Contact Mesh Transformer (HCMT), which uses hierarchical mesh structures and can learn long-range dependencies (occurred by collisions) among spatially distant positions of a body -- two close positions in a higher-level mesh correspond to two distant positions in a lower-level mesh. HCMT enables long-range interactions, and the hierarchical mesh structure quickly propagates collision effects to faraway positions. To this end, it consists of a contact mesh Transformer and a hierarchical mesh Transformer (CMT and HMT, respectively). Lastly, we propose a flexible body dynamics dataset, consisting of trajectories that reflect experimental settings frequently used in the display industry for product designs. We also compare the performance of several baselines using well-known benchmark datasets. Our results show that HCMT provides significant performance improvements over existing methods. Our code is available at https://github.com/yuyudeep/hcmt.","url_abs":"https://arxiv.org/abs/2312.12467v3","url_pdf":"https://arxiv.org/pdf/2312.12467v3.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":"learning-flexible-body-collision-dynamics","repo_url":"https://github.com/yuyudeep/hcmt","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}}],"tasks":[{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"},{"task_slug":"numerical-integration","task_name":"Numerical Integration"},{"task_slug":"physical-simulations","task_name":"Physical Simulations"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"graph-neural-network","method_name":"Graph Neural Network"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/physical-simulations-on-deformable-plate","task":"Physical Simulations","dataset":"Deformable Plate","model":"HCMT","rank_in_archive_order":1,"of":1,"metrics":{"Rollout RMSE-all [1e3] Position":"7.67±0.42"},"uses_additional_data":false},{"leaderboard":"/sota/physical-simulations-on-deforming-plate","task":"Physical Simulations","dataset":"Deforming Plate","model":"HCMT","rank_in_archive_order":1,"of":1,"metrics":{"Rollout RMSE-all [1e3] Position":"7.49±0.07","Rollout RMSE-all [1e3] Stress":"4535956±49937"},"uses_additional_data":false},{"leaderboard":"/sota/physical-simulations-on-impact-plate","task":"Physical Simulations","dataset":"Impact Plate","model":"HCMT","rank_in_archive_order":1,"of":1,"metrics":{"Rollout RMSE-all [1e3] Position":"20.71±0.57","Rollout RMSE-all [1e3] Stress":"14742±502"},"uses_additional_data":false},{"leaderboard":"/sota/physical-simulations-on-sphere-simple","task":"Physical Simulations","dataset":"Sphere Simple","model":"HCMT","rank_in_archive_order":1,"of":1,"metrics":{"Rollout RMSE-all [1e3] Position":"30.41±1.71"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2312.12467","atlas_url":"https://app.syntology.ai/?focus=2312.12467","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.12467"}},"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":"deterministic:regex_extraction","url":"https://github.com/yuyudeep/hcmt","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/google-deepmind/deepmind-research","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/graphdeeplearning/graphtransformer","reach":null}],"summary":{"ran":12,"unverified":5},"by_repo_kind":{"official":{"samples":6,"ran":5,"repositories":1},"found_in_text":{"samples":11,"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":6,"samples":[{"code_sha256_prefix":"0f74786d92f7b6a0","entry":"add_targets","repo":"yuyudeep/hcmt","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/yuyudeep/hcmt/blob/HEAD/dataset.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0f74786d92f7b6a0"}},{"code_sha256_prefix":"c2695f5eb1e963a3","entry":"build_crops_biases","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"alphafold_casp13/contacts_network.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/alphafold_casp13/contacts_network.py","link_basis":"first_harvest_node","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":"c2695f5eb1e963a3"}},{"code_sha256_prefix":"2a0b71f3e9b5a0d7","entry":"call_on_tuple","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"alphafold_casp13/contacts_network.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/alphafold_casp13/contacts_network.py","link_basis":"first_harvest_node","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":"2a0b71f3e9b5a0d7"}},{"code_sha256_prefix":"27c6606148980218","entry":"conv2d","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"alphafold_casp13/two_dim_convnet.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/alphafold_casp13/two_dim_convnet.py","link_basis":"first_harvest_node","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":"27c6606148980218"}},{"code_sha256_prefix":"892496844acc7df6","entry":"equal32","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"galaxy_mergers/losses.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/galaxy_mergers/losses.py","link_basis":"first_harvest_node","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":"892496844acc7df6"}},{"code_sha256_prefix":"a951207c022a9c79","entry":"get_check_point_num","repo":"yuyudeep/hcmt","repo_kind":"official","path":"util.py","file_url":"https://github.com/yuyudeep/hcmt/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a951207c022a9c79"}},{"code_sha256_prefix":"7182e4b73a148e4c","entry":"get_mask_impact_normal","repo":"yuyudeep/hcmt","repo_kind":"official","path":"util.py","file_url":"https://github.com/yuyudeep/hcmt/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7182e4b73a148e4c"}},{"code_sha256_prefix":"b914b7fa073cd865","entry":"mse_loss","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"galaxy_mergers/losses.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/galaxy_mergers/losses.py","link_basis":"first_harvest_node","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":"b914b7fa073cd865"}},{"code_sha256_prefix":"f8ad297adc94df7d","entry":"normalize_regression_loss","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"galaxy_mergers/losses.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/galaxy_mergers/losses.py","link_basis":"first_harvest_node","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":"f8ad297adc94df7d"}},{"code_sha256_prefix":"7872fb172aaec6b0","entry":"pairwise_dist","repo":"yuyudeep/hcmt","repo_kind":"official","path":"model.py","file_url":"https://github.com/yuyudeep/hcmt/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7872fb172aaec6b0"}},{"code_sha256_prefix":"cb4b6e4277150f01","entry":"relative_shift","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"enformer/attention_module.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/enformer/attention_module.py","link_basis":"first_harvest_node","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":"cb4b6e4277150f01"}},{"code_sha256_prefix":"3fc3d053754bcdfb","entry":"triangles_to_edges","repo":"yuyudeep/hcmt","repo_kind":"official","path":"util.py","file_url":"https://github.com/yuyudeep/hcmt/blob/HEAD/util.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3fc3d053754bcdfb"}},{"code_sha256_prefix":"3bf8634c88f6bebc","entry":"bias_variable","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"alphafold_casp13/two_dim_convnet.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/alphafold_casp13/two_dim_convnet.py","link_basis":"first_harvest_node","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":"3bf8634c88f6bebc"}},{"code_sha256_prefix":"6ee8170a2950ea7c","entry":"get_positional_feature_function","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"enformer/attention_module.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/enformer/attention_module.py","link_basis":"first_harvest_node","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":"6ee8170a2950ea7c"}},{"code_sha256_prefix":"ace670d545ed0b9d","entry":"load_dataset","repo":"yuyudeep/hcmt","repo_kind":"official","path":"dataset.py","file_url":"https://github.com/yuyudeep/hcmt/blob/HEAD/dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ace670d545ed0b9d"}},{"code_sha256_prefix":"6a7819159276d4e5","entry":"positional_features_all","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"enformer/attention_module.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/enformer/attention_module.py","link_basis":"first_harvest_node","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":"6a7819159276d4e5"}},{"code_sha256_prefix":"7d7dfab4bbd647b3","entry":"weight_variable","repo":"google-deepmind/deepmind-research","repo_kind":"found_in_text","path":"alphafold_casp13/two_dim_convnet.py","file_url":"https://github.com/google-deepmind/deepmind-research/blob/HEAD/alphafold_casp13/two_dim_convnet.py","link_basis":"first_harvest_node","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":"7d7dfab4bbd647b3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}