fixed download link
[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   
20 * Project description
21 In software, pure Java realtime 3D rendering engine. With the final goal of
22 becoming a platform for buildng 3D user interfaces.
23
24 + See: [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d-demos/doc/index.html][demos of current 3D engine capabilities]]
25
26
27 System is implemented in Java because:
28 - It scales well to handle great complexity.
29 - It is easy to refactor and experiment with.
30 - It is fast enough thanks to Java virtual machine just-in-time compiler.
31 - Easy to run on various hardware platforms and operating systems.
32
33 3D rendering is done in software, 100% pure Java on CPU. At least for now.
34 Modern CPU cores count keeps growing and therefore rendering by CPU is not as
35 expensive as it used to be for the old single core systems.
36
37 CPU rendering performance is already good enough to implement usable 3D UI at
38 sufficient detail level, resolution and frame rate.
39
40 Pure Java also means easy portability and installation. No need to deal with
41 platform specific dependencies.
42
43 Also CPU rendering allows to easily test different rendering algorithms and
44 retains complete control of every rendered pixel.
45
46 * Software development
47 Instructions to embed Sixth-3D in your project as a library. Maven *pom.xml*
48 file snippet:
49 #+BEGIN_SRC xml
50 <dependencies>
51     ...
52     <dependency>
53         <groupId>eu.svjatoslav</groupId>
54         <artifactId>sixth-3d</artifactId>
55         <version>1.0</version>
56     </dependency>
57     ...
58 </dependencies>
59
60 <repositories>
61     ...
62     <repository>
63         <id>svjatoslav.eu</id>
64         <name>Svjatoslav repository</name>
65         <url>http://www2.svjatoslav.eu/maven/</url>
66     </repository>
67     ...
68 </repositories>
69 #+END_SRC
70
71 [[http://www2.svjatoslav.eu/projects/sixth/codegraphs/][Auto-generated graphs for parts of Sixth-3D code/architecture]] using [[http://www2.svjatoslav.eu/gitbrowse/javainspect/doc/index.html][this tool]]
72
73