Hair simulation with a mass-spring system (punk’s not dead!)

Hair rendering and simulation can be challenging, especially in real-time. There are many sophisticated algorithms for it (based on particle systems, hair mesh simulation, mass-spring systems and more) that can give very good results. But in this post, I will try to explain a simple and somehow hacky approach I followed in my first attempt to simulate hair (the mohawk hair of the video below) using a mass-spring system.


 

The code can be found here: https://github.com/hikiko/mohawk

Continue reading Hair simulation with a mass-spring system (punk’s not dead!)

Claws-mail: a trick to view the patches as side-by-side diffs

One thing that I find very tiring when I read the Mesa3D mailing list for my work at Igalia , is to read the patches that arrive as emails: they are too many and the mail clients do not highlight them. So far, I was using the thunderbird mail-client with the colored-diffs plugin that made them more readable, but it was quite slow and was breaking the appearance of the e-mails that were replies to a patch. Since, I never was a big fan of thunderbird (the list of the things I disliked about it was always longer than the list of the features I liked) I wanted to find a way to have the colored-diffs and the lightning plugins functionalities to a more lightweight gui-mail-client: the claws-mail.

Continue reading Claws-mail: a trick to view the patches as side-by-side diffs

A short OpenGL / SPIRV example.

It’s been a while since Igalia is working on bringing SPIR-V to mesa OpenGL. Alejandro Piñeiro has already given a talk on the status of the ARB_gl_spirv extension development that was very well received at FOSDEM 2018 . Anyone interested in technical information can watch the video recording here: https://youtu.be/wXr8-C51qeU.

Continue reading A short OpenGL / SPIRV example.

Install/Update LetsEncrypt certificates (no-root, apache2, debian)

It seems that the certbot, the recommended script to install and update the LetsEncrypt certificates requires root permissions. Well, I found several tutorials and forums where people claimed that they ran it without root permissions but they all said they needed root permissions to do something else for certbot to work and then I ran this simple command:

and decided to give up and search for an alternative method. 🙂

Continue reading Install/Update LetsEncrypt certificates (no-root, apache2, debian)

Fosscomm 2017 [update: slides in English]

FOSSCOMM (Free and Open Source Software Communities Meeting) is a Greek conference aiming at free-software and open-source enthusiasts, developers, and communities. The event is solely organized and ran by volunteers (usually university students, communities, Linux User Groups) and is taking place in a different city every year. The attendance is free and everyone is welcome to make a presentation or a workshop related to free and open source projects.

Continue reading Fosscomm 2017 [update: slides in English]

A terrain rendering approach (part 1)

There are several methods to create and display a terrain, in real-time. In this post, I will explain the approach I followed on the demo I’m writing for my work at Igalia. Some work is still in progress.

The terrain had to meet the following requirements:

  • its size should be arbitrary
  • parts outside the viewer’s field of view should be culled

Continue reading A terrain rendering approach (part 1)

Debugging graphics code using replacement shaders (Linux, Mesa)

Sometimes, when working with the mesa drivers, modifying or replacing a shader might be extremely useful for debugging. Mesa allows users to replace their shaders at runtime without having to change the original code by providing these environment variables:

Continue reading Debugging graphics code using replacement shaders (Linux, Mesa)