No description, website, or topics provided.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Toy / Interactive conceptual art in JavaScript, built with three.js and WebGL.

When you visit the world of Attrition, you are assigned standing armies in a few random places on the globe. Where you start is an accident of birth, if you will. Click on other countries (either in the sidebar, or on the globe) to select them. You have one action available, and that is to move troops around. At the end of each turn (5 seconds, watch the timer!) all armies (from different players) who happen to be in the same country eliminate each other one-for-one. We designed Attrition to be impersonal, boring, and zero-sum - much like modern warfare.

Unfortunately, our execution was time constrained, so this project is languishing in proof-of-concept stage with no further development anticipated.

Notes / Todo

We built this game roughly seven weeks into learning how to code, and there are a bunch of things that are not the greatest. In a perfect world we would fix some of these things:

  • the game is slow to load
    • compress moon images
    • minify production.js and maybe other js files
    • simplify some of the rendering code in /public/js
    • find a simpler way to represent country contour data (we are currently using a lot of lat-long coordinates
  • some tests would be nice :(
  • clumsy UI
    • add some explanatory tooltips
    • use tab to move between countries
  • as a commentary on modern conflict, the game really doesn't mean much without a social element i.e. chat feature
  • we also think it would be more interesting if armies don't magically vanish after their players have disconnected

Getting Started

This project is currently running at An older version (with different graphics) is at

These instructions will get you a copy of the project up and running on your local machine.


You'll need Node.js and an updated version of npm.

$ node --version
$ npm -v


npm install


node server.js

Built With



This project was built in our final weeks at Lighthouse Labs web development bootcamp. Many thanks to Don Burks for his mentorship, and the many great teaching assistants at Lighthouse for their help, encouragement, and inspiration.