A catalogue of all OSR/NSR adventure modules published in Brazilian portuguese.
Perhaps the nichest of all niche projects on this page (which is quite a feat). Basically, I like to play tabletop RPGs, and in particular I like to play the ones from the OSR/NSR variety (of which you can learn more about here). Most of the material written for this genre is in English, but because me and my friends play in Brazilian portuguese, I found myself translating a lot of stuff during prep, which was unsatisfying.
After talking to other brazilian DMs online, this seemed like a common issue. The solution was obvious: just use material written in portuguese! But here's the problem: where was it? I knew that it existed, I was sure that it was even quite good, but where was the goddamn material? So I made a catalogue of all OSR/NSR adventures available in portuguese for our collective non-colonized consumption.
(Why do I like catalogues so much? I don't know, man. I guess I like to help people find things. It's not the first, and it certainly won't be the last catalogue I make.)
A catalogue of CD-ROMs published by the Brazilian publisher Digerati, notorious for selling CDs with hundreds or thousands of Flash games ripped from the Web.
Ever since I started preserving old brazilian children CD-ROMs (see below), I've gotten requests for cataloguing Digerati CD-ROMs, which were quite popular across the country. My answer was always the same: nope, not touching that, that is too chaotic and it will consume me. My fears were not unfounded: throughout their ~20 years of existence, Editora Digerati published more than 60 different magazines, most of them undocumented and following no clear patterns. It's nightmarish stuff.
Now, after 5 years and 200 children CD-ROMs later, I felt ready and made this: a catalogue of all Digerati CD-ROMs currently preserved or known about. The killer feature is, of course, the flash game catalogue, which lets the user find games without having to download and open the ISOs. Quite proud of this one!
It's a Bluesky bot that posts a Nichijou frame every hour. There's little to be said about it, other than the fact that it rules.
I wouldn't have done this at all if it didn't seem so easy to do it. I used the Bluesky bot code from Brazil around the World and the screenshot deduplicator from Automatic extraction of "good screenshots", both listed below. Knowledge is a powerful thing!
A page that aggregates current Brazilian news... as covered by journals that are from other countries.
I've always been fascinated by how Brazil is portrayed internationally, and judging by the popularity of "PLEASE COME TO BRAZIL" memes, I'm willing to bet that I'm not the only one. So I've made this page to make this "'country ego' search" a bit easier -- it is updated automatically every hour to display all news published in the past 3 days that mentions our country in the headlines. There's also a Bluesky bot to accompany it!
I've found myself accessing this page quite a lot as time goes on. What really captures me are the stories that I hadn't the faintest idea about, even though I live here... Like the Softball leagues in Curitiba, shown on the right. Truly interesting!!
A custom-made translation tool for the famous game "Tokimeki Memorial: Forever With You" (1996), who helped to establish the Dating Simulator genre as the behemoth it is today.
There's quite a lot to be said about this project, whose execution took the better part of an entire year of my life. Let's just say: there was a consensus in the fantranslator community that translating this game was impossible, so in an act of hubris I took it upon myself to prove them wrong, and to show to the whole world that nothing is impossible for a Brazilian guy with a gambiarra.
Did it work? Was it worth it? I invite you to read the full write-up and discover for yourself! It's in portuguese though, so non-speakers will have to use a translator. Don't let that discourage you: it's on-theme, so if anything it'll be even better!
A website with every Brazilian name, as reported in the 2010 National Census. Several other analysis are included: how are these names geographically distributed? Are they more typical of a certain decade? Did they become popular due to telenovelas? And more!
As the attentive among you can see, I am fascinated by names (and words in general), so this project has been on my mind ever since I discovered the existence of a "brazilian census names dataset". However, it took ages to make because I simply couldn't decide what form it would take -- a YouTube video? a series of TikToks? interactive visualizations? --, but I ended up doing what my heart demanded: a confident, respectable, static website. What can I say? I'm a romantic!
A page where you can check if certain words are on the brazilian portuguese Bible. Accepts entire texts.
For context: in brazilian Twitter, there is a meme where people express their disapproval of an opinion by quoting it and saying "nenhuma dessas palavras está na bíblia" ("none of these words are on the bible"). It's meant to be just a funny quip, but a friend of mine suggested that someone should build a tool to make it scientific -- so as a weekend project during carnival, I did just that. Very satisfied with the result!
A Python library that allows you to quickly try out several machine learning algorithms on a given dataset. Very useful when you have some data and just want to throw stuff at it to see if any one model achieves decent performance.
The idea of this project came to me after I found myself writing the same code for the third time over the space of six months. The original implementation was done by me, but later I started collaborating with a friend from Spain in order to grow the library. I'm quite happy with how it turned out!
"At least *one* of them is bound to do the trick."
An investigation into how brazilians laugh on the internet, and how does their behavior compare to that of other countries.
While it is not unusual to see brazilians laughing online with the universal "hahaha", it is much more common to see them laughing with several k's, such as in "kkkkkkkkkkkk". For a long time, I've been questioning myself about how many k's do people usually employ. Here I attempt to answer that, and several other unimportant questions.
A web tool for creating crosswords. Although there already exists a ton of software for building crosswords, none of them support writing the clues in the cells themselves, which is a hallmark of the swedish-style crosswords that are popular here in Brazil.
It isn't very sophisticated but fits my purposes very well, and I've made dozens of crosswords using this tool. To take a look at some of them, click here!
A simple Python script to extract "good" screenshots from videos. It basically uses OpenCV to extract a high number of frames and then clusters them by color using K-Means. Finally, the closest screenshot to each centroid is returned.
This idea was born out of necessity: I wanted to add screenshots to my old brazilian CD-ROMs projects, but dreaded the thought of doing it manually. While the core idea of this script is not very sophisticated, I was pleasantly surprised by the results, and they definitely solved my problem.
A visualization of the popular Simulated Annealing (SA) algorithm, using the clustering problem as example. The user can tweak parameters, test different configurations, and watch the pseudo-code respond in real-time. Intended as an educational tool to complement other texts.
This was done as a "spiritual sequel" to my Perceptron visualization (see below). This one is more sophisticated, and served to get me more comfortable with D3.js. I'm proud of how it turned out!
A fun online tool for translating korean names into brazilian portuguese, and vice-versa. Of course there's no real way to translate a name from a language to another, so I use the popularity of each name to make a pairing between them. I also made a cool visualization aid so that the user can see the pairing happening in real-time.
This took all my free time during a month, and I'm extremely proud of the end result. Not only I improved my knowledge of D3.js, I also think the visualization turned out pretty cool. I also detailed my process with a write-up (in portuguese) which I think is well-written.
A visualization of the Perceptron Learning Algorithm, one of the simplest models in machine learning. The user can step over different iterations of the algorithm and watch the linear model slowly converging. This tool was made to accompany a post-graduate course which I served as TA in the Summer of 2022.
The initial version was made using p5.js, but I realized that it would be a great opportunity to finally learn D3.js, so I remade it.
An analysis of the best starting word for the web-game Term.ooo, AKA the brazilian portuguese version of Wordle.
I used some basic statistics to calculate each word's average number of possible solutions, which I then used to rank possible guesses and find out the best one. This was mostly born out of discussions with a friend of mine (@BrunoOgava).
You know what they say: the only thing more fun than playing a game, is removing the fun by optimizing the game!
My graduate research involves a type of model known as "decision tree". After spending countless hours drawing these finnicky fellas, I finally decided to bite the bullet and automate the drawing procedure. The result is a general web tool for drawing not only decision trees, but any tree-like structure.
Drawing a tree is not as straightforward as it may seem, but I'd already learned the hoops from the MCTS visualization project (see below), so it wasn't as hard as the first time.
I made a script to find every single portuguese word that can be written in 1337speak using brazilian license plates. Since vanity plates do not exist in Brazil, this is the closest one can get.
You will never look at a license plate the same way again.
A youtube-powered internet radio for personal websites. The idea is that everyone checking the page will be playing the same video at the same timestamp - if you hide the player, it's basically a radio. The target audience is small, personal pages.
Although the code for playing videos is simple, this took a while to make because I included an interface for arranging the radio playlist. There are many possible improvements, but I am happy with the result.
I annotated every single cameo and verbal mention made in the musical webseries "Epic Rap Battles of History", and then made an interactive graph out of the data. The result is best shown than explained.
This is probably one of the most labor-intensive projects I've ever done, and I'm very satisfied with how it turned out.
The Kindle e-reader allows you to make highlights and annotations (called "clippings"), however the device offers no easy-to-use interface to read them. This page offers such an interface - you just have to upload the "My Clippings.txt" file located in the root of every Kindle device.
Disclaimer: there are many other projects like this one on the web, but this is the only one that focuses on devices in brazilian portuguese (the clippings file is a little different).
A team effort from the past, brought to light once again. In this page you can find the lost Brazilian translation of Pokémon's 1st and 2nd generation of creatures, as well as a web tool for you to create your own translation with your friends.
Although the origin is dubious, this page got quite popular with streamers during the first few weeks, with react videos by cellbit and felps. Truly!
During the '90s and early '00s, hundreds of CD-ROM videogames were sold in Brazilian magazines, leaving permanent marks in the hippocampi of many a child. But although these games were quite popular, today there is little to no information about them on the internet, and digital versions are still scarce.
In this context, I try to contribute to the overall community by finding these games, making them publically available, cataloguing what is known, and publishing recorded longplays of them. It's a gigantic task, but with the help and collaborative effort of many people, almost two hundred once-lost games have been found!
Monte Carlo Tree Search (MCTS) is a very popular algorithm in reinforcement learning, however it can be quite tricky to understand. In this page I offer a dynamic step-by-step visualization of how the algorithm works in a very intuitive environment: tic-tac-toe.
The visualization was done using p5js. Did you know that it is not trivial to dynamically determine the position of every node in an unbalanced tree, such as the one in the left? Well, I sure didn't!