Week 7 Summary
As we go into second round of rapid prototyping, we made a final touch on the 3D line demo. In addition, to establish a technical foundation for multi-user experience, we explored image tracking and networking.
3D Line Prototype
This is a full video of our 3D Line prototype.
Visual cues and anticipation animations create natural interaction with virtual lines.
Layer Prototype Brainstorm
Layer is a recurring education format we can reuse in other subjects. Using biome as an example, we first designed the flow of the prototype to demonstrate the basic interactions. Furthermore, the prototype needed a learning structure. Our current plans are 1) teach deforestation effect or 2) teach effects on rainforest due to organism’s population.
Block Demo
As a basic interaction of the layer content, we will use block stacking. To have accordance with layer, we will use block stacking as our main mechanic for leaner and content interaction.
Image Tracking vs Marker Tracking
To track a physical object, we tried an image first. By using OpenCV, tracking was much better; however, the tracking was not promising as we thought. If we move the image, the tracking gets lost.
In order to do an active tracking, we tried ArUco markers. The result was surprisingly effective. Although, we cannot achieve textbook illustration tracking as intended, our success is on ZED camera’s tracking capability.
Networking
After realizing ArUco markers are effective, we will utilize multiple ArUco markers to map out the room, plug in the dimension, and calculate the user’s position according to the distance from the markers. We handmade our 49cm square ArUco markers to achieve this calculation.
Virtual Table
We found out that in AR space, people have trouble positioning a virtual object because you can also see physical table in front of the user. In order to prevent any confusion of where to put the virtual object, we made a virtual table to help users to put a virtual object inside our experience. In addition, virtual table automatically reposition the object if it is positioned below the virtual table.