Sixth 3D engine demos
Table of Contents
1. Overview
The goal of this project is to show off capabilities and API usage of Sixth 3D engine.
All example scenes in this repository render at interactive framerates.
You can download pre-compiled runnable JAR file with embedded demos from here: sixth-3d-demos.jar
It requires Java 21 or newer to run.
To start the demo application, use command:
java -jar sixth-3d-demos.jar
3. Example scenes
Press F12 in any demo to open the Developer Tools panel. This debugging interface provides real-time insight into the rendering pipeline with diagnostic toggles.
3.1. 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.
- Game rules:
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 iteration with the history |
| "c" | clear the matrix |
3.2. Text editors
Initial test for creating user interfaces in 3D and:
- window focus handling
- picking objects 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.
- Improve focus handling:
3.3. Text editors demo gallery
3.4. Math graphs demo
- TODO: instead of projecting 2D visualizations onto 3D space, visualize some formula using all 3 dimensions available.
3.5. Sine heightmap and sphere
Simple test scene. Easy to implement and looks nice.
3.6. Raytracing through voxels
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 octree is used to compress data. Press "r" key anywhere in the scene to raytrace current view through compressed voxel data structure.
3.7. Graphics Benchmark
An automated graphics benchmark that measures the engine's rendering performance across different rendering modes.
The benchmark will cycle through different scenes that utilize different rendering primitives (textured polygons, billboards, solid polygons, etc.) to measure their relative performance.
The camera follows a deterministic orbital path around the scene, ensuring reproducible results across runs.
At the end, the benchmark will output a report that is easy to preserve for later comparisons.
Example benchmark report:
================================================================================
GRAPHICS BENCHMARK RESULTS
================================================================================
Date: 2026-03-16 19:17:51
Resolution: 1920x1080
Cubes: 4096 (16x16x16 grid)
Duration: 30 seconds per test
--------------------------------------------------------------------------------
SYSTEM INFORMATION
--------------------------------------------------------------------------------
CPU Name: AMD Ryzen AI 9 HX 370 w/ Radeon 890M
Arch: amd64
Cores: 24
--------------------------------------------------------------------------------
Test Avg FPS
--------------------------------------------------------------------------------
Solid Cubes 49.65
Lit Solid Cubes 41.40
Textured Cubes 32.80
Wireframe Cubes 42.84
Star Grid 304.59
================================================================================
4. Source code
This program is free software: released under Creative Commons Zero (CC0) license
Program author:
- Svjatoslav Agejenko
- Homepage: https://svjatoslav.eu
- Email: mailto://svjatoslav@svjatoslav.eu
- See also: Other software projects hosted at svjatoslav.eu
Getting the source code:
- Download latest snapshot in TAR GZ format
- Browse Git repository online
Clone Git repository using command:
git clone https://www2.svjatoslav.eu/git/sixth-3d-demos.git
Understanding the Sixth 3D demos source code: