I have been into programming since I was 7 years old and, besides videogames, I have always had plenty of ideas and personal projects for software tools and applications, some of which I have dedicated some time to implementing. In this section I spotlight some of these.
In the page on other research interests , I mention my interest in graph-based syntax for programming languages, in much more detail. As part of an experiment in this regard, I implemented a prototype of a program to edit graph-based syntax that I called Graff. Graff is meant to be primarily an editor for documents that embraces the graph syntax both in the document and in the editor itself. It's not just a visual representation for underlying text. It is, by definition and as a basis, a graph syntax. It is generic and not focused on any particular language. It's not quite finished and has some important issues and challenges, that I discovered as a product of attempting to implement it.
It is quite possible that I will go back and extend this idea / implementation in the future, but this initial attempt helped me understand some of its value, challenges and issues.
JAnnotation is an annotation engine. As a person with a very structured way of thinking and behaviour, but with a memory which does not live up to it, I developed JAnnotation as the tool I needed to help me organise my ideas, thoughts and tasks in a way that I could find useful. Typical agendas fell short for my needs and I came up with this idea which has greatly helped me organise myself. I believe JAnnotation could help other people with similar needs.
JAnnotation is in a finished version. However, to be a truly interesting product for the general public some key improvements would be due. To start with, it currently works through a console interface, unsuited for most people, so developing a useful GUI would be a necessary step. Other interesting features such as including the ability to share annotations, managing attached files within the annotations and many others; along with the constant improvement of the existing functionalities, would of course make it even more attractive.
Besides the introductory video, JAnnotation comes with a complete tutorial and a full reference for any users interested. The Sourceforge page for JAnnotation can be found here.
I created nDWatcher during my first year at University. Before that, I had been toying around with software calculations for 3D visuals, and a professor at University offered me to try to create an arbitrary dimension wireframe based displaying engine, and nDWatcher was the result. It is not a complete program or has any utility other than satisfying curiosity. However, I find the topic quite interesting and very relevant to my career as mathematician and computer scientist.
You can download nDWatcher here.
In relation to my interest for 3D displays, during my last year of high school, and before acquiring the necessary computer engineering formation to know that 3D calculations are particularly complex and usually require of specific hardware (graphics cards), I created a very amateur 3D engine which I later used for some experiments such as JOrbits. JOrbits is a gravity simulator, allowing the user to define bodies with different masses, sizes and initial positions and speeds to then watch how they interact with several utilities such as making the bodies leave a track behind them and moving the camera around.
You can download JOrbits here.