Skip to content
Branch: master
Clone or download
jsuarez5341 Merge pull request #3 from rockhowse/master
updated websocket to use origin for connectivity instead of localhost
Latest commit 91c4cda Mar 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
node_modules light shader Jan 13, 2019
shaders Update readme Jan 26, 2019
threex Restructure files Jan 4, 2019
animation.js update packet names Feb 1, 2019
attack.html extra visuals for figures Jan 20, 2019
engine.js Fix overlays and perf Feb 22, 2019
entitybox.js Add attackMaps Feb 27, 2019
player.js Add attackMaps Feb 27, 2019
textsprite.js Rollback last commit Feb 1, 2019
todo.txt Add readme and license Feb 28, 2019
values.js Fix overlays and perf Feb 22, 2019


This repository contains the THREE.js based 3D browser client for the main Neural MMO Project. It's in Javascript, but it reads like Python. This is both because I am a Python-using researcher and because it allows researchers with under 30 minutes of Javascript experience to begin contributing immediately.


You don't need to clone this repo manually. Follow the install instructions in the OpenAI Repo. This will download THREE.js. You can do this manually if you do not want to download the whole source repo.


Around 50-60 FPS with ~3s load on a high-end desktop, 30 FPS with ~10s load on my Razer laptop.


I personally plan on continuing development on both the main environment and the client. The environment repo is quite clean, but this one could use some restructuring -- I intend to refactor it sometime soon. Environment updates will most likely be released in larger chunks, potentially coupled to future publications. On the other hand, the client is under active and rapid development. You can expect most features, at least in so far as they are applicable to the current environment build, to be released as soon as they are stable. Feel free to contact me with ideas and feature requests.

Please note: this is my personal agenda, and I do not speak for OpenAI.

Known Limitations

The client has been tested with Firefox on Ubuntu. Don't use Chrome. It should work on other Linux distros and on Macs -- if you run into issues, let me know.

Use Nvidia drivers if your hardware setup allows. The only real requirement is support for more that 16 textures per shader. This is only required for the Counts visualizer -- you'll know your setup is wrong if the terrain map vanishes when switching overlays.

This is because the research overlays are written as raw glsl shaders, which you probably don't want to try to edit. In particular, the counts exploration visualizer hard codes eight textures corresponding to exploration maps. This exceeds the number of allowable textures. I will look into fixing this into future if there is significant demand. If you happen to be a shader wizard with spare time, feel free to submit a PR.


This client is a collaboration between myself (Joseph Suarez) and Clare Zhu. It was originally created as follow-up work for the paper and blog post, but we ended up merging it in. This is also the reason that the project is split into two repositories.


MIT License

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.