Teachers would often have to painstakingly draw out geometry on whiteboards to help students see how they look like in a 3D space. Unfortunately, a 2D solution like using a whiteboard or drawings on paper sometimes may not be ideal especially for learners who may have difficulty trying to visualize drawn 2D shapes in a 3D form. I narrowed down my idea to looking at using AR as a way to solve this by displaying 3D nets of common 3D solids which can be animated and controlled by the user.

What it does

Foldables presents learners with a choice of basic solids like a cube, cuboid, prism and pyramid. After tapping to place the net of the solid, the user can interact with the solid by tapping and moving it around and being able to adjust it's scale. Long pressing on the screen will trigger the net object of, for example, a cube to start folding to form a 3D cube. Letting go of the finger from the screen will reverse the animation. There is also a slider which the user can use to control the animation. The user can easily move the slider up to any point and stop to inspect the solid being formed. The Native UI picker options at the bottom provide access to the other solids for the user to play around with as well.

How I built it

Creating the nets of the solids and their respective folding animations was done in Blender before being brought into Spark AR. I used the world sticker template in Spark AR to get quickly started with scene setup for a world AR effect.

Challenges I ran into

Implementing a way for the user to access the various types of nets for 1 solid like the cube. I decided to just have another 3d object in the scene that would appear alongside the cube net (which is a round circular button with arrows on it). Tapping on it will switch between the various types of cube net layouts. This helped to solve this problem.

Accomplishments that I'm proud of

Implementing the use of Native UI, the slider and the use of the 3d button object to swap between different 3d nets of the cube was something I did not expect to fully achieve, but I am glad I managed to do that.

What I learned

Asset management (still learning this) and also how to make use of the option sender to toggle between more than the default 5 options for the user to have more variety to play with and explore.

What's next for Foldables

To implement more variety of nets for the other solids (cuboid, prism, pyramid) and also have maybe more types of solids available which are of increasing visual complexity.

Built With

  • sparkar
Share this project: