## Inspiration

Kimoyo is named after the kimoyo beads in Black Panther-- they're beads that allow you to start a 3D video call right in the palm of your hand. Hologram communication, or "holoportation" as we put it, is not a new idea in movies. Similar scenes occur in Star Wars and in Kingsman, for example. However, holoportation is certainly an up-and-coming idea in the real world!

## What it does

In the completed version of Kimoyo, users will be able to use an HTC Vive to view the avatars of others in a video call, while simultaneously animating their own avatar through inverse kinematics (IK). Currently, Kimoyo has a prototype IK system working, and has a sample avatar and sample environment to experience!

## How I built it

Starting this project with only a basic knowledge of Unity and with no other VR experience (I wasn't even sure what HTC Vive was!), I leaned on mentors, friends, and many YouTube tutorials to learn enough about Vive to put together a working model. So far, Kimoyo has been done almost entirely in Unity using SteamVR, VRTK, and MakeHuman assets.

## Challenges I ran into

My lack of experience was a limiting factor, and I feel that I had to spend quite a bit of time watching tutorials, debugging, and trying to solve very simple problems. That being said, the resources available saved me a lot of time, and I feel that I was able to learn enough to put together a good project in the time available. The actual planning of the project-- deciding which hardware to use and reasoning through design problems-- was also challenging, but very rewarding as well.

## Accomplishments that I'm proud of

I definitely could not have built Kimoyo alone, and I'm really glad and very thankful that I was able to learn so much from the resources all around me. There have been bugs and issues and problems that seemed absolutely intractable, but I was able to keep going with the help of others around me!

## What's next for Kimoyo

The next steps for Kimoyo is to get a complete, working version up. First, we plan to expand the hand inverse kinematics so the full upper body moves naturally. We also plan to add additional camera perspectives and settings, integrate sound, beginning work with a Unity network manager to allow multiple people to join an environment, and of course building and deploying an app.
After that? Future steps might include writing interfaces for creation of custom environments (including AR?), and custom avatars, as well as developing a UI involving the Vive controllers-- Kimoyo has so many possibilities!
## Inspiration

We were inspired to connect people over the world in a more physical way than what the internet normally provides for us. We wanted to build a virtual reality in which all the people in our reality could see each other and interact with each other- potentially from across the globe.

## What it does

We built a dueling game in Unity in which two players may join the same game over the internet and duel in virtual reality. Using the Kinect allowed us to render virtual bodies of both players in the game, which both of the players can see. The players can fire shots at each other in a friendly duel by touching their left or right elbow with the opposite hand. All in all, we combined functionality of the Kinect with the Samsung Gear in order to create a prototype of a truly immersive VR experience.

## How we built it

We developed our game in Unity. We used Unity-Kinect plugins to gather data from the connect in the Unity framework. The Kinect sends data to the computer, which reads in each vertex of the Kinect's representation of the player's body. These vectors are transferred to the Samsung phone via Open Sound Control. The phone then creates an avatar for the player in game, with the camera centered on the player's head. The Samsung Gear controls the direction of the camera. We used the Photon plugin for Unity to create online multiplayer functionality in our game.

## Challenges we ran into

We ran into trouble using the Samsung Gear to control the camera as the Gear seems to initialize the camera direction based on the it's position at the moment the app starts. This meant that the Kinect and the Gear's ideas of the player's orientation were not always the same.

## Accomplishments that We're proud of

We are very proud of our integration of VR and Kinect; specifically, getting both Open Sound Control and Photon to integrate with Unity in order to transfer information between the Kinect, the computer, and the Gear. It was important to us that the Gear and Computer communicate locally over the local Wifi network, but that the Gear could also connect with other Gears anywhere in the world, and we succeeded in implementing these goals.

## What We learned

We definitely learned about connecting devices with Open Sound Control, and about creating multiplayer Unity games with Photon. None of us had worked on the Kinect or any VR devices prior to the Hackathon, so we had a lot of fun learning about the capabilities of these devices.

## What's next for Neo Simulator

We want to add GUI's to better facilitate connections between more than two people connecting with players of their choice. If we can aquire Gear's to continue working on, we would love to continue working on improving our game. It's already a lot of fun to play; imagine how it will look after we get some sleep!
## Inspiration

We wanted to build a shooter that many friends could play together. We didn't want to settle for something that was just functional, so we added the craziest game mechanic we could think of to maximize the number of problems we would run into: a map that has no up or down, only forward. The aesthetic of the game is based on Minecraft (a game I admit I have never played).

## What it does

The game can host up to 5 players on a local network. Using the keyboard and the mouse on your computer, you can walk around an environment shaped like a giant cube covered in forest, and shoot bolts of energy at your friends. When you reach the threshold of the next plane of the cube, a simple command re-orients your character such that your gravity vector is perpendicular to the next plane, and you can move onwards. The last player standing wins.

## How we built it

First we spent a few (many) hours learning the skills necessary. My teammate familiarized themself with a plethora of Unity functions in order to code the game mechanics we wanted. I'm a pretty decent 3D modeler, but I've never used Maya before and I've never animated a bipedal character. I spent a long while adjusting myself to Maya, and learning how the Mecanim animation system of Unity functions. Once we had the basics, we started working on respective elements: my teammate the gravity transitions and the networking, and myself the character model and animations. Later we combined our work and built up the 3D environment and kept adding features and debugging until the game was playable.

## Challenges we ran into

The gravity transitions where especially challenging. Among a panoply of other bugs that individually took hours to work through or around, the gravity transitions where not fully functional until more than a day into the project. We took a break from work and brainstormed, and we came up with a simpler code structure to make the transition work. We were delighted when we walked all up and around the inside of our cube-map for the first time without our character flailing and falling wildly.

## Accomplishments that we're proud of

Besides the motion capture for the animations and the textures for the model, we built a fully functional, multiplayer shooter with a complex, one-of-a-kind gameplay mechanic. It took 36 hours, and we are proud of going from start to finish without giving up.

## What we learned

Besides the myriad of new skills we picked up, we learned how valuable a hackathon can be. It is an educational experience nothing like a classroom. Nobody chooses what we are going to learn; we choose what we want to learn by chasing what we want to accomplish. By chasing something ambitious, we inevitably run into problems that force us to develop new methodologies and techniques. We realized that a hackathon is special because it's a constant cycle of progress, obstacles, learning, and progress. Progress stacks asymptotically towards a goal until time is up and it's time to show our stuff.

## What's next for Gravity First

The next feature we are dying to add is randomized terrain. We built the environment using prefabricated components that I built in Maya, which we arranged in what we thought was an interesting and challenging arrangement for gameplay. Next, we want every game to have a different, unpredictable six-sided map by randomly laying out the pre-fabs according to certain parameters..