Hi everybody! While I've really enjoyed my time here on Blogger, I've been really thinking about moving on over to WordPress. Also, it's become very apparent that a 100% Flash site is NOT the way to go, and so www.coreyscallahan.com has been merged into what this blog was.
In short, the new It Doesn't Have to DO Anything will still be the place I post new, random Flash doodles, but you'll also find a highlight reel of sorts showcasing my favorite entries from this blog, as well as a few other projects I've done.
So enjoy the new and improved site! And so long, Blogger!
Wednesday, April 27, 2011
Wednesday, April 20, 2011
Zounds!
Large version (recommended).
This here's my step into the wonderful world of sound visualizations! What you're seeing is basically the raw data of an .mp3 file. You've probably seen waveforms like this:
This is using the exact same type of data. Basically, each little "slice" of the waveform is a value between 1 and -1. That value is then amplified (if we didn't, the visualization would just look like a little cluster in the center of the screen) and then positioned based on the sin and cos of that value. Imagine a sound wave like the above, but curled around into a circle - that's what this is!
I'm also using the BitmapData object in Flash, which is a very nifty tool to check out. With it, many advanced effects can be created (such as the more detailed glow seen above). Anywho, hope you enjoy!
By the way, my song choice in this was something I dwelled on for a bit. Certain sounds show up much better in the visualization. Specifically, simple songs with long, constant tones, seem to show very cool geometric patterns. Louder, multi-layered songs tend to cause such complex waveforms that the visualization winds up looking like static. I'm particularly happy with the 6th song above ("Don't Let Us Get Sick" by Warren Zevon).
Wednesday, March 30, 2011
Twinkle
Large version. (note that this is the same size but it will load in its own window)
Nope, I don't really know what this is either. I've just been sorta "doodling" out little things in Flash lately. This was going to be a checkerboard style grid of blocks that would grow and shrink randomly. I finished that up, but felt I'd push it in a slightly...blurrier direction. Not that the first thing didn't look cool, but I think this result is more indicative of what the program wanted to be in the first place.
Also note that the colorization is random every time (though one checkerboard grid will always be a shade of blue - I'm not sure why I chose to do that, but I think it has something to do with wanting SOME standardization to it).
Enjoy!
Monday, March 21, 2011
Scraps
Large version.
Sometimes I randomly poke around on my external drives and find little scrap bits of projects I started and never finished. Or maybe they were just little bits that I didn't find interesting enough to post up on the blog. This was one of those measly little bits that caught my eye the other day. I spent a little time polishing it up - it's still nothing mind-shattering, but hey...it's something! It's GOOD to create!
Anywho, stick around and watch it - it will clear itself once the boxes reach the top. Oh, and if you're lucky, you may even be greeted by a special someone! OOH! Marvelous!
Saturday, February 26, 2011
Monday, January 3, 2011
Sunday, January 2, 2011
Glowy!
Large version.
The blog lives yet! I suppose. Well, this does a whole lotta nuffin', but I think it looks pretty nifty.
Click anywhere in the .swf to swap out a new random set of glowing bars.
Tuesday, November 9, 2010
It's Alive!
Large version (opens in a new window)
It's alive! The blog, that is. After a long absence from the blogosphere (Ooh, how Web 2.0 of me!), the urge to program a wonderful little "do nothing" has overcome me. So here you have the very earliest skeleton of a virtual ecosystem. It's not much yet; mainly just little digital Roombas sucking up bits of "food" in order to survive.
At this point, we've got some slight randomization of body size (which determines how fast energy depletes), random move speed and turn times, and random lines of sight. I'm really hoping this turns into a fun little thriving ecosystem with births, species shifting, and a rudimentary idea of how natural selection works. That little countdown on each green harvester is how much energy it has left. The food replenishes itself every couple of seconds and it provides a random amount of energy to the harvesters based on size. You can click the blue "Add Harvester" button to throw another random harvester into the mix.
Inspiration came from a few things, but foremost in my mind is Larry Marder's "Beanworld", with its simple yet charming circle of life. Well, here's hoping this little nugget turns into something fun to watch!
Thursday, June 17, 2010
More Doodling...
Large version.
Hrm...
EDIT: How interesting! Originally the boxes were getting stuck halfway down the screen. They are meant to check if they're at the stage's height (though I did account for the height of the box). In this case, the stage is 600 px high. But the embedded .swf is resized to 400 x 300. The .swf seems to have gotten its bounds set as 400 x 300, but still saw half the .swf height as...300!? Bizarre! Easily fixed with hardcoding the y>600, though.
Tuesday, June 15, 2010
Sunday, June 13, 2010
Alternate Tribes
Full version.
Here's an alternate version of the Tribes piece. Different music, the tribe members now smile as they play louder, and an issue was fixed where if you grabbed a tribe member when it was in the center, it was possible to have him get "stuck" on your cursor. This was due to the fact that a shrinking tribe member could potentially get away from your mouse cursor. No contact with the cursor means no mouse release!
On a side note, I'm more than happy to make more alternate versions if people have suggestions or want to submit 8-16 track compositions (in .wav format if you please).
“What should young people do with their lives today? Many things, obviously. But the most daring thing is to create stable communities in which the terrible disease of loneliness can be cured.” - Kurt Vonnegut
Saturday, June 12, 2010
Tribes
Full version.
Well, I've been tweaking and tweaking this thing. Here's my first acceptable version of it. This is essentially a little piece influenced by some recent conversations I've had about music and and culture differences. The original idea was to have 4 "tribes" each playing a very definite style of music. On their own, they sound wonderful - but even as each tribe intermingles with other tribes, the music STILL sounds good! Now unfortunately, I'm at the mercy of Apple's built-in GarageBand loops as my own musical skills are, while existant, not up-to-par for a project like this. However, I do plan on revisiting this and tweaking the music. For now, though, enjoy the festive sounds of Latin Music!
Friday, June 4, 2010
Faux-3D Wire Sculptures
Large version.
CLICK FOR A NEW CONFIGURATION
Okay, I'm revisiting the curves again. Through a bit of an accident, I managed to create a faux-3D effect using some trig. What's going on is similar to the last curves expriment, only this time we're not randomizing the movement. Also, we're only moving points on the X-axis. Those points are moved by a sin of a steadily increasing number (.01 - interestingly, .1 created jittering line segments and .001 caused the figure to warp on the X-axis).
So WHY does it look 3D? I believe it has something to do with the sine wave having a pretty up close and personal relationship with the circle. Check this out for a graphic that illustrates this in 3D.
I also slapped on a minimal drop shadow to give the lines some depth.
Overall, I'm happy with this little mistake!
Thursday, June 3, 2010
Saxomophoooooone....saxomophooooone...
Large version.
I've been playing with the microphone. This is the "rough" version of what I want to do, and I expect the final to be quite different. So, enjoy! Make sure you have your microphone on - Otherwise, this would be rather boring...
What we're doing here is having Flash interface with a microphone connected to the computer - it listens at the framerate (in this case, 31 frames per second) for external sounds. If it detects anything, it reads back a value greater than 0. By the way, -1 seems to be an inactive microphone, 0 is detecting no sound, and 1-100 is the sound level detected.
Every frame, if we DO hear a sound, a circle is added to the stage which fades at a rapid rate, leaving a glowing impression on a BitmapData field. Adding a little more to it, louder sounds (which return larger activityLevel values) will generate larger circles. If the sound is over 1, we also swap out the color of the glows.
So enjoy! Remember - turn your mic on!
Monday, May 31, 2010
can't let that glow go
I am absolutely falling in love with the BitmapData glow!
If the above is running a little slow, check out the large version in its own window here.
OR
Download the .swf itself here.
If interactivity is more your thing, check out the clickable version here. The standalone .swf is here.
The reason I'm offering so many options is that yes, these ARE a little intensive on your computer. But when they flow smoothly, boy are they fun to watch...at least, I think so! Enjoy!
Saturday, May 29, 2010
I've been playing with curves...
Specifically, I've been playing with how to animate curves and keep them random but smooth. This here's my second version. The original is below. A little less trippy...or at least a different trippy.
OH, by the way. Click the above to change the color of the glow. Some glows are more powerful than others, so if you don't see much of a glow...click!
The bulk of this is done by connecting an array of points with Flash's curveTo function and then then slightly changing the curve values every frame. The top was made with a BitmapData field over the top to give that glow effect (see 2 posts ago). As for the non-glowing version, I simply told the curves to fill in with a color. Since the points are intersecting all sorts of wobbly angles, you'll have some "negative" areas that won't be filled in, generating a nifty little checkerboard effect.
UPDATE: Looking at this little project the day after the fact reminds me why I love doing this so much. I put a VERY slight offset in the curve points that are randomized. The curves work wonderfully to show how a small change can have a large impact. If the initial offset was too large, you'd see the curves jitter as they scramble to their new random point. With no offset, the curves would essentially loop indefinitely in the same pattern (I'm using sin to loop). This tiny tiny offset adds upon itself, so once through the sin period, it has altered ever so slightly. Given that there are....I think 50? points on each glob of curves, that winds making a whole new pattern EVERY time it cycles through! The odds of getting the same exact curve are next to nothing! Add to that the fact that there are really 3 individual continuous curve globs and you really won't see the same thing twice...fun!
Friday, May 28, 2010
Perlin Noise
Okay, so messing about with BitmapData inevitably led to learning about Perlin Noise. Named for Ken Perlin, a VFX fellow, it is used to procedurally generate textures in an organic way. I'm still trying to wrap my head around how exactly to use it, but the above is my first baby step into transforming a Perlin field...next step is to apply that field to something else!
Thursday, May 27, 2010
Sparklies!
No large version.
Okay, so thanks to this, I feel I've gained a little knowledge in the world of the BitmapData class in Flash. And good god...if you want some absolutely stunning effects, learn more about it! What we've got here is essentially a Bitmap (literally a...map of bits...) that is showing off its pixel data (naughty!). Since this data is now available to us, we can manipulate it however we'd like. In this case, we're putting a little glow and blur filters on it. HOWEVER...the Bitmap that we've drawn on the stage is a solid rectangle. So why does that glow appear inside this rectangle?
Enter the "draw" method of the BitmapData. See those little flickery particles? Those act as "holes" in the BitmapData. Every frame, Flash is redrawing that initial rectangle and taking a peek at what it looks like. If we have one of our particles over the rectangle, that rectangle isn't visible where the particle exists. So, as far as Flash is concerned there's nothing there. So we get a hole...a hole that can have a blur and glow filter applied to it! Nifty!
Tuesday, May 25, 2010
It's almost like a fortune cookie...
Large version - highly recommended.
Whee! Twitter API AWAY! I've spent a little while now trying to get an understanding of the Twitter API and integrating it with Flash. Turns out there are some nice resources out there on how to get it running, but the thing that gave me the most difficulty was learning how to deal with the incoming data (which is in the form of an Atom feed with the Search API).
So...enjoy!
Friday, May 21, 2010
Remember Populous?
Large.
Man, Populous was fun...
Anywho, what we have here is a fun little world-building tool in an isometric view. Simply grab your parcel of land, and drag up and down to bring it up or down. While that panel is highlighted, use keys 1-8 on your keyboard to swap out different types of land.
The wonderful thing about this, is how easy it is to change. I went with a Green Hill Zone from Sonic the Hedgehog for the design...because...well, it lent itself to it, I guess. Or maybe Sonic 3D Blast really got wedged deep into my brain.
Anyway, changing. If you want more land types, it's easy! I just need to draw it in an isometric view. No programming changes or anything. We could even adapt the programming to use multiple tilesets (say we allow the number keys to now change the FAMILY of tile, and repeated presses will cycle through different panels of that family).
So, have fun. Build things!
Subscribe to:
Posts (Atom)





