Thursday, September 29, 2011

PCA whitening

I have encountered this phrase "PCA whitening" many times, all I thought about it was just a simple PCA. However, it is not!

The Whitening is actually PCA + scaling!!!


Also there is a good implementation explanation here :

Implementing PCA_Whitening - Ufldl.pdf Download this file

Posted via email from Troy's posterous

PCA again

PCA is a simple but rather popular techniques for feature processing and is used widely as some initial processing steps involved in many applications. However, every time when I need to do PCA, I have to find some references :<. 

Thus again, to put some information for my own reference. The figure is from the attached slides I encountered today, quite clear.


3 - Feature extraction.pdf Download this file

Posted via email from Troy's posterous

Saturday, September 3, 2011

Unity3D Resources

The original post is from:
This is just for my own reference!

As promised, this blog entry is going to give an overview of existing Unity resources. I have tried to cover a wide variety of video and text-based tutorials, extensions for Unity and links to most example projects and documentation on the web. I have tried to categorize the resources and also present them in an order that should get you started in no time. Furthermore, I have spent a substantial amount of hours either absorbing these tutorials/docs completely or at least scanning through them (I haven't bought any paid tutorials except Will Goldstone's book). Thus, I believe all of these links should lead you to some form of valuable information about Unity. Thanks to all the authors for doing such an incredible job. Without further ado, my take on summarizing resources for Unity.

Unity website:

Which license do you need?

Download the free version of Unity to get started:

If you have no previous experience with Unity, start with these six video tutorials which give a quick overview of the Unity interface and some important features 

Continue with a more in-depth text-based walk through of very basic Unity functionality and work flow

To get you started with scripting, have a look at the following PDF document. It was written for an older version of Unity, but still covers relevant aspects of scripting with JavaScript. (2 hours to complete, no previous JavaScript knowledge required) 

Unity features three scripting languages; JavaScript, C#, and Boo. Depending on your scripting language of choice, you might want to choose different tutorials to get started with Unity. Each tutorial link will also mention which scripting language is used. Most Unity tutorials available on the web are using JavaScript. Notice that JavaScript is commonly used for web applications. Unforunately, books which cover JavaScript are normally of little use for Unity's implementation of JavaScript. But worry not, a vast amount of tutorials will follow...

If you want to familiarize yourself with Unity's functionality more, browse through Unity's manual. You can skip the “Basics” section as we already went through this (see above). 

For a printable version of the 600+ pages manual, see

If you rather prefer to jump into the action, skip the manual altogether and have a look at the three books which have been published on Game Development with Unity (one recently added on 06/10/11). 
1) Author Will Goldstone guides you through a complete project and introduces most of Unity's functionality (using JavaScript). The book is available as print and digital version and all needed assets and resources can be downloaded with the book. It's been a helpful investment from my point of view. 
This forum thread discusses the book and its content.

2) Ryan Henson Creighton more recently published "Unity 3D Game Development by Example Beginner's Guide". Find out more about the book here:
and the forum thread -

3) Craig Stevenson and Simon Quiq (publisher Deep Pixel) released "Unity 3 Blueprints: A practical guide to Indie games development". Their website provides all the art assests and code to create four classic games from scratch (Match the Pairs, Top-Down Shooter, Tower Defense, Marble Madness).
Amazon link

To get up-to-date on Unity 3 functionality, check out the following official documentation:

Unity 3 - What's new?

- Beast lightmapping Basics -
- Beast Lightmapping In-Depth -
- Tree Creator -
- Umbra Occlusion Culling -

You are now faced with the choice of tackling example projects provided by Unity Technologies or jump straight into user-generated tutorials. As the example projects are quite complex, I would suggest working through some video tutorials first. Nonetheless, here are the links for Unity's official example projects. They can be taken completely apart, reverse-engineered and reused for own projects.

3D Platform Game
2D Platform Game
Iphone tutorials and more example projects

More Unity Example projects 

Brand New Car Tutorial by Unity Technologies

Now, let's head on to TUTORIALS. This list starts with mostly basic and general tutorials at the top and lists more specific tutorials at the end.

