Lightning in OpenFrameworks
Yesterday, I ported my AS3 lightning renderer to OpenFrameworks with the help of Rick Companje and Joris Rotteveel.
Edit: download the source at the OpenFrameworks forum
Check out the video:
Yesterday, I ported my AS3 lightning renderer to OpenFrameworks with the help of Rick Companje and Joris Rotteveel.
Edit: download the source at the OpenFrameworks forum
Check out the video:
For a while now I have wanted to render out an iris in code alone, so I have now finally started experimenting in that direction.
I must say I am not unhappy with the results sofar, especially since I have stumbled onto some nice byproducts along the way
This little diddy was inspired by Ralph Hauert’s beautiful Bloom animation.
Try moving your mouse and clicking every once in a while
I sat down again to update my ActionScript L-system renderer so that it can use multiple rules and new characters.
Next, I fiddled around a bit with axioms, rules and angles and came up with some pretty cool new curves (if I may say so myself). Check them out below.
I’ve also added the renderer application, if you run it you can play around with the curves (controls are listed at the bottom of the app). If it is too slow, please decrease the number of iterations or resize the window to be smaller.
If you’ve ever felt the urge to draw plant roots, now’s your chance!
Placebo has released a new single called “The Never-Ending Why”, which is accompanied by a fantastic music video, created by Champagne Valentine.
We at Random were asked to help in the creation of an interactive video to go alongside the linear video.
After a lot of hard work, the result turned out, if we may say so ourselves, amazingly cool!
Check out the linear video here, and try the interactive here.
I’ve been wanting to do this for a while, but never got around to figuring out how. Until now.
With the help of this post I created a simple but very effective random lightning generator in ActionScript 3.
I was surprised at the simplicity of it, and the clear explanation on drilian.com helped a lot.
So here it is: the lightning generator.
EDIT: per request I’ve put the source files online. Download here.
A long while ago I wrote a small Flex application to draw L-systems (post).
With this app I noticed how cool it is to play around with drawing angles by moving the slider (post #2).
But somehow, I never thought of adding a play button to the slider so it plays it as an animation.
So now I did. Well, no play button, but just an animation. Here it is. Please enjoy.
Note: after clicking once, you can use the + and – keys to speed it up or slow it down
Have you ever had the problem that, when opening the HTML that displays your Flash movie in the browser, all the stuff that is on stage i not positioned correctly?
I have. I encountered this problem with Firefox, when I noticed that objects were not centered on stage while this was the case when I ran the swf standalone or in Safari.
I managed to isolate the problem, and it turned out that what caused it was setting stage.scaleMode to StageScaleMode.NO_SCALE. After doing that, the stageWidth and stageHeight property values changed to zero.
It turned out that this could be solved by not implementing swfobject, but I didn’t want that, so I found a workaround in AS3.
To hack around this problem, I check the stageWidth and stageHeight values to see if either equals 0, and if so, I register a resize event listener, because I found that although the values become zero in Firefox, a resize event is also immediately dispatched after this. So setting a listener for this event and initializing the application inside the handler method solved my problem! Of course, you also want to trigger the handler manually in case there’s no bug, so I just call it directly if neither stageWidth or stageHeight equals 0.
Simple, huh? I know it’s a hack and I’d rather not need it, but at least my application behaves like I want it to now
Here’s the code:
public function Application()
{
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
if (stage.stageWidth == 0 || stage.stageHeight == 0)
{
stage.addEventListener(Event.RESIZE, handleStageResize);
}
else
{
handleStageResize();
}
}
private function handleStageResize(event : Event = null) : void
{
stage.removeEventListener(Event.RESIZE, handleStageResize);
// initialize application here
}