Design ====== Introduction ------------ The purpose of l3dfs is bringing a 3D rendering service to Plan 9 from Bell Labs, with the help of an external machine running a Linux-powered operating system. L3dfs aims to bring all 3D rendering features and techniques to Plan 9 at little to no cost, to do so in the clean fashion typical of Plan 9 software design and code, and to abstract away from hardware-dependent interfaces by employing existing de-facto standards. The main idea is to off-load the whole graphic processing from Plan 9 to Linux. The external Linux machine comprises both the weakness and strength of such a software architecture. On one hand, not only this architecture is dependent on another operating system, but also on an external machine that is necessary in order to maximise the speed of execution of graphic primitives. On the other, though, this gives an immense advantage, which is being able to interface with graphics hardware through software that already exists, is stable, and already implements all (or most) features supported by the available graphics hardware, thus requiring no further development on this side. Unfortunately, interfaces exposed by modern graphics hardware have become so complex, diverse, and deficient in standards over time that the development of drivers for them by a not-so-big community like Plan 9's in a useful time span is simply not possible. In addition to this, most importantly, the complex nature of these interfaces completely collides with Plan 9's philosophy of simplicity of software. Unless graphics hardware interfaces will simplify and standardise, drivers are not going to be part of Plan 9, and rightfully so.