Giter Site home page Giter Site logo

myhololens / craftassist Goto Github PK

View Code? Open in Web Editor NEW

This project forked from facebookresearch/craftassist

0.0 2.0 0.0 6.41 MB

A virtual assistant bot in Minecraft

License: MIT License

Makefile 0.08% Shell 0.87% CMake 0.03% C++ 19.78% Lua 1.24% Dockerfile 0.05% Python 59.70% HTML 18.27%

craftassist's Introduction

The goal of this project is to build an intelligent, collaborative assistant bot in the game of Minecraft1 that can perform a wide variety of tasks specified by human players. Its primary purpose is to be a tool for artifical intelligence researchers interested in grounded dialogue and interactive learning. This project is in active development.

A detailed outline and documentation is available in this paper

This release is motivated by a long-term research agenda described here.

GIF of Gameplay With Bot

Installation & Getting Started

Do this section before cloning the repo.

Dependencies

Make sure the following packages have already been installed before moving on:

Python Requirements: Using A Conda Environment

To build a conda environment that supports this release:

# Create a new env and install pip
conda create -n minecraft_env
conda activate minecraft_env
conda install pip

# The requirements.txt contains some reqs that need to be installed with conda 
# and others that need to be installed with pip.  This switches between these 
# two installation methods
while read requirement;
    do conda install --yes $requirement || pip install $requirement;
done < requirements.txt
pip install ipdb
conda install pytorch torchvision -c pytorch

Then activate this environment whenever you want to run the agent.

Install git-lfs

# OSX
brew install git-lfs
git lfs install

# On Ubuntu
sudo add-apt-repository ppa:git-core/ppa
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install

Checking out the repo

Use this command, or your submodules will not be pulled, and your clone will take a very long time:

git lfs clone --recursive [email protected]:facebookresearch/craftassist.git

Now cd craftassist before proceeding to the following sections.

Building client and server

To build Cuberite and the C++ Minecraft client:

make

Run the Cuberite instance

Run the following command

python ./python/cuberite_process.py

to start an instance of cuberite instance listening on localhost:25565

Connecting your Minecraft game client (so you can see what's happening)

Buy and download the official Minecraft client.

You can inspect the world and view the Minecraft agent's actions by logging into the running Cuberite instance from the game client.

To connect the client to the running Cuberite instance, click in the Minecraft client:

Multiplayer > Direct Connect > localhost:25565

Error: Unsupported Protocol Version

Minecraft has recently release v1.13, and our Cuberite system supports at most v1.12

Please follow these instructions to add a 1.12.x profile and use it to connect.

Running the interactive V0 agent

Assuming you have set up the Cuberite server and the client, in a separate tab, run:

python ./python/craftassist/craftassist_agent.py

You should see a new bot player join the game.

Chat with the bot by pressing t to open the dialogue box, and Enter to submit.

Use the w, a, s, and d keys to navigate, left and right mouse clicks to destroy and place blocks, and e to open your inventory and select blocks to place.

Running tests

./python/craftassist/test.sh

Datasets

Download links to the datasets described in section 6 of Technical Whitepaper are provided here:

In the root of each tarball is a README that details the file structure contained within.

Citation

If you would like to cite this repository in your research, please cite the CraftAssist paper.

@misc{gray2019craftassist,
    title={CraftAssist: A Framework for Dialogue-enabled Interactive Agents},
    author={Jonathan Gray and Kavya Srinet and Yacine Jernite and Haonan Yu and Zhuoyuan Chen and Demi Guo and Siddharth Goyal and C. Lawrence Zitnick and Arthur Szlam},
    year={2019},
    eprint={1907.08584},
    archivePrefix={arXiv},
    primaryClass={cs.AI}
}

License

CraftAssist is MIT licensed.

1 Minecraft features: © Mojang Synergies AB included courtesy of Mojang AB

craftassist's People

Contributors

drothermel avatar kavyasrinet avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.