Owner: Ati
Members: 8

VVCVR - 27 September, 2007
Ati says
Very Very Cheap VR

I've been working on how to accomplish a VR system for some time, on a reasonable budget. The following is what I've got in terms of a price list:

Cardboard box and duct-tape (negligible cost)
Smart phone (already purchased)
Magnifying glasses (2-3$ for two of them)
Thin client software (free)

Motion Tracking:
Webcam (already purchased)
LED's (10$)
Wires (5$)
Four nine-volt batteries ($10)

Motion restriction:
Shoes (already purchased)
Industrial rubber bands (2$)
Bricks, nail, and wood (already purchased)

Force Feedback:
Nails and copper wire (for the magnets) (10$)
tight clothing (5$ at good will)
Iron gel (say, 10$ for enough of it to coat the inside of the suit.

Miscellaneous expenses:
AC/DC converter (for magnets) (unknown, but probably cheap)
Transistors and light sensors (5-8$)
Pride (negotiable)

Total: about 60$

I'm sure you can work out most of the mechanisms based on the components list, but I was a little creative with the force feedback, so I think I should elaborate, and get some opinions on my mechanism.

This idea is quite simple:

You wear the suit filled with iron gel (a mixture of some kind of elastic resin with iron filings) then, four reasonably high-powered magnets are positioned around you in a pyramid. The magnets each produce a magnetic field. The areas where all the fields intersect will be the most strongly affected.

You can alter the points where the fields intersect by altering the relative strengths (and therefor, the extents of the field) of each magnet. Thus, by alternating the voltage of all three magnets in concert several times a second, you can 'draw' points of high magnetism in the air around you, to compress the iron gel, and repel your limbs when you try to cross the points, providing tactile feedback.

Does this sound like a plausible low-cost VR scenario?

Total Topic Karma: 9 - More by this Author
QuantumBeep says
+2 Karma
A thing about those thin clients - the display update rate is going to be rather low unless you're feeding it gigabits per second, or you make your thin client thick enough to decode h.264 or similar (very thick indeed).

Running a graphical terminal over a 100mbit wired LAN gives me three or four full-screen updates per second, at best - it seems like more because modern terminals use partial screen updates for efficiency.
- Author's History - 04 October, 2007
Ati says
+0 Karma
That's a really good points actually. Another option would be to pry the camera of one of my old cell's out of it's casing, and (after extending the wires) set it on a mount so that all it can see is my monitor.

That would solve the FPS problem, but you'd probably get some visual artifacts.
- Author's History - 04 October, 2007
poss says
+2 Karma
as for the suit. I'd buy two wetsuits and wear both of them with the gel in between them. Much less gooey and far more reusable. Infact, if you sewed them together in a crosshatched fashion, you could keep the gel from sinking to the bottom. I'd also be using a PDA with a good gfraphics input. So you could use it as a monitor for your regular computer.
Also, the motion detection is not a good solution, think about it, when your arm is behind your back, how do you map your elbow?
- Author's History - 09 October, 2007
Ati says
+1 Karma
The wet-suits are a good idea; they'd work well, and you could probably find used ones on the cheap.

As far as motion detection goes, you really have two choices using this idea; you could either live with your limbs being paralyzed while behind your back, or you could add a second webcam to watch your back.
- Author's History - 09 October, 2007
Ati says
+0 Karma
Another idea for the HMD would be to buy a couple of mostly-broken old video cameras (the ones rigged for TV display). Most of them have a playback option where the viewfinder shows you what is playing on the TV when they're connected. Then, simply use one of the cables that let's you use a TV as a computer monitor.

- Author's History - 10 October, 2007
Ati says
+0 Karma
Of course, you'd want to remove all of the extraneous components to reduce weight as well.
- Author's History - 10 October, 2007
poss says
+1 Karma
Allright, I was keeping this idea for myself, but seeing as how i sont have enough free time to do anything with it, I will give the idea to you. But.. I want a cut of the profits.

The motion sensing is really very simple ati.

for cheaper than $10AUS each you can have triaxial accelerometers specifically calbrated for interpreting human movement.
The program you then require to interpret those movements is called "Glove Pie"
And i would then use "Ogre3d" to script up your virtual reality and then "Dutch Pipe" to connect yourself to the net


Thats if you want to do it all yourself.

In actual fact, If you got the rig working it would probably be worth approaching the "Planeshift" developement community in regards to intergrating your glovepie bodily control scripts into ingame movement. If you wrote your glove pie scripts so they were stable, and made up a fully scripted avatar, I am sure they would let you run around in their world.
- Author's History - 10 October, 2007
poss says
+1 Karma
Really the biggest problem is not the suit. As you have shown, that is doable on the cheap. (oh i forgot to mention you'll need a usb blue tooth dongle) Even hardware is not so much a problem now, All tho you will really want two 8800gt's running in SLI for really fluuid movement (you'll see why)

The big problem is the scripting.

Firstly writing the glove pie script is not hard, but it is time consuming and takes alot of trial and error.

Secondly the force feedback is a whole nother world of scripting that I don't want to touch with a ten foot poll. I mean you'd have to write a custom script for an advanced game engine so that it registered hits to individual body parts and then output relative force results to one of the multitude of elecrtromagnets in your array. Not to mention the drivers you would have to write from scratch to allow that to happen. While we are on the topic, what hardware are you planning on using to control the electromagnets with?

Thridly, True VR is not as simple as a screen in front of your eyes. You want two screens that are a couple of degrees out of sync with each other. Which again means rewriting the game engine so that it outputs two slightly different camera angles simeltaneously (hence the two fat videocards). Again, not fun. and again you would probably have to rewrite the video drivers to allow this to happen.

You are talking about countless thousands of man hours of work to finish all that scripting. You'd need to be running a full scale game company to pull it off.

- Author's History - 10 October, 2007
poss says
+1 Karma
When I was looking into this, I was looking at making a full body comerical VR rig for under $2000. At that price you could sell loads of the suckers. But the problem was the software. Even when i raised $20,000 of capital i could see it was no where near enough to pay for the developement of drivers and software.
- Author's History - 10 October, 2007
Ati says
+0 Karma
I don't like wii-motes, simply because hacking them into PC interfaces is, let's face it, less than stable. Also, they provide limited movement points. The number of possible movement points is the primary incentive for the webcam idea, although this (obviously) has it's fair share of practical problems as well.

As far as software goes, I don't think it's as bleak as you make it out to be. I was planning on using SL as a testing bed, since custom in-game scripts and animation is so easy. It's really not all that complicated: create a set of animation overrides for each limb, write a tracking program for the webcam to detect motion, and set up a script to trigger keyboard input synced to animations in SL.

That's motion control right there.

Another thing is that Nvidia has a driver that lets you automatically generate depth images in 3d applications, so that would solve another problem.

Really, the biggest thorn in your shoe would be scripting force-feedback, and I'll have to get into that tomorrow, since I'm out of time tonight.
- Author's History - 11 October, 2007
poss says
+0 Karma
create a set of animation overrides for each limb,
I can see how this could be considered simple, it is still at a huge ammount of work, but compared to the other two its a walk in the park.

write a tracking program for the webcam to detect motion,
My great respect for you keeps me from replying with complete incredulity. Entire games have been made with this premise (eye toy), they took years of developement by large teams, and still did not come out very acurately. It is easy to see that there has been movement, you can even generally tell how quickly that movement changes, but there is certainly nowhere near the degree of acuracy required for controlling an avatar.
another approach to this problem is the one used in motion capture movies. But developing that kind of software from scratch is nigh on impossible. and even if you used premade software, you are still only mapping the movement of a few points, enough to show where your limbs are, but not enough to determine where your fingers are.

and set up a script to trigger keyboard input synced to animations in SL.

now this one i am complete doubtfull of. How are you capturing your finger movements while still moving your arms? I have seen those projected keyboards, and they could work if you didn't mind putting your hands in one place to do so. But if you want to be actually able to manipulate objects, you want to get two of the gloves glove-pie was written for. And if your doing that you may as well use wii motes for the motion sensing. im talking about having them attached to your elbows wrists shoulders hips knees and ankles, and one on either side of yoru head.

What would allow you to move however you wanted without being limited by what the camera can pick up.

For instance, lets say you want to do some martial arts moves. There is no way a camera will be able to pick up the level of detail required or sample at the speed required. you need accelerometers.

As another suggestion, have you considered using large electromagnets instead of the rubber bands?
- Author's History - 11 October, 2007
Ati says
+0 Karma
Okay, it's tomorrow, and I've had a new idea for force feedback.

I'm going to list the new mechanism first, and then talk about how I (personally) would go about implementing it.

The idea is relatively simple: you take a decent sub woofer (or simply a conventional speaker encased on sulfur hexafluoride), and turn it up just about one volume notch below burnout volume. Then you mount the subwoofer inside a short, thick copper pipe, and add a parabolic focal dish on an elastic mount to the end. Around the edges of the dish, you position three electromagnets, linked to speaker cords.

The subwoofer plays a single tone constantly, and the electromagnets rotate the dish, altering the focal point of the vibrations being transmitted. For each contact point on the body, it shifts there at least once a second, launches a pressure wave, and then shifts to the next target. Properly calibrated, it could handle dozens of separate impact points.

Three of these assemblies are pointed at waist level around the subject, to provide wrap-around physical feedback. Think of it as a hybrid between surround sound, haptic feedback, and that concussion gun from minority report.

Programming such an assembly is a whole nother ball of wax.

The way I would do it (and please let me know if you have a better idea, as this is going to be tricky) is to first buy several audio splitters, to produce the nine speaker feeds that will be required to provide haptic feedback (not to mention the two for normal surround-audio feedback).

Then, hack each speaker arrangement to end in a straightforward electromagnet, rather than a conventional system, with some kind of resistor system in place to limit the number of 'tones' it will respond to to only one note (magnet 1 will respond to audio output in the key of D, number 2 - D sharp, etc.)

Then, once you have this nightmare of hardware and loose wires dealt with and color coded and shoved into a dark cranny somewhere, you get to work on the software (sort of) side of things.

First off, in SL, you make three objects and attach them to your avatar, each corresponding in position to one of the subwoofer assemblies around the subject. Then, you attach a full-body 'armor' (which may be both invisible and intangible, if you so desire), comprised of pieces each with three scripts; one that find the object's position in 3d space, one that registers impact, and one that calculates the extent of the impact based on the speed and assumed mass of the collider. Each one, after having registered an impact, sends data to the nearest one of the objects that stand in for a subwoofer assembly. From there, it's a matter of simple trigonometry to work out which way to angle the parabolic dishes in order to 'shoot' a pressure wave towards the corresponding real-world space to the object that has registered an impact.

Then, when the object has found the proper arrangement of angles, it produces a series of loud tones, which are translated by the speaker/magnetic assembly in the proper physical motion of the parabolic dishes. .

Calibration is, obviously, going to be time consuming, but that's the only thing. As you can see, this is all quite doable within an extremely limited budget, and a relatively modest amount of programming.

And thoughts on this proposal?
- Author's History - 11 October, 2007
poss says
+0 Karma
calibrating parabolic dishes to respond to precise triginometry looks overly complex to me. I do however very much like the speaker idea.

here is a paper where they did something similar to what your talking about

I like the idea of the scripts, but i again don't think they will be as simple as you plan.

What i would do is to attach a head of electromagnets (speakers magnets are good) to the outside of the wetsuit

I'd then run each to a light controller.

Have your little SL script assign a different sound frequency for each part of your avatar, and make the volume a measure of how hard your hit. then have the light controller software send a signal to the relevant speaker magnet when the frequency is played.

Light controllers can be picked up fairly cheap second hand, or if your really keen you could make one yourself

Of course you'd then have to find a method of cancelling out the generated sounds so you could play the game and still have regular sound without being interupted by beeps and squeeks.

After a bit of searching, i found a much cleaner way

use one of these: http://cubloc.com/product/01_03cubase64m.php

that will give you 32 12 or 24 volt outputs, plug them all strait into your suit attached speakers.

Your only problem then is getting your SL script to send data OUT of second life.

- Author's History - 12 October, 2007
Ati says
+1 Karma
Well, I disagree that it would be impractical to use the 'speaker gun' assembly.

The trigonometry is stupid simple - high school level maths; as a matter of fact, it's basically the same thing I've been doing for years, in the form of an auto-aiming system for videogame NPCs. The only trick is fine-tuning the variables to make it correspond to the real world, which is time consuming, but not difficult You could probably set up a simple automatic calibration system: write a program that tweaks it's own variables one at a time until it can routinely hit a given target (probably a mic.)

If you didn't feel like doing this, you could probably do it by hand, if you had a few days to throw away getting everything to line up - after all, the positive upshot of having a wide target width is that you have a decent margin of error.

Your speaker suit idea sounds feasible, but I don't like the number (not to mention weight) of the magnets being used. I wanted to try to limit the amount of equipment actually worn by the user, as, if your walking around with twenty pounds of speakers, and 40 wires hanging from your body, it's going to do more than a little to break the immersion.

Back on the scripting side of things, sound isn't really a problem: all you need to do is be running two separate instances of SL - one of them is on minimum graphics settings, and has the avatar positioned several thousand meters above the other, and wearing a 'headphone' object. When the armor on the avatar your playing with senses a collision, and works out the appropriate trigonometry values, it transmits them to the second one, cruising at 36,000 meters. The headphone object pick up the data, and changes it into the appropriate noises. The noises are played on the machine that this is running on, and are fed into the tactile feedback assembly.

Not the most elegant solution, but it should work.
- Author's History - 12 October, 2007
Ati says
+0 Karma
oh, I forgot to mention: the avatar that your actually playing with is the one that gives you normal audio feedback, in case you didn't get that from the above post.
- Author's History - 12 October, 2007
poss says
+0 Karma
Well I can see how your planning to get around the trig, and good luck to you.
As for your point on immersion, I respectfully diagree. The speaker magnets would not have to be very large to induce a sensation (we don't want to actually get hurt after all), and the wires could be sewn into/onto the suit, so you only notices one bundle of cords leaving the suit.

Imho having one suit that has everything you need in it is much more practical than having an entire rig. What happens if you need to move house? I especially think this is the case if you ever want anyone else to use your rig (selling?). keep it simple, and in this case simple means one suit you pull on and off and a headset. People dont want a speaker gun set up in their house that they have to stand inside. They would also want to be able to sit or lie down in the suit without losing sensation on every side of them. I also think that even if it did blow out to weighing 10 kilos, that is still not a huge price to pay for a full VR suit. I mean, my shoes, clothes, belt, wallet keys, they can easily add up to two kilos on any regular day. Add a large jacket with some full pockets and your getting close to the ten kilos. The thing is, it is distributed weight. With ten kilos spread over 32 locations, your barely gonna notice it. The suit might feel heavy at first, but after a month of using it you will build up enough muscle that it becomes a triviality. especially if you sew in some kind of harness so that the weight is distributed as evenly as possible.

Looking at your sound solution, How do you make the sounds emited by the ghost body inaudible. Oh, i just thought. Why not make the sounds sub audible. Then you don't even need the second SL sinstance. And really, the frequencies you'll need for force feedback are probably sub audible anyway. Easy!

Im just wondering, have you given any thought to fingertips?

- Author's History - 14 October, 2007
Ati says
+0 Karma
You make a rather convincing argument for the suit, and something just occurred to me:

Rather than cannibalizing god-knows how many rather expensive speakers to craft one bulky suit, why not weave the magnets into the cloth?

Copper and iron thread are not particularly expensive - using an automatic loom, you could make the cloth electromagnets by the square foot for practically free.

It'd be reasonably simple - you'd add up how much square footage you'd need to cover your body, cut out a pattern for the clothing, and then divide it up into 'tactile regions', of a size determined by nerve density - a lot of them in your hands, not so many in your fore-arms.

Then, you'd take each square, solder all of the edges together, and then link it to a wireless receiver - a simple, dead cheap circuit, toned to a very specific frequency. Then, sew the pads into the inside of a spandex suit, to hold them tight against the body.

At this point, controlling it becomes ridiculously simple: you take a pair of stereo headphone, splice them so that the output for one wire goes into both ears, and then use the remaining speaker write, rigged to a radio transmitter (say, a cheap walkie-talkie), to transmit various 'sounds' (i.e. frequencies) to trigger the magnetic pads.

What do you think?
- Author's History - 15 October, 2007
poss says
+0 Karma
I think you may well be on to something there

If the suit is wireless, how does it get power?

how do the copper cloth pads become sufficiently magnetic?

as you know electro magnets have a coil around a piece of metal, the force applied by the magnet is contributed to by the number of turns around the metal and the surface area of the poles. So I think your woven magnets are likely to be quite weak unless hunks of metal are still included.

So I suggest small flat pieces of metal, like thick coins, embeded into the suit. with coils around their perimeter.
To obtain a greater degree of accuracy you could use many small ones (to allow a consistent pressure over the skin surface) Interspersed with a few bigger ones (to provide more force). The thickness of the coins is something you would have to experiment with to figure out the right strength. But you may also want to consider using toroids.

Comercially available small magnets seem fairly capable of doing the job. for instance:
a 25x25mm sized magnet weighs 110grams and can push with 10kg of force. While a 35x35mm magnet weighs 250grams and can push with 18 kilograms of force.
These kind of forces are not enough to seriously injur people, with a proffessional boxer hitting with a peak force of 400kg-3000kg depending on the punch.
It would like being hit by a toddler

But it is enough to give the impression of force

An idea just came to me... the possiblity of sewing the coil into the suit so that it formed tubular solonoids around each limb and the torso. this would allow you to move the ferrofluid up and down, giving the feeling of movement. There wouldn't be any sideways movement, but it would still feel pretty cool.

- Author's History - 15 October, 2007
Ati says
+0 Karma
Actually, in the system I was thinking of, you would 'spin' the threads by taking an steel thread, and wrapping copper thread around it.

Then, you could take these miniature electromagnets, and weave them together to produce a larger magnet, of combined force. They should be sufficiently strong - after all, there is a limit to the amount of force that we want to produce, and in an in-game firefight, a few pounds of force coming suddenly to your chest will feel a lot like a bullet. Obviously, you won't need to reduce the force for less dramatic impacts. A few pounds of force would be quite sufficient for most in-game activities.

As far as power goes, a few options exist. One of them would be to wear a fanny pack full of rechargeable nine-volts, with power leads glued to the fabric to provide current.

The other option would be to hot wire the above-mentioned walkie talkie to produce a really strong radio pulse, and power each pad using a crystal radio circuit. The power would come from the air. The obvious downside to this idea is the waste of power (not to mention the blowing out of every walkie talkie in a four mile radius), and the upshot is the true wireless capability.

Personally, since I don't want to see the word 'gigawatt' on my electricity bill, I like the fanny pack idea.

As far as your coins idea goes it sounds workable, although if the magnets are too closely bunched, there is a risk of them attempting to align to each-others own poles, and you end up standing there naked while all the magnets in your suit snap to each other in a little ball behind your neck. You'd probably want a fairly stiff suit to make it work.

Any thoughts?
- Author's History - 15 October, 2007
poss says
+0 Karma
"fanny pack"
tehehehe hehehe fanny...

You know in Australia, fanny means vagina.

*pulls himself together*

Well the bum bag(fanny pack ) idea sounds all right, depite the fact that they are hideously uncool. The downside is not being able lay down comfortably. To get around that, you could always spread the batteries through out the suit and have them connected to a power grid. I think giving the option to plug in is critical, as cool as wireless is, the battery life is allways limited, especially when the batteries are constantly powering magnets. No one like being pulled out of an immersive environment because of low batteries. So, If you have the option to plug in and play, and then unhook when the batteries are full again.. it would be sweet. That is how laptops work.

Your woven electromagnets may work, but it is really something you would have to experiement with. I just can't see them putting out enough force.. but if you can prove otherwise, good luck.

Now, for motion sensing, are you still thinking of tracking movements with a camera? I still think accelerometers are the way to go so far as motion detection goes. they just give a high degree of precission that video capture just can't match. I think thirteen wii motes and two VR gloves would give you absolutely perfect control.
2 x wrists
2 x elbows
2 x shoulders
2 x hips
2 x knees
2 x ankles
1 x head

Those thirteen movement points allow you to map the whole body with milimeter accuracy in 3 dimensions.

So, my version so far would have

a wetsuit
then the ferroliquid
another wetsuit
32 electromagnetic points. 13 accelerometers 10 batteries A whole mess of wiring.
Breathable heatproof padding
a Jumpsuit.

Then that plugs into the headset.

Now, I don't personally think having a wireless headset is feasible. Plugging a wire into it allows you to have a much better graphics connection, and you could also bundle in the power and a line for the headphones and magnets.

But i think plugging such a fat cable into the helmet is ungainly. So plug all that stuff into the suit, and then run power audio and video to the helmet.

I personally think that while the haptic feedback is important, the graphics will really sell this thing. both to you and to others. That is the main reason im not recomending putting a laptop in a backpack and running the whole thing off a backpack full of batteries. Graphics are key.

For my money, Id run two montior cables from the back of a PC through the suit and up to two TDEL's.

- Author's History - 15 October, 2007
Ati says
+0 Karma
Honestly, I think we're talking about two different system here.

I'm talking about quick and dirty VR, something that I can home-brew without spending a few grand.

I think you're talking about a full-on commercial rig, complete with investors, distribution deals, patents, corporate interests, and all the rest.

Indubitably, for a system like that, you'd want a full on VR rig like your talking about.

However, for something cheap and more importantly, do-able on a hobby scale, webcam tracking will be imperfect, but it will be sufficient.

However, you do bring up a good point with the gloves - a quarter of the motor cortex of your brain is devoted to moving your hands - this is the reason that most musical instruments are played with your hands. You probably won't notice if your legs, or even your arms are a few inches from where they should be - but if your hands don't move right, it will break the immersion.

There are a few solutions to this, one of them being the age-old 'quit whining and live with it' approach. Another is to buy a P-5 glove, which go for about $20 USD, or less on Ebay.

Another solution for a HUD would be to take an old junker laptop, and rig it up to serve as a monitor. With a simple lens system, it would be heavy, but it would also totally take care of resolution problems. Not to mention that last-gen (or, gen-before-last) laptops are dead cheap.

then, you just put up a boom or a hook in the ceiling, feed a monitor cord over it, and run it down onto the headgear.

You could use the laptop battery to power the rest of the suit while you were at it, giving full 'plug and play' functionality.

Now, I agree with you that graphics are vital, but I disagree as to the extent. While bad graphics would obviously ruin the immersion, any game with graphics on par with, say, half-life two would be more than sufficient to avoid breaking your perception of reality. The real trick is integrating true field of view. If your starting with SL as a development bed for this, then you've got a problem right there - mouselook in SL, like in many games not originally FPSs, is ugly, pure and simple. There are poly lines all around the view, and the body often goes through the camera.

Really, I wouldn't use mouselook at all - I think I would probably create a custom script to position the camera right in front of the head, and tweak it to avoid visual artifacts.

That said, while SL has it's obvious upsides (Which is why I plan to use it), the graphics are no-where near where they need to be, especially for the environment.

If in fact this gets completed, after I'm done using SL as a test-bed, I may look into the plane-shift game you mentioned - it might serve very well for the purpose.

- Author's History - 15 October, 2007
poss says
+0 Karma
You agree that hands are important. So do you have any ideas on how to provide force feedback to your fingers?

What software are you using to map your movements?

- Author's History - 16 October, 2007
Ati says
+0 Karma
Well, I was actually assuming that we would simply use the same magnets for the fingers as we are using for the rest of the body. Any particular reason why this would be insufficient?

As far as movement mapping goes, I was planning on coding the motion tracker myself. If I used a data glove, there are only about seven points to actually track (wrists + feet + torso + head) which comes to 14 LEDs, if you want orientation as well as position. 14 LEDs, each of different colors, are fairly simple to track - you scan the image for colored dots, determine Y/X position from where the colored dots are on the screen, and Z position from the size of the colored dot.

Then, once you have your points, you simply transmit the orientation and position data into SL.
- Author's History - 16 October, 2007