A simulation environment is a full package for agents operating in. It comprises of many components such as rendering system, physics engine, model assets, user interfaces, etc. The reasons we need a simulation environment are: 1. experimenting in simulation is always cheaper and safer than in reality; 2. it can help to quickly filter out the “bad” ideas. If an idea cannot be validated in simulation (usually a simpler environment than real world), it is hard to believe it can work in real world. On the other hand, if it works in simulation will not necessarily work in reality.