You can now download the NEW TKinect (using the official Kinect SDK [beta 2]). Details can be found on this blog article.
This page will be updated in the near future for TKinect version 2.
IMPORTANT NOTE:
This version of TKinect (currently available) does not work with the official Kinect SDK. An entirely new version of TKinect is in development built around and on top of the official SDK.
Compile Issues (Pre-2006)
People have been reporting issues with the Kinect.pas unit compiling on older versions of Delphi (pre 2006). This is due to a language feature in use in this unit which did not exist in older versions of Delphi. You can address this easily by altering the names on the two Array properties (easily identifiable because they have the default suffix) so that they are different, and removing the default suffix from them. Obviously you would need to modify references to those two properties in the demos. It really is as simple as that!
AMAZING NEWS EVERYONE (13th May 2011):
Thanks to the incredible work of Victory Fernandes, you can now enjoy full Hand and Finger detection & tracking. Check my blog article on his demos, which includes downloads for you to start playing with.
Note:
TKinect’s internal development is currently on hold pending the release of Microsoft’s official Windows drivers (announced to be launched sometime early this Spring). With that said, I am still developing some “supporting components”, which (hopefully) should not be affected adversely by the impending changes within TKinect itself to support the official drivers. These supporting components will extend functionality to TKinect, such as gestures and motion tracking (originally intended to be build directly into TKinect itself, but subsequently altered with Microsoft’s announcement), and will be released via the TKinect repository on my SVN server (see below for SVN details).
What is TKinect?
TKinect is a simple component, which, when installed along with the required CL NUI drivers, enables you to produce Delphi applications which can interact (or be interacted) with the Kinect games controller.
What can I do with TKinect?
Well, if actions speak louder than words, then video is worth a million lines of text. If you want to see just a small part of what you can achieve with TKinect for Delphi, take a look at the video demonstration by IT Security Lab. It shows how TKinect can enable you to produce 2D and 3D motion tracking and capture systems, with a brilliant 3D projection demonstration working in real-time.
Why was TKinect made?
If I’m honest, TKinect was made at the behest of my good friend Dr. Richard Cooper. For several months leading to the release of the Kinect controller by Microsoft, Dr. Cooper was discussing it with me via Skype, expressing his desire to integrate 2D and 3D motion tracking as a form of input in some of his applications. As a result of his insistence, and because I was able to locate a Windows 7 compatible 3rd-party driver for the Kinect, I decided to invest my time into producing what has become TKinect for Delphi.
Sorry to disappoint anybody who believed that it’s construction was some part of my own noble pursuits, but really it was a favor for a friend.
Does TKinect have any third-party requirements?
Yes, it does… aside from the obvious (the Kinect controller itself) they are all free to obtain, and easy to install/deploy.
- The CL NUI SDK (which includes the signed Kinect drivers for Windows 7 x86/x64) by Code Laboratories.
- The .NET 3.5 Redistributable from Microsoft (I believe it’s only required for the NUI SDK’s demos, but may be required by the drivers as well… not sure)
That’s it! Install those two things and you’re ready to use TKinect for Delphi!
Where can I get TKinect for Delphi?
At present, you can only obtain the latest version of TKinect for Delphi from my Open Source SVN server:
URL: http://svn.lakraven.com:81/svn/OpenSource/Kinect/
Username: anon
Password: anon
The reason I haven’t yet released a .zip download at this time is because TKinect is being developed and changes almost daily. It is annoying to update a .zip download so often, and so for the moment you should just use the SVN. There’s no good reason not to use SVN, either! Many open source developments are released via SVN, and SVN allows you to ensure you always have the latest version of the code without having to re-download and extract a zip file each time. You can download Tortoise SVN (a Windows Shell Extension which integrates into Windows Explorer) and install it in minutes, so why don’t you?
What version(s) of Delphi does TKinect support?
Given that TKinect is produced using the most fundamental Delphi/Pascal coding techniques, TKinect for Delphi should work perfectly on all versions of Delphi, possibly even Lazarus/FreePascal. Indeed as I understand it people are currently using TKinect on versions as old as Delphi 5 without issue! Should your version of Delphi for some reason have issues with TKinect, please let me know and I shall endeavor to resolve them.
What is included with TKinect?
At the time of writing (December 28th 2010), TKinect’s SVN repository contains:
- The TKinect component’s unit Kinect.pas
- A Delphi 2010 package file (hopefully people with other versions of Delphi will provide package files for those versions soon, though it is simple enough to produce a package for your version of Delphi containing just Kinect.pas and KinectReg.pas)
- A basic Test Demo project
- The required CL NUI deploy-able DLL file CLNUIDevice.dll. NOTE: You will need to distribute this DLL with your application(s)
Huge Thanks
TKinect for Delphi would not have been possible without the following contributors:
- Dr. Richard Cooper – Giving me the inclination to make it in the first place
- Embarcadero - Sponsoring TKinect for Delphi by providing me with the Kinect controller itself
- Aleks of IT Security Lab – for producing some brilliant demos showcasing what can be made using TKinect for Delphi.
- Xepol – a charitable contribution
- The support, kindness, exposure and general understanding of the following Twitter Friends:
- @jamiei
- @Nullart
- @stbarnes
- @PascalCoder
- @Gloegg
- @DelphiKingdom
- @JimMcKeeth – Founder and proprietor of Delphi.org
- @MotoWilliams
- @StuartClennett
- @MalcomGroves – Embarcadero for APAC and Japan (special thanks as your recommendation of sponsorship made TKinect possible!)
- @NickHodges – former Embarcadero employee and Delphi guru to all
- @JDMullin
- @lancerasmussen
- I would also like to thank you for your interest in TKinect for Delphi!
Finally
Since having released TKinect (and fixing all known bugs the moment my Kinect controller arrived) I haven’t recieved a single report of any further problems. With that said, I do expect that, as TKinect develops, further bugs may be found. Should you find a bug I would be very greatful if you would report them to me. Likewise, I’m always interested to hear about or see images/videos etc. related to any success stories. Demonstrations will be linked on this page, along with any other TKinect-related materials of worth to the community as a whole. If you want your TKinect project linked on this page, leave me a comment including the link and I shall put it in here.
Enjoy TKinect for Delphi… motion capture has just become accessible to us all!