Will Goldstone , author of the Unity Game Development book, worked on a series of helpful video tutorials here (using JavaScript): (also
More recently by Will Goldstone:

TornadoTwins Video Tutorials 
They show step by step how to create a simple game using Javascript. 

Walker Boys Studio - Unity Tutorials from the Guildhall at SMU (an extensive list of tutorials with more on the way)

CannedMushroom Video Tutorials (Unity and other software)
This is a series of projects intended for 2-hour self-instructed lessons using JavaScript 

Unity Jumpstart 
Proof of Concept Game to learn creating your own game from the ground up (JavaScript) 
Series of Unity tutorials in C# (among many other tutorials)
registration required (free)
website -
forum thread -!

BurgZergArcade - Unity Tutorials
Hack&Slash Tutorial using C# and plenty of other information and useful tutorials
website -

UnityScript Basics (Scripting Basics for Noobs)
If you're new to scripting, read up on this good introduction to scripting in Unity. Lots of analogies are provided which makes it really easy to understand. The details are explained for C#, but the introduction is great for any scripting language.
website -

Text-based tutorials with screenshots covering a wide range of topics incl. scripting (using JavaScript), basic introduction to unity, character controllers, and user interfaces 

InfiniteAmmo Tutorial 
General Introduction to Unity (3 parts so far)
Some scripting covered using Javascript (e.g. movement controls) 

Introduction to Game Development with Unity including Workflow, Scripting, GUI, Version Control, etc. 

Advanced Media Lab at North Carolina State University 

GearTech Games 
4 Videos on how to work through a project (and more videos)

workflow between Modo and Unity

Making Sense of Unity 
These video tutorials provide more indepth coverage of unity scripting using Javascript (not meant to be introductory material)

lecture style explanations of concepts
more entertaining and not like most other screen-capture tutorials :)

IO Development Diary
This series of video tutorials (some paid, some free) follows the development of a Space Shooter and covers a Modo-Unity workflow and C# scripting.
forum thread -
website -

Virtual Autonomy 
Guide for working with Google SketchUp and Unity
(also shaders and multi-user environments)
text-based with screenshots

Robotduck - Blog 
The blog of this Unity user provides tips on Unity scripting and functionality and showcases some of his projects 

Ethical Games 
Unity Tutorials for Flash Developers 

Car Tutorial 
Physics Setup for a car, AI for driving around racetrack 

Terrain Tutorial 
seven videos on how to create terrains in Unity from heightmaps to finish 

In-Depth Terrain Tutorial 
text-based with screenshots 
forum thread 

Paul Bourke -Unity for stereoscopic display
text-based with screenshots 

Paul Bourke – Unity and Idome
text-based with screenshots 

RENCI – Unity for Dome projections 

Official Unity Tech. Tutorial for the Animation View (NEW) 3-part-series of video tutorials


