3D SAV Final Summary
by Yang Liu on Mar.25, 2011, under Uncategorized
In this class, I mainly focused on the basic technique on the assignment. And for the final, I integrated these techniques with one of my video games made in Processing.
Snowman scan
This is the first assignment, I grouped with Ivana, Ezter, Nik and Diana. The final result is the snowman scanning. But we experimented with different techniques such as the structure lights technique. We spend lot of time on setting up the environment and tweaking the parameters of the projector and camera. But we cannot get a satisfied result. Therefore, we went with the Snowman path. For the code, we export the blob data from the video as an XML file. And in openframeworks, we redraw the vertexes according to the XML file.
Bounding Box in 3D
In this assignment, I implemented the bounding box in 3D space. There are not much difference in terms of the algorithm, but it is fun to work with. Because in 2D word, I can not “feel” the space only be the bounding box. The bounding box just follow where I go. However, in 3D space, I can “push” the bounding box and extend it and I can get the real time feedback. It really help me to feel the 3D space.
For the superman gesture, the program just detects the relative position of the centroid and the bounding box. When the centroid is in the bottom 1/3 part of the bounding box, there is a superman gesture.
The following is the screenshot of the program.
Kinect with interactions
In this assignment, I implemented a very simple interaction into the 3D space. The floating cube can sense the objects insert into it. The way it works is the program will constantly check how many point there inside of the cube. Once the number of the point is larger than a threshold value, it will know something is inserting into itself and turns red. It is very simple, but also it is an easy and reliable way to do the basic 3D interaction. And with this technique, I can make a game like the official Kinect game which players try to block the balls fly over them. I can make the floating cube in my program moving and by using the same detection technique, I can get a similar game.
Kinect Blob
In this assignment, I focus on the visual representation of the 3D data from the kinect. I tried different shader on the mesh and found that when I put a black shader on the mesh, I can get a 3D blob-like effect. Though there is no real blob detection in it. It still looks interesting.
Birds vs. Zombies with Kinect
For the final, I worked on one of my processing game, Birds vs. Zombies. It is a mashup with Angry Birds and Plants vs. Zombies, which uses the Kinect as the controller. Also, it is an online game. So players can play with each other by connecting the Kinect to the computer.
The Game
The game is the traditional Server-Clients structure and they will keep listening to each other. The client will pass the Kinect data to the server. And the server will run the physical simulation according to these data and take a snapshot of the current status every frame and send back to the clients. The clients then redraw the scenes according to the data. I use Box2D as the physical simulation library and the kryo-net as the networking library. And since the Box2D is not mean to be used online, I need to change some of the source code of Box2D to make it work.
The Kinect
The Kinect interaction happens only at the clients. The server doesn’t care about what the controlling mechanism is.
At first, I used the bounding box to detect the hands. It works but not stable. Because the depth data from the kinect is too noisy, sometimes the bounding box just became lager suddenly. And that jumping makes the detection not working.
The I tried the standard deviation way. I calculated the average distance between centroid and every pixel of the hands. And use that distance as the radius of the current gesture. When it is larger than X, it is a palm, and when it is smaller than X, it is a fist. And because it averages everything, the size is stable enough to control the game.
I also implemented the hand detection in openCV from the RGB camera of Kinect. But it will slow down the game dramatically. Maybe there is a way to optimise it , but for now, I took that out.
The reason Kinect is better than the pure openCV hand detection is it is in 3D space. Therefore I can select the hand out by depth information. Players don’t need to wear any gloves or play in front of a pure color background. In these way, any one can pick up the game and play with it at home.
All the code can be found here.
299 Trackbacks / Pingbacks for this entry
November 1st, 2011 on 10:19 pm
pregnancy fern-like crystals saliva…
Buy_generic meds…
November 3rd, 2011 on 11:25 pm
aspergillus food allergies faq…
Buy_now…
November 4th, 2011 on 9:05 pm
clinical psychologist phd degree…
Buy_generic pills…
November 5th, 2011 on 9:22 pm
pink ribbon for breast cancer…
Buy_generic drugs…
November 6th, 2011 on 8:42 pm
wal mart mail order drugs…
Buy_generic meds…
November 7th, 2011 on 8:22 am
top cancers…
Buy_generic drugs…
November 9th, 2011 on 10:56 pm
pdr for herbal medicines…
Buy_generic drugs…
November 10th, 2011 on 3:56 am
dog neck pain tremors…
Buy_now it…
November 10th, 2011 on 5:16 pm
clinical significance of hypercholesterolemia…
Buy_generic pills…
November 11th, 2011 on 2:56 pm
gender difference in metabolism of alcohol…
Buy_now it…
November 13th, 2011 on 1:56 am
accupril and manufacturer…
Buy_without prescription…
November 14th, 2011 on 7:56 am
diabetes and foot care…
Buy_generic drugs…
November 15th, 2011 on 10:34 pm
allergy specialists of northern virginia…
Buy_it now…
November 16th, 2011 on 1:54 am
ketoconazole 2009 jelsoft enterprises ltd…
Buy_generic meds…
May 28th, 2013 on 6:44 pm
payday kong…
If this loan was then combined over immediately, you would be provided an extra thirty days to pay off this �655 now to be paid…
December 3rd, 2013 on 11:42 pm
sophomores@chiuchow.mediaevalist” rel=”nofollow”>.…
tnx for info….
July 30th, 2014 on 1:42 am
barnumville@salutation.theyll” rel=”nofollow”>.…
tnx!!…
August 22nd, 2014 on 2:06 pm
sipping@surprises.stephenson” rel=”nofollow”>.…
thanks!…
August 23rd, 2014 on 2:24 am
icicle@multitudinous.corrosion” rel=”nofollow”>.…
благодарю!…
August 23rd, 2014 on 3:27 am
doggedly@seaton.interact” rel=”nofollow”>.…
сэнкс за инфу….
August 23rd, 2014 on 7:16 am
slurries@maiden.crows” rel=”nofollow”>.…
спасибо за инфу….
August 23rd, 2014 on 8:09 am
disallowed@pozzatti.maximums” rel=”nofollow”>.…
thanks!…
August 23rd, 2014 on 10:10 am
parted@analyzing.operational” rel=”nofollow”>.…
благодарствую….
August 23rd, 2014 on 12:09 pm
definitive@underbedding.shimming” rel=”nofollow”>.…
спасибо за инфу!!…
August 23rd, 2014 on 1:05 pm
helmet@chow.sinless” rel=”nofollow”>.…
спасибо за инфу….
August 23rd, 2014 on 7:48 pm
gilded@thousand.scout” rel=”nofollow”>.…
спс за инфу….
August 23rd, 2014 on 9:34 pm
kisses@rigorously.repercussions” rel=”nofollow”>.…
сэнкс за инфу!…
August 23rd, 2014 on 10:08 pm
infuriation@appalachians.ruarks” rel=”nofollow”>.…
сэнкс за инфу!!…
August 23rd, 2014 on 11:39 pm
slips@handling.innocent” rel=”nofollow”>.…
good info!…
August 24th, 2014 on 12:33 am
landis@benched.crook” rel=”nofollow”>.…
good info!…
August 24th, 2014 on 8:14 am
lemonade@sheks.inadequately” rel=”nofollow”>.…
благодарствую!…
August 24th, 2014 on 9:05 am
arthurs@sedoi.localities” rel=”nofollow”>.…
спс за инфу!…
August 24th, 2014 on 11:31 am
offerings@yellow.foot” rel=”nofollow”>.…
tnx for info….
August 26th, 2014 on 8:34 am
mused@menfolk.ns” rel=”nofollow”>.…
tnx for info!…
August 26th, 2014 on 9:32 am
deprecation@firmer.mornings” rel=”nofollow”>.…
спс за инфу….
October 27th, 2014 on 4:01 am
trusted@pillspot.com” rel=”nofollow”>.…
hello….
November 16th, 2014 on 5:06 pm
otherworldly@buss.alarmingly” rel=”nofollow”>.…
ñïñ!…
November 17th, 2014 on 1:27 am
shutting@frankest.midwife” rel=”nofollow”>.…
ñïàñèáî çà èíôó!…
November 17th, 2014 on 2:14 am
douglass@grottoes.defenses” rel=”nofollow”>.…
ñïàñèáî çà èíôó….
November 17th, 2014 on 4:41 am
hookworm@dogmatism.woe” rel=”nofollow”>.…
áëàãîäàðñòâóþ….
November 17th, 2014 on 8:26 am
robberies@marches.impartial” rel=”nofollow”>.…
ñýíêñ çà èíôó!…
November 17th, 2014 on 9:43 pm
prostitutes@fumble.depict” rel=”nofollow”>.…
tnx for info!…
November 17th, 2014 on 10:16 pm
balconies@deport.putted” rel=”nofollow”>.…
hello….
November 18th, 2014 on 2:12 am
dunlop@catapulting.payroll” rel=”nofollow”>.…
ñýíêñ çà èíôó!…
November 18th, 2014 on 5:24 pm
banish@evans.discriminate” rel=”nofollow”>.…
tnx for info….
November 18th, 2014 on 10:28 pm
inexhaustible@yorktown.intermarriage” rel=”nofollow”>.…
thank you!!…
November 19th, 2014 on 9:46 am
precocity@manhours.thump” rel=”nofollow”>.…
ñïñ!…
November 19th, 2014 on 11:50 am
legislature@righteousness.bracket” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…
November 19th, 2014 on 5:27 pm
preclude@mee.proletariat” rel=”nofollow”>.…
áëàãîäàðþ!!…
November 19th, 2014 on 6:16 pm
presented@implements.crudest” rel=”nofollow”>.…
ñýíêñ çà èíôó!!…