Kinect with OpenNI 2

SensorKinectOpenNI20Kinect with OpenNI 2 is a set of two Kinect/PrimeSense examples that use several major scripts, grouped in one folder. It demonstrates how to use Kinect-controlled avatars or utilize Kinect gestures in your Unity projects, by using OpenNI2 and NiTE2. This asset supports 32- and 64-bit builds, works on Windows and (with some kicks and curses) also on MacOS X and can be used in both Unity Pro and Unity Personal editors.

This package is deprecated at Unity asset store since 01.Sep.2017. It is moved to this GitHub repository now. You can pull or download it from there.

How to Run the Example:
1. Download and install OpenNI 2 and NiTE 2, as explained below.
2. Download import the package.
3. Open and run KinectAvatarsDemo-scene, located in KinectDemos/AvatarsDemo-folder.
4. Open and run KinectGesturesDemo-scene, located in KinectDemos/GesturesDemo-folder.

How to Install OpenNI2 and NiTE2 on Windows:
1. Download and install OpenNI 2 and NiTE2. The OpenNI-website was closed by Apple, when they bought PrimeSense, but here is a working download link: https://bitbucket.org/kaorun55/openni-2.2/src/
2. Drivers for Kinect and PrimeSense sensors are installed during the OpenNI/NiTE installations.
3. If you’re using Kinect-for-Xbox360 sensor, install the Kinect SDK 1.8 as well. Here is the download link: http://www.microsoft.com/en-us/download/details.aspx?id=40278
4. Connect the Kinect or PrimeSense sensor to a USB port of your computer.
5. Windows should find and use the installed drivers automatically. You can see the installed sensor in the ‘Control Panel / Device Manager’ window.

How to Install OpenNI2 and NiTE2 on MacOS X:
1. Download and unpack OpenNI2 and NiTE2 tarballs in /Library-folder. The OpenNI-website was closed by Apple, when they bought PrimeSense, but here is a working download link: https://bitbucket.org/kaorun55/openni-2.2/src/
2. (Optional for v1.3) Open or create ‘/etc/launchd.conf‘-text file and set the needed environment variables. Add these lines: ‘setenv OPENNI2_REDIST /Library/OpenNI-MacOSX-x64-2.2/Redist‘ and ‘setenv NITE2_REDIST /Library/NiTE-MacOSX-x64-2.2/Redist‘. Then restart your Mac.
3. Install Homebrew, as described here.
4. Install libfreenect, like this: ‘brew install libfreenect‘. More information you can find here.
5. Copy the OpenNI2-Kinect driver ‘/usr/local/lib/OpenNI2-FreenectDriver/libFreenectDriver.dylib‘ to ‘/Library/OpenNI-MacOSX-x64-2.2/Redist/OpenNI2/Drivers‘.
6. Open Terminal and run ‘freenect-glview‘. If the installation so far is correct, it should show the depth and color camera stream. Press Esc to close the application.

If you get errors when running the Unity project on MacOS X:
First off, check if the native OpenNI2/NiTE2 examples work. If they don’t, you missed something in previous section ‘How to install OpenNI2 and NiTE2 on MacOS X’. If the native examples work, do the following:
1. Go to the root folder of the Unity-project (the one that contains Assets-folder). There must be a text file named ‘OpenNI.ini’.
2. Open it with a text editor and modify these lines: ‘Verbosity=0’ and ‘LogToFile=1’.
3. Save and close the ini-file.
4. Open the Unity project and run the example scene. You will get the same error again. Close the scene.
5. Go to the root folder of the Unity-project again. You will have a Log-folder in there and a log-file in it. Take a look at its contents. It will give you detailed information what exactly went wrong.
6. If the Unity editor crashes when you run a demo scene, open the editor log-file located at ~/Library/Logs/Unity/Editor.log. Look for ‘Crash’. The log-messages below it will give you information what may have caused the crash.
7. Last, but not least: I published the source of UnityInterface2-library. Here it is, if you like to go deeper and torture yourself further 🙂 – https://github.com/rfilkov/OpenNi2UnityInterface

Download:
The official release of ‘Kinect with OpenNI 2’-package is available in the Unity Asset Store.
The project’s BitBucket-repository is located here. This repository is private and the access is limited to contributors only.

