Back to the Drawing Board

So … one of my co-workers had this neat clock in their office that displayed the time in the air. Basically, it’s a bunch of LEDs on a stick that moves back and forth. The LEDs blink on and off depending on the position and makes it look like words or numbers floating in the air. So then I thought, “I wonder if I could do something like that on the iPhone?” Well, the answer is, “No.”:

It’s a neat idea and it almost works, but nowhere near well enough to see a coherent message. Still, it was an interesting experiment and maybe someone else can do something cool with this idea.

8 Responses to “Back to the Drawing Board”

  1. MilesO'Toole Says:

    hi… I tried to leave this as a comment in the itunes store, but apparently I can’t enter a new comment on your app once I have already left a comment.

    First, the accelerometer is not working properly – sometimes, it does precisely the opposite of what it should do. I don’t think this is a fault of the built in accelerometer – I have written my own app where it works properly – rotating the iphone about the vertical axis (when the iphone is held vertically) always give me the same result in the app I am writing, but in your app, sometimes it does the right thing, and sometimes it does precisely the opposite. I assume you have checked out the matrix in the GLteapot demo (linked somewhere in the iphone dev center.) If not, check it out. (Although, that’s not what I use in my app, so I can’t guarantee that it’s actually correct, but compiling and running that demo seems to produce a good result, except that the teapot sometimes “flips”).

    Secondly, it would be neat if you had support for 12-sided dice, 14-sided dice, 16 sided dice and maybe even 18-sided. Basically, all even-sided dice are possible using a bi-pyramid, though it will get unfeasible probably past 18. Here’s a web-page showing what a sixteen-sided dice looks like – photo isn’t the best, but clicking on “view larger image” should give you an idea of how any even-sided die is possible:

    Doing some googling reveals that some dice are patented, so you might have to be careful about that.

  2. MilesO'Toole Says:

    Hey… I screwed up… the iphone can’t detect rotation around the vertical axis. Anyway, after messing with your app some more, I noticed the following: when you hold the phone still for a while, the app seems to “reset” the “up” position. Depending on the orientation of the phone when this “reset” happens, sometimes you get the right results, and sometimes you don’t. If the phone’s screen is pointed in a generally “up” direction when the “reset” happens, it seems to do the right thing. If the phone is held vertically when the reset happens, it seems as though the accelerometer turns off, even though rotation around the horizontal axis should still work. And, if the screen is generally pointed in a downward direction when the reset happens, the “sense” of the accelerometer seems to reverse, so that, when I rotate the phone, I see the “left” side of the dice when I should be seeing the “right” side.

  3. Mach Says:

    Thanks for your comments! This is a much better place to leave comments than the reviews on iTunes because I get automatic notices for comments left here. You can also send me email ( which is on the Mach Dice support page:

    As for the resetting, it’s intentional. Some people hold their iPhones vertically, some people hold it horizontally. The 3D effect works by estimating where your eyes are. Since the iPhone isn’t actually psychic, it makes guesses based on how you’re holding it. The assumption is that you’re holding it more or less straight on and that you’ll tilt it occasionally to see the effect.

  4. Si Brindley Says:

    Nice idea. I think you can make it work with a simple change. The devices I’ve seen that draw text in the air using persistence-of-vision just have a single column matrix of LEDs. You’re trying to use the full width of the screen. I understand that, given perfect synchronization of the display through the accelerometer – this ought to work, but in practice you’re always going to be showing characters that are moving with your hand motion and therefore blurred.

    Solution: funnily enough a single column which shows only a part of the whole message. I’d love to see what happens when you shrink the view to about 5mm or so – or just letterbox it by overlaying a black rectangles on the left and right to leave a vertical ‘slot’ to view the scrolling text.

    Failing this, it’s never going to work well enough because of the inaccuracy/lag of the sensor. How about scrolling the text at a set rate (left or right, depending on the detected motion)? Doesn’t matter if the text is squashed or stretched – it’ll still be readable.

    Hope this makes sense, I’ve just dumped my instant thoughts into a comment 🙂

  5. Mach Says:

    Thanks for your instant thoughts. =)

    Actually, the single column was the first thing I tried. I didn’t demo it in the video, but the top slider bar controls the width of the display and I’ve tried all kinds of widths from 5mm to full screen. Unfortunately, the thinner version was even harder to read.

    I’ve also thought about making a fixed speed scroll banner app, but there’s already a very popular app called “Banner” that does exactly this and I didn’t want to just copy someone else’s app. I suppose that having the scroll speed adjusted by the accelerometer would be a bit different, but I don’t think it’s significant enough of a change for me to write a whole app for it. That’s okay, I’ve got plenty of other ideas that I want to try.

  6. Si Brindley Says:

    Ah but what I meant was to scroll the message at fixed, very fast rate. The banner app is designed to scroll a message slowly past so you can read it in place with a stationary iPhone. What I’m suggesting is that you scroll so fast it’s unreadable on a static iPhone but readable when you shake the phone. You only need to control the direction with the sensor, not the speed. I’m pretty sure the only flaw in your demoed prototype is that it scrolls way too slowly. I reckon you need it to scroll back and forth about 4-6 times a second, reversing direction when the phone’s motion does. Don’t give up 🙂

  7. Mach Says:

    Yeah, I tried that too. Occasionally, you could catch glimpses of the message. But because the timing was off and the frame-rate isn’t that high, it wasn’t clear enough. Still, it was an educational experience.

  8. altedeemime Says:

    Hello. It is test.