This project allows the user to use the HTC Vive kit to build basic Lego structures in a Virtual environment. It ran on Unity's newest version as of 04/21/2017. To grab a Lego block, overlap the little white ball in front of the virtual vive controller with the Lego block you wish to grab and press the trigger. You can drag the block around by moving the controller with the trigger pressed down. Once on the platform, you can release the trigger to place the block. All relevant code is contained in Lego-VR/graphics_assignment/Assets/_scripts/. The files with most of the code are Controller.cs, PickupParent.cs, and spawnBlocks.cs. Feel free to modify the code and/or scenes as needed, since there are still plenty of glitches and inconveniences with it.

To open this project, you must go to the "Assets" directory and execute "scene.unity". The commits are written in the following format: "Commit #: 0.??. date(mm/dd/yyyy) Description of what has been pushed". Please log changes on this file as well in the following section:

Commit # 0.01 01/17/2017
This is the first commit after the creation of the repository. The commit added a preliminary version of the Lego building unity platform.

Commit # 0.02 01/17/2017
Added a readme file to specify working procedures for this repository.

Commit # 0.03 01/24/2017
Fixed grabbing and clonning implementations to code, controller scripts modified.

Commit # 0.04 01/24/2017
Debugging stuff. Problems: grabbing inconsistencies.

Commit # 0.05 01/29/2017
Joel Michelson: Matrix implementation and floating stuff.

Commit # 0.06 01/31/2017
Figures out collider boundaries and primordial code for stacking bottom-up.

Commit # 0.07 02/07/2017
Tried to figure out a good scale for the program.

Commit # 0.08 02/21/2017
Debugged: Fixed the 3-height block collider problem. Imported room model without texture. Alligned everything to their respective places. Looks pretty cool!

Commit # 0.09 02/22/2017
Corrected code. Allowed off-platform mechanics and some other problems.

Commit # 0.10 02/22/2017
Corrected code. Fixed collider problem with sphere thing. Perfected block spawning for pilot test zero. Working on locking blocks that have other blocks on.

Commit # 0.11 02/22/2017
Corrected code. Perfected block spawning. Made clock work. Fixed locked function.

Commit # 0.12 04/18/2017
Betta stage ready. Major fixes and presentable code.

Commit # 0.13 04/21/2017
Ready for test version. Last issues resolved.

This project assignment was created by Hong Xu, Terence Williams, Dony Ramier, Joel Michelson, Josh Ladd, and Jack Morrison. Feel free to edit and modify this code as you deem necessary. We do not claim any rights to any Lego block related features. The project was solely created for research purposes.

Future work (If you wish to add anything):
-Fix some rare block overlap issues.
-Add more blocks.
-Create a block generation and coloring interface.
-Create and allow more blocks.
-Change block placement dynamics.
-Fix frame-drop issues when looking at Lego base platform, due to mesh quantity.

If you have any questions about the code or the interface, you can contact us at hongchido@hotmail.com.