[en] This Bachelor Thesis aims to develop a tool that allows generate 3D models of buildings as accurately as possible. To generate such buildings, it will be used procedural generation, reason why the base of the project is the elaboration of an algorithm that allows to generate different models of buildings from the parameters that receives by the user. It is intended that the tool be used on the web platform so the work has been developed in JavaScript language using the open source library Three.js to get basic functionality in the generation of 3D models. The development of the JavaScript library that allows to realize the commented functionality has been developed in a modular way to facilitate the extension of functionality and code debugging. I have investigated the algorithms of previous projects that looked for the generation of buildings or cities in a procedural way to collect the characteristics that all considered essential and those that stood out by increasing the performance or to minimize the errors. I have decided to provide three modes of building generation, one by default that would be used to check the integration of the library, a random one that could offer design ideas to the user and allows to see the scope of the algorithm when generating models and finally the parametric model in which the user indicates the number of parameters he wants to make his model more or less specific. In the foregoing, at the time of generating the structure of the buildings, it has been prioritized that the models are as realistic as possible and have left aside unusual contemporary constructions such as buildings with a smaller base than the rest of the building. It should also be noted that for the generation of decorative elements models the Blender tool has been used so that the user can also generate their own decorative elements and use them in their buildings. Finally, in addition to the development of the algorithm, a simple user interface has been designed to visually check the results of the work performed, as well as to illustrate how the implemented library would be added and used in the project of an external user.

[es] Este Trabajo Fin de Grado pretende desarrollar una herramienta que permita generar modelos 3D de edificios con la mayor precisión posible. Para generar dichos edificios se utilizará generación procedimental por lo que la base del proyecto es la elaboración de un algoritmo que permita generar distintos modelos de edificios a partir de los parámetros que reciba por parte del usuario. Se pretende que la herramienta se utilice sobre la plataforma web por lo que el trabajo se ha desarrollado en lenguaje JavaScript utilizando la librería de código abierto Three.js para obtener funcionalidades básicas en la generación de modelos 3D. El desarrollo de la librería JavaScript que permita realizar la funcionalidad comentada se ha desarrollado de forma modular para facilitar la ampliación de funcionalidad y depuración de código. Se han investigado los algoritmos de proyectos realizados anteriormente que buscaban la generación de edificios o ciudades de forma procedimental para recoger las características que todos consideraban imprescindibles y aquellas destacaban por aumentar el rendimiento o minimizar los errores. Se ha decidido proporcionar tres modos de generación del edificio, uno por defecto que se utilizaría para comprobar la integración de la librería, uno aleatorio que podría ofrecer ideas de diseño al usuario y permite ver el alcance del algoritmo a la hora de generar modelos y por último el modelo paramétrico en el que el usuario indica el número de parámetros que desee para hacer su modelo más o menos específico. Dentro de lo anterior, a la hora de generar la estructura de los edificios se ha priorizado que los modelos sean lo más realistas posibles y se han dejado a parte las construcciones contemporáneas poco habituales como edificios con una base de menor tamaño que el resto del edificio. Hay que señalar también que para la generación de los modelos de elementos decorativos se ha utilizado la herramienta Blender de forma que el usuario pueda también generar sus propios elementos decorativos y usarlos en sus edificios. Por último, además del desarrollo del algoritmo se ha diseñado una sencilla interfaz de usuario que permita comprobar visualmente los resultados que ofrece el trabajo realizado además de ejemplificar como se añadiría y haría uso de la librería implementada en el proyecto de un usuario externo.