Virtual LEGO / Technics / Mindstorms simulation environments I know that there are quite a few LEGO CADs floating around, but are there any physically correct simulation environments for models built with LEGO / Technic / Mindstorms parts, that would, for example, allow me to:


simulate how far would a particular moving part would move / rotate / etc, until it collides with other part
simulate gear links (ideally, with tolerances / precision / friction of plastic gears)
get estimates of speeds / torques exerted by specific motors
get estimates of battery power drain


So far I've found Robot Virtual Worlds, but it doesn't seem to allow construction of arbitrary environments and, what's more important, seem to simulate only a few preset robots. Also it seems to be pretty crude in terms of physics simulated. Anything else exists?
Recently I met with TeamSim. Its possibilities are impressing:


you can make own robot via LDD and export it to the program
you cam make own mat (FLL, WRO, sumo mats are already available)
you can program a robot via NXT-G


I have no chance to investigate this program in detail, but I think it's what you want.