Monthly Archives: February 2013

John Carmack on Latency in Virtual Reality

For those who don’t know him, John Carmack II is one of the premier game programmers. He was a co-founder of id Software, which you may have heard of. Among his credits as lead programmer are Wolfenstein 3D, Doom, Quake, Rage and their sequels. And he’s the founder and lead engineer of Armadillo Aerospace.

In this article for #AltDevBlogADay, he discusses latency, one of the major problems in VR. Absolutely worth the read.

Now with more wires

I managed to get all of the components hooked up around the amps today. Now I have the USB Dolby 7.1 decoder on top of the amp stack, with all four amps bolted together. I’m waiting to get a power strip that I can hook up all the power supplies too. But everything should have a nice blue glow when it’s plugged in. Tomorrow, I’ll hook up the speakers and see how it all sounds/feels.


Today’s laundry list

Not much progress, due to other classes, work, life-in-general. But I have a gap today so:

Meeting at PAD lab to discuss our cohort of projects

I’m going to swing by Home Depot on the way home today to get some .25″-ish threaded rod and nuts so that I can make a tiny rack for all the amps. They also sell Y-adapters, so I’ll pick up a few more of them. Pix by the end of the day, with luck.

And I came across this cool thing:  $59 pcDuino – AllWinner A10 Board with Arduino Compatible Headers. Here’s a picture:

And here we go – the world’s cutest 8-channel amp:


This looks interesting

First, I got the headset. Very nice.

Second, there is a company, sixense, that looks to be making some very good immersive hardware and a free(?) api. This might be very good for the pointing test. And they have some nice sound (midi) code too. It’s somehow tied up with Intel’s perceptual computing effort. I learned about this from a slashdotted article about the Holodeck Project.

Nasty bacteria

Bronchitis sucks. In a wheezy, “I need more air” kind of way. Anyway, the amps, actuators, and a Dolby headset are on their way and should arrive today. I’m going to take advantage of the fact that they are not here to work on getting these creatures out of my lungs.

Some times you get to push the Easy Button

Not much to report today, except that everything worked the way it was supposed to.

  • Dolby worked as plug-and play.
  • The small tactile actuator seems best.
  • The amp is powerful.
  • Java3D talks to at least two channels

So the next step is to get three more amps, six more actuators, and some kind of headgear. And maybe some kind of rigid helmet to attach the actuators to? I’m thinking I can use one of my old bike helmets to start with.

Anyway. Progress!

Wireless. But in a bad way.


I got my amp (2 channels) and USB Dolby 7.1 adapter from Amazon last night and wired up the transducers this morning, hoping to make some vibrations this evening. However, I forgot that I needed to get the sound *from* the Dolby unit *to* the amplifier. Oops. Looks like a trip to radio shack tonight. And no work on this tomorrow, since I’ve got class.

Sigh. With luck, Friday.

Sounding good to me!

So, after following the link from yesterday’s post, I put the following call in, just after main().

System.setProperty("j3d.audiodevice", "com.sun.j3d.audioengines.javasound.JavaSoundMixer");

It all compiles fine and runs! I get the following warning:

*** WARNING: JavaSoundMixer: Streaming (uncached) audio not implemented

But since at this point I’m only interested in looping sounds anyway, this should be just fine. Nothing like a 13 year old code base that still works. A toast to Sun.
And we get 3D graphics to boot:

SimpleSounds window

Now I need to get the Dolby unit installed and running, and hook up the amp to my collection of tactile transducers. Tomorrow?

Some Prior Art?

Displaying sound indications on a wearable computing system


Example methods and systems for displaying one or more indications that indicate (i) the direction of a source of sound and (ii) the intensity level of the sound are disclosed. A method may involve receiving audio data corresponding to sound detected by a wearable computing system. Further, the method may involve analyzing the audio data to determine both (i) a direction from the wearable computing system of a source of the sound and (ii) an intensity level of the sound. Still further, the method may involve causing the wearable computing system to display one or more indications that indicate (i) the direction of the source of the sound and (ii) the intensity level of the sound.