-<repositories>
- ...
- <repository>
- <id>svjatoslav.eu</id>
- <name>Svjatoslav repository</name>
- <url>http://www2.svjatoslav.eu/maven/</url>
- </repository>
- ...
-</repositories>
-#+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.
+All [[id:5f88b493-6ab3-4659-8280-803f75dbd5e0][example scenes in this repository]] render at interactive
+framerates.
+
+Download runnable JAR file: [[file:sixth-3d-demos.jar]]
+
+To start demo application, use command:
+: java -jar sixth-3d-demos.jar
+
+* Navigating in space
+| key | result |
+|--------------------------------+--------------------------------------|
+| cursor keys | move: left, right, forward, backward |
+| mouse scroll wheel | move: up, down |
+| dragging with mouse | look around |
+
+* Example scenes in this repository
+:PROPERTIES:
+:ID: 5f88b493-6ab3-4659-8280-803f75dbd5e0
+:END:
+** Raytracing through voxels
+[[file:screenshots/raytracing fractal in voxel polygon hybrid scene.png]]
+
+Test scene that is generated simultaneously using:
++ conventional polygons
+ + for realtime navigation, and
++ voxels
+ + for on-demand raytracing
+
+Instead of storing voxels in dumb [X * Y * Z] array, dynamically
+partitioned [[https://en.wikipedia.org/wiki/Octree][octree]] is used to compress data. Press "r" key anywhere in
+the scene to raytrace current view through compressed voxel
+datastructure.
+
+** Conway's Game of Life
+The Game of Life, also known simply as Life, is a cellular automaton
+devised by the British mathematician John Horton Conway in 1970.
+
++ https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
+ + Game rules:
+ + 2 cell states: alive / dead
+ + Each cell sees 8 neighboring cells.
+ + If alive cell neighbors count is 2 or 3, then cell survives,
+ otherwise it dies.
+ + Dead cell becomes alive if neighbors count is exactly 3.
+
+[[file:screenshots/life.png]]
+
+Current application projects 2D game grid/matrix onto three
+dimensional space. Extra dimension (height) is used to visualize
+history (previous iterations) using glowing dots suspended in space.
+
+Usage:
+| key | result |
+|--------------------------------+--------------------------------------|
+| mouse click on the cell (cell) | toggles cell state |
+| <space> | next iteration |
+| ENTER | next iteeration with the history |
+| "c" | clear the matrix |
+
+** Text editors
+[[file:screenshots/text editors.png]]
+
+Initial test for creating user interfaces in 3D and:
++ window focus handling
++ picking objecs using mouse
++ redirecting keyboard input to focused window
+
+
+Window focus acts like a stack.
+
+When window is clicked with the mouse, previously focused window (if
+any) is pushed to the focus stack and new window receives focus. Red
+frame appears around the window to indicate this.
+
+When ESC key is pressed, window focus is returned to previous window
+(if any).
+
+When any window is focused, all keyboard input is redirected to that
+window, including cursor keys. To be able to navigate around the world
+again, window must be unfocused first using ESC key.
+
+
++ TODO:
+ + Improve focus handling:
+ + Perhaps add shortcut to navigate world without exiting entire
+ stack of focus.
+ + Possibility to retain and reuse recently focused elements.
+ + Store user location in the world and view direction with the
+ focused window. So that when returning focus to far away object,
+ user is redirected also to proper location in the world.
+ + Possibility to store recently visited locations in the world and
+ return to them.
+** Mathematical formulas
+[[file:screenshots/mathematical formulas.png]]
+
++ TODO: instead of projecting 2D visualizations onto 3D space,
+ visualize some formula using all 3 dimensions avaliable.
+** Sinus heightmaps and sphere
+[[file:screenshots/sinus heightmaps and sphere.png]]
+
+Simple test scene. Easy to implement and looks nice.