Results 1 to 11 of 11
  1.    #1  
    So.... I got my dot matrix renderer used in 'Screamager' to render BlinkenLights animations! Yay!

    I still need to do massive optimization to bump up the framerate but... it's working! This demo reads the attached XML file, parses it and then displays the animation.

    Animations are in 'BML format' which is the format for Blinkenlights animations.

    Soon I'll add a feature to Screamager that can show several bundled animations and also allows the user to paste an URL to a .bml file which will then be played. Pretty cool I think.

    Here's a 12seconds.tv video of this thing in action:

    Blinkenlights animations on the #palmpre. Early tech demo. | 12seconds.tv (beta)
    My shiny new TouchPad apps: Scientific RPN Calculator HD - Screamager HD
  2.    #2  
    Apparently I can't attach the BML file. Here it is:

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <blm width="26" height="18" bits="1" channels="1">
    	<header>
    		<title>Arrows</title>
    		<description>Screamager Animator Demo</description>
    		<creator>BlinkenPaint 3.14</creator>
    		<author>Marco van Hylckama Vlieg</author>
    		<email>marco@i-marco.nl</email>
    		<loop>yes</loop>
    		<duration>1000</duration>
    	</header>
    	<frame duration="100">
    		<row>11110000111110000111110000</row>
    		<row>11110000111110000111110000</row>
    		<row>11111000011111000011111000</row>
    		<row>11111000011111000011111000</row>
    		<row>01111100001111100001111100</row>
    		<row>01111100001111100001111100</row>
    		<row>00111110000111110000111110</row>
    		<row>00111110000111110000111110</row>
    		<row>00011111000011111000011111</row>
    		<row>00011111000011111000011111</row>
    		<row>00111110000111110000111110</row>
    		<row>00111110000111110000111110</row>
    		<row>01111100001111100001111100</row>
    		<row>01111100001111100001111100</row>
    		<row>11111000011111000011111000</row>
    		<row>11111000011111000011111000</row>
    		<row>11110000111110000111110000</row>
    		<row>11110000111110000111110000</row>
    	</frame>
    	<frame duration="100">
    		<row>11111000011111000011111000</row>
    		<row>11111000011111000011111000</row>
    		<row>01111100001111100001111100</row>
    		<row>01111100001111100001111100</row>
    		<row>00111110000111110000111110</row>
    		<row>00111110000111110000111110</row>
    		<row>00011111000011111000011111</row>
    		<row>00011111000011111000011111</row>
    		<row>00001111100001111100001111</row>
    		<row>00001111100001111100001111</row>
    		<row>00011111000011111000011111</row>
    		<row>00011111000011111000011111</row>
    		<row>00111110000111110000111110</row>
    		<row>00111110000111110000111110</row>
    		<row>01111100001111100001111100</row>
    		<row>01111100001111100001111100</row>
    		<row>11111000011111000011111000</row>
    		<row>11111000011111000011111000</row>
    	</frame>
    	<frame duration="100">
    		<row>01111100001111100001111100</row>
    		<row>01111100001111100001111100</row>
    		<row>00111110000111110000111110</row>
    		<row>00111110000111110000111110</row>
    		<row>00011111000011111000011111</row>
    		<row>00011111000011111000011111</row>
    		<row>00001111100001111100001111</row>
    		<row>00001111100001111100001111</row>
    		<row>10000111110000111110000111</row>
    		<row>10000111110000111110000111</row>
    		<row>00001111100001111100001111</row>
    		<row>00001111100001111100001111</row>
    		<row>00011111000011111000011111</row>
    		<row>00011111000011111000011111</row>
    		<row>00111110000111110000111110</row>
    		<row>00111110000111110000111110</row>
    		<row>01111100001111100001111100</row>
    		<row>01111100001111100001111100</row>
    	</frame>
    	<frame duration="100">
    		<row>00111110000111110000111110</row>
    		<row>00111110000111110000111110</row>
    		<row>00011111000011111000011111</row>
    		<row>00011111000011111000011111</row>
    		<row>00001111100001111100001111</row>
    		<row>00001111100001111100001111</row>
    		<row>10000111110000111110000111</row>
    		<row>10000111110000111110000111</row>
    		<row>11000011111000011111000011</row>
    		<row>11000011111000011111000011</row>
    		<row>10000111110000111110000111</row>
    		<row>10000111110000111110000111</row>
    		<row>00001111100001111100001111</row>
    		<row>00001111100001111100001111</row>
    		<row>00011111000011111000011111</row>
    		<row>00011111000011111000011111</row>
    		<row>00111110000111110000111110</row>
    		<row>00111110000111110000111110</row>
    	</frame>
    	<frame duration="100">
    		<row>000111110000111110000111110</row>
    		<row>000111110000111110000111110</row>
    		<row>000011111000011111000011111</row>
    		<row>000011111000011111000011111</row>
    		<row>100001111100001111100001111</row>
    		<row>100001111100001111100001111</row>
    		<row>110000111110000111110000111</row>
    		<row>110000111110000111110000111</row>
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    		<row>110000111110000111110000111</row>
    		<row>110000111110000111110000111</row>
    		<row>100001111100001111100001111</row>
    		<row>100001111100001111100001111</row>
    		<row>000011111000011111000011111</row>
    		<row>000011111000011111000011111</row>
    		<row>000111110000111110000111110</row>
    		<row>000111110000111110000111110</row>
    	</frame>
    	<frame duration="100">
    		<row>000011111000011111000011111</row>
    		<row>000011111000011111000011111</row>
    		<row>100001111100001111100001111</row>
    		<row>100001111100001111100001111</row>
    		<row>110000111110000111110000111</row>
    		<row>110000111110000111110000111</row>
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    		<row>110000111110000111110000111</row>
    		<row>110000111110000111110000111</row>
    		<row>100001111100001111100001111</row>
    		<row>100001111100001111100001111</row>
    		<row>000011111000011111000011111</row>
    		<row>000011111000011111000011111</row>
    	</frame>
    	<frame duration="100">
    		<row>100001111100001111100001111</row>
    		<row>100001111100001111100001111</row>
    		<row>110000111110000111110000111</row>
    		<row>110000111110000111110000111</row>
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    		<row>110000111110000111110000111</row>
    		<row>110000111110000111110000111</row>
    		<row>100001111100001111100001111</row>
    		<row>100001111100001111100001111</row>
    	</frame>
    	<frame duration="100">
    		<row>110000111110000111110000111</row>
    		<row>110000111110000111110000111</row>
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    		<row>011111000011111000011111000</row>
    		<row>011111000011111000011111000</row>
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    		<row>110000111110000111110000111</row>
    		<row>110000111110000111110000111</row>
    	</frame>
    
    	<frame duration="100">
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    		<row>011111000011111000011111000</row>
    		<row>011111000011111000011111000</row>
    		<row>001111100001111100001111100</row>
    		<row>001111100001111100001111100</row>
    		<row>011111000011111000011111000</row>
    		<row>011111000011111000011111000</row>
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    		<row>111000011111000011111000011</row>
    		<row>111000011111000011111000011</row>
    	</frame>
    	<frame duration="100">
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    		<row>011111000011111000011111000</row>
    		<row>011111000011111000011111000</row>
    		<row>001111100001111100001111100</row>
    		<row>001111100001111100001111100</row>
    		<row>000111110000111110000111110</row>
    		<row>000111110000111110000111110</row>
    		<row>001111100001111100001111100</row>
    		<row>001111100001111100001111100</row>
    		<row>011111000011111000011111000</row>
    		<row>011111000011111000011111000</row>
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    		<row>111100001111100001111100001</row>
    		<row>111100001111100001111100001</row>
    	</frame>
    	<frame duration="100">
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    		<row>011111000011111000011111000</row>
    		<row>011111000011111000011111000</row>
    		<row>001111100001111100001111100</row>
    		<row>001111100001111100001111100</row>
    		<row>000111110000111110000111110</row>
    		<row>000111110000111110000111110</row>
    		<row>000011111000011111000011111</row>
    		<row>000011111000011111000011111</row>
    		<row>000111110000111110000111110</row>
    		<row>000111110000111110000111110</row>
    		<row>001111100001111100001111100</row>
    		<row>001111100001111100001111100</row>
    		<row>011111000011111000011111000</row>
    		<row>011111000011111000011111000</row>
    		<row>111110000111110000111110000</row>
    		<row>111110000111110000111110000</row>
    	</frame>
    </blm>
    My shiny new TouchPad apps: Scientific RPN Calculator HD - Screamager HD
  3. kesne's Avatar
    Posts
    471 Posts
    Global Posts
    491 Global Posts
    #3  
    That's pretty sweet man, but why not use json?
  4.    #4  
    kesne because this is an existing XML format. It's really easy to read the XML and parse it. I figured it would be nice to use this. It took 14 lines of code to convert this XML format into the format I use to render my animations.

    Also, if people want to do their own animations, this format is easy to work with because you can kinda 'see' what you're doing in your text editor.

    Note that it's slow now (about 2-3fps). I have worked out a solution to implement frame buffering though that I still need to code up. It should get much faster soon.
    My shiny new TouchPad apps: Scientific RPN Calculator HD - Screamager HD
  5. kesne's Avatar
    Posts
    471 Posts
    Global Posts
    491 Global Posts
    #5  
    Quote Originally Posted by TheMarco View Post
    kesne because this is an existing XML format. It's really easy to read the XML and parse it. I figured it would be nice to use this. It took 14 lines of code to convert this XML format into the format I use to render my animations.

    Also, if people want to do their own animations, this format is easy to work with because you can kinda 'see' what you're doing in your text editor.

    Note that it's slow now (about 2-3fps). I have worked out a solution to implement frame buffering though that I still need to code up. It should get much faster soon.
    Ah I see, XML is much more user friendly for people that want to make their own. It looks great so far though!
  6.    #6  
    Quote Originally Posted by kesne View Post
    Ah I see, XML is much more user friendly for people that want to make their own. It looks great so far though!
    Thanks!

    And, exactly. I wanted to make this as easy as possible because it would rock if people would contribute their own animations.

    I'm gonna try to implement the framebuffering over this long labor day weekend and I'll look into 4 grayscale rendering as well after that.

    It's kind of a pity that BlinkenPaint doesn't seem to support different grid sizes (which the XML format DOES support) or it would be even easier to do this.
    My shiny new TouchPad apps: Scientific RPN Calculator HD - Screamager HD
  7.    #7  
    Here's a new demo. It seems to be working fine now. I'm going to add an 'animations' section to Screamager with the few animations I made and the option to run your own.

    I love you - progress with my Palm Pre BLM animator | 12seconds.tv (beta)
    My shiny new TouchPad apps: Scientific RPN Calculator HD - Screamager HD
  8. #8  
    Hey looks like it's running a lot better when it isn't scrolling :P
    I'm using version 0.6.0 right now and there's always a small halt after every 6 characters or so. That 'I heart you' animation ran super smooth! Nice work on this, I'm impressed with the frequent updates! Keep up the good work!
  9.    #9  
    Hmmm it only SEEMS like that. Thing is, when stuff just flashes you don't really see the slowdowns as clearly. This animation isn't running any faster than a scrolling phrase. Unfortunately...

    That said, I think it's fast enough to still be fun so I'll be releasing a new version of Screamager soon with this feature enabled. It will have a few built in animations and an URL box where you can load any animation you created yourself (in the appropriate BlinkenLights .BML format).
    My shiny new TouchPad apps: Scientific RPN Calculator HD - Screamager HD
  10.    #10  
    Screamager 0.7 is out and contains the Blinkenlight animation engine mentioned in this post. You can play built in animations as well as remotely hosted ones (possibly ones you made yourself!).
    My shiny new TouchPad apps: Scientific RPN Calculator HD - Screamager HD
  11.    #11  
    Closing this thread. I have replaced BlinkenLights with my own format because pretty much nothing seems to be going on in the world of BlinkenLights.

    You can create your own animations for Screamager here:

    untitled
    My shiny new TouchPad apps: Scientific RPN Calculator HD - Screamager HD

Posting Permissions