Programming - Code

This page is a collection of some programs I developed either on my spare time, as part of some studies, or professionally. Some programs are full applications, some are little tools or pieces of code implementing an idea, algorithms or methods that were fun. The aim here is to share programming experience, so chunks of code or full applications. Some bits of code are pretty old. May you dig up here what you're looking for...

All my programs available for download are free and released under the GPL license. The source code is provided in an archive file. Binaries are sometimes included or provided separately.

 

As a general rule I use as much as possible free libraries and free software alternatives. It's always good to get started with the right tools and libraries. These are a couple of them I use or used in the past and would potentially recommend:

C/C++

Regarding cross-platform application programming:

  • STL, and if you need more Boost: data structures, algorithms and more.
  • wxWidgets : a cross-platform C++ GUI library.
  • Simple Directmedia Layer (SDL) : a good C 2D graphics and events handling library compatible with OpenGL. Very nice for game development.
  • Armadillo: Linear Algebra with a good interface (if you're using Boost already, it also has linear algebra features.)
  • OpenGLUT : a more up to date fork of GLUT for quick and easy use of OpenGL in a window.

If you're programming under Windows but wish to develop portable code (not relying on MFC):

  • MinGW : a very good port of gcc for Windows.
  • wxDev-C++ : a Windows IDE using MinGW (extension of Dev-C++).

Under OSX, Xcode does a very good job, including iPhone/iPod touch programming.

For Nintendo DS homebrew programming, devkitPro will do and the PAlib comes in handy.

Java

  • Eclipse : the well-known cross-platform IDE.
  • Netbeans : the rival.
  • SWT : an alternative to the standard GUI library (part of the Eclipse project).
  • JUnit : testing framework.

C#

Image Processing

  • The Gimp : a cross-platform image processing tool (alternative to Photoshop).
  • Inkscape : a good cross-platform vector graphics editor.

Graph/Network Processing

  • Pajek : a well-established graph analysis tool (with an old-fashioned interface).
  • Gephi : a more recent, modern-looking and interactive graph analysis tool (and Pajek files friendly).

 

NOTE: You must agree with the GNU General Public License before downloading any software.

 

MSCD

C++

Multi-Scale Community Detection tool with associated analysis tools. The tool enables to uncover efficiently and accurately communities in large network/graphs across multiple scales.

See community detection code page here.

SCoPE

SCoPE

C++, using wxWidgets and OpenGL

First high-level platform implementing systemic computation. The platform includes programming language, compiler, virtual machine, graphical environment and on-line 3D visualiser.

Dedicated page here.

Fugitive Moments

Fugitive Moments

C++, using SDL and OpenGL

Sci-Art application created for the Fugitive Moment project where users can draw critters, interconnected spring-like systems, that evolve in a world. The critters and the world rules are setup by the users who can then observe their creations behaving in their world.

Dedicated page here.

Java Terrain Rendering

Java3D Terrain Rendering

Java, using Java3D

Application implementing various terrain generation algorithms, with or without riverbeds, several terrain improving filters (e.g. better realism or game playability). Documentation about the implemented algorithms is available here (in French).

Source + Binaries.

OpenGL Terrain Rendering

OpenGL Terrain Rendering

C, using OpenGL

Piece of code implementing in C and OpenGL for faster rendering some of the terrain generation algorithms available in the application above.

Source

Pattern Recognition Main FRame

Neural Networks Library & Patterns Recognition

C#

A Neural Networks library and an application using it for pattern recognition.

Dedicated page here.

Ants 2D Ants 3D

Ants Civilisation Simulation

C#, using DirectX in 3D mode

An ant civilisation simulation library along with a 2D interface and a 3D interface.

Library Source, 2D Interface Source, 3D Interface Source
All Binaries

CS Fractal Explorer

CS Fractals Explorer

C#

The program draws Mandelbrot, Julia, Newton and Lambda sets and offers various tuning parameters. Each set can be explored in depth, have its colours modified, and the visual outcome saved as a picture. The archive contains an executable file for the .Net Framework SDK v1.1.

Source + Binaries

CS Image Processing

CS Image Processing

C#

Image processing tool implementing some algorithms of transformation and cryptography.

Source + Binaries

JMorback

JMorback

Java, using SWT

A tic-tac-toe game using the min-max algorithm with brutal force.

Source + Binaries + Doc

TubsTubs

Tubs

C/C++, using SDL on PC/Mac and PAlib on NintendoDS

A space invader type game written in C/C++, which I ported for the NintendoDS, then started porting for the iPhone as well. It's one of my toy application when I want to try a new platform.

CS Super Mariole

CS Super Mariole
Game & Editor

C#, using DirectX

A clone of the famous Nintendo game Super Mario.

Dedicated page here

Landscape Generator

Landscape Generator

C#

The tool generates
- clouds with a fractal algorithm,
- mountains,
- hills.
Its core is used in the Mario game above to generate some background landscapes.

Source + Binaries

Audio player

Audio library and Player

C#

C# audio library along with a player using it.

Library Source, Player Source, Library & Player Binaries

RImageTraf

RImageTraf

Java

Basic BMP image editor. It contains a BMP file reader implemented from scratch (reading the most current formats of BMP files). The tool implements basic image processing functions.

Source

RJRace3D Editor RJRace3D Preview

RJRace3D

Java, using Java3D

A 2D level editor providing a 3D preview of the currently drawn level. It was named after the intention to create a little car race but I stopped the development once I learned enough Java3D to move on to something else.

Source

Java Fractals

Basic Fractals

Java

Small program drawing Mandelbrot and Julia sets and creating a png format image file.

Source

ACPI Viewer

C

Small tool that was designed to display ACPI informations when running a Linux distribution with the 2.4.21 kernel. Not very useful any more though...

Source

X-Fonc

C - C++, using Gtk+

A scientific calculator.

Source

Java Solitaire

Java Solitaire

Java

A solitaire card game.

Source

DrawEditor

DrawEditor

Java

Basic tool for drawing and moving simple vectorial shapes.

Source

MP3 Player

C - using SDL

MP3 player for some Alizee songs. This piece of software was born out of a joke between friends back in good old 2000.

Source

Video Player

C - using SDL and Gtk+

Basic video player for MPEG format.

Source