VTC - Unity tutorial using JavaScript (subscription based content on
Unity-Tutorials (mostly paid and some free tutorials) (subscription based tutorials, Unity-related content among other software like Maya, 3DS Max, Photoshop)  


Once you went through some or all of these tutorials, you should be creating your own content in no time. Next, I'll provide an overview of general resources for Unity. Whenever you need to find some information about Unity, scripting, projects, collaborations or anything Unity-related, check these links out:

Searching for resources - The All-In-One Unity Reference Search 
credit goes to Robotduck for providing this link to the public; tremendous time saver (see

Unity Scripting Reference 

Unity Component Reference 
each available Component described in detail 

Unity Wiki (UnifyCommunity) 

Unity Answers 
Invaluable when you have specific questions about Unity or Scripting 
This link should also get you started on learning Unity 

Unity Forum 

Unity Feedback 
feature requests go here 

Unity IRC 
Point your favorite IRC client to and join #unity3d to chat in real time. 

Overview of Unity Resources 

Overview of Unity blogs 


Lastly, I want to list extensions and tools which can make your life as a Unity developer easier.

Unity Extensions

Terrain Toolkit
External Lightmapping Tool
Locomotion System
Explosion Framework
Head Look Controller
overview of some extensions – Unity youtube and vimeo channels 

Visual C# Express-  free IDE for your C# development

3DAttack - Tools and Home of Unity Creative Magazine
First Person Shooter Developer Kit
forum thread -
website -

One of Unity's developers provides projects to extend Unity's functionality (e.g. pathfinding and AI) 
forum thread Path -!

sturestone's A* Pathfinding (currently version 2.9)
forum thread -*-Pathfinding-2.9-Is-Released-(Unity-3-Compatible)

Augmented Reality / Webcam Input 
forum threads: (Webcam Toolkit) (ARToolkit Extension) (UnityAR)

SeeingMachines FaceAPI / VisionBlaster – Head Tracking in Unity (purchase required) 

Mostly Tigerproof – Using Google Analytics and Unity to track game stats
This is a blog entry about Google Analytics and Unity 

Antares Project - Extensive Set of Tools to extend the Unity Editor - Open Source
Also available: Antares.dll (free for non-commercial work)
forum thread -

Antares Deformator - Deform your meshes (Beta Version)
forum thread -

UniWii – WiiMote implementation 
forum thread 

Unity Terrain Tools - EasyRoads (purchase required)
forum thread

Six Times Nothing - Road/Path Tool and River Tool

Dastardly Banana - FPS Weapon Tool, Radar example

Starscene Software - Tools, Games and Utilities for Unity (purchase required for utilities)
e.g. Vectrosity - Line Drawing Tool
Fractscape - Terrain Tool
Stitchscape - Stitch multiple terrains together

GUIX - visual Menu/GUI builder (purchase required)

EZ Game Saver - saving tool (purchase required)
Note that I will cover saving to text file in a later blog

Fire Tool - Realistically spreading fire (on hold for the moment)

Decal Framework - Easily place decals in your scene
forum thread -

Visual Logic Editor by NeoDrop (Antares VIZIO, Work in Progress)
forum thread -

Nimbus Volumetric Clouds
forum thread -

RapidUnity Vehicle Editor Resource Pack
forum thread -

Ocean 3D - Ocean Simulation

ShaderFusion - Node-Based Shader Editor (Requires Unity3)
forum thread -

Strumpy Shader Editor - Node-Based Shader Editor
forum thread -

Overview of extensions on UnifyWiki 

LightUp (purchase required)
Extension of Google Sketchup (Lighting Solution) which works nicely for exporting lightmaps to Unity 

Community Project - GTAIV Vehicle Replica (Pledge of > USD 50 required)
forum thread -

Stereoscopic Solutions
3D Anaglyph System (purchase required)

Plugin for Kinect's Primesense Camera
forum thread -

Unity Web Suite - tutorials and examples in C# to create online content
forum thread -
website -

Tools for Visual Programming:
Antares Universe - Vizio (forum thread)
cost (as of 05/22/11) Euro 142.50 
Visual programming tool similar to the approaches of Quest3D and Virtools.

Playmaker by Hutong Games
cost (as of 05/22/11) Euro 95.00
Visual State Machine Editor (website and forum thread)

uScript by Detox Studios (Beta Version)
website and forum thread
Visual Scripting Tool based on UDK's Kismet

Posted via email from Troy's posterous

Thursday, September 1, 2011

Resolving nvcc & gcc conflict ion for Theano

There is a compatibility issue affecting some Ubuntu 9.10 users, and probably anyone using CUDA 2.3 with gcc-4.4. Symptom: errors about “__sync_fetch_and_add” being undefined. Solution 1: make gcc-4.3 the default gcc ( 2: make another gcc (e.g. gcc-4.3) the default just for nvcc. Do this by making a directory (e.g. $HOME/.theano/nvcc-bindir) and installing two symlinks in it: one called gcc pointing to gcc-4.3 (or lower) and one called g++ pointing to g++-4.3 (or lower). Then add compiler_bindir = /path/to/nvcc-bindir to the [nvcc] section of your .theanorc (libdoc_config).

.theanorc file should be under the folder $HOME. If there is no such file, then create a new one.

Posted via email from Troy's posterous