Projects developed between the years of 2018 and 2021 in my undergraduate course of Applied Mathematics at EMAp FGV. There are projects in the topic of computer graphics, visualization, machine learning and more. Most of the projects were originally made in portuguese, but the code documentation is in english and you can translate the reports using Google Translator.


This project was my final paper for the bachelor’s degree in Applied Mathematics in EMAp FGV in the end of 2021. It was developed with the orientation of Jorge Poco and Nivan Ferreira. We proposed a visualization tool for spatio-temporal events.

Spatio-temporal data is the set of 3D data with 2 space dimensions and one temporal. This type of data is useful in different domains, and the analysis of clusters is a prevalent task. However, the state-of-the-art techniques used, such as the Space-Time Cube and animations, present limitations when displaying this type of data. It can be caused by distortions of cognitive limitations of tracking changes. For that reason, we present Events-Vis, a visualization technique for Spatio-temporal data.

The result of Events-Vis is a 2D static plot, with the time in the horizontal direction, and the space is represented in the vertical. In that scenario, the dimension of the space must be transformed from 2D to 1D. We propose a reduction of dimensionality that considers the area of the clusters, their neighborhoods, and the general spatial distribution using a greedy algorithm and a convex optimization method. We also implemented a visualization tool that uses our method and links it with other panels of interactivity. This tool was used in the study case with data from traffic alerts at Rio de Janeiro. The complete discussion about our method is available at the document

Wikipedia Search Engine

In the first semester of 2019, the final project of the discipline of Data Structure and Algorithms was implementing a search engine for the pages of Wikipedia using the language C++. The task was to create a tool that, based on a word, searches all the Wikipedia articles that contain this word (in a total of millions of articles). It was necessary to obtain fast results, so the data structure of the files and the algorithm should be optimal. The final result can get the result in less than 0.00001 seconds, and the code is available at the repository. A small web page that calls the search engine was also implemented.

Computer graphics

Two projects were done in the second semester of 2019 in Introduction to Computer Graphics: one edge detector and one simulation of fractals. Both projects are implementations using Javascript that can be run on the browser.

The first is the implementation of the Canny algorithm to detect edges on images. An edge is the contour of an object on an image that is represented as a change of color or lightness. The algorithm focuses on detecting these changes in both horizontal and vertical directions. The implementation is available at the link and can be used with your own images.

The second is the implementation of simulation of different fractals that can be visualized while being generated. A fractal can be described as a structure that repeats itself infinitely. It uses SVG to represent the shapes on the screen and contains different interactivity options. It is available at the link.


This project was made in the first semester of 2020 as the final work of the discipline of Exploratory Data Analysis and Visualization. The objective of the visualization was to comprehend the dissemination patterns of the COVID-19 cases in the first months of the pandemic, from April to June, in the cities of São Paulo (the state). The visualization was created with ggplot library, and with the daily total of cases, 4 panels were made: an area chart grouped by the size of the cities, a map plot, a line plot with the cases per population, and a heatmap with the indicator of social distances and the number of cases. The complete description of the visualization is available at the following site.

ENEM Analysis

to be added

Fuzzy Edge Detection

to be added

Minor projects

In addition of the presented projects, there also a few that are interesting to mention, but there wasn’t as many development as the previous ones. For that reason, I’ll list them here:

  • Markov Chain Monte Carlo: Project made in the first semester of 2020 as the final work of the discipline of Stochastic Process. It was made an implementation of the MCMC algorithm using Python on different examples, available at the repository. In addition, it was also created a simulation of a tale available on this page.
  • Simplex: Implementations made in the first semester of 2021 in the discipline of Linear and Integer Programming. It contains the implementation of the simplex algorithm and one adaptation for transport problems. It also contains an optimization solution for the Set Game. The code is available at the reporitory.