The Tesseract has awaken....
I am always fascinated by the visualisation of 4th dimension or even n-th dimension in our 3D space. The 4th dimension here is not about time, but the beauty of the abstract geometrical dimensions that exist in the mathematical world.
One of the most famous 4D cubes is perhaps the 4D Cube building in Paris. You may also study in more depth on Wikipedia, where you can find the mathematical n-dimensional hypercubes.
I tried in VRMath2 Editor to create a 4D cube. The result is not too bad. You can see below how the 4D cube was created from 0-D point to 1-D line, to 2-D square, to 3-D cube, then to 4-D Tesseract. I have also added a small sphere at the center of the hypercube. You can click on it to toggle the spin effect on and off.
INFO: Time for setup and init of GL element no. 0: 21 ms.
INFO: activate ViewpointBindable null/defaultX3DViewpointNode
INFO: register ViewpointBindable null/defaultX3DViewpointNode
INFO: create new Viewpoint for X3DViewpointNode-stack
INFO: activate BackgroundBindable null/defaultX3DBackgroundNode
INFO: register BackgroundBindable null/defaultX3DBackgroundNode
INFO: create new Background for X3DBackgroundNode-stack
INFO: System ready.
INFO: activate NavigationInfoBindable null/defaultX3DNavigationInfoNode
INFO: register NavigationInfoBindable null/defaultX3DNavigationInfoNode
INFO: NavType: undefined
INFO: Switch to examine mode.
INFO: create new NavigationInfo for X3DNavigationInfoNode-stack
INFO: activate EnvironmentBindable null/defaultX3DEnvironmentNode
INFO: register EnvironmentBindable null/defaultX3DEnvironmentNode
INFO: create new Environment for X3DEnvironmentNode-stack
INFO: setBaseURL:
INFO: webgl2 context found
Vendor: WebKit Google Inc. (Google), Renderer: WebKit WebGL ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (LLVM 10.0.0) (0x0000C0DE)), SwiftShader driver), Version: WebGL 2.0 (OpenGL ES 3.0 Chromium), ShadingLangV.: WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium), MSAA samples: 4
Extensions: EXT_clip_control, EXT_color_buffer_float, EXT_color_buffer_half_float, EXT_conservative_depth, EXT_depth_clamp, EXT_float_blend, EXT_polygon_offset_clamp, EXT_texture_compression_bptc, EXT_texture_compression_rgtc, EXT_texture_filter_anisotropic, EXT_texture_mirror_clamp_to_edge, EXT_texture_norm16, NV_shader_noperspective_interpolation, OES_draw_buffers_indexed, OES_sample_variables, OES_shader_multisample_interpolation, OES_texture_float_linear, OVR_multiview2, WEBGL_clip_cull_distance, WEBGL_compressed_texture_astc, WEBGL_compressed_texture_etc, WEBGL_compressed_texture_etc1, WEBGL_compressed_texture_s3tc, WEBGL_compressed_texture_s3tc_srgb, WEBGL_debug_renderer_info, WEBGL_debug_shaders, WEBGL_lose_context, WEBGL_multi_draw, WEBGL_polygon_mode, WEBGL_stencil_texturing
INFO: Initializing X3DCanvas for [x3dom-1742884536078-canvas]
INFO: Creating canvas for (X)3D element...
INFO: Found 1 X3D and nodes...
INFO: X3DOM 1.8.3, Build: 7482, Revison: 03da6d38708e4eafc94c2305fdc175312a880321, Date: Tue Aug 1 11:18:17 2023 +0200
Only if you are interested, you can download and try the Logo program here: hypercube.logo.
From doing this, the mathematical concepts about zero to n-dimension space can be explored. I have not yet to write teaching and learning ideas for this, but I think students will be interested in creating and programming, and at the same time learnt about 3D coordinate system and structure of cubes.
My purpose of doing this hypercube is to test the CoordinateInterpolator for animation. And in fact, I have identified a few bugs and new ideas that I need to implement in VRMath2 Editor. So stay tuned, I will be posting some new Logo programs after I refined some language issues.
You are welcome to leave a comment to tell what you think. 