Fractal Feedback, a diversion into recreational programming

colorpic: a nice tool

What does a microIsv guy do when he's not sailing his yacht and/or yachts?

He indulges in recreational programming!

So, the back story is that I was using ColorPic, one of those nifty little tools you use for screen-scraping the color of a pixel, when I noticed that by abusing it's normal usage, it could be turned into a fractal generator.

ColorPic magnifies a small portion of the screen (wherever you point your mouse). But check out the recursion of that idea, baby.

If you mouse over the part of the screen that displays where you've moved your mouse... incredible things happen! Time folds back on itself, wormholes of destiny send ripples across the sea of causality, and, with a bit of luck and just the right settings you can produce Sierpinski like patterns.


(Still images do these things no justice. They are growing shapes that respond to your movement. The optimal settings are '2 * magnification' with grid turned on.)

wave filter with blur filter

I wanted to experiment further, so I created an application (eventually a fleet of applications) using "Good Old" Windows Forms.

After tinkering for a few nights I had 4 applications that give 4 variations on the feedback theme.

I've open-sourced the code and the executables through CodePlex.

The applications are:

1. FractalFeedback

The first app lets you change the parameters that are used for the feedback, by entering values into a windows form.

2. Magnifier

The next app uses a slightly transparent form to produce a somewhat ghostly feedback effect.

3. PythonFeedback

As the name suggests, PythonFeedback lets you write python scripts that modify the parameters used for the feedback. A creative python dev (*cough*) could do wonders with this program, or variations on it.

4. FilterFeedback

This app lets you use an open-source library of text filters, AForge, for applying various types of rendering details.


Each of these taught me different techniques that I hadn't applied before, and if you give them a go you might have some fun too.

The AForge library was particularly cool, as it has filters for doing a lot of image filtering that you may need to automate at times. If I have a project where I need to clean up or modify images in any way, I'll reach for AForge.

So if you've got time for some "recreational programming" (or even if you don't...) download the fracBack code or binaries, and see what you can produce.

I've put a small image gallery online. If you create any interesting pics, please share

Oh, and any code I've released is of 'recreational quality' which is... well imagine how bad typical 'Enterprise' code is... then divide that by ten. Seriously. It's that bad.

And lastly, it's great to see how far CodePlex has come in the last few years. I gave up on them several years back, and used 'code.google' in the interim, but CodePlex has come a long way. We put the TimeSnapper plugins at CodePlex, to test the waters, and found it much improved. What impresses me most is that the mercurial support they now offer is not just a bridge to TFS, but is actual mercurial hosting.

Summary: Recreational programming. Love it.

 

I'm currently writing a book about how to build your first product. If you want to build your first product, please sign up to be notified when the book is available.

(By the way, I read every comment and often respond.)

Your comment, please?

Your Name
Your Url (optional)
Note: I may edit, reuse or delete your comment. Don't be mean.