Files
VoxelForge/Experiments/LivingPlane/UNREAL-MAPPING.md
T
Fr0zkaandClaude Opus 5.5 5b15595e4a experiment: LivingPlane - GPU wave-equation height field reacting to a moving sphere (L162)
Standalone EGL/OpenGL 4.3 compute runner (runtime GLSL, no shader compiler needed), ping-pong height/velocity field,
damped wave + foundation spring + Gaussian sphere push + optional breathing, vertex-displaced render to PNG.
Independent of generation. Intel ADL GT2: ~0.08 ms/step at 512^2, ~0.29 ms/step at 1024^2 (wall-time difference).
.gitignore now allows Experiments/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-11-02 10:35:37 +01:00

1.4 KiB

Unreal mapping note

The prototype stores a two-channel height and vertical-velocity field in a pair of RG32F textures. A world-owned Unreal component could keep equivalent transient render graph textures and advance them with a compute pass. It should own simulation time and clear or restore its buffers when the world is recreated.

The sphere path becomes a world-space interaction event: position, contact radius, and impulse strength are supplied to the compute pass. For multiplayer or deterministic replay, replicate the compact events and simulation tick, or record the resulting field; do not assume that independent GPU floating-point runs will produce byte-identical textures.

The rendered top surface can remain a render-only displaced mesh. If it must participate in voxel collision or queries, its height must also reach the density evaluator. For a height h(x,y), the plugin's density convention is negative inside solid and positive in air, so the plane's signed density is z - h(x,y). Keep this calculation in metres until the existing voxel/Core boundary converts with the active voxel size (25 cm by default); do not mix metre distances and voxel counts in the wave solver.

The current sample is an isolated visual field. Wiring this into AVoxelWorld would need an explicit owner for simulation lifetime, collision/update cadence, save/load, and the replication policy before it could affect shipped terrain.