Technical Projects
IoT sensor simulator




During a university internship, I designed and developed in full autonomy an IoT sensor simulator in Java. This project addressed a common challenge in IoT development, which is the high cost in resources and time to deploy and test real sensor networks before a telemetry management platform is even available.
The simulator allows the user to create and configure a desired amount of virtual IoT devices, each one connected to customizable sensors that generate telemetry values within user defined ranges and intervals. This data is then transmitted to a server using the MQTT transmition protocol, best suited for IoT applications.
This project represents the culmination of my engineering studies and is documented in detail in my thesis, which includes the requirements analysis, domain modeling, system design (based on GRASP and GoF design patterns), implementation and testing with ThingsBoard.
Procedural content generation through Houdini





Using Houdini, I designed and developed a series of procedural content generation techniques for digital environments, all of which were detailed and discussed in my Master’s thesis. This included generating realistic 3D terrains through 2D noise functions, comparing and combining two or more different noise functions and approaches (Perlin, Sparse Convolution, Voronoi, etc.) to obtain realistic heightmaps and materials.
Building on the foundations of the previously described terrain generator, I also created procedural assets (such as houses, roads, trees and other elements) and dynamic textures which were then distributed across the land through point scattering algorithms.
As a practical demonstration, I designed two case studies: the first one is a fully procedural medieval village, populated with houses of randomized shapes, materials and sizes to ensure heterogeneous results. These were then connected through a pathfinding algorithm to generate roards and trails.
The second case study made use of everything that was previously mentioned to create three fully procedural fantasy environments for a roguelike game concept. The described techniques and functions were used to create fully procedural dungeons and to design procedural enemy concepts, all of which with algorithmically generated 3D meshes and textures.