sixth-3d-demos.git
37 hours agorefactor(examples): split GraphDemo into separate demos
Svjatoslav Agejenko [Tue, 17 Mar 2026 18:30:29 +0000 (20:30 +0200)]
refactor(examples): split GraphDemo into separate demos

Separate math function graphs into MathGraphsDemo, leaving GraphDemo with only the sine heightmap and sphere. Update launcher with both demos.

2 days agostyle(benchmark): reduce brightness of wireframe and textured cubes
Svjatoslav Agejenko [Mon, 16 Mar 2026 21:34:01 +0000 (23:34 +0200)]
style(benchmark): reduce brightness of wireframe and textured cubes

Lower color values and alpha for more comfortable viewing in dark
environments. Makes wireframe cubes semi-transparent and dims the
glow effect on textured cubes.

2 days agofeat(benchmark): add lit solid cubes test
Svjatoslav Agejenko [Mon, 16 Mar 2026 20:53:58 +0000 (22:53 +0200)]
feat(benchmark): add lit solid cubes test

Adds a benchmark test for opaque solid cubes with dynamic lighting.
Three orbiting light sources illuminate a 16x16x16 cube grid to test
shaded polygon rasterization performance.

- Add LitSolidCubesTest with animated orbiting lights
- Add setViewPanel to BenchmarkTest interface for animation support
- Update benchmark results with new test data

2 days agodocs: update performance benchmark results
Svjatoslav Agejenko [Mon, 16 Mar 2026 19:55:43 +0000 (21:55 +0200)]
docs: update performance benchmark results

2 days agodocs: update performance benchmark results
Svjatoslav Agejenko [Mon, 16 Mar 2026 18:00:18 +0000 (20:00 +0200)]
docs: update performance benchmark results

2 days agodocs: update performance benchmark results
Svjatoslav Agejenko [Mon, 16 Mar 2026 17:43:04 +0000 (19:43 +0200)]
docs: update performance benchmark results

2 days agodocs: update benchmark results with improved performance
Svjatoslav Agejenko [Mon, 16 Mar 2026 17:33:32 +0000 (19:33 +0200)]
docs: update benchmark results with improved performance

2 days agodocs: fix typos and improve benchmark documentation
Svjatoslav Agejenko [Mon, 16 Mar 2026 17:13:29 +0000 (19:13 +0200)]
docs: fix typos and improve benchmark documentation

- Fix typos: iteeration, objecs, avaliable, datastructure
- Add missing articles for better readability
- Update benchmark section with screenshot and clearer description

3 days agofeat(benchmark): show results in dialog with copy-to-clipboard
Svjatoslav Agejenko [Sun, 15 Mar 2026 22:51:56 +0000 (00:51 +0200)]
feat(benchmark): show results in dialog with copy-to-clipboard

- Add intro dialog with instructions before benchmark starts

- Display results in scrollable dialog instead of console

- Add Copy to Clipboard button for easy sharing

- Show system info and FPS results in formatted text

3 days agorefactor: rename MyFirstScene to MinimalExample
Svjatoslav Agejenko [Sun, 15 Mar 2026 22:46:16 +0000 (00:46 +0200)]
refactor: rename MyFirstScene to MinimalExample

Rename class for clarity - it's the minimal working example from

the documentation.

3 days agorefactor(launcher): add descriptions to demo buttons
Svjatoslav Agejenko [Sun, 15 Mar 2026 22:38:25 +0000 (00:38 +0200)]
refactor(launcher): add descriptions to demo buttons

Redesign launcher panel with two-column layout showing button and

description for each demo. Use GroupLayout properly and frame.pack()

for automatic sizing.

3 days agodocs: add package-info.java for demo packages
Svjatoslav Agejenko [Sun, 15 Mar 2026 22:30:04 +0000 (00:30 +0200)]
docs: add package-info.java for demo packages

Add package-level documentation for:

- galaxy_demo (spiral galaxy visualization)

- launcher (demo GUI launcher)

