T3D was a fairly ambitious project; it seeked to cover the gamut of rendering pipelines, sacrificing some raw performance in various situations to gain the flexibility needed to scale well. Central to T3D's design was the idea that the design and programming of a modern three dimensional rendering engine is extremely complex, and that therefore it would be best to design a framework that could be mixed and matched to produce the desired tradeoffs of speed and visual accuracy. For example, it ought to be fairly easy to switch from a flat-shaded, unantialiased pipeline for use in CAD applications to a raytraced, radiosity-lit, network-rendered pipeline suitable for professional film work. Today, totally separate pipelines would be designed for each, but there seemed no fundamental reason that both couldn't fit into the same pipeline, given suitable component design and some standardization of component interfaces.

T3D was written primarily in Perl, a very high level interpreted language designed by Larry Wall, linguist and hacker extraordinaire. By working in Perl, it was very easy to experiment with various approaches to the design problem, without the mental, structural, and programmatic overhead of lower level languages. If some part of the Perl code was found to be excessively slow, that part could be recoded in C, assembly language, or even hardware; until that time, the source is in a compact, easily altered, extremely portable form.

It has been said that it is much better to improve the algorithm than to microoptimize, because only the former leads to scalability. T3D took this concept pretty much to its logical conclusion, by relying on heavy caching, incremental algorithms, and antialiasing methods of my own design to make up for the extreme overhead of an interpreted implementation language. Still, there remains a lot of math that cannot be avoided without harming image quality, and my approach was to isolate this into kernels that each handle a single task, such as vertex transformation. Because of the pluggable component design, it was easy to rough out the coding in pure Perl, switch to PDL or C for a quick speed boost, and finally move to assembly language or push the kernel entirely onto a coprocessor of some sort for anything that remained a bottleneck.