How long has this project been going on?
With varying intensity ever since June 1996. However, for most of this time the project developers (whose number varied between 2 and 6 during this time) were unable to work full time on coding for ART due to other obligations at the university (such as teaching), so the actual net project time is less.
Why develop a graphics toolkit?
For a considerable time it has been a guiding idea at the institute that that new developments in graphics ought to be made available to a wider audience, and that the assembled knowledge about photorealistic image synthesis gathered over the years somehow ought to be put to fruitful use outside the immediate academic community. This made the idea of writing a public domain graphics toolkit appealing, especially since there are very few such projects, even fewer which can be considered state of the art. Also, we believe that, for a graphics research instution, a good code foundation which is reuseable for multiple research projects is a sensible investment in itself. Finally, the design of such highly complex and performance-critical systems is a challenge which is well worth researching by itself anyway.
ART is just the latest in a series of attempts to design and implement a general purpose graphics toolkit at the institute. The "grandfather" was called RISS (Realistic Image Sythesis System). It was written in VAX/Pascal at the end of the 1980s, and was eventually discontinued due to the obsolescence of the language and limitations of the design. The direct precursor to ART was the VEGA/BaBeL C/C++ hybrid, which was under sporadic development from (roughly) 1990 to 1995. That approach was dropped mainly due to the immaturity of the public C++ compilers of the day and problems with the overall design.
Why did you use Objective-C as project language? Why not Java or C++?
Several factors made us chose ObjC (as it is commonly abbreviated) over either C++ or Java, which were the only serious contenders at the time the decision was made - 1996.
The idiosyncrasies of the publicly available C++ compiler g++, and the incompatibilities between various other versions of C++ that plagued the BaBeL project had left the designers of ART wary of the level of software quality obtainable with C++. Several limitations of the C++ language (such as the lack of a run-time system and the lack of separate functional inheritance) were the final straw to disregard this option.
As for Java, in 1996 it was simply not an option for a performance critical system such as a rendering framework (and it probably still isn't one nowadays...).
So, if not these two, why then ObjC? Most of the early development work on ART was done on NeXT machines, and the designers of ART were familiar with the design of the NeXTStep APIs, which in their opinion still stand unsurpassed in their elegance of design. The structure of these APIs was faciliated and influenced by the language they were written in, Objective C, a very simple superset of ANSI C, that defines object oriented extensions that exist alongside plain C. The philosophy of ObjC design is to do those things that require speed in C functions, and those which require structuring with classes; while it slightly increases the complexity of the code, this hybridization allows for very efficient code. That, the very smalltalk-like nature of the OOP extensions, along with the existence of a runtime system and the stability of language support by the GNU gcc have made it a choice which we have not regretted once so far.
Why have you not released an alpha or a beta version yet?
In our opinion there are far too many "just announced" and/or barely functional public domain projects out there already. We did not want to add another unuseable version 0.0.2 critter to the population, but instead chose to wait until a certain minimal set of functions is available. The idea is that a 3D enthusiast should be able to reliably render a certain amount of interesting scenes with the first public version of ART.
The problem here is that this actually requires most parts of the system to be fairly complete before one can even think about releasing it. Also, the authors have to justify their existence at a university institute by performing research and publishing it. However, not all components of a rendering system actually warrant research, or have a benign ratio of coding effort invested vs. publisheable content. It is such components which are the last over the line: area lightsources (interesting but quite complex), technical finetuning of the radiosity system (complex but unpublisheable), finetuning of the action sequence mechanism ("just coding"), and of course the long version of the documentation (no karma points for that - so it comes last).
Why is there no CVS repository?
So far, ART has been under more or less closed development at the institute, and the small number of concurrent development branches did not warrant the effort of an internal CVS repository. However, even once it is released, we do not expect a large number of contributors anytime soon due to the complexity of the code (although we would of course greatly appreciate any help that is offered to us - it's just that we try to be realistic), and consequently do not plan to activate a repository even then. For the time being we will limit the project to periodical releases of stable versions, and will merge the code from contributors ourselves. Once the core of ART is more stable than it is now, we might go to a CVS model.
If it is not finished yet, why is the current version already 1.4.2?
Blame it on marketing ;-)...
ART is not a still inanimate Frankenstein creature that will jump into life at the flip of a switch on the day it is released to the general public. It has been in more or less regular use for certain purposes for some time now (by external researchers interested in predictive rendering and colour science), and we switched to version 1.0.0 whe we first gave them the source code in the summer of 1999. The last "real" version was 0.4.3, and we figured that the switch was sort of justified to boost morale and to celebrate the first use of ART outside the institute. Since then we have again followed a normal major-minor numbering scheme. The public release target is 1.5.0, which would otherwise probably have been 1.0.0 - a good indication that things stay the same regardless of what you call them.
This page is maintained by Alexander Wilkie. It was last updated on August 25, 2000.
If you have any comments, please send a message to wilkie@cg.tuwien.ac.at.