- life_demo (Conway's Game of Life in 3D)

3 days agofeat: add MyFirstScene minimal example
Svjatoslav Agejenko [Sun, 15 Mar 2026 22:25:28 +0000 (00:25 +0200)]
feat: add MyFirstScene minimal example

- Add MyFirstScene.java as runnable minimal example from docs

- Add My First Scene button to demo launcher

- Fix duplicate org-mode ID in mathematical formulas section

3 days agodocs: rename screenshots and add developer tools section
Svjatoslav Agejenko [Sun, 15 Mar 2026 21:51:32 +0000 (23:51 +0200)]
docs: rename screenshots and add developer tools section

- Rename screenshots folder to Screenshots (proper capitalization)

- Rename screenshot files with improved names

- Add Developer tools section referencing F12 feature

3 days agodocs: add explicit constructors to fix javadoc warnings
Svjatoslav Agejenko [Sun, 15 Mar 2026 19:17:08 +0000 (21:17 +0200)]
docs: add explicit constructors to fix javadoc warnings

3 days agofeat(demo): add WindingOrderDemo to test backface culling
Svjatoslav Agejenko [Sun, 15 Mar 2026 18:40:36 +0000 (20:40 +0200)]
feat(demo): add WindingOrderDemo to test backface culling

- Add minimal demo with CCW triangle (front face, visible)
- Update AGENTS.md with winding order guidelines and run command

3 days agofeat(benchmark): add system info to benchmark output
Svjatoslav Agejenko [Sun, 15 Mar 2026 18:18:55 +0000 (20:18 +0200)]
feat(benchmark): add system info to benchmark output

- Display CPU name, architecture, and core count
- Simplify output format (removed Duration and Frames columns)
- Add Star Grid test to benchmark suite
- Update documentation with new benchmark results

3 days agofix(demos): explicitly start render thread and fix benchmark timing
Svjatoslav Agejenko [Sun, 15 Mar 2026 17:04:32 +0000 (19:04 +0200)]
fix(demos): explicitly start render thread and fix benchmark timing

- Add ensureRenderThreadStarted() call to all demo constructors
- Reorder GraphicsBenchmark initialization (registerTests before initializeWindow)
- Defer test transitions to beginning of next frame to avoid threading issues
- Add pendingTestTransition flag for safe test state changes

3 days agofeat(benchmark): add StarGridTest benchmark for billboard rendering
Svjatoslav Agejenko [Sun, 15 Mar 2026 12:22:55 +0000 (14:22 +0200)]
feat(benchmark): add StarGridTest benchmark for billboard rendering

Add a new benchmark test that measures glowing point (billboard)
rendering performance using a 16x16x16 grid of stars with randomized
colors. Also increase wireframe line width for better visibility.

4 days agofeat(benchmark): add keyboard shortcut to skip tests
Svjatoslav Agejenko [Sun, 15 Mar 2026 04:22:54 +0000 (06:22 +0200)]
feat(benchmark): add keyboard shortcut to skip tests

Allow pressing Space to skip to the next benchmark test immediately.
Also improve cleanup by properly removing listeners and stopping the
render loop when the benchmark finishes.

4 days agorefactor(benchmark): move texture creation into TexturedCubesTest
Svjatoslav Agejenko [Sun, 15 Mar 2026 03:53:18 +0000 (05:53 +0200)]
refactor(benchmark): move texture creation into TexturedCubesTest

Simplify BenchmarkTest.setup() signature by removing texture parameters
that only TexturedCubesTest needed. Each test now manages its own
resources independently.

4 days agorefactor(examples): extract GraphicsBenchmark into dedicated package
Svjatoslav Agejenko [Sun, 15 Mar 2026 03:21:20 +0000 (05:21 +0200)]
refactor(examples): extract GraphicsBenchmark into dedicated package

Split the monolithic GraphicsBenchmark class into separate files in a
new benchmark package: BenchmarkTest interface, individual test classes
(SolidCubesTest, TexturedCubesTest, WireframeCubesTest), TestResult,
and TexturedCube helper.

4 days agofeat(examples): add wireframe cubes test to GraphicsBenchmark
Svjatoslav Agejenko [Sun, 15 Mar 2026 02:56:31 +0000 (04:56 +0200)]
feat(examples): add wireframe cubes test to GraphicsBenchmark

Add WireframeCubesTest benchmark variant using WireframeBox shapes,
and update documentation with example benchmark output.

4 days agorefactor(examples): convert GraphicsBenchmark to automated test runner
Svjatoslav Agejenko [Sun, 15 Mar 2026 02:43:56 +0000 (04:43 +0200)]
refactor(examples): convert GraphicsBenchmark to automated test runner

Change from interactive demo with keyboard controls to an automated
benchmark that runs multiple tests sequentially for fixed durations
and outputs reproducible results.

4 days agorefactor(examples): rename FillRateTest to GraphicsBenchmark
Svjatoslav Agejenko [Sun, 15 Mar 2026 02:21:54 +0000 (04:21 +0200)]
refactor(examples): rename FillRateTest to GraphicsBenchmark

Rename the fill-rate test class to GraphicsBenchmark for better clarity
about its purpose as a general graphics performance benchmark.

4 days agoInitial commit
Svjatoslav Agejenko [Sun, 15 Mar 2026 01:16:30 +0000 (03:16 +0200)]
Initial commit