docs(spacemouse): rename device to SpaceMouse, describe GI as baked master
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Fri, 2 Oct 2026 19:10:00 +0000 (22:10 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Fri, 2 Oct 2026 19:10:00 +0000 (22:10 +0300)
User-facing text and docs now say SpaceMouse, covering both the
SpaceNavigator over USB and the SpaceMouse Wireless over Bluetooth:
launcher entry, demo readout (including the no-device hint) and
javadoc. The manual's SpaceMouse section lists both transports.

Also correct the global illumination wording in HouseDemo and the
manual: GI is baked in bounce generations over the first seconds and
then frees its per-texel state, rather than progressing from
per-polygon stamps to per-texel refinement.

Documentation/index.org
src/main/java/eu/svjatoslav/aukio/e3d/examples/house_demo/HouseDemo.java
src/main/java/eu/svjatoslav/aukio/e3d/examples/launcher/ApplicationListPanel.java
src/main/java/eu/svjatoslav/aukio/e3d/examples/spacemouse_demo/SpaceMouseDemo.java

index e63e599..8e0b588 100644 (file)
@@ -189,8 +189,9 @@ recenter if the view drifts off-center. Disable with
 =-De3d.headtrack=false=. See the *Head tracking* demo for a compass
 scene built to show this off.
 
 =-De3d.headtrack=false=. See the *Head tracking* demo for a compass
 scene built to show this off.
 
-*SpaceMouse 6DOF:* when a 3Dconnexion SpaceNavigator is plugged in
-(USB), every demo automatically flies the camera with the cap —
+*SpaceMouse 6DOF:* when a 3Dconnexion SpaceMouse is connected
+(SpaceNavigator over USB or SpaceMouse Wireless over Bluetooth),
+every demo automatically flies the camera with the cap —
 push/pull/slide to move (same acceleration physics as arrow keys),
 tilt/twist to look. The left cap button brakes (kills camera
 velocity). Rotation composes with head tracking and mouse drag.
 push/pull/slide to move (same acceleration physics as arrow keys),
 tilt/twist to look. The left cap button brakes (kills camera
 velocity). Rotation composes with head tracking and mouse drag.
@@ -810,11 +811,12 @@ compiler) running under the crtbasic interpreter.
 - Light indicators that explain the shadows: every hero light shows a
   large glow at its position — shadows extend radially away from that
   point (the source is omnidirectional)
 - Light indicators that explain the shadows: every hero light shows a
   large glow at its position — shadows extend radially away from that
   point (the source is omnidirectional)
-- Progressive global illumination (=ViewPanel.enableGlobalIllumination=):
+- Baked global illumination (=ViewPanel.enableGlobalIllumination=):
   the city's polygons render as lightmapped triangles
   the city's polygons render as lightmapped triangles
-  (=ObjModel= is a =LightmappedCompositeShape=), so GI proceeds from
-  per-polygon stamps to per-texel shadow and bounce refinement over the
-  first seconds (golden images stay lightmapping- and GI-free for
+  (=ObjModel= is a =LightmappedCompositeShape=), so GI bakes them in
+  bounce generations — direct light first, one more bounce per
+  generation after that — over the first seconds, then frees the
+  per-texel state (golden images stay lightmapping- and GI-free for
   determinism)
 
 * Graphics Benchmark
   determinism)
 
 * Graphics Benchmark
