This is a visualization of an arbitrary parametric surface:

Parametric surface:  

Follow surface:   Stand:  

For those without virtual reality devices, click on the visualization and use WASD keys for movement and rotation; the cursor keys allow movement up and down. This will at least provide a feel for the visualization, but it is more interesting in virtual reality.

Normal JavaScript expression rules apply when entering a surface, and the special functions of Math are available for exploration. The values on the coordinate axes are those of the current position of the user. Activating a trigger button on the virtual reality controller will recenter the surface about the origin.

The surface patch moves by checking the distance to edges of the square from the position of the controller. When one is further away than half the patch size, the vertices of that edge are moved to the opposite side. The faces can then be updated from the altered vertices without any need to change any of their underlying indices. This is by far the least complicated way to move the surface patch.

Uploaded 2019.12.13 — Updated 2020.07.22