Troubleshooting:
* If you get DllNotFoundException, make sure you have installed OpenNI2, NITE2 and the sensor driver.
* For MacOS X installation, see the ‘How to Install OpenNI2 and NiTE2 on MacOS X’-section above.
* Here is a link to the project’s forum: http://forum.unity3d.com/threads/218035-Kinect-PS-with-OpenNI-2

What”s New in Version 1.3:
1. Added x64 native Unity interface for Windows.
2. Added x64 native Unity interface for Mac (you can see it mirrored, because of the freenect driver).
3. Added calibration poses for player 1 and player 2.
4. Moved Kinect-related classes to KinectController-game objects.
5. Moved demo scenes to KinectDemos-folder.

 

60 thoughts on “Kinect with OpenNI 2

  1. Pingback: Building OpenNI2 stack for Kinect on Mac OS X | Francisco Bernardo's Blog

  2. Pingback: Kinect 二三事 | Kennedy Wong

  3. Hey!
    I’m using this in one of my projects and need to accomplish two things :

    1) Have the model start in a pose other than a t pose (seated)

    2) Turn off tracking of the lower body

    Anyone have any insight on how to accomplish these?

    • Hi there,

      1. The T-pose is needed, because this is the 0-position for all Kinect joint orientations. Of course you can put your model in whatever position you want, but then you’d need to recalculate the orientations of the joints that were not in T-pose.

      2. Enable the ‘Near Mode’-parameter of KinectManager. KinectManager is component of MainCamera in the example scene.

      Greetings!

  4. Hello
    I get some problems. When I run the example, it shows “Please check the OpenNI and NITE installation.” I followed the all steps from Readme (my OS is windows), but it didn’t work.

    • Hi, this means that the native library interfacing OpenNI2/NiTE2 functions could not be loaded for any reason. First, make sure you’re using the latest version (v2.3) of the asset, because only this version supports the x64-architecture. Then download Dependency-walker from here: http://dependencywalker.com/ , run it and open UnityInterface2.dll located in the root-folder of your Unity project (this is the parent-folder of the Assets-folder). You will see there which one(s) of the dlls this library depends on are problematic. This may give you an idea of what is wrong exactly. Hope this helps.

      • thank you very much, it helped me a lot !! Through Dependecy Maker I saw that some dlls were in 64bit (OpenNi, NiTe, msvcp100 and msvcr100) so I deleted them and started the application in Unity to rebuild them. Thank you for your work.

  5. I’m using Kinect V2 on Mac OSX. I get Error Initing OpenNI: DeviceOpen using default: No devices found.

    freenect-glview also shows this error. If I install libfreenect2 though, and use Protonect, I see a feed. Is this not compatible with the Kinect2?

  6. I am using the libfreenect2 driver for Kinect v2 (Model# 1520) on OSX El Capitan, and I am getting DllNotFoundException.

    I have installed OpenNI2 using brew, and NiTE manually. I have done almost every step above, including setting the env variables.

    The sample of libfreenect2 (Protonect) just works fine, but both NiViewer and NiTE’s demo seem not to be working properly; I could see stuff like
    [Info] [OpenGLDepthPacketProcessor] avg. time: 14.9127ms -> ~67.0569Hz
    [Info] [VTRgbPacketProcessor] avg. time: 23.9618ms -> ~41.7331Hz
    [Info] [OpenGLDepthPacketProcessor] avg. time: 14.9436ms -> ~66.9183Hz
    [Info] [VTRgbPacketProcessor] avg. time: 23.9239ms -> ~41.7992Hz
    in the command line, but no window with any image was popped out.

    In this case, did I go wrong somewhere in the installation? Or do I need other steps to be done in order to get this working (things like building an universal libUnityInterface2 dylib) ?

  7. Hi there, first of all, thank you for your awesome work! 🙂

    I have a question if you please;

    Mac OS X El Capitan, Unity 5.1 and the first ever Kinect released with x360.
    I do get freenect-glview to show up two images from the camera. Everything is ok until there. No DllNotFound errors either. But when i press play, Unity gets stuck and hangs on forever. When i check the editor.log file, i see that the main problem is indicated as;

    (Filename: Assets/KinectScripts/KinectManager.cs Line: 793)

    Fallback handler could not load library /Volumes/Macintosh HD/Applications/Unity/Unity.app/Contents/Frameworks/Mono/lib/UnityInterface2

    can you suggest any solution?
    thanks in advance 🙂

      • Thanks for keeping this running this long, I appreciate the work you’ve done and that you’ve kept battling it. I hope you’ll return to this someday.

        Just today I’ve tried setting it up and running (unity 5.3 and OS X10.10 Yosemite). Got as far as the freenect-glview test working fine, but unity scenes being stuck at Dllnotfound. Tried with latest version (5.3) of freenect, though not certain how to get homebrew to make universal builds. Great that some got along further. Maybe I’ll get it working by swithing to using unity on windows through a virtual machine.

        What was the latest version of OS X you know it worked fine?

      • Hi there again 🙂 Just FYI, the solution DOES compile on xcode 7.3, osx 10.11 and produces the dylib but yet again, Unity still just hangs when i click Play 🙂 Logs show just normal intialization process, it even debugs “Waiting for users to calibrate… ” on the log but Unity is just frozen.. 🙂 If you might suggest anything or just lead me to somewhere i would greatly appreciate it although i do not expect you to as i know you’re not interested in this anymore 🙂

        Workflow;
        -download the source
        -open xcode project with 7.3
        -change the target os version on build settings to Latest OS X
        -Voila! You got your own libUnityinterface2.dylib
        -copy it to the projects root folder (where the Assets folder is kept) and replace the old one
        -Press play and let the grand god of Unity put you on hold forever 🙂

        Also, on the logs the only thing i can observe as an error(although it may not be one) is Fallback handler cannot find Unityinterface2 under Unity.app/Contents/Frameworks/Mono/lib

        As i said, any help would be greatly appreciated although not expected 🙂
        Thanks in advance.

      • Isn’t it possible under MacOS to find out which function invocation exactly blocks Unity? I mean, with the help of Xcode or something like this?

      • I am, just this very moment, attempting to get this Unity plugin running on OSX 10.11
        I commend all of ye for your continued documentation.
        Alas, currently, GitHub is down so I can’t download the OpenNi2UnityInterface. Curses!!!!

      • Hmmm: I notice under the instructions “How to Install OpenNI2 and NiTE2 on MacOS X”, you suggest we put OpenNI2 and NiTE2 into /Library/
        However, OpenNi2UnityInterface appears to want them in ~/Library/
        I’m going to move them there, and see if that works better.

      • AHHAAHAHAHAHH! I got the NITE/OpenNI2 sample working, from kaorun55’s download. One of the issues tripping me up is that there are several OpenNI2/Drivers folders. I had put libFreenectDriver.dylib in one of them, but not all. As such, I was getting this error:
        Device open failed:
        DeviceOpen using default: no devices found
        but did not know why.
        Ideally, these would be symlinked.

        Onwards…

      • Well, I had to use install_name_tool to link from libUnityInterface2.dylib to libOpenNI2.dylib and libNiTE2.dylib (I prepended them with @loader_path/). After which Unity will run the KinectUnityAvatars scene without hanging. Except it won’t get any Kinect events or get users, and I still get the complaint that:
        Fallback handler could not load library /Applications/Unity/Unity.app/Contents/Frameworks/Mono/lib/UnityInterface2

        I suspect that Unity isn’t loading the UnityInterface2 library correctly; I just wish there was more feedback about why!

        I am likely going to give up and switch to windows.

      • You’re great, since you reached that far. Don’t give up so easily 😉 Sorry, forgot to mention about ‘install_name_tool’. Thought almost every OSX-user is aware about these little tricks.

  8. Hello,

    First, I could not find v2.3 of the package in unity asset store… It is only showing v1.3.
    Second, with v1.3 on windows I m getting error “Initing OpenNI: DeviceOpen using default: No devices found”. I m using kinect v2.
    I switched to unity 32 bit and open Ni and Nite 32 bit after reading above comments.
    but nothing seems to fix the problem.
    Please help

    • I suppose it’s my mistake – it is v1.3. The question is, do you have a Kinect-v2 driver for OpenNI2? If so, it should be copied to /Redist/OpenNI2/Drivers/

  9. hello, i want to try unity package, is it posible to use two/multiple kinect v2 in one pc ?
    also i am still in download nite 2 process its bit large. btw from the unity package the structure folder is similar to ms-sdk, from what i know ms-sdk cant detect people directly from side view (people must face the front of sensor first) and what i need is to detect people passing by from side, can i accomplish that using this ‘kinect with openni2’ ?

    • Yes, OpenNI2/NiTE2 work with Kinect v1. Not sure if it works with Kinect v2 though. For one of the versions of v1-sensor you should install the Kinect SDK as well.

  10. Hi I am using windows 10 and unity 5.3 in 32 bit .I have installed the OPENNI2 and NITE2 .But when I run in unity I get
    below error.Pls help

    System.Exception: NiTE2 directory not found. Please check the NiTE installation.
    at KinectWrapper.CheckOpenNIPresence () [0x001df] in C:\Users\Ashok\Documents\openSourceTest\Assets\KinectScripts\KinectWrapper.cs:407
    at KinectManager.Awake () [0x00000] in C:\Users\Ashok\Documents\openSourceTest\Assets\KinectScripts\KinectManager.cs:627
    UnityEngine.Debug:LogError(Object)
    KinectManager:Awake() (at Assets/KinectScripts/KinectManager.cs:640)

    System.DllNotFoundException: UnityInterface2
    at (wrapper managed-to-native) KinectWrapper:Init (bool,bool,bool)
    at KinectManager.Start () [0x00000] in C:\Users\Ashok\Documents\openSourceTest\Assets\KinectScripts\KinectManager.cs:655
    UnityEngine.Debug:LogError(Object)
    KinectManager:Start() (at Assets/KinectScripts/KinectManager.cs:805)

    • I’m not sure why you use the 32-bit version of Unity. The problem before was that Unity was 32-bit only, which also required 32-bit installations of OpenNI2/NiTE2. The error you get means that either Unity was open when you installed the frameworks, or that it can’t lookup the environment variables, telling where exactly the OpenNI2/NiTE2 were installed. You can set these paths manually in CheckopenNIPresence()-function of KinectWrapper.cs.

  11. I am able to solve the above issues by restarting the system.

    Now the only error I face is as below. Can I know if it works with Kinect v1 ? .
    I have connected xbox360 . Is it mandatory to install Kinect sdk ? I already installed the Prime sense drivers .
    Kinect sdk doesn’t get installed in Linux . So is it possible to run the project with xbox 360 (v1) without installing Kinect sdk ? Please help

    System.Exception: Error initing OpenNI: DeviceOpen using default: no devices found

    at KinectManager.Start () [0x0001e] in C:\Users\Ashok\Documents\openSourceTest\Assets\KinectScripts\KinectManager.cs:658
    UnityEngine.Debug:LogError(Object)
    KinectManager:Start() (at Assets/KinectScripts/KinectManager.cs:811)

    • First off, please research a bit more, before writing comments here. You see, you can overcome most of the issues by yourself. And I’m not a 24/7 support too, especially for the free packages. This issue is more difficult though. On Windows, for Kinect-for-Xbox, the Kinect SDK had to be install, in order OpenNI2-Kinect driver to work. For Linux – I don’t know. Research the Linux Kinect/OpenNI2-related forums, to see if there is a solution to that. Then you can try to run the OpenNI2/NiTE2-samples, too.

  12. Hi Rumen, Thanks for your help

    Just wanted to inform, I have tried to run the ‘Kinect with OpenNI2’ asset in Linux after installing OpenNI and NiTE2 but end up in UnityInterface2.dll not found expection at
    at (wrapper managed-to-native) KinectWrapper:Init (bool,bool,bool)
    at KinectManager.Start () [0x00000] in KinectManager.cs:655

    I think Linux version of OPENNI2/NITE2 installation do not have UnityInterface2.dll or UnityInterface2.so Not sure if Unity in Linux recognizes DllImport(“UnityInterface2.dll”) . I guess we need to make UnityInterface2.so file , maybe then it recognizes.. not sure (will research more ..)

    • UnityInterface2 is the name of the native library you were trying to build. It will be loaded at runtime, in order native OpenNI2/NiTE2 functions to be called from the C# scripts. It should be placed into a folder, where Unity could load it at run-time. For instance, on Windows this is the root-folder of the Unity project (the one that contains the Assets-folder). Then, open KinectScripts/KinectWrapper.cs in MonoDevelop or other a text editor, find CheckOpenNIPresence()-function and add code that is needed for Linux, in a similar way as it is done for OSX for instance. In your case the dylib files should be .so, as to me. Hope this helps.

  13. Hi , Rumen I am using Unity 5.4.0 in Windows 7 64bit with primsense sensor. I installed NiTE2 and Openni2 drivers and Execute your sample project in Unity Editor. I can see error message of “Error initing OpenNI: Could not open “\\?\usb#vid_1d27&pid_0600#6&14a695d8&0&4#{c3b5f022-5a42-1980-1909-ea72095601b1}”: Error!”
    The red light of primesense is not turned on when executing in Unity. I think driver set-up is bad.

    The installed sample of PrimeSense (for example ‘UserViewer’) works fine. The red light is turned on. I can see myself…

    Whant is wrong? can you help me out?

    Thanks.

      • I have also met the same problem, and I’ve checked my Unity and libraries are 64-bit version

      • Have you checked the libraries for missing dependencies, too? Does the log show anything? Last but not least, what versions of OpenNI2 and NiTE2 are you using, and with which sensor? Sorry for the stream of questions, but with this framework it’s always like this… 🙂

  14. Hi Rumem,

    I installed both nite2 and openni from the link, and i’m using unity 5.5. I tested on windows 10 home (64bit) using kinect 2, and run the avatar demo, but I get:

    Error initing OpenNI: DeviceOpen using default: no devices found

    Any advice would be greatly appreciated – tried searching online to no avail 😦

    Thanks,
    Shaun

    • If you use Kinect2, then you would need to add Kinect2-driver to the OpenNI2-drivers folder. The installations you used are before the appearance of this sensor. NiTE2 should also be tested if it supports K2 or not. Please first check, if the OpenNI2 & NiTE2 own samples work with the data streams, coming from this sensor.

    • I never tried it on Linux. Please check first, if the OpenNI2 and NiTE2 samples work on Linux. The sources of the Unity package and the sources of the native library are freely available (see the links in the description), so it’s only a matter of debugging, as to me.

  15. Hey Rumen, hope you are doing good :). I’m trying to run the AvatarDemo and I’m getting an exception with error message “Error initing OpenNI”. I’m using a Kinect for Xbox360 with OpenNI2 on Windows 7. I’ve tried the samples included with both OpenNI/NiTE and all runs just fine. Have also checked the architecture versions of Unity (I know is a bit outdated but I’m using v4.5.3 for this project as the asset requires v4.0.0+) and OpenNI, and both are 32-bit versions. Also, I verified the paths on the .ini files and for both OpenNI and NiTE seems to be well configured (otherwise I’d have get the DllNotFoundException or something I think). I guess the problem is initializing OpenNI on the UnityInterface2 side, so I have nothing to do with it as it’s linked on runtime. Would appreciate if you could give me some light on this issue or a least few other things to check considering you know what’s happening behind the scenes.

    Thanks in advance!
    Matias

    • Hi, open the ‘OpenNI.ini’-file in the Unity project’s root folder and set its ‘Verbosity’ to ‘0’, as well as ‘LogToFile’ to ‘1’. Save it, run the scene again, and stop it after the error. Then find the saved log-file (I think it was in a subfolder of the project-root folder) and look at its contents. It may give you idea what may went wrong 😉

      • Hi Rumen, thanks for he tip. Anyway there’s no log files after running the scene, neither in the project root folder nor any of the subfolders (assets, library, etc). I’ve also tried to run few of the OpenNi/NiTE samples with the main .ini files modified to verbose logging but it didn’t generate any log file either. So don’t know, if you have any other suggestion would be appreciated. Thanks!

      • Hi again, which version of OpenNI2 are you using? Also, make sure you have installed OpenNI2 64-bit, when you are running the scene from within the Unity editor. Unity usually installs and runs as 64-bit application.

        I just checked my setup here and it generated the log-file quite normally. But my OpenNI2/NiTE2 installations may be outdated anyway…
        Here is how it looks like.

  16. Hi Rumen! I am using Unity 5.6.1 (64bit) on Windows 7 x64 with Asus Xtion (prime sense sensor).
    I’ve installed OpenNI2(v2.2.0.10) and NiTE2(v2.2.0.5) drivers with 64-bit version. However, when I execute your example scene. The error log pop up:

    System.DllNotFoundException: UnityInterface2
    at (wrapper managed-to-native) KinectWrapper:Init (bool,bool,bool)
    at KinectManager.Start () [0x00014] in D:\NCTU\HCI\project\term project\project\MindNI\Assets\KinectScripts\KinectManager.cs:657
    UnityEngine.Debug:LogError(Object)
    KinectManager:Start() (at Assets/KinectScripts/KinectManager.cs:807)

    I do see UnityInterface2.dll in the root folder.

    I’ve checked into KinectWrapper.cs and am sure that the environment variables have been set correctly.

    hope you can help me out with this question :DD

    thanks in advance,
    David

    • Follow Up,
      I found that in Unity 5, you have to put dll in Asset-folder, I guess that’s the reason why it cant find dlls (DllNotFoundException)?

      However, unity failed to load UnityInterface2.dll, said it was expecting x64 architecture, but was x86 architecture. I’ve tried to recompile your source code in x64 using VS2013.

      I’ve set up the dependency for my project (path for NiTE2.dll, OpenNI2.dll… etc), and I could successfully compile the dll file out; but still it failed to load with the dll I compile.

      Do you have 64-bit version dll? or any hint will help a lot!

      Thanks!

      David

      • Hi David,

        As far as I see both x86 and x64 dlls are present in Resources folder of the Unity asset: https://www.assetstore.unity3d.com/en/#!/content/10693 See the picture below and make sure you use it and not some older 32-bit only release:
        openni2-dlls

        The dlls are copied at run-time to the root folder of the project, by the CheckOpenNIPresence()-method of KinectScripts/KinectWrapper.cs So you can play with practically everything. Even the source of the UnityInterface2-library is available, if you like to build it by yourself: https://github.com/rfilkov/OpenNi2UnityInterface

        Last but not least, try to enable OpenNI2 verbose logging. See some comment above. It may give you more info on what may have got wrong. Please tell me, if you need further info or assistance.

  17. Hello,
    I have similar problem as Mathias above. My sensor is working fine in samples like NiViewer.exe for example, but it won’t work in Unity’s “Kinect with OpenNI2”. I got same ““Error initing OpenNI: ” without explanation why it won’t work. I tried verbose log and got this:

    141939 INFO Log XnLog.cpp 349 New log started on 2017-07-01 16:09:37
    141984 INFO Log XnLog.cpp 322 — Filter Info — Minimum Severity: VERBOSE
    141995 VERBOSE ALL NiTE.cpp 67 NiTE: Compiled with OpenNI (2.2.0.21), Running with (2.2.0.33)
    158375 ERROR ALL TrackerBase.h 80 Unknown device Kinect for Windows v2
    158478 ERROR ALL TrackerBase.h 144 NiTE only runs on PrimeSense SoC

    Looks like NiTE can only work with PrimeSense SoC? Is there a workaround for this?
    DLLs in “Kinect with OpenNI2” are identical as mine from NiTE2 and OpenNI2. I’m sure paths are fine too.

    • Hi, I think the error is clear in the log: “Unknown device Kinect for Windows v2. NiTE only runs on PrimeSense SoC”. When I tested it, NiTE worked fine with PrimeSense-sensors, as well as with Kinect-v1 sensor. Why it doesn’t work with Kinect-v2, I cannot tell. But again, all sources of this asset, as well as the source of the native library are shared publicly now, so you can even compile and debug them, if you like.

  18. Hi, I am having similar problems as ‘enterprisenetworks’ but NiViewer.exe doesn’t even work. The sensor that I use is KInect v2. The windows kinect SDK-v2.0_1 works fine and you other assets using MS-sdk works well. But the OpenNI version doesn’t seem to work. I tried using different versions of the OpenNI and I installed all the drivers at your blog.

    Do you know what I should do to solve this problem?

    Thanks.

    • p.s.

      openDevice failed:
      DeviceOpen using default: no devices found

      Press any key to continue . . .
      appears when I open the NIViewer

      Thank you.

      • Hi, OpenNI2 and Kinect SDK 2.0 have not much in common. They are just different SDKs. In your case, you probably don’t have OpenNI2-driver for Kinect-v2, which is causing the error you get. In this regard, look at libfreenect2. I don’t have much experience with it, but I’ve heard it provides OpenNI2-driver for Kinect v2.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s