index fa9c2b4..feaf45c 100644 (file)
@@ -132,8 +132,10 @@ public class HouseDemo {
 
         addLights(viewPanel.getLightingManager(), shapes);
 
 
         addLights(viewPanel.getLightingManager(), shapes);
 
-        // Progressive global illumination: shadows and indirect bounce
-        // light fade in over the first seconds on dedicated CPU threads.
+        // Baked global illumination: shadows and indirect bounce light
+        // are traced in bounce generations over the first seconds on
+        // dedicated CPU threads, then the per-texel state is freed and
+        // only the final lightmap textures remain.
         // 4 threads: 3-unit texels mean ~16x more work items than 12-unit.
         viewPanel.enableGlobalIllumination(4);
 
         // 4 threads: 3-unit texels mean ~16x more work items than 12-unit.
         viewPanel.enableGlobalIllumination(4);
 
index 9be77f2..d27b6fb 100644 (file)
@@ -74,7 +74,7 @@ class ApplicationListPanel extends JPanel {
                     new ShowHeadTrackingDemo()),
 
             new DemoEntry("SpaceMouse 6DOF",
                     new ShowHeadTrackingDemo()),
 
             new DemoEntry("SpaceMouse 6DOF",
-                    "Fly with a 3Dconnexion SpaceNavigator — cap moves, tilts and twists",
+                    "Fly with a 3Dconnexion SpaceMouse — cap moves, tilts and twists",
                     new ShowSpaceMouseDemo()),
     };
 
                     new ShowSpaceMouseDemo()),
     };
 
index 903ab6a..4852cf3 100644 (file)
@@ -20,16 +20,17 @@ import eu.svjatoslav.aukio.e3d.renderer.raster.shapes.composite.textcanvas.TextC
 import static eu.svjatoslav.aukio.e3d.geometry.Point3D.point;
 
 /**
 import static eu.svjatoslav.aukio.e3d.geometry.Point3D.point;
 
 /**
- * SpaceNavigator 6DOF mouse demo.
+ * SpaceMouse 6DOF mouse demo.
  *
  * <p>The camera stands at the center of a compass ring (same scene as
  *
  * <p>The camera stands at the center of a compass ring (same scene as
- * the head tracking demo, for comparable behavior). With a
- * SpaceNavigator plugged in, push/pull/slide the cap to fly and
+ * the head tracking demo, for comparable behavior). With a supported
+ * 3Dconnexion device connected (SpaceNavigator over USB or SpaceMouse
+ * Wireless over Bluetooth), push/pull/slide the cap to fly and
  * tilt/twist to look. A floating readout shows the six raw axis values
  * live — deflect the cap and confirm each axis moves the expected
  * number and in the expected direction.</p>
  *
  * tilt/twist to look. A floating readout shows the six raw axis values
  * live — deflect the cap and confirm each axis moves the expected
  * number and in the expected direction.</p>
  *
- * <p>SpaceNavigator support is automatic in every engine app: the
+ * <p>SpaceMouse support is automatic in every engine app: the
  * device is hot-plug detected, no setup code needed. Left button
  * brakes (kills camera velocity). Disable with
  * {@code -De3d.spacemouse=false}.</p>
  * device is hot-plug detected, no setup code needed. Left button
  * brakes (kills camera velocity). Disable with
  * {@code -De3d.spacemouse=false}.</p>
@@ -52,7 +53,7 @@ public class SpaceMouseDemo {
 
     /**
      * Builds the demo scene: compass ring, floor grid and the axis readout,
 
     /**
      * Builds the demo scene: compass ring, floor grid and the axis readout,
-     * camera at the center of the ring. The SpaceNavigator itself is
+     * camera at the center of the ring. The SpaceMouse itself is
      * hot-plug auto-started by the view panel — nothing to wire.
      * Called by both {@link #main(String[])} (via {@link #buildSceneState})
      * and the golden-image harness — must stay deterministic (no time, no
      * hot-plug auto-started by the view panel — nothing to wire.
      * Called by both {@link #main(String[])} (via {@link #buildSceneState})
      * and the golden-image harness — must stay deterministic (no time, no
@@ -100,8 +101,8 @@ public class SpaceMouseDemo {
                                    final int ms) {
                 final SpaceNavigatorHid device = panel.getSpaceMouse();
                 if (device == null) {
                                    final int ms) {
                 final SpaceNavigatorHid device = panel.getSpaceMouse();
                 if (device == null) {
-                    readout.setText("  No SpaceNavigator detected     \n"
-                            + "  Plug it in — hot-plug is on     ");
+                    readout.setText("  No SpaceMouse detected        \n"
+                            + "  Connect one — hot-plug is on   ");
                     return true;
                 }
                 readout.setText(String.format(
                     return true;
                 }
                 readout.setText(String.format(