View source on GitHub
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.
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.
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.