Mail Me
Software !

This section is dedicated to the software i have written that i judge worth posting since they might be useful to other people, also at the end there is a list of Third Party software which i recommend to any unix programmer to have, or simply software which  i have contributed a little.

Back to TopFun - Games
Well i had created this section for all the little games i have lying around but with my thesis actually i haven't got enough time to clean them up for publishing, so they're on hold until i get some more time!! :-(..(i'm letting this empty section here as a reminder to myself).

Back to TopTools
Just a set of little tools i had written to make my life more easy:
  • dos2nix: a one liner shell script to eliminate the annoying  ms-dos carriage return characters from a set of text files.
  • unberk: Simple perl scrript to convert into standard C/C++ sets of files that use the ugly and stupid berkeley macros (pascal like syntax). 

Back to TopGraphics
For the most part my programs are computer graphics related, not only because it's my Ph.D. research area, but also kind of a hobby (or maybe because i just love graphics ;-)
  • GLUO: Is a simple library/api  (in C) that contains some nice OpenGL objects and utility functions to be used as visual cues or manipulators in graphics programs (requires Glut)

  • It contains some practical matematical functions like min, max, clamp, smooth step, box step, sawtooth, spline interpolation. 
    It contains opengl representations for objects like grids (2d,3d), vectors, axis, arrows corners, corner boxes (useful for bounding boxes), pyramids, cameras, lamp models, help strings (printf alike), voxel visualisation (cubes with/wout wired superposed).

    It  contains also some functions for the fast creation of voxel objects as voxel lists or in a voxel grid like: voxel spheres, and Triangles voxelization (useful to voxelize a polygonal object).

    It's only a plain C file and header so you can include it with any software package you like, documentation is  included but can be generated using Doc++ on the header file.

  • libDXF: A simple library to load and manipulate 3d objects in the autocad DXF  file format, it's  OOD but implemented in plain  C, it contains the  autocad DXF format description and it's possible representation as a language syntax,  also has an example of how to convert DXF objects to OpenGL display lists.

  • dmotif: A  simple library of basic drawing functions based on Xlib that simplifies  the integration and utilization of X drawing functions in combination with motif widgets (sorry documentation in spanish only).

  • flews: A set of extended Widgets for the excelent FLTK library, the current version (0.3) contains the following widgets,classes and helper functions:
    • Fl_Value_Slider_Input
    • Fl_Value_Input_Spin
    • Fl_Spin
    • Fl_Ball
    • Fl_Multi_Value_Slider
    • Fl_Pack_2D
    • gl_image
    • Fl_Quaternion
    • fl_trackball
    The Fl_Ball widget it's optimized so it doesn't require any kind of 3DHW acceleration.


  • YAGE - Yet Another Gradient Editor: YAGE is a simple gradient editor, similar in functionality to the ones found in many graphics programs, it's purpose is to have a simple and fast tool for editing and converting between gradient formats. Version 0.2 can read, write, convert between VU and GIMP gradient formats and added support for MS-Windows.
  • dpbrush: Co-authored with Francisco Chavés is a simple paint program that uses pure xlib functions only, it's pretty old but still pretty useful as a pure xlib programming example.
  • stex3d.c: A simple OpenGL  texture 3d demo program i wrote to test the Mesa implementation to this extension.
  • texture3d.c: Another  demo of the mesa 3d-texture extension to simulate  procedural texturing, it uses a lattice gradient noise and perlin turbulence functions.
  • GLUO:  for more info read the explanation above

Back to TopMiscellaneous Programs
  • fltk-1_0_9-mwheel.diff.gz: a patch for fltk 1.0.9 that let's you use the mouse wheel on Linux with the scrolling, and browser widgets. 

Back to TopThird Party Software that i recommend
This is a list of links to third party software which i recommend since they have been pretty useful to me, and i think they must be standard parts of the set of tools of any  unix programmer (BTW, i also  had the pleasure of contribute code to some of them ;-):
  • Mesa: A great OpenGL alike multi platform library created by Brian Paul, i had the pleasure of contribute with the implementation of the point parameters and Texture 3D extensions.
  • bk2Site: A wonderful tool created by Jose M. Vidal, to convert your Netscape bookmarks into a yahoo! alike web site!!, i used it to create my links section, i  had the pleasure of contribute with a modification that allows it to use a single directory instead of a directory hierarchy to overcome the limitations imposed by the free web page providers (included after version 6.4).
  • Doc++: Great and simple literate programming tool, pretty easy to use, similar to javadoc but for C/C++/Java.
  • FLTK: An excelent fast, light and portable GUI toolkit.
  • nedit: Well, i think that the emacs/x-emacs guys should really take some clues from these guys, it's a very light, fast, flexible and powerful X-Windows editor, it gets its job done in a pretty good way without eating all of your memory.
  • flide: created by Maarten de Boer it's  a merge his fltags and flmake tools on one simple interface, it's a fast and light tool that allows fast makefile error messages  and class tree navigation (kind of a fast light IDE ;-). I cleaned up the multithreaded part and added regular expressions for extending flmake easily to recognize the output of different compilers, also added a run list for the automatic handling of  multiple executable targets. It's still a work in progress but nevertheless highly useful in combination with nedit or any other xwindows programming editor.
  • ddd: The best graphical debugger interface for all the unix debuggers (dbx,gdb,...)
  • flex++ & bison++:  A great replacement for lex/flex and yacc/bison if you want to use C++, they extend the traditional flex/bison in a simple and powerful way that allows you to easily encapsulate the parser in a class (better than the standard flex/bison C++ output), allowing you to have multiple lexers/parsers generated by them into the same program without having to use name mangling utilities.