This project (and name) was inspired by Terry Winograd's SHRDLU project. I tried to make something similar in a few days in JavaScript. My version is lacking several features that the SHRDLU project had such as question answering (e.g. you could ask the program questions like "can the pyramid support a pyramid"), physics, some type of pronoun resolution (e.g. asking the program "what color is it"), and more.

I still wanted to test myself and see what I could accomplish in about a week, so here's my result. It's not perfect so some weird stuff might happen depending on what command you enter.

How To Use

1. You can add, change or remove objects from the world by writing a single command in plain English.

2. The world can take two types of objects: cubes and pyramids.

3. You can describe the objects by their size, color and location.

Problems/To do

1. There is no physics or collision detection, so you can do weird things like place cubes on top of pyramids and two objects can overlap. This is partially because I'm using Isomer (which is awesome) for the canvas rendering. If I eventually switch over to Three.js it should be a bit better.

2. You cannot rotate objects.

3. Need to implement ConceptNet API for determining if an unknown word is related to some pre-programmed concept.

4. The program doesn't understand math, so you can't write remove 3*2 cubes.

5. Program doesn't understand what "between" means.