This is a project in which a participant can freely walk around four dimensional objects, such as a hypercube, a 24-Cell or an aerochoron, and can rotate those objects via a 4D virtual trackball, implemented as a generalization of the 3D virtual trackball.

The orientation of the 4D object is internally represented as a 4×4 rotation matrix.
To implement the 4D virtual trackball, the interior of a unit sphere volume is lofted to the upper (w >= 0) half of the S2 bounding volume of an S3 hypersphere by mapping [x,y,z] to [x,y,z,sqrt(1-x^{2}-y^{2}-z^{2})].

The path of a tracked ViveRemote inside the sphere volume can then be interpreted, while the ViveMote’s trigger is pressed, as a 4D “mouse drag” on the corresponding S2 boundary. The 4×4 rotation matrix is continually updated so that the object rotates along that drag path on the S2 boundary.
When the ViveMote is outside the sphere, its position is projected down to the sphere surface. Rotation in this case then effectively reverts to 3D rotation. Other buttons on the ViveMote are used to translate the position of the virtual trackball and to toggle between different 4D objects.

One advantage of using the Virtual Reality for such interaction is that participants are given the ability to freely look and walk around the 4D objects, independently of the act of rotating those objects in four dimensions.

System Requirement: a VR ready Windows Machine, HTC Vive

Dowaload Link: __Click me to download__