Consider a 3D printed cube. This cube will cast a different shadow onto a piece of paper when the light source moves around.
Beings living in a 2D world will experience the cube differently depending on how the shadow is cast onto their world.
Similarly, a 4D cube, or Tesseract, can also cast a shadow onto our 3D world. It is challenging to think about this because we do not directly experience the world in 4 dimensions. Nevertheless, I was able to model a tesseract using Python and Rhino. Specifically, I modeled a 4D tesseract and its perspective projection onto 3D space. This model will change as the tesseract rotates in 4D space. The projections were modeled in Rhino using the RhinoCommon SDK.