Let’s create an Automated 3D Temple from any brief description!

Some archaeology students and teachers might come across some description of an old temple or building. Some people are more of a visual learner where they will try to imagine the temple as they read the description. However, have you ever wondered what it would be like to have your computer make you a picture of a 3D temple straight out of any description, instantly at any time? Maybe even manipulate or rotate them too? Is it possible to have?

Yes, that is very possible and that is what we are going to do! How will it work out? Some group of people will create a program that will turn any temple description into a 2D Bird’s eye view. Then, me and my group will take the 2D Bird’s eye view of the temple, and output a 3D model of that temple! (Later, we will merge our 2 programs to turn a description into a 3D model) But how can we turn a 2D Bird’s eye view of a temple into a 3D viewable and rotatable model of a temple?

Andrew Wang, a member of our group, will be working on creating the edge detector. Using the edge detector, it will get the x, y (2D) points of all edges of a 2D’s bird eye view of a temple (every 2D graph have x and y points; A 3D graph has x, y, and z points). Now, how do we get the z points for the 3D output of the temple? The z value is simply the height of the temple. So it depends on the description of the user. Do you think it is a tall temple? Or a short temple? Perhaps some online historic resources can tell the user how many feet? (If not, that’s fine. The user can just guess a height) With this, we can approximate the z value of all the points! Then, we got all the x, y, and z points needed for the 3D output!

Christian Izurieta, another member of our group, will be creating and managing the GUI (Graphical user interface) of the program. The GUI will take in a 2D image file of a Bird’s eye view of a temple and ask the user to type in the height of the temple (which will be the z value). The height can just be any amount of feet (or if the user doesn’t know an exact height, he/she can just put in a big amount for tall temples or a small amount for short temples). Then, the GUI will output a 3D model of that temple, which can be viewed and rotated in 3D program viewer(s).

Me and Takumi Hanai (another member of our group) will work with the 3D programming portion of the program. This is likely the hardest part of the project, so it is at least a 2-man job. What we will do is get all of the x and y values of all points from the edge detector. The z values will come from the user (what the user inputted in the GUI). Then, we will plot these x, y, and z points on a 3D graph. Finally, we just connect the points!

How do we know which points should be connected and which should not? The bird’s eye view will tell us how to connect all x and y points (because the bird’s eye view has all the x and y points already connected correctly for us!). How about the z-part of the points? Well, if 2 points have the same x and y value, but a different z value, then that means they are directly on top or under each other. How? The z-value indicates the height. For example, you can have a point (1, 4, 9) and a point (1, 4, 0). The point (1,4,0) is located somewhere on the ground because the z-value is 0 (no height away from the ground). The point (1,4,9) is located right on top of the point (1,4,0), and it’s 9 feet on top of it.

In conclusion, we can tell how a 2D bird’s eye view approach can work out to create this project. Originally, we wanted to go with a 3D vector point approach rather than a 2D bird’s eye view approach, but it became evident between both groups that it cannot work out. If we’re given 3D vector points, how would we know which ones to connect? There is no way since nothing tells us how. You can try guessing what to connect to all 2 different points for all of them. However, that is just billions and billions of guessing and you have to guess each and every one of those billion correctly (a 3D temple will have so many points)! It’s mathematically impossible to guess all of that correctly in one semester’s length! Meanwhile, a 2D Bird’s eye view already has the x and y points connected for us! We can figure out z easily since it is just the height of the temple (given by the user). Next I will be finding out the correct 3D format that can be rotated by the user and continue following this Java 3D programming guide: