Projects Panel

Projects:

Friday, 17 March 2017

AI Quickstart - Getting the SciPy Stack for machine learning and AI

Hi guys, here's a quick guide to getting the necessary packages and dependencies up and running on your computers in order to begin working with the Iris Dataset in Python. Generally, what you'll need is the SciPy Stack, and a few other packages if you plan to follow the IIT AI Study group sessions.

Keep in mind I wrote this especially for members of the IIT AI Study Group, so not all the information on this page may apply to a wider audience, or even make sense if you haven't attended the session.

Your options, in order of complexity
  • Installing Python, then installing pip, then finally installing the necessary packages with pip.

    You can't best the classics. If this is your first try, I fully recommend trying this out just to make sure it doesn't work for you. Linux and Mac users should have no problems, Windows users may run into a multitude of problems, depending on their Python version and system architecture, and graphics card.

    What you'll need to do is install Python, download either version 2.7 or 3.6, then update pip to the latest version by opening the command line and typing:
    python -m pip install --upgrade pip

    then use pip install to install all the needed packages:
    pip install --user numpy scipy sklearn matplotlib pandas
  • Installing one of the recommended distributions (Windows)

    Try out one of the recommended distributions suggested by the SciPy development team. This option is recommended for Windows users, since most of the distributions come with their own executable installers. Unfortunately, most of the distributions are very heavy in terms of download size, ranging from 400MB to around 700MB. If you feel this is not for you, move on to the next step.

  • Downloading Miniconda and installing all the necessary packages using the command line

    One of the recommended distributions above is the Anaconda distribution, which clocks in at about 400MB to download, and comes with a trial period (meh) and a freemium business model (ew). It is based on Conda, which is an open-source, cross-platform, language-agnostic binary package manager. It's basically a piece of software that handles all your builds for you in contained spaces called environments.

    If you are a Windows user with a limited internet connection, instead of the Anaconda distro, you can get the smaller, competely free Miniconda, which offers all of the same functionality through the command line, and clocks in at around 50MB. Install it, then you can install all the necessary packages using the command conda install <package name> (which works similarly to pip install, from above), using the command line, so you can feel like a hacker, you Windows plebeian.

    Note - when using conda, the sklearn library is referred to as scikit-learn. Using conda install sklearn will not yield a result. The command is conda install scikit-learn.
  •  Downloading the numpy+mkl wheel and then using pip.

    And here we get to the crux of the issue - why all the hate on Windows? Well, most of the problems Windows has with installing the SciPy stack has to do with the SciPy library itself, which is part of the SciPy stack, obviously. The SciPy lib depends on the numpy+mkl library, which isn't available through pip.

    If you've decided that you're too pro for all the above methods, then the only options left to you is obtaining the wheel (.whl) files for your particular Python version and system architecture, which is basically a giant offline installer that downloads the lib onto your local system so you can run it offline. They can be found at Unofficial Windows Binaries for Python Extension Packages - simply pick the appropriate .whl file and download it. You'll need both the numpy+mkl wheel and the SciPy wheel and then you'll need to use pip install to perform a offline install from local source.
Finally, don't forget to get the Iris Dataset (iris.data) from http://archive.ics.uci.edu/ml/machine-learning-databases/iris/

If anyone has any problems, please leave a message on the IIT AISG WhatsApp Group, and I'll try to get back to you as soon as possible.

Saturday, 4 February 2017

A look at Unity and UE4 from the perspective of a complete gamedev noob.

As promised, here's the gamedev note on Unity and UE4 :)

Tea or coffee?
Cats or dogs?
Black or white?
Unity or Unreal Engine 4?

These are the questions that have plagued man since the dawn of time, with the possible exception of maybe the last one. And the answer sort of lies in personal preference. So, dear reader, how do you like your caffeinated water/animal companions/arbitrary colours/free game Engines? Here's my short take on it.

I've got about a year of experience in Unity, so I'd like to think that I'm fairly competent in it, however, I have to admit that I'm far from it. Over the past week, I installed Unreal Engine 4, for the heck of it, just to take a look, and was completely blown away. One of the major advantages that UE4 has over its competitor is the sheer amount of out-of-the-box support that it offers completely new users. I was able to set up a first person controller in minutes, via a drag and drop operation. To do the same thing in Unity, I spent twenty minutes finding a decent tutorial, and ended up following a sixty-minute tutorial on how to fire lasers with a LineRenderer instead in order to set up a halfway-decent one that didn't use deprecated syntax. Another big plus was the ability to run tutorials in-editor (a major godsend - no more concentration-breaking Alt-Tabbing between the Editor and a Youtube window every few seconds. However, a scrollbar and some resizability options should be added to the tutorial window so it doesn't take up more than half of the 3D Viewport when you're following it.

Of course, this isn't to say that there aren't any problems with UE4. I do see some potential difficulties in changing the existing resources so that they'll work the way you want them to, if your intended purpose is outside the very narrow limits set by the blueprints you're using, given that I've been doing tutorials for the better part of a week, and I'm yet to see a single line of code. In Unity, I was set up and coding within two hours of starting the very first tutorial.

All this is not to say that either engine is inferior. I'm simply stating the facts as I see them, from the perspective of a complete newbie. I'm sure that, to an experienced developer, the choice between Unity and UE4 is pretty arbitrary, but to me, a guy with barely two and a half games under his belt, UE4 is the clear winner when it comes to support for new users. Don't crucify me for expressing an opinion.

Given the simplicity afforded by UE4, I'm even considering making a simple FPS demo myself, maybe with a friend to make some simple models for me. Expect to see some work on props and such soon!

Friday, 3 February 2017

Feb 03, 2017: Hopes.


It's the end of another long day.

GSOC 2017

We had a session on GSOC 2017 today at uni. I had been interested in GSOC for a while, so I've resolved to at least attempt to participate this year. I hope I find a good project! Fingers crossed :)

MIC 2017

Also on the menu is the Microsoft Imagine Cup, which I and a few friends plan to form a team and make a submission to. Unfortunately, there seems to be a sum total of zero data on the Sri Lankan National Finals - a cursory glance at Microsoft Imagine's Sri Lanka landing page gives us the message "Your country has not yet announced plans for Imagine Cup 2017" or something similar. Once more, fingers crossed that sorts itself out in time.

Empire: Warlords! (It's a working title) ;)

This ambitious little project finally has a proper artist. Really, he's got a graphics tablet and everything, he must be a pro. Well, he's actually another friend of mine from uni. I hope he'll live up to expectations.

The Inquest: Cursed Sword

TICS, as I have come to refer to it, moves along, slow and steady. I am working on a demo that will demonstrate the core functions and systems of my planned final twine.

Labyrinth

This one you may not have heard of. It's a rushed little demo a friend and I made on Unity for Android in 12 hours for a local game jam. It was edutainment-based, and we've had a lot of interest in a stable release on the Android platform.

Gamedev notes

I've been messing around with Unreal Engine 4, and can I just say, WOW. Will writeup a short gamedev note in a separate post, watch out for it.

EDIT: Formatting. HTML is a harsh mistress, but they tell me I'll eventually come to love her.
EDIT 2: Fixed missing hyperlink to Microsoft Imagine.

Thursday, 2 February 2017

Hello World

Cliché title, check.

Hello everyone, this is my first post on my new blog. Planning to keep updates on all my projects so that any interested parties can read up :)