summaryrefslogtreecommitdiff
path: root/doc/design.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/design.md')
-rw-r--r--doc/design.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/doc/design.md b/doc/design.md
index 22849b0..3508683 100644
--- a/doc/design.md
+++ b/doc/design.md
@@ -1,4 +1,31 @@
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.