Here, you will find my personal projects. They are things I do for fun and personal development. This logo was generated using Canva's AI logo generator.
Something I love to model is weapons. It probably has something to do with my love for fantasy games but they are the first things I tried modeling when I started learning Blender. The way you can see it on this page is with the model-viewer module. It doesn't support complicated textures which is why they all look a bit too smooth.
I discovered Voronoi diagrams in my second year of engineering school in IGR classes, and I have found them fascinating ever since. This is why I made a project to visualize them and their Delaunay triangulation counterpart. This window allows you to click to add points, and it will automatically compute the Voronoi diagram and Delaunay triangulation. You can right click to clear the points. The interactive part was very inspired by this visualization. The computation is done using Bowyer-Watson's algorithm and classic duality properties of Voronoi diagrams.
All of this work was done to achieve this interactive Voronoi generator that I wanted to make with my own Delaunay implementation. You can click anywhere on the window to generate a Voronoi diagram using an exponential distance function. The λ value basically controls the mean distance to the click of the Voronoi cells, and the n value controls the number of points generated. This is basically how Voronoi cells can be used to simulate phenomena such as glass shattering. You can right click to reset.
While working on Voronoi diagrams, I came across the Sutherland-Hodgman algorithm. It is a polygon clipping algorithm, necessary for constrained triangulation, which is applied when creating a Voronoi diagram in a 3D space. I made this interactive window to visualize how this algorithm works. You first draw a normal polygon, then a clip polygon, all using left click. The algorithm will create a new polygon that is the intersection of the two, like a version of the first polygon cut to fit into the second one. The instructions are constantly written below the drawing area.
Draw an ordinary polygon. Finish it by drawing an edge to the initial point. Right-click to reset.
I've been learning three.js as a new tool to code 3D graphics. It is a very powerful and popular library that enables 3D rendering in the browser. I've discovered that it is way easier to use than WebGL or WebGPU, and it's perfectly documented. I looked for a first project to implement with three.js, to then move on to more complex things like my 3D fracture Voronoi project that I wanted to develop in web.
I wanted to visualize Perlin noise, which is a gradient noise function that is used to generate organic-looking textures and terrains. It's more natural and coherent than white noise because it uses a grid of vectors interpolated to create a smooth transition between points. The sphere's points are displaced using this noise to visualize its effect. You can hold the mouse to rotate the sphere.