updated code graph
[sixth-3d.git] / doc / index.org
1 #+TITLE: Sixth 3D - 3D engine
2
3 -----
4 - This is a subproject of [[http://www2.svjatoslav.eu/gitbrowse/sixth/doc/index.html][Sixth]]
5
6 - [[http://www2.svjatoslav.eu/gitweb/?p=sixth-3d.git;a=snapshot;h=HEAD;sf=tgz][download latest snapshot]]
7
8 - This program is free software; you can redistribute it and/or modify it under
9   the terms of version 3 of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public License]] or later as
10   published by the Free Software Foundation.
11
12 - Program author:
13   - Svjatoslav Agejenko
14   - Homepage: http://svjatoslav.eu
15   - Email: mailto://svjatoslav@svjatoslav.eu
16
17 - [[http://svjatoslav.eu/programs.jsp][other applications hosted at svjatoslav.eu]]
18
19 * (document settings) :noexport:
20 ** use dark style for TWBS-HTML exporter
21 #+HTML_HEAD: <link href="https://bootswatch.com/darkly/bootstrap.min.css" rel="stylesheet">
22 #+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
23 #+HTML_HEAD: <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>"
24 #+HTML_HEAD: <style type="text/css">
25 #+HTML_HEAD:   footer {background-color: #111 !important;}
26 #+HTML_HEAD:   pre {background-color: #111; color: #ccc;}
27 #+HTML_HEAD: </style>
28
29
30 * Project description
31 In software, pure Java realtime 3D rendering engine. With the final goal of
32 becoming a platform for buildng 3D user interfaces.
33
34 + See: [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html][demos of current 3D engine capabilities]]
35
36
37 System is implemented in Java because:
38 - It scales well to handle great complexity.
39 - It is easy to refactor and experiment with.
40 - It is fast enough thanks to Java virtual machine just-in-time compiler.
41 - Easy to run on various hardware platforms and operating systems.
42
43 3D rendering is done in software, 100% pure Java on CPU. At least for now.
44 Modern CPU cores count keeps growing and therefore rendering by CPU is not as
45 expensive as it used to be for the old single core systems.
46
47 CPU rendering performance is already good enough to implement usable 3D UI at
48 sufficient detail level, resolution and frame rate.
49
50 Pure Java also means easy portability and installation. No need to deal with
51 platform specific dependencies.
52
53 Also CPU rendering allows to easily test different rendering algorithms and
54 retains complete control of every rendered pixel.
55
56 * Software development
57 Instructions to embed Sixth-3D in your project as a library. Maven *pom.xml*
58 file snippet:
59 #+BEGIN_SRC xml
60 <dependencies>
61     ...
62     <dependency>
63         <groupId>eu.svjatoslav</groupId>
64         <artifactId>sixth-3d</artifactId>
65         <version>1.0</version>
66     </dependency>
67     ...
68 </dependencies>
69
70 <repositories>
71     ...
72     <repository>
73         <id>svjatoslav.eu</id>
74         <name>Svjatoslav repository</name>
75         <url>http://www2.svjatoslav.eu/maven/</url>
76     </repository>
77     ...
78 </repositories>
79 #+END_SRC
80
81 See [[file:codeGraph/index.html][generated code graph]] using [[http://www2.svjatoslav.eu/gitbrowse/javainspect/doc/index.html][this tool]].