Here are some projects I've been working on, and others that aren't finished yet.

  • DeltaPACKER Project: Researching on Data Compression
    I've decided to make a new data compression algorithm from the ground-up.
    First, it encodes BITS, not BYTES. This can lead to size gains. For the bit encoding part, DeltaPACKER incorporates the state of the art: An arithmetic coder ! One could say, that HUFFMAN coding (vastly used by the best packers nowadays) is only a subset of Arithmetic coding. The latter allows to code the events using a fractional number of bits, thus freeing us from rough power-of-2 approximations, and greatly improving the accuracy of the coding process !

    However, several arithmetic coding methods have been subject to heavy patenting from IBM and other big companies. Well, that's no problem for me, because I'm using my own algorithm, and anyway such patents are not applicable to non-commercial researching & studying.

    The biggest part of my program is an accurate (but slow) bit-level predictor, which drives the arithmetic coder. That's the part I've working the most on.

    Currently, DeltaPACKER outperforms WinZip on most files, even when choosing "Max Compression" in WinZip. In general, my program does wonders (when compared to others) on highly redundant files. Yeah, but arithmetic coding and my predictive schemes slow down when there's few redundancy... Anyway, I demonstrated what I wanted to... And there's also room for improvement :-)

  • Calculating The Factorial of 1,000,000
    It's equal to: 1 * 2 * 3 * 4 * (...) * 999,998 * 999,999 * 1,000,000
    The result is A MONSTER, it's a number of 4,622,222 digits !!! It would take 2 months on a P5 300 MHz for calculating it, but I took it down to < 4 hours using my assembly routine. The overflow problems are usually a nightmare to handle in C, but it's very easy to use in Asm.



  • The "MXP" Graphics Library
    It's a realtime graphics library for x86-based platforms. It is powerful, very fast, and it can be linked into a program for creating lightning-fast 2d and 3d effects such as fire, 2d bump effects, fractal zooming, 3d textured&lit objects, and such. It supports 8-bit palettized effets, and has an extension for 24-bit and Vesa2 extended modes. Also, it uses the MXP format, which I created to import some simple 3d-studio meshes. I've created the library using C & Assembly code, under DOS.



  • The "MXP II" Graphics Library
    It's my first program in C++: a 24-bit object-oriented graphics library with support for any number of lights, objects, and for a moving camera (6 degrees of freedom. It uses the MMX instruction set, to deliver full-motion movement with multi-lights Gouraud shading, and mip-mapped texturing. All this, in software (using DirectX, just to grab the frame buffer).
    Experimental support for arbitrary shadows (including self-shadowing) is built-in.


  • The "Deus X3" Demo Applet
    After having dealt with both C++ and deep Assembly pipelining, I felt that it would be interesting to try a bit of Java ! Here it is, it's the Java applet that's running on my page. You can feel the smoothness and speed of the motion, even in such a high-level (and rather slow) language. You can find technical details about the routine, in the DeusX3 section of my homepage !


  • The R******** Game Project (unfinished)
    In 1998, with two relatives of mine we started a 2-d strategy game project. The project leader's goal is to beat well-known Starcraft, and I got involved to create the game engine (and especially the visual parts).

    Here are some technical features from the graphical point of view:
    - Allows rich textures and landscape: 16-bit colors (Starcraft was 8-bit)
    - Very fast engine: runs @ 70 fps on a Pentium 200 mmx !!
    - Unbelievable fog, cloud and variable partial transparency effects
    - Graphics board independant, everything runs in software

    There are alot of unforseen news in this game, which I won't explain here because I'll let this to the project leader, when the time comes :-)


  • RMS: Recovery Mastering System
    Some years ago, a friend of mine lost a lot of work in a harddisk partition crash. Since recovering the data manually would have took ages, I worked hard, using his knowledge about Fat & Fat32 structures, to create an automatic file recovery program. As a result, it works very well !

    Here are its main features:
    - Supports both FAT and FAT32 filesystems,
    - Supports both harddisks and floppies,
    - Can auto-detect & recover deleted partitions,
    - Can recover when Partition is re-formatted (except for floppies),
    - Can recover when Boot Sector is destroyed,
    - Can recover when FATs are fully destroyed,
    - Can recover when Root Directory is fully destroyed,
    - It's generic (it doesn't really have harddisk size limitation)

    Here are its disadvantages:
    - Requires a clean target partition to copy recovered data,
    - Ignores LFNs (long file names) for now,
    - Cannot guarantee recovered files' integrity.