Three.js is a relatively lightweight and quite intuitive JavaScript library, a constant companion of projects that were created on the basis of WebGL. When it comes to dealing with 3D graphics, it is in its element. With it, it becomes possible to generate complex animations massively overload the system. It lets you manipulate and tune all the vital details of the composition such as lights, materials, shaders, cameras, objects, etc. It programmatically creates a render and charges it with dynamic behavior taking into account all the rules of geometry, perspective, and physics. To sum up, it has something to offer to any sophisticated developer.
https://www.noupe.com/development/20-exceptional-three-js-experiments-98740.html