February 23, 2011 at 2:13 am
Dear friend, was very good your Tkinect, but I’m having trouble running in Delphi 7. You can help me. Follow the error messages:
[Error] Kinect.pas (253): Identifier redeclared ‘Device’ property —->> Device [ASerial const String]: TKinectDevice read GetDeviceBySerial; default (this is the line)
[Error] Kinect.pas (253): Class Already has a default property
[Fatal Error] dclusr.dpk (38): Could not compile used unit ‘.. \ .. \ .. \ .. \ Users \ Giuseppe \ Downloads \ Kit_Kinect \ Delphi \ kinect_delphi_3dpoints \ 3DPoints 1.2 \ Kinect.pas’ .. .
Does not compile.
Thank you.
February 23, 2011 at 2:21 am
To me this would seem to be an unsupported language feature in Delphi 7. You can overcome this by removing the “; default;” affix to one of the “Device” properties of TKinect… I’m guessing Delphi 7 doesn’t support overloaded Array properties!
Pingback: Driver para Kinect en Delphi | @jrenelg on twitter
May 8, 2011 at 12:49 pm
Hello,
I cant figure out how to download the files from : http://svn.lakraven.com:81/svn/OpenSource/Kinect/
I can view each file separaty. But how can I download them all at once?
Thank you.
Darren
May 9, 2011 at 1:41 am
Sent you an e-mail with step-by-step instructions on SVN repositories… hope you enjoy TKinect
May 12, 2011 at 8:12 am
Hey….link is down, how can I get it….plz help?
May 12, 2011 at 1:49 pm
What link is down? I just tested them and they’re all working fine… REMEMBER: You need to use SVN to get the TKinect sources! If you don’t understand how to do that, Google “TortoiseSVN” and you’ll find out how in mere minutes.
June 17, 2011 at 5:47 am
Hi,
I’m a little new to Delphi Xe so I apologise in advance if this is simple.
I followed your intructions above and tried ot add it as a kinect.pas as a component. And used Kinect_XE.dpk as the existing package name. Delphi compiles okay and says that Kinect_xe.bpl is installed succesfull in the BPI library. But no component appears and when i try the demons it says the component is not installed.
Thanks for any advice anyone,
Adrian
June 17, 2011 at 1:17 pm
Adrian,
The currently available version of TKinect does not work with the official Kinect SDK. It was built around 3rd-party drivers, and therefore the two are entirely incompatible.
Development has begun on a new version of TKinect designed specifically to work with the official SDK. I will provide full instructions, and perhaps even a video, to demonstrate the installation and usage of this new component as soon as it is ready for public consumption.
I apologise if you got your hopes up at all, but it does clearly state that the current TKinect uses the third-party NUI SDK and driver.
June 17, 2011 at 7:28 pm
Hi,
understood. i saw your message and the fact you will be looking into a dedicated VCL for the official SDK.
I d/l the CL NUI SDK (which includes the signed Kinect drivers for Windows 7 x86/x64) by Code Laboratories.
and the .NET 3.5 Redistributable from Microsoft.
The Kinect works fine on the PC with the provided demos the include.
The issue is with installing the TKinect into Delphi I’m doing something wrong I guess as it says it installs but it does’nt show up in the list of components. the examples you provide wont run as they dont see the component. As i said it maybe something silly i am doing intrying to install it, I’m new to Delphi XE (last time I coded was in Delpih 3)
Thanks,
Adrian
June 17, 2011 at 7:36 pm
Sometimes in Delphi XE the component pallet doesn’t update until you restart the IDE (or load a new project).
Also, you will need to add the path to the folder containing Kinect.pas into Delphi’s Library paths (Tools > Options > Delphi Options > Library > Press the … button for “Library Path”, press Add, navigate to the folder containing Kinect.pas, and press OK until you’re back at the default IDE screen.
The demos should then compile and work.
June 18, 2011 at 2:31 pm
Hey,
very nice work, but i need your help =)
I´m using Delphi 7 and in the lines
property Device[const AIndex: Integer]: TKinectDevice read GetDeviceByIndex; default;
property Device[const ASerial: String]: TKinectDevice read GetDeviceBySerial; default;
i also get the error “Identifier redeclared ‘Device’ property [...]“. (Removing the “default” doesn’t help).
Is there a possibilty to fix this problem without using an ohter version of delphi?
Thank you!
June 18, 2011 at 3:08 pm
This is because of a language feature introduced after Delphi 7….
The only way I think you could resolve this would be by refactoring one of the “Device” properties to have a different name (such as “DeviceByIndex” and “DeviceBySerial”)… as well as removing the “default”.
Ostensibly, you can rename those properties without breaking the component itself… since those are public accessors, and therefore aren’t used internally within TKinect. The downside would be that you’d have to appropriately modify every call in the demo (there won’t be more than 2 calls) to reference the new property names accordingly.
Total time it’d take you to do that: < 5 minutes
The new TKinect won’t have this problem (since it is architecturally different from the hack version).
June 25, 2011 at 6:24 pm
I am trying to create a package from kinect.pas in Delphi 5 but can not get it to compile.
Anyone have a package for D5?
Thanks,
Joe
October 19, 2011 at 6:11 am
Hello ,
i cannot download the Tkinnect component can you set the correct link ?
Kindly,
Marco
October 19, 2011 at 7:55 am
The new TKinect hasn’t been released yet (the old one does NOT work with the official Kinect SDK).
We’re finalizing the class design so that people can begin playing using it in real-world applications before we release it. If we don’t, then every time we update the components, you’ll have to redo your applications due to changes in the structures… and that’s no good for anyone!
I promise it is coming very (VERY) soon!
October 24, 2011 at 12:19 pm
Many tanks for your reply, we are an company developing software for cyclo simulator, and we would like to integrate the kinnect command inside our software product.
Can you tell me when the component will be realased? How much does it cost?
Tanks,
Marco Orsenigo
October 24, 2011 at 5:54 pm
TKinect is 100% free (though donations are very-much appreciated). The new version will be released VERY soon (we’re ironing out the component structures so that they are final… this is to avoid people having to rebuild their applications as TKinect evolves)
March 29, 2012 at 6:55 am
Dear Sir,
I Learn how to access kinect camera from your source code. And I Need to make video file using the kinect camera. Could you tell me how to do it? Can I make video file frame by frame from realtime refreshing Image32?
Thanks.
April 21, 2012 at 6:57 pm
You would need to look for Video Composition components (or a library) for Delphi. There is actually a unit provided with Delphi (VFW.pas or something like that) which provides a means of outputting video files, but you’d have to research this on your own I’m affraid to say.
March 30, 2012 at 12:47 am
First sorry the errors. Courtesy of Google Translator.
I am a student and was interested in my project TKinect for completion of course. But I could not download it via SVN. The link is broken or is the problem here?
I use “http://svn.lakraven.com:81/svn/OpenSource/Kinect/” in SVN.
The error is “OPTIONS of ‘http://svn.lakraven.com:81/svn/OpenSource/Kinect’: Could not
connect to server (http://svn.lakraven.com:81)”
Thanks in advance.
April 21, 2012 at 6:58 pm
This indicates that Port 81 has been blocked on your connection. Try replacing :81 with :8080, as this should work fine on all connections (as per industry standards)