Demo Concept 0
Sometimes (always?) the easiest way to explain something is to show it first, so here it it:
Some additional comments:
The little sphere you can see floating at the beginning is the target viewpoint: the point where the "image" appears undistorted (here, the rectangle). You would typically put this point at head level on top of your desk chair, or in the shower, or in the entrance of your home, in front of a corridor, or on top of your kids pillow in their bed (just some suggestions).
For this simple demo I used a semantic rectangle (made of lines, and uniform interior color surface), that makes it "easy" to do the projection.
Keep in mind, the target product would allow to place a real image. It will get a little more challenging, as we will need to project all pixels (in the range of 10 millions, not just few lines and points) and interpolate the texture on the different surfaces, running in a phone browser.
Hopefully this little 3d animation makes the goal clearer!
For some insights how I did this quick animation: I first wanted to do it in FreeCAD, but as I don't have much experience with it, and looking quickly through the documentation, I quickly realized that I would need to make use of python scripting for the camera positioning and projections. At this point I realized it would be quicker and the same "demo effect" to do it directly with my target tool of interest for the final product: RUST with the three-d crate for visualization.
See you soon!