This is a gallerie of some of my current and past side projects. Some need polishing, some are not finished and some don't work the way I'd want but it's a good ego boost to keep a list of things I have achieved.
Nasa Wallpaper of the Day. This is a script I made which automatically download Nasa's Astronomy Picture of the Day and sets it as my desktop wallpaper and my zoom virtual background. As if I wasn't already talking enough about space exploration to my teammates!
Inspired by Jim Fleser's book The Chord Wheel, this is an online implementation of his paper tool. It is used to identify major scales and their chords. In the future I want to recreate it with a wheel for the minor scales and one for the Ring of Fifths.
Demo - Code
I wanted to create a new musical instrument, so this is a bunch of balls trapped in a circle which produce different notes based on where they hit the circle. This was a great opportunity to play with p5.js sounds capabilities.
My first experimentation with the Pixijs framework. This is an implementation of the well known Langton's Ant cellular automata invented in 1986. I also added a twist to fill the different groups of dead cells with different colors.
This is a quick recreation of an animation I saw on this blog. Nothing fancy just a bunch of moving points connected to their closest neighbors.
An incomplete project where I generated some race tracks procedurally and used machine learning algorithm to teach cars to drive on these tracks.
Demo - Code - Article
I wanted to create an AI playing simple tracks in Trackmania United Nation Forever. As there is no API I went with a rust application which screenshots the game, check some pixels in the bottom right corner to parse the current speed and which presses some keys on the keyboard to control the car. For now the bot is able to maintain the car at a given speed by pressing and releasing the up arrow key. The next step is to do some ray tracing to detect the borders of the track.
An experiment with Abelian sandpiles. This was pretty quick to implement but I then realized that they are not as interesting as I would have expected.
A simple Abelian sandpile project used to prepare 'Sandpiles -2'
A very small project with trails of color moving randomly on the screen and avoiding each other. I didn't take time to make it as beautiful as I originally expected.
A 2048 game. The initial idea was to create an AI playing 2048 using a Monte-Carlo algorithm. For now the only 'AI' implemented is random, I'll see if I get back to this project.
A color picker implemented with GLSL shaders
My second attempt at simulating a colony of ants. This is not completely finished as I need to fix a bug where the ants get stuck in infinite lines
Generate a smooth path between a set of points using Bezier curves. This is an exploration before digging into a racetrack generation project.
Another genetic algorithm experiment, this time trying to control some cars on a racetrack. It would need a better track generation to have more situations to learn from, this is what inspired me the "Bezier experiement" project.
A short experiment with matter.js and chart.js to create a pendulum simulation and graph the movement.
My implementation of the Reversi game with an AI opponent using the min max algorithm.
My implementation of the triomono game with a not very efficient AI opponent.
A visual representation of some sorting algorithms which became boring before I implemented all the algorithms I had in mind.
Playing with Perlin noise to generate a random terrain
A breathing exercise to help you relax.
My first attempt at simulating an Ant colony. They go out of the anthill, look for food and use pheromones to get back home and form efficient paths.
Simulating a flock of virtual birds to experiment with emerging behaviors.
My implementation of the famous video game from the 80's Asteroids with my own sound effects as a bonus.
Using several algorithms to generate mazes and then solve them with different methods.
The classic game Minesweeper in your browser.
Using a circle packing algorithm to recreate pictures of kitten.
A cellular automaton framework in the browser: Test different neighboring rules and survival conditions to recreate the Game of Life or discover new automaton.
A very simple game I used to experiment with bouncing and jumping behaviors
My first attempt at using genetic algorithms. Trying to teach a flock of Roombas to reach a target.
A pool with a homemade physics engine.
My solution to some of the problems of the project euler. For sure one day I'll finish them all!
The most useful plugin I've written for Vim. Easily quote the doc to post it on stackexchange.com or any markdown file.
Read the title of the posts in a subreddit and plug this data in a markov chain algorithm to generate new titles.
A useless Vim plugin to show an arrow in the gutter of the current line
A slack integration which counts the reactions on each messages in a channel and give a positive score to each user.
When I was a compulsive user of vi.stackexchange.com I created a bot to be notified on slack of every new question on the site to answer fast and get these sweet virtual points from the internet
An electron app I created for my team to print Jira tickets for our physical Scrum board. Please save the planet and don't use this app.
Get a slack notification when the Kimsufi server you're looking for is available