{"id":193,"date":"2010-12-31T13:03:03","date_gmt":"2010-12-31T12:03:03","guid":{"rendered":"http:\/\/jimblackler.com\/blog\/?p=193"},"modified":"2010-12-31T13:03:03","modified_gmt":"2010-12-31T12:03:03","slug":"color-storm-a-live-wallpaper-for-android","status":"publish","type":"post","link":"https:\/\/jimblackler.com\/?p=193","title":{"rendered":"Color Storm, a Live Wallpaper for Android"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/jimblackler.com\/blog\/wp-content\/uploads\/2010\/12\/wb3.png\" width=\"480\" height=\"800\" class=\"alignleft size-full wp-image-196\" srcset=\"https:\/\/jimblackler.com\/wp-content\/uploads\/2010\/12\/wb3.png 480w, https:\/\/jimblackler.com\/wp-content\/uploads\/2010\/12\/wb3-180x300.png 180w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/p>\n<p>My first Android release (under my own name) for a while is Color Storm, a Live Wallpaper for 2.* Android devices. It creates striking patterns and colors on the user&#8217;s Home screen.<\/p>\n<p>It took about ten days to put together (as ever in Java under the Android SDK in Eclipse). It builds on pattern programs I have been working on for about 25 years when I used to tinker with plotting vector graphics on the Amstrad CPC. More recently I developed a Windows Media Player visualization around 2000.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/jimblackler.com\/blog\/wp-content\/uploads\/2010\/12\/w6.png\"  width=\"240\" height=\"400\" class=\"alignleft size-full wp-image-201\" srcset=\"https:\/\/jimblackler.com\/wp-content\/uploads\/2010\/12\/w6.png 240w, https:\/\/jimblackler.com\/wp-content\/uploads\/2010\/12\/w6-180x300.png 180w\" sizes=\"auto, (max-width: 240px) 100vw, 240px\" \/><\/p>\n<p>That effect was heavily dependent on so-called back-buffer effects (modifying and redrawing the previous frame). This allows an animated vector line pattern to be converted into something that fills the screen with color.<\/p>\n<p>However on this occasion I wanted to achieve a fuller effect using geometric effects. In Color Storm a fairly standard spiral pattern is combined with a particle processor to create a thick ribbon that changes thickness throughout its length. Shaded OpenGLES triangles are used and alpha values carefully tapered to give a smooth effect resembling a beam of light.<\/p>\n<p>I put a lot of work into the interpolation engine. This smoothly transitions through a range of pattern values in order to achieve a wide range of visual effects without jarring changes in speed. I deliberately made the progress slow in order to create a restful rather than frantic pace that may be distracting for users concentrating on their home screen widgets.<\/p>\n<p>I hope you enjoy the app! Search under Color Storm in the Market application, or use the barcode here (with Barcode Scanner or Google Goggles).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/jimblackler.com\/blog\/wp-content\/uploads\/2010\/12\/csbarcode.png\" width=\"230\" height=\"230\" class=\"alignnone size-full wp-image-199\" srcset=\"https:\/\/jimblackler.com\/wp-content\/uploads\/2010\/12\/csbarcode.png 230w, https:\/\/jimblackler.com\/wp-content\/uploads\/2010\/12\/csbarcode-150x150.png 150w\" sizes=\"auto, (max-width: 230px) 100vw, 230px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>My first Android release (under my own name) for a while is Color Storm, a Live Wallpaper for 2.* Android devices. It creates striking patterns and colors on the user&#8217;s Home screen. It took about ten days to put together (as ever in Java under the Android SDK in Eclipse). It builds on pattern programs [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-193","post","type-post","status-publish","format-standard","hentry","category-handheld-applications"],"_links":{"self":[{"href":"https:\/\/jimblackler.com\/index.php?rest_route=\/wp\/v2\/posts\/193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jimblackler.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jimblackler.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jimblackler.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jimblackler.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=193"}],"version-history":[{"count":8,"href":"https:\/\/jimblackler.com\/index.php?rest_route=\/wp\/v2\/posts\/193\/revisions"}],"predecessor-version":[{"id":208,"href":"https:\/\/jimblackler.com\/index.php?rest_route=\/wp\/v2\/posts\/193\/revisions\/208"}],"wp:attachment":[{"href":"https:\/\/jimblackler.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jimblackler.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jimblackler.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}