09/05/2009, 01:37 PM
|
#1 (permalink) |
|
Member
![]() ![]() Join Date: Jun 2009
Location: Sunnyvale CA
Posts: 699
Likes Received: 6
Thanks: 19
Thanked 160 Times in 72 Posts
|
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) |
09/05/2009, 01:39 PM
|
#2 (permalink) |
|
Member
![]() ![]() Join Date: Jun 2009
Location: Sunnyvale CA
Posts: 699
Likes Received: 6
Thanks: 19
Thanked 160 Times in 72 Posts
|
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> |
09/05/2009, 01:47 PM
|
#4 (permalink) |
|
Member
![]() ![]() Join Date: Jun 2009
Location: Sunnyvale CA
Posts: 699
Likes Received: 6
Thanks: 19
Thanked 160 Times in 72 Posts
|
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. |
09/05/2009, 01:57 PM
|
#5 (permalink) | |
|
WebOS Developer
![]() ![]() Join Date: Jun 2009
Location: Portland, Oregon
Posts: 491
Likes Received: 0
Thanks: 22
Thanked 118 Times in 31 Posts
|
Quote:
|
|
09/05/2009, 02:08 PM
|
#6 (permalink) | |
|
Member
![]() ![]() Join Date: Jun 2009
Location: Sunnyvale CA
Posts: 699
Likes Received: 6
Thanks: 19
Thanked 160 Times in 72 Posts
|
Quote:
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. |
|
09/06/2009, 05:58 PM
|
#7 (permalink) |
|
Member
![]() ![]() Join Date: Jun 2009
Location: Sunnyvale CA
Posts: 699
Likes Received: 6
Thanks: 19
Thanked 160 Times in 72 Posts
|
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) |
09/06/2009, 07:58 PM
|
#8 (permalink) |
|
Member
![]() Join Date: Aug 2009
Posts: 187
Likes Received: 0
Thanks: 21
Thanked 48 Times in 32 Posts
|
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! |
09/08/2009, 01:23 AM
|
#9 (permalink) |
|
Member
![]() ![]() Join Date: Jun 2009
Location: Sunnyvale CA
Posts: 699
Likes Received: 6
Thanks: 19
Thanked 160 Times in 72 Posts
|
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). |
09/22/2009, 09:40 AM
|
#10 (permalink) |
|
Member
![]() ![]() Join Date: Jun 2009
Location: Sunnyvale CA
Posts: 699
Likes Received: 6
Thanks: 19
Thanked 160 Times in 72 Posts
|
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!).
|
03/17/2011, 06:43 PM
|
#11 (permalink) |
|
Member
![]() ![]() Join Date: Jun 2009
Location: Sunnyvale CA
Posts: 699
Likes Received: 6
Thanks: 19
Thanked 160 Times in 72 Posts
|
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 |
![]() |
|
| Thread Tools | |
| Display Modes | |
|
|



