Projects : LeGreg's HomePage

These projects are listed from the oldest to the newest one. Send your comments or question to email


A very small CGI program that could name a man after his function, or could give his function after his name. It was divided in two parts. The first one had to parse a list of articles and could generate a database of corresponding names and functions. The second one had to exploit the database to answer the most precisely to the question "Who is the french premier ministre?" or "What is the nationality of Klaus Kinkel?". It was programmed in C and Caml language by Yann Buril (at and myself.


The goal of this program made in collaboration with Nathalie Quintin (at and implemented in Caml language was to create a "virtual person" with whom you could talk. Its discussion skills are very limited though we created it so that it could easily be extended with new vocabulary and new basic conversation schemes. It could recognize basic grammatical structures. For example, when you wrote something like "I want you to wash your hands", it could answer something like "No, I don't want to wash my hands". Plus it possesses a bunch of predefined states such as "angry" or "sad".

Trinocular computer vision

We are given three views of the same scene from a slightly different point of view. The program has to find the similarities between the views to reconstruct an plausible 3D structure of the scene. Once the cameras are calibrated and the images are captured, the program extracts the edges from each image. These edges are internally represented as line segments and each segment has to be associated with two others so that it can accurately be positionned in the 3D space. Nota: the project page and the report are in french.

Voxel landscape

A small program in DirectX that implements a basic voxel rendering engine: it is not very fast nor very complex but was made in order to understand what kind of programmation was necessary to achieve such an engine. It was also an introduction to DirectX (no 3D acceleration was used).

A general view of the landscape with the semi-transparent reflecting water (achieved with a small trick):

An elevated view of the landscape. Notice the fog and the faint antialiasing. The terrain surface is linearly interpolated and mipmapped as well.


A bulletin board application, programmed in PHP and MySQL for the web frontend of the association. Each user is identified by a cookie during each session and need to log in before reading or posting on the bulletin board. The application supports upload of attached files, modification and deletion of messages (by owner or by moderator), articles are gathered into "forums" and users are gathered into groups which have access to different forums.

HTTP proxy

This was programmed on a Unix platform in C language. It was designed as a system and network school project though its features are numerous. It is a multithreaded application that runs with a pool of threads, reducing the thread creation overhead. It possesses an evoluted "cache" accelerated by an index based on a balanced B-tree and a hashtable. It is also capable of parsing the HTML files in order to suppress ads directly from the source code.

Hogum area trekking simulation

On this project, the user is immersed into a virtual Utahn landscape. I worked during three months on this with Amy Gooch at the University of Utah, Salt Lake City. My job was to improve the realism of the terrain simulation by adding some local texture and geometric details with as little impact on the speed of the simulation as possible. I added some shadows too. I had not enough time to implement some things such as the view dependant textures.

The landscape with detailed geometry, detailed textures and soft shadows (click to see more):

Click for a bigger image

Another view, this time with "hard" shadows.

Click for a bigger image

Grass texture and billboard trees. The tree shadows are simulated through a mere texture mapped on the ground:

Click for a bigger image

Game project

I'm working with a small group of student to define what could become an entire game. For now, our intention is to create a 3D game engine, capable of rendering outdoor as well as indoor scenes with no visible transition between them. The project is only at its beginning and will be programmed in C++ and OpenGL. More is coming soon.