Today, there is no or few offer of free-libre software dedicated to Earth Sciences, to Geology. There are numerous free-libre softwares in nearby or complementary domains, such as statistics, Geographic Informations Systems (GIS), mapping tools, Computer Assisted Design (CAD), vector or raster drawing tools, 3D modelers, databases, etc. But so few are specific to Geology.
It is worth mentioning a few exceptions: ParaViewGeo is a version of the well-known ParaView software (scientific data visualisation) that was heavily modified to support data modelling and visualization in the mining and geoscience fields. There is also OpendTect, which is aiming at seismic interpretation, so more into the oil and gas industry.
Nowadays, advantages of the development model of free-libre softwares are widely recognised. I do take advantages of them daily, as well as more and more individuals, companies, organisations. One can mention (in disorder):
In 2008, year dedicated to our planet Earth, I decide to launch a project named GeolLLibre, for GEOLogy Logiciels (softwares) LIBREs, a free-libre software suite dedicated to geology.
During my professionnal career, I happened to use a great amount of computer tools, applied to my geologist's work. I had to develop tools, to address such or such problem. These tools range from the simple transformation ("moulinette") tool converting a file to another file, to a more complete software package. This also included tools to help some colleagues encountering specific problems.
Among the numerous tools which I used, very often the same problems were differently addressed by different developers teams, more or less successfully and/or efficently. It was often quite frustrating to realize that such tool was missing almost nothing, when compared to such other one, to get close to perfection; if only both developers' teams could have worked together... Same fonctionalities are re-developed many times, wheels keep on being re-invented.
Some old tools, so useful, but restricted to such platform, today obsolete, no longer exist today. This is a shame: the ones to replace them are only ersatzs, something is always missing.
Nowadays, almost every company or organisation working in Earth Sciences have its own software system and data, often several systems; this depends on several parameters:
There is an obvious lack of a geological data standard, despite the relative simplicity of data models that the geologist usually manipulates: we are very far from the complexity of meteorological models, or data models used in aeronautics, strain modelling, for instance. We should keep in mind, though, that much more complex data models can be used in geology, like vector models in 4D, with multiple parameters stored in voxels, for instance...
This lack of standards, combined with the fact that the geologist often has to improvise in the field, with reduced resources and his own competences, leads to situations either complexes, or worse, chaotic or even anarchic. At the moment when one realises such problems, for example when comes the necessity to have a broad look at a whole great aquifer system, a mining district, an oil field, a basin, a mountain range, etc., the amount of energy wasted to compile data is often considerable, time consuming, dangerous and expensive. Moreover, it is sometimes immediately wasted, due sometimes to the lack of competences to maintain a database too precisely designed ("gasworks" syndrom, so feared), or to the lack of enough licences of the necessary software package.
The relay between one geologist taking over another one is, as far as data is concerned, very often delicate, painful, and it depends a lot on goodwill and competences.
Time when computer memories were very tight, when computers and their operators were seldom, was, from this point of view, much more favorable: I still remember to have stored on a 1.44Mb floppy disk databases of exploration drill holes gathering several thousands of holes (and, being too young, I haven't had the privilege to work with punch cards, I just arrived in time to work with magnetic tapes). At this time, one did not copy data everywhere, we were very stingy, in terms of computer usage and of disk usage. We were very conscient of what we were doing, counting bytes. File management had to be done seamlessly and with great strictness. File formats were designed for a great compacity.
Today, one must admit that anarchy and gigabytes waste are more fashionable. And this fights against the indispensable unicity of THE so precious DATA.
In order to try to partly address these problems (they are far to be only restricted to the geology domain!), which will become worse and worse in the future, the following actions are proposed:
I bet these efforts will pay back in the long term, and that future generations of geologists will not make the same mistakes from the past, and the present.
This project has already be discussed with various persons, at various stages, ranging from simple utopian ideas exchanged in a bar, to a signed commercial contract with a clear specifications document.
It is decided: TecTri (a program that I wrote) now becomes a free-libre software. I am ashamed to release such a source code, but, well, it is published. Done. It was coded in ancient times, using sometimes unusual practices.
A brief history of TecTri:
As of today, I digged in my old code (I realised that, beside horreurs like abundant global variables, the code is separated into what could be seen as Model-View-Controller), and I only started drafting UML with classes, nothing really working or convincing. If I wait until I get something presentable, it may take a LONG time, given my professional and familial lifes. So I decide to step into Freedom, and to publish the TecTri code as is, written in Visual Basic, with all of its defaults (global variables, cryptic procedures, code with way too few comments, arrays with arbitrary fixed dimensions, etc.). And also the executable compiled binary (for "ancients" Tectri users: there is no more need for the password which was acting as a sort of "protection", the name of the village at the center of the field work during my studies, the famous Pedro Andres"): better than nothing it runs, at least here at my place, under a few Windows versions, and also with wine on GNU/Linux.
In 2007, I have had the need of a multiplatform tool which would allow me to browse exploration drill holes data by sections, plans, and in three dimensions.
Many softs already did this, but not multi-platform, some were very expensive bloatware, some small and very efficient, but so hard to use, and no one was giving me satisfaction. Plus, no one of them was free-libre.
I had a need, very few to no time to program; I began a partnership between my company, Pierre Chevalier Géologue, and a contractor developing Free Software.
We first defined a first project, fitting my immediate needs: quick visualisation of drill holes' data. We signed a first contract; first development phases followed, first alpha versions came out; development went on, and then it got a bit stalled. The tool is coded in python, it uses free software bricks, data are stored in a postgreSQL database.
Develop partnerships with people involved in geological software. I think of some developers who have coded tools "at home", sometimes at heroic times (I'm thinking of Oyapock), these codes have been forgotten now. They should be buried out, their very inner "soul" should be isolated, and integrated into a coherent set of software tools, of common libraries, respecting common conventions.
It should be clear that it is not considered to race with commercial software packages: I am convinced that both development modes, although extremely different, can peacefully coexist. The "classical" commercial model sells a product (the software), and then its maintenance; the free-libre model, in its commercial aspect, consists in selling developments as services, to fulfill clients' wills. The deliverable can be either a software package, which may be kept exclusively for the client for a given amount of time (a few months for instance: this period must be negociated), and after that the software would be publicly distributed. This kind of mode guarantees to the client a technological advance on his concurrents, and at the same time it allows the software to survive on the long term, and to benefit from the free-libre open-source development mode, later on. Such business models are currently used between Free Software Engineering Services Companies and their cliens.
Developers do know that a piece of code can be compared to an art work. The compiled executable is /only the mere functional expression of the code, without a great part of its "spirit". So, just like any artist, the fact that one's masterpiece survives him is of importance. Whether the code dies (be forgotten) with him, what a tragedy.
Free-libre software allows, not only that a piece of software never dies, never gets forgotten, but also it allows to preserve the "litterary" aspect of it, that is the code. And the other developers who may read it may improve it, get inspiration from it, build something upon it: the basic work will never be forgotten, provided that Internet be eternal (which is yet another question, we won't get into that...). These developers from the future may also laugh at the code... When you are writing a piece of code that you know will be publicly visible strongly incites you to write something cleaner, respectfully of state-of-the-art methods, carefully commenting, avoiding dummy variable names. So that readers may not laugh, at least.
The previous paragraphe may look funny to whoever never coded anything of some importance. But any experienced developer will certainly get the message.
Almost everything remains to be done. If you are interested, if you want to get involved somehow, don't hesitate to contact me at pierrechevaliergeol@free.fr.
Freely yours.
Pierre Chevalier
29/12/2008
Post-scriptum: even better than contacting me: I setup a mailing list, named geolllibre: if you wish, follow this link to join us: liste: inscription à la liste geolllibre.