My name is Frédéric Claux. I am Associate Professor at the University of Limoges.
Visit my research page for more details on my research.
See the teaching page or the Master ISICG programme of the Faculty of Sciences for more details on teaching.
Here is my quick resume:
Since 09/2015: XLIM, University of Limoges, Faculty of Sciences
2014-2015: INRIA Nancy, ALICE team.
2009-2013: IRIT, PhD candidate.
2005-2009: Microsoft Corporation, Redmond, WA, USA. Virtual Earth Team. Working on Map Rendering.
2004-2005: Navman New Zealand Ltd, Auckland, New Zealand. Map Core Engineering Team (GPS devices). Working on Map Rendering (lead developer).
2001-2003: Techbase, Paris, France. GIS engineering. Lead developer.
1999-2001: Geotech, Paris, France. GIS engineering.
Email address:
frederic.claux AT unilim.fr
Postal address:
Frédéric Claux
Université de Limoges
XLIM UMR CNRS 7252
123, avenue Albert Thomas
87060 Limoges Cedex
13 April 2020
Mise à jour des enseignements dans le Master ISICG
Le Master ISICG modernise ses cours, pour y adjoindre davantage d’I.A., et notamment de deep learning appliqué à l’image et aux formes géométriques.
Les cours vont aborder davantage d’applicatifs tels que la vision par ordinateur, et la synthèse d’images et de formes par l’exemple.
Plus d’informations ici.
07 April 2020
Capture de la géométrie d’un jeu OpenGL par instrumentation des shaders OpenGL
Ce stage de Master 2 de Bastien Thomasson a porté sur la capture de la géométrie d’un niveau de jeu et ce, au fur et à mesure que l’on joue. Le travail portait sur l’écriture d’un programme permettant :
d’intercepter les appels OpenGL pour les dérouter vers des fonctions d’analyse et de capture. Cette fonctionnalité fait essentiellement appel à de la programmation système.
d’instrumenter les shaders pour capturer les informations géométriques. Cette fonctionnalité fait appel à l’analyse grammaticale (bison, flex ; nous avons aussi testé du code ANTLR)
de reconstituer un univers 3D en inférant la matrice de transformation globale à partir de la matrice de vue, image après image.
capture automatique une fois un paramétrage mis en place pendant que le jeu tourne, effectué une seule fois. Et ce, sans altérer le fonctionnement du jeu.
programmation de toute l’interface utilisateur nécessaire à cet effet
Un nuage de points est ainsi alimenté au fur et à mesure que le joueur évolue dans son environnement. Nous nous sommes arrêtés là, mais un maillage peut être reconstitué très rapidement avec des méthodes comme Raster2Mesh (video).
Nous avons testé la capture avec deux jeux, IOQuake 3 (dans la vidéo), et SuperTuxCart.
Les appels OpenGL sont d’abord détournés. Sous Windows, cela consiste à appeler CreateProcess(), attendre le chargement des bibliothèques OpenGL (OPENGL32.DLL et éventuellement les bibliothèques spécifiques aux drivers, fonctions récupérables par wglGetProcAddress()), à récupérer les adresses, puis à poker dans l’espace virtuel du process via WriteProcessMemory() pour détourner vers des fonctions typiquement chargées dans une DLL contenant l’implémentation des fonctions détournées. Ces dernières font leur travail puis appellent à leur tour les vraies fonctions OpenGL.
Il existe d’autres manières de détourner des appels, comme par exemple :
la bibliothèque Detours, de Microsoft Research, qui suit des principes semblables à ceux décrits ci-dessus.
pour les objets COM, la fonction CoTreatAsClass(), ou l’Universal Delegator. Ce dernier permet de faire de l’aggrégation d’objets après que les objets aient été créés (à l’instar de COM_INTERFACE_ENTRY_AGGREGATE_BLIND, mais au moment de l’exécution).
Le programme repose sur l’instrumentation de shaders, dont l’analyse est illustrée de manière basique dans la vidéo ci-dessous.
06 April 2020
3D printing of a face mask. I am sending here the GCode that was built to slice the face mask, in STL form. This is done by my own software application that I use for the Master ISICG 3D printing course. The printing process itself takes place on a Printrbot Simple Metal 3D printer. This printer is discontinued but still used for some courses at the University. Note that this mask is built for educational purposes only. Its effectiveness is weak compared to FF2 masks bought in pharmacies.
The fitting of the mask is not bad for adults but is obviously inappropriate for kids (I’ve seen other masks that are more suitable).
3D print of the support grid:
21 June 2019
Thibault Tricard, Frédéric Claux, Sylvain Lefebvre
Computer Graphics Forum, 2019
Additive manufacturing techniques form an object by accumulating layers of material on top of one another. Each layer has to be supported by the one below for the fabrication process to succeed. To reduce print time and material usage, especially in the context of prototyping, it is often desirable to fabricate hollow objects. This exacerbates the requirement of support between consecutive layers: standard hollowing produces surfaces in overhang that cannot be directly fabricated anymore. Therefore, these surfaces require internal support structures. These are similar to external supports for overhangs, with the key difference that internal supports remain invisible within the object after fabrication. A fundamental challenge is to generate structures that provide a dense support while using little material. In this paper, we propose a novel type of support inspired by rib structures. Our approach guarantees that any point in a layer is supported by a point below, within a given threshold distance. Despite providing strong guarantees for printability, our supports remain lightweight and reliable to print. We propose a greedy support generation algorithm that creates compact hierarchies of rib-like walls. The walls are progressively eroded away and straightened, eventually merging with the interior object walls. We demonstrate our technique on a variety of models and provide performance figures in the context of Fused Filament Fabrication (FFF) 3D printing.
Paper available on HAL
Below is a link to a Windows binary (64 bits) that can be used to generate the supports.
Authors: Frédéric Claux and Thibault Tricard
Requirements: a 64-bit Java 8 or later Virtual Machine needs to be installed on your computer. If both a 32-bit and a 64-bit JVM are installed on your computer, the 64-bit JVM must be the default JVM. The application also requires an OpenGL 4.3 graphics card and a recent graphics driver. Any graphics card manufactured after 2010 should work. You must agree with the terms listed in the About dialog prior to using the application for support generation.
20 June 2019
Our paper Glint Rendering based on a Multiple-Scattering Patch BRDF has been accepted at EGSR 2019 (CGF track).
Check out the paper page for paper details, submission video and full source code!
01 August 2018
Cédric Zanni, Frédéric Claux and Sylvain Lefebvre
ACM on Computer Graphics and Interactive Techniques, July 2018
Constructive Solid Geometry models solids as boolean combinations of base primitives. It is one of the classical modeling approaches in Computer Graphics. With the advent of 3D printing, it has received a renewed interest: CSG affords for the robust definition of solids, and fits well with parametric modeling, affording for easy customization of existing designs.
However, the interactive display and manipulation of CSG models is challenging: Ideally, CSG has to be performed between a variety of solid representations (meshes, implicit solids, voxels) and the renderer has to provide immediate feedback during parameter exploration. The end result has to be prepared for fabrication, which involves robustly extracting cross-sections of the model.
In this work we propose a novel screen space technique for the rendering, interactive modeling and direct fabrication of parametric CSG models. It builds upon spatial hashing techniques to efficiently evaluate CSG expressions, checking whether each interval along a view ray is solid in constant time, using constant local shader memory. In addition, the scene is rendered progressively, from front to back, bounding memory usage. We describe how the hash encoding the CSG is constructed on the fly during visualization, and analyze performance on a variety of 3d models.
16 October 2016
Starting this september we have a new option for our Master 2 ISICG at the University of Limoges.
The option consists of a 30-hour course where the following topics will be addressed:
Introduction to 3D printing
Slicing
Toolpath generation
GPU/OpenGL programming for 3D printing
A familiarisation with the GCode language used by 3D printers.
Throughout the course, students will be programming their own 3D printing application, from start to finish.
Feel free to contact me directly for more information about this new option.
15 October 2015
New endavors await in the city of Limoges! I have just been hired in the Faculty. Stay tuned!