#+TITLE: Sixth 3D engine demos
-----
- This is a subproject of [[http://www2.svjatoslav.eu/gitbrowse/sixth-3d/doc/index.html][Sixth 3D]]
- [[http://www2.svjatoslav.eu/gitweb/?p=sixth.git;a=snapshot;h=HEAD;sf=tgz][download latest snapshot]]
- This program is free software; you can redistribute it and/or modify it under
the terms of version 3 of the [[https://www.gnu.org/licenses/lgpl.html][GNU Lesser General Public License]] or later as
published by the Free Software Foundation.
- Program author:
- Svjatoslav Agejenko
- Homepage: http://svjatoslav.eu
- Email: mailto://svjatoslav@svjatoslav.eu
- [[http://svjatoslav.eu/programs.jsp][other applications hosted at svjatoslav.eu]]
* Current status
[[http://www2.svjatoslav.eu/gitbrowse/sixth/doc/screenshots/index.html][http://www2.svjatoslav.eu/gitbrowse/sixth/doc/screenshots.png]]
Sample scenes rendered at interactive framerates by Sixth 3D engine.
Sixth is presently in research / prototyping and ideas collecting
phase. Some working parts are already implemented, and can be run as a
demo or as a library in other projects, if you are computer
programmer. System is far from being useful for non programmers (Pre
alpha).
Implemented and working features:
- First layer of storage: Simple persistent key-value map.
- In software, pure Java realtime 3D rendering engine.
[[http://www2.svjatoslav.eu/gitbrowse/sixth/doc/applet.html][Run Sixth 3D/GUI demos as Java applet]]
System is implemented in Java because:
- It scales well to handle great complexity.
- It is easy to refactor and experiment with.
- It is fast enough thanks to Java virtual machine just-in-time compiler.
- Easy to run on various hardware platforms and operating systems.
** 3D rendering
3D rendering is done in software, 100% pure Java on CPU. At least for
now. Modern CPU cores count keeps growing and therefore rendering by
CPU is not as expensive as it used to be for the old single core
systems.
CPU rendering performance is already good enough to implement usable
3D UI at sufficient detail level, resolution and frame rate.
Pure Java also means easy portability and installation. No need to
deal with platform specific dependencies.
Also CPU rendering allows to easily test different rendering algorithms
and retains complete control of every rendered pixel.
* Vision
- Human computer symbiosis to unleash full potential of human mind and
computer.
- A tool to amplify human ability.
** Key ideas from user perspective
- Helps/assists in understanding, discovering, learning and creating
things by being very visual and interactive. (I think of
problems/solutions visually and I want user interface/experience to
reflect that)
- Properly visualizes and immerses user in completely various forms of
information and provides intuitive and powerful ways to explore,
interact and manipulate it with fast feedback loop to immediately
see results.
- I like this quote:
#+BEGIN_QUOTE
“Virtual reality holds the key to the evolution of the human mind”
Dr. Lawrence Angelo, The Lawnmower Man (1992)
#+END_QUOTE
** Key technical ideas
System should make use of distributed computing like SSI or/and Hadoop
for greater performance and reliability.
System should use some overlay network to enable secure and reliable
and easy to use communication between any process on any networked
computer as well as human to human communication.
* Software development
Instructions to embed Sixth in your project as a library. Maven
*pom.xml* file snippet:
#+BEGIN_SRC xml
...
eu.svjatoslav
sixth
1.2
...
...
svjatoslav.eu
Svjatoslav repository
http://www2.svjatoslav.eu/maven/
...
#+END_SRC
[[http://www2.svjatoslav.eu/projects/sixth/codegraphs/][Auto-generated graphs for parts of Sixth code/architecture]] using [[http://www2.svjatoslav.eu/gitbrowse/javainspect/doc/index.html][this
tool]]
* Ideas to possibly consider/incorporate in the future
- Semantic networks / knowledge trees.
- Is able to use natural language for knowledge mining and
question answering. This could potentially lead to self aware
artificial intelligence. Because of [[http://en.wikipedia.org/wiki/Three_Laws_of_Robotics]["Three laws safe"]] design,
there is nothing that can go wrong.
- Become an alternative to or an integrated part of KDE, Gnome,
Canonical Unity or similar desktop user interfaces.
- Become an open source scientific computing engine of structured data
as an alternative to proprietary Wolfram Alpha.
- Become an open source solution for unstructured knowledge extraction
and processing, similar to IBM Watson.
- P2P (Peer to peer) capabilities:
- File/data sharing system.
- Data streaming system.
- Distributed backup system.
- Distributed computation system.
- Communication system.
- Possibility of completely decentralized and stealth mode of operation for information publishing, storage and distribution, similar to Freenet.