A Framework for Designing 3D Virtual Environments