Build your base

Alienum phaedrum torquatos nec eu, vis detraxit periculis ex, nihil expetendis in mei. Mei an pericula euripidis, hinc partem ei est.
 

Simulation X

Registration Closes: May 10, 2017 11:59 PM
Reporting Time: Saturday, May 13, 2017 08:30 AM
Competition Starts: Saturday, May 13, 2017 10:00 AM
Competition Duration: 22 continuous hours

You are invited to solve a real world optimization problem in 22 hours using the Unity Game Engine. Wow, and we thought that games and animation are just for fun! Prepare to see for yourself how animation and gaming technology can be used to simulate a real life problem. Your challenge is to figure out an optimization strategy to find the best solution to solve the problem. You are welcome to use freely available 3rd party optimization tools or simply develop your own algorithm in Unity C#. So if you love geeking out with data and numbers, this is your challenge! Whether you are a free spirited algorithms junkie, or a cold hard data analyst, you will definitely enjoy wrangling up a high score on this challenge, apart from taking a small step to change the world.

Sounds cool! So how does animation meet optimization in a game engine?

The first challenge in solving a real world problem is capturing/sensing the domain data. Reproducibility of specific situations is yet another challenge. Simulation has been a popular method to approximate a model of the problem and use optimization algorithms or heuristics to propose a cost-minimized solution. We will adopt this approach, and since we have a reasonably accurate model approximated from real data, you will get accurate constraints, reproducibility and control right out of the bat.

The Unity game engine is a wonderful platform as it allows us to interact with shape and motion. Furthermore, we can take advantage of the excellent Vector and Math library functions that serve as a foundation to modeling complex motion and shape. Lastly, with a modern object oriented language like C#, one can quickly prototype ideas without being bogged down with memory leaks and ugly crashes.

The good news is that you do not need to break your head on the complex animation task. It will be provided to you at the start of the Hackathon. You need to devise an intelligent solution to the problem statement. The numbers you search for as part of your optimized solution will drive the animation in real-time. If you adopt a machine learning approach, you need to first decide which model you are going to apply: unsupervised learning (e.g. Support Vector Machines), or supervised learning (e.g. training a Neural Network with good and bad examples). You would typically need to rerun the simulation N times (e.g. 100 or 1000 or 10000 times) until you converge on the best solution. The platform provided thankfully allows you to fast-forward the simulation during training. You can take advantage of powerful 3rd party libraries and tools to do the cost minimization step and return tweaked values to the game engine in real time. You will need to come prepared with your own inter-process data communication between Unity and the 3rd party tool of your choice (e.g. data exchange via sockets between your Unity script and Octave or Weka). An alternative approach might be to implement Search Tree or Genetic Algorithms in Unity C# to figure out the best solution iteratively, without needing a 3rd party tool. Lastly, you can integrate a 3rd party optimization library as a Unity plugin, and implement the learning loop with API library function calls right inside Unity (e.g. using OpenCV api).

Skills You Need:

  • You should be familiar with Machine Learning and Optimization concepts.
  • You should be familiar with Unity.
  • You should know Unity C# scripting
  • Specific skills:
    • Understand Object-Component model in Unity
    • Correctly access/exchange data between classes
    • Optional: Socket data communication with external machine learning tool
    • Optional: Scripting in Octave/Weka

Judging Criteria:

  1. Performance of trained model on test data
  2. Elegance of solution
  3. Generalizability to a larger scale proble

Learning Resources:

Unity Resources
Tools Overview

Windows/Interface: link

Objects/Components: link

Programming

Introduction: link

Scripts and Objects: link

Instantiating Prefabs: link1 | link2

Scriptable Objects: link

Game Tutorials: link1

Sockets: link

OpenCV with Unity: link1 | link2 | link3

GUI

Creating UI : link1 | link2

Machine Learning
Machine Learning by Stanford Prof Andrew Ng : link (regression, gradient descent, logistic regression, SVM, NN, PCA with Matlab/Octave code assignments)

Machine Learning by CMU Prof Tom Mitchell: link (decision trees, bayesian learning, … )

Genetic Algorithms: link1 | link2

A* Search: link1 | link2 | link3

Tools: Octave | Weka | OpenCV

Is this Individual or Team-based Hackathon?

It is individual.

Why you should participate?

Applied Games or Serious Games have gained an important platform in the industry. Games are being applied in diverse  areas, from training and simulation of risky processes, to collecting behavioral data, to medical therapy. It is an emerging and rewarding career option. The hackathon is a great way to network and meet professionals. More importantly, get noticed for your skill-sets at an event supported and attended by top notch  international companies.

What does it take to win the title?

All participants will assemble under a common roof on the given day and compete to code the most robust implementation of the secret theme. The theme will be revealed prior to the start of the Hackathon. The best solution can be measured quantitatively on a variety of test sets.
Participants will have to bring their own laptops pre-installed with Unity 5.6 Game Engine, along with associated C# code editors/compilers (Xamarin Studio/MonoDevelop or Visual Studio).
The Winner takes home exciting prizes and will claim the “Bengaluru GAFX Coding Champion for Simulation X” title till next year’s challenge.
The Hackathon starts at 10:00 AM, Saturday, May 13 2017 and wraps by 08:00 AM, Sunday, May 14, 2017. It is advised to arrive one and half hours prior to the start of the Hackathon.

AWESOME! That sounds like a lot of fun! How do I participate?

That’s super simple. Follow these three steps mentioned below.

Also, be sure to read the FAQ thoroughly to be sure you understand everything clearly.

What about hardware and software?

Contestants will have to bring their laptops with these minimum requirements.

  • Laptops(s) Wifi Enabled
  • Decent Graphics Card
  • Unity Engine 5.6
  • Code editing and compilation tools (C# editor: MonoDevelop or Visual Studio)
  • Optional: 3rd Party free optimization tools: Octave, Weka, OpenCV, etc
  • Optional: Come ready with data socket communication code between unity and the any of the above tools to support live feedback between Unity simulation and 3rd party library or tool
  • Optional: Incorporate the 3rd party optimization library as a Unity plugin and come prepared with how to make API calls to it from your Unity script

If you have any concerns, click here.

Simulation X FAQ’s

  • I have a question that I need an answer to. Where can I ask?

Please Click here to send us a message for any query related to Competitions.
Consider allowing 2-3 days for your queries to be answered. Also, be sure to go through the FAQ thoroughly, chances are your question has already been answered. Be sure to mention Hackathon in the Subject Line.

  • What is the goal of hackathon?

We want to create an environment that embraces new ideas and technology solutions for the Animation/ VFX /Gaming Industry. We know it may take you less than 22 hours to build a solution to the problem statement, but are providing ample time to try new ideas and complete the problem statement.

  • How do I participate?

You need to Register for the competition and follow all the relevant guidelines, and important dates mentioned on the site here.

  • Is this Hackathon open for Students / Professionals? What if I am part-time studying and part-time working?

The Hackathon has two separate categories – Students and Professionals. Be sure to select the appropriate category while filling the Registration Form. If you are a part-time student and part-time working professional, you will qualify under the Students category. You will be required to show your original student ID.

  • When will the theme of the competition be announced? Will I be intimated by email about the same?

Theme of the Hackathon and other specific details pertaining to this category will be revealed just before the start of the challenge on May 13, 2017. It is advised to arrive one and half hour prior to the start of the challenge.

  • How can I prepare for this hackathon — do you have any tutorials or areas I should focus on?

Learn coding in C# Unity Game Engine. Revise machine learning and optimization concepts from comprehensive references provided under Learning Resources. You will need to either learn how to integrate external tools as plugins (e.g. OpenCV machine learning library can be accessed as Unity plugin) or prepare socket-data connections between Unity and your external optimization tool. Alternatively read up Genetic Algorithms or A* Search Tree if you want to implement entirely with Unity C# scripting.
Also, there is a Unity Workshop organized on May 12, 2017 which will be conducted by Unity, as part of the conference. We will also have Unity representative to provide any game engine related mentorship during the course of the hackathon.You may attend the workshop on May 12, 2017, without having to register for the workshops or having to pay. You are however requested to block a seat for you in advance by sending an email to competition@gafx.in . Schedule of the workshop will be announced on the website soon.

  • What are the timings for the Hackathon?

The Hackathon starts at 10:00 AM on Saturday, May 13, 2017 and ends at 08:00 AM on Sunday, May 14, 2017. It is advised to arrive one and half hours prior to the start of the Hackathon.

  • What kind of Coding challenge will be given in the Hackathon ?

As this event is Animation / VFX / Gaming industry related, the coding challenge will be related to solving a real-world problem using optimization driven by animation/simulation in a game engine.