Skip to content

Simulating Large-Scale Multi-Agent Interactions with Limited Multimodal Senses and Physical Needs

License

Notifications You must be signed in to change notification settings

cocacola-lab/MineLand

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MineLand

Simulating Large-Scale Multi-Agent Interactions with Limited Multimodal Senses and Physical Needs

illustration-whole-system

MineLand is a multi-agent Minecraft simulator with large-scale interactions, limited multimodal senses and physical needs, all contribute to more ecological and nuanced collective behaviors. MineLand simulator supports up to 48 agents with limited visual, auditory, and environmental awareness, forcing them to actively communicate and collaborate to fulfill physical needs like food and resources. This fosters dynamic and valid multi-agent interactions. We also designed an AI Agent based on MineLand - Alex, inspired by multitasking theory, enabling agents to handle intricate coordination and scheduling.

You can check our paper for further understanding, and MineLand and Alex code is provided in this repo.

0. Contents

1. Installation

You can refer to the Installation Docs and Q&A for more detailed installation guidelines.

1.1 Prerequisites

MineLand requires Python 3.11, Node.js 18.18.0 and Java 17

1.2 Installation

We highly recommend installing MineLand in a virtual environment (such as Anaconda)

git clone [email protected]:cocacola-lab/MineLand.git
cd MineLand

pip install -e .

cd mineland/sim/mineflayer
npm ci
# If you use pnpm, you can use `pnpm install` instead of `npm ci`
# npm ci will install the dependencies from the package-lock.json file, while npm install will resolve the dependencies from the package.json file.

1.3 Verification

cd scripts
python validate_install_simulator.py

You will see Validation passed! The simulator is installed correctly., if MineLand simulator installed properly.

2. Quick Start

MineLand provides a set of Gym-style interfaces, similar to other simulators like MineDojo. The following is a minimal example code.

import mineland

mland = mineland.make(
    task_id="survival_0.01_days",
    agents_count = 2,
)

obs = mland.reset()

for i in range(5000):
    act = mineland.Action.no_op(len(obs))
    obs, code_info, event, done, task_info = mland.step(action=act)
    if done: break

mland.close()

You can refer to MineLand Docs or the code under the ./scripts directory for development.

MineLand does NOT have a minecraft game client for higher efficiency. You can obtain the current visual information of the agents from obs, or connect to the server using a vanilla Minecraft 1.19 client. The server operates locally with the default port, which means you can directly connect to localhost:25565 in the game to enter the server.

Environment Preview environment_preview.png

3. Our Paper

Our paper is available on Arxiv.

@misc{yu2024mineland,
      title={MineLand: Simulating Large-Scale Multi-Agent Interactions with Limited Multimodal Senses and Physical Needs}, 
      author={Xianhao Yu and Jiaqi Fu and Renjia Deng and Wenjuan Han},
      year={2024},
      eprint={2403.19267},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}

About

Simulating Large-Scale Multi-Agent Interactions with Limited Multimodal Senses and Physical Needs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •