Philippe Guigue's Homepage

Doctor of Computer Science
Computational Geometry / Computer Graphics


Curriculum Vitae
Research Interests
Publications
Codes
Links
Fun
Contact
Integrated image-guided navigation system for surgical operations


During my work at the Schaerer Mayfield Techologies GmbH, a company which proposed real-time
imaging solutions for the operating room (Neurosurgery, ENT, Orthopedics), I was involved in the development
of the company's main product GuideLine, an integrated, image-guided navigation system that allowed to
navigate intra-operative fluoroscopy and pre-operative MRI and CT images.
I participated in the whole software development process (including design, refactoring,
testing, internal documentation, and preparation for the ISO cerification)
and was responsible for the core and GUI library modules.

Implementation

.
Design and development of core library components, such as a module for serialization and
automatic instantiation of C++ objects, a framework for the communication and synchronisation
between widgets, and basic components for system management (patient database, user management, archiving, ... ).

. Design and development of a GUI module for workflow management (customizable GUI layouts and
workspace scenarios optimized for muti-screen systems and dedicated surgical tasks),
as well as custom widgets based on the Model-View-Controller pattern.

All algorithms were implemented in C++ and based on the Qt and the
STL libraries. Scripts were written in Python.
Persistent data were saved in XML format.

(The code is property of Schaerer Mayfiled Technologies GmbH.)



Preprocessing of Massive Meshes for Interactive Visualization


During my work at the
Tools & Toys GmbH, I was responsible for the development of components
for mesh simplification and mesh healing. Moreover, I participated in the design of an interactive
rendering system and developed a tool for the out-of-core preprocessing of giga-sized datasets.

Implementation

.
Mesh simplification module for high-quality static level of detail (LOD) generation.
The program handles meshes with vertex attributes and allows mesh reparation and topological simplification.

. Module for out-of-core construction of hierarchical level of detail (HLOD) representations for huge CAD models.

The algorithms are implemented in C++ and LUA Script and make intensive use of librairies such as STL and BOOST.
Besides Tools & Toys proprietary format, VRML and XML were used to interface with other programs.

(The code is property of Tools & Toys GmbH.)



Geometric Rounding


During my Ph.D., I implemented a program based on
CGAL (Computational Geometric Algorithms Library)
for rounding the results of exact set operations of planar polygonal regions onto the integer grid with
inclusion properties (see SOCG04 paper).
The algorithm is based on a plane sweep scheme and uses floating point filtering techniques for all basic
geometric computations in order to ensure the exactness of all decisions and constructions.
The rounding onto the integer grid is achieved thanks to the implementation of the continued fractions
expansion technique from number theory.

(The code is property of INRIA.)




Collision Detection


Triangle-Triangle Overlap Test (2D/3D)

A link to the Journal of Graphics Tools’ webpage that contains a downloadable C implementation
of my Triangle-Triangle overlap test.

An extended version of the web page that contains a comparative analysis of the different existing
Triangle-Triangle Overlap Tests.



Polygon-Polygon Overlap Test (2D/3D)

A web page on the three-dimensional Polygon-Polygon Overlap Test.



CGAL Sample codes

The following routines are part of CGAL (Computational Geometric Algorithms Library), a C++ library
of geometric algorithms that is developed by a consortium of eight research teams in Europe and
Israel and commercialized by a private company. The goal of CGAL is to provide robust, efficient,
flexible and easy to use implementations of geometric algorithms and data-structures.

During my PhD, I contributed to the intersection package of CGAL by implementing several routines
for testing efficiently and robustly the intersection of a triangle with several basic three-dimensional
geometric objects (Point, Line, Ray, Segment, Plane,…).
These programs use new formulations of these predicates and make full use of the template
mechanism in order to ensure a flexible and non-redundant program design.

You can download CGAL here.


Some older versions of the intersection functions:

Triangle_2_Triangle_2_do_intersect.h
Triangle_3_Point_3_do_intersect.h
Triangle_3_Line_3_do_intersect.h
Triangle_3_Ray_3_do_intersect.h
Triangle_3_Segment_3_do_intersect.h
Triangle_3_Plane_3_do_intersect.h
Triangle_3_Triangle_3_do_intersect.h




Randomization

A downloadable STL-like implementation of the Shuffling Buffer that I programmed during my master degree studies.




Graphic User Interface Builder

During my graduate studies, I developed in collaboration with three other students Buildoo a Graphic
User Interface Builder for the graphic library Biglook, which is part of the language Bigloo a compilable
Scheme implementation.




Nintendo DS Homebrew


DS101, a small program that I wrote to play/mix soundfiles with the touchscreen of your Nintendo DS (GBA Movie Player required!).
Downloadable zipped .nds file




OpenGL program


An OpenGL demo inspired from Mario Kart.
Downloadable Zipped .EXE