Kaleidoscope

(Using Three.js + Path Tracing)

This website uses path tracing to simulate how real light travels and reflects, which can be used to create kaleidoscopic patterns.

Usually path tracing is unnecessary for the purposes of creating a kaleidoscope, as it's often easier and more efficient to compute reflections using pure maths. However, experimentally it's a lot easier to simulate a real kaleidoscope using path tracing, allowing you to control the materials and placement of mirrors.

Using path tracing also allows us to simulate unconventional kaleidoscopes, like a five-sided kaleidoscope rather than the more conventional three-sided scopes.

Further experimentation, like changing the arrangement of mirrors into more interesting shapes, can be done by downloading the code for this website and modifying index.js.

Warning: This website does not perform well on mobile, both Android and iOS, due to various bugs and memory limitations. For best results, try this website on a desktop or laptop.

Only 3 or 4 mirrors will produce a kaleidoscopic effect. See Wikipedia's article on edge tessellation for an explanation.

The length of the kaleidoscope tube.

The tint of the glass used in the mirror.

Values closer to 0 have more accurate angle reflection.

Values closer to 1 have more accurate color reflection.