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