## 3 MOVICLOUD Platform
In this case the model of the environment is determined by the design phase of the building in which the simulation is developed. This process is carried out through a tool based on Unity 3D [50]. The **3D editing environment** (Figure 3) allows the modeling of virtual environments for urban areas (buildings, flats, apartments, gardens, parks, etc.) in three dimensions with a high level of realism and quality. This tool is able to generate 3D virtual environments in scale and define elements such as floors or walls. It also includes a set of default furniture models that can help to reduce the virtual environment modeling time. This editor uses different services from a _cloud computing_ platform [51], being the main ones (i) a repository where the different 3D objects are stored, (ii) a repository of the scenarios created by the users of the platform and a (iii) user management service. Thanks to the possibility of remotely storing of the different Unity 3D packages that contain the 3D objects and textures used in the editing tool, the editor is able to obtain these models on demand. This allows the tool to be lighter, since it is not necessary that all the models offered by the platform are previously stored in the user's computer. There is a total amount of 14 different categories of 3D resources in the platform, but it is possible to include new categories if it is required. Besides, in order to facilitate the handling of different types of objects, a classification has been established according to their placement and behavior within the 3D editor:  
* TYPE 0: Objects whose pivot is in the lower part of its mesh, that is, correspond to the objects that are placed at ground level. * TYPE 1: Objects whose pivot is at the top of it, such as a lamp or any other object that hangs from the ceiling. * TYPE 2: The pivot is on the side of the mesh to facilitate its placement on a wall. * TYPE 3: The pivot is in its lower part, as in the case of type 0, including the possibility of placing these objects over other objects. * TYPE 4: Objects of type 0 including an accessibility property of to them. That is, these objects will be used to perform the different interactions between avatars and furniture. * TYPE 5: Objects of type 2 including the accessibility property. * TYPE 6: Objects of type 3 including the accessibility property. On the other hand, after completing the process of generating the virtual environments through the 3D editing tool, a json file is generated, in which all the environment characteristics are stored. By using these files, it is possible to generate the same scene in Unity, but without the need of store the unity project, (which is usually heavy in terms of storage). This lightweight file is sent to the _cloud computing_ platform, so that, if the same scene has to be generated again, it is only necessary to download this file through the 3D editing tool or the 3D viewer, and 3D model is generated again using the 3D models that are provided by the platform, thus favoring the possible reuse of all resources by different users. The platform users can manage if the generated scenarios are public, private, or shared with certain users. To do this, thanks to the user management system, users of the platform can log into the system, accessing the list of projects for which they have access. Thanks to the use of the functionality offered by the _cloud computing_ platform, several benefits are obtained such as a reduction in the amount of data to be stored by users, an improvement of the elasticity and scalability of the use of resources, or the dynamic adjustment to the load of the system and the needs on the part of the users of the platform. In addition, more effective use of computer resources can be made, since they can be shared among several entities. The **3D viewer**, which supports the representation and rendering of the environment and the features that were previously built with the 3D editor.