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:

About

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

Enseignements à venir

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.

Stage M2: capture de la géométrie d'un jeu OpenGL

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 :

  Le programme repose sur l’instrumentation de shaders, dont l’analyse est illustrée de manière basique dans la vidéo ci-dessous.

3D printing of a face mask during lockdown

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).

01s 03a 04m 05m

3D print of the support grid:

Ribbed support vaults for 3D printing of hollowed objects

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.

Buddha cube bottom cuteOcto cuteocto topview kitten2 moai transparent

New EGSR 2019 paper!

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!

HCSG: Hashing for real-time CSG modeling

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.

New 3D printing Master option

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.

3dprintingcourse

3dprintingcourse2

3dprintingcourse3

New endeavors

15 October 2015

New endavors await in the city of Limoges! I have just been hired in the Faculty. Stay tuned!