{"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/socialjax-an-evaluation-suite-for-multi-agent","title":"SocialJax: An Evaluation Suite for Multi-agent Reinforcement Learning in Sequential Social Dilemmas","arxiv_id":"2503.14576","date":"2025-03-18","proceeding":null,"authors":["Zihao Guo","Shuqing Shi","Richard Willis","Tristan Tomilin","Joel Z. Leibo","Yali Du"],"abstract":"Sequential social dilemmas pose a significant challenge in the field of multi-agent reinforcement learning (MARL), requiring environments that accurately reflect the tension between individual and collective interests. Previous benchmarks and environments, such as Melting Pot, provide an evaluation protocol that measures generalization to new social partners in various test scenarios. However, running reinforcement learning algorithms in traditional environments requires substantial computational resources. In this paper, we introduce SocialJax, a suite of sequential social dilemma environments and algorithms implemented in JAX. JAX is a high-performance numerical computing library for Python that enables significant improvements in operational efficiency. Our experiments demonstrate that the SocialJax training pipeline achieves at least 50\\texttimes{} speed-up in real-time performance compared to Melting Pot RLlib baselines. Additionally, we validate the effectiveness of baseline algorithms within SocialJax environments. Finally, we use Schelling diagrams to verify the social dilemma properties of these environments, ensuring that they accurately capture the dynamics of social dilemmas.","url_abs":"https://arxiv.org/abs/2503.14576v2","url_pdf":"https://arxiv.org/pdf/2503.14576v2.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":"socialjax-an-evaluation-suite-for-multi-agent","repo_url":"https://github.com/cooperativex/socialjax","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"multi-agent-reinforcement-learning","task_name":"Multi-agent Reinforcement Learning"},{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"},{"task_slug":"rllib","task_name":"rllib"}],"methods":[{"method_slug":null,"method_name":"Library"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2503.14576","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2503.14576"}},"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":"deterministic:regex_extraction","url":"https://github.com/cooperativex/SocialJax","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cooperativex/socialjax","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":11},"by_repo_kind":{"official":{"samples":11,"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":"ee7a19a460cec4e2","entry":"ascii_map_to_matrix","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/cleanup/clean_up.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/cleanup/clean_up.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":"ee7a19a460cec4e2"}},{"code_sha256_prefix":"4508b1328a677108","entry":"ascii_map_to_matrix","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/coin_game/coin_game.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/coin_game/coin_game.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":"4508b1328a677108"}},{"code_sha256_prefix":"1ab2589d6ff730f4","entry":"ascii_map_to_matrix","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/common_harvest/harvest_open.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/common_harvest/harvest_open.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":"1ab2589d6ff730f4"}},{"code_sha256_prefix":"59df34732c3e3418","entry":"downsample","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/cleanup/rendering.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/cleanup/rendering.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":"59df34732c3e3418"}},{"code_sha256_prefix":"bd9c272b32f75522","entry":"fill_coords","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/cleanup/rendering.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/cleanup/rendering.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":"bd9c272b32f75522"}},{"code_sha256_prefix":"5ea68d2fb8b9cafe","entry":"generate_agent_colors","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/cleanup/clean_up.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/cleanup/clean_up.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":"5ea68d2fb8b9cafe"}},{"code_sha256_prefix":"49aab14412fc1c9a","entry":"load_params","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/wrappers/baselines.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/wrappers/baselines.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":"49aab14412fc1c9a"}},{"code_sha256_prefix":"b4d0ac9b3b203d48","entry":"positions_unique","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/movement.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/movement.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":"b4d0ac9b3b203d48"}},{"code_sha256_prefix":"91f1bfdb1d3e473e","entry":"resolve_movement","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/movement.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/movement.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":"91f1bfdb1d3e473e"}},{"code_sha256_prefix":"0a7718159eaedc4f","entry":"resolve_respawn","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/movement.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/movement.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":"0a7718159eaedc4f"}},{"code_sha256_prefix":"8990d1cc61cec299","entry":"rotate_fn","repo":"cooperativex/SocialJax","repo_kind":"official","path":"socialjax/environments/cleanup/rendering.py","file_url":"https://github.com/cooperativex/SocialJax/blob/HEAD/socialjax/environments/cleanup/rendering.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":"8990d1cc61cec299"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}