140 Description - 5 year old
A drawing tool that allows you to create diagrams and play within them in 3D space.
140 Description - Peer
A math visualization tool built with computational geometry and a language to manipulate 3D objects in virtual reality.
140 Description - Senior Engineer
A VR app that leverages a Turing complete language to manipulate the rendering of 3D objects in VR built upon a large geometry library.
As a team (one particularly interested in math) we wanted to replicate the current math and geometry visualization tools that exist and see if it is possible to create them in VR. This would create an ability to examine and understand 3D objects as if they were constructed right in front of you.
What it does
Our project is built with a geometry scripting language included. This language (Euclid) is used to specify and store the geometry diagrams. It is a turing complete language built without any numerical constructs, but used to specify geometric constructions.
The VR portion using Unity and the VRTK with the HTC Vive renders these diagram files and allows the user to move static points and to zoom and drag the object around the VR space.
How we built it
The entire project is written in C# with the exception that some geometry functions are within the language written inside C#. We built the Euclid language to allow us to specify diagrams. We worked with Unity for rendering. The remaining core of the computational geometry code is built into the C# code with our math library.
Challenges we ran into
By choosing to create a geometry scripting language, we had to go through the process of parsing, tokenization, and the creation of an abstract syntax tree in order to process these diagrams.
Another major challenge is the core computational geometry which includes hundreds of lines of code of vector math to manipulate the base objects in the library.
Accomplishments that we're proud of
We are particularly proud of the final computational geometry library because it is incredibly versatile. The scripting language is also a particularly cool accomplishment because of the uniqueness in the language and the lack of numerical constructs with only geometry constructions while still being Turing complete.
We are proud that in the end we were able to render and manipulate the diagrams in real time within the VR space.
What we learned
As a team we sharpened our math especially with vectors in order to calculate many complex geometry operations to make the constructions much simpler. We also learned more of the API for Unity and the VRTK.
What's next for Experimental Geometer
We hope to continue this project outside of the Hackathon. One plan is to possibly separate the computational geometry library entirely from the VR in order to create a separate powerful library for generating diagrams through a unique construction syntax. We will for sure continue to polish the project and put it on display within our school.