Debris Visual Art by Brennan Underwood

aboutdownloadsample imagestweaking guidelinks to related thingsforumdev log


sample image

about

Debris Visual Art (Debris for short) is an art piece I'm working on. It is a virtual surrealistic automatic painting that develops over time and is constantly, slowly, unpredictably shifting. It never repeats itself and never stops changing.

It's nice to watch while you're thinking. Especially in contemplative states of mind. It can sometimes introduce a certain essential randomness conducive to creative thought. It's also a decent screensaver. It would also work well in a dedicated LCD picture frame, I expect.

Debris is copyright 2001-2008 Brennan Underwood.

discussion forum

As of June 2005, there is now a discussion forum for any and all things Debris Visual Art-related.

download and installation

Download the installer somewhere and run it. This will install the program into your Start menu and also make it available as a screensaver you can select.

Once it's installed go into your Start menu and run the program. You'll see the canvas pop up. If you wait a little bit images will start to appear within the painting. Go ahead and leave it running for as long or as little as you like. Debris will remember your painting and all settings inbetween runs. Try to give it as much time as you can, because it takes a while for the "painting" to develop from the chaos, so don't worry if it looks kinda crappy at first. It will improve over time.

You can right-click for options, or double click for fullscreen mode.

WARNING: Debris works with random images from the Internet. This means you can and will get anything coming up, including pornography and who knows what else. Definitely NSFW (not safe for work). Note you can clear the canvas by right-clicking on it and selecting "Clear".

(You can also drag and drop image files onto the window.)

sample images

Note that these are huge images! If you don't have a fast connection, start with the detail image or the "classics".

The "classics" ;)

These are from before the first public version. They are pretty representative of what a Debris image can be. I made some framed prints from them. They came out well.
image 1270x950 jpg
image 1270x950 jpg
image 1270x950 jpg

from the current version

702k 1132x312 detail PNG:

full-size 8.5 Mb 3840x1200 PNG:


Click here for more sample images!

tweaking guide

This is fairly rough and out-of-date. Sorry. These are roughly in the order you might read them in the control panel.

"image download url"Here you select where source images come from. You can select from the dropdown or enter in your own URL.
"UserAgent"Um... Just in case.
"url ban keywords"Every word in this will be matched against incoming image URLs. If they match anywhere, the image URL will be discarded. Does not affect images that have already been downloaded. Words must be at least 3 letters long.
"files to keep in image cache"How many image files to try to keep on hand.
"clean edges"TRUE = apply a "magic wand" fill to the corners of the image.
"clean edge tolerance"The "magic" param for the fill. 0.0-1.0
"edge smooth level"How many pixels deep should the edges be blended
"double canvas width"Makes a double-width canvas. Takes effect on next Clear.
"double canvas height"Makes a double-height canvas. Takes effect on next Clear.
"fullscreen to all monitors"Just what it says. Combine with "double canvas width" if you have a dualmon setup.
"n add obj"How many objects to introduce into the placement hopper each round. The winner will be placed into the scene.
"keep in hopper iters"How many rounds to keep losing objects in the hopper.
"kill spensive"TRUE = kill the least-fitting object this round (instead of the oldest)
"spensive by avg"TRUE = calculate spensiveness in a size-independent manner
"lock first image"TRUE = never ever remove first object added after a clear
"kill oldest chance"0-100. This percentage of the time, the oldest object will be culled even if "kill spensive" is TRUE.
"kill from oldest %"0-100. If >0, then when killing oldest (but not when kill oldest chance hits) the oldest will be selected randomly from the oldest in this range (i.e. oldest 25%). 0 means, always select very oldest
"no kill window"For this many rounds, immediately after it is placed, an object is safe from any type of culling.
"culls per add"Any time we have too many objects (see "maxobj" and "max levels") cull as many as this many objects. Should be >0.
"maxobj"If using maxobj (see "use levels instead of maxobj"), then cull up to "culls per add" images to try to reduce us to this level.
"use levels instead of maxobj"TRUE = use "max levels" criteria instead of "maxobj"
"max levels"The cull function will attempt to maintain this many levels of coinciding objects
"Max CPU use"The percentage of CPU the placement AI will try to use. Note the rest of the program will use as much as it needs at the time
"Lower CPU use"The percentage CPU placement AI will use, if user has selected "Lower CPU usage" from the context (right-click) menu.
"go faster"Gives the placement AI half the time to work, so you see changes twice as fast.
"canvas color"RGB color specified like a webpage, like #a0a000 for yellow.
"contrast"0..50. How much contrast to apply to the final image. Like a monitor's contrast knob.
"saturation boost"-100..100. Color boost tweak. -100 is grayscale and 100 is bad trip.
"mystery mode"This controls the effect that blends the scene into the canvas. If you turn it off, it saves some CPU.
"mystery depth"0..100. How far should the canvas blending encroach.
"mystery alpha"0..255. Alpha level to use to blend the mystery buffer onto the output buffer.
"highlight changes"TRUE = green and red rectangles will appear outlining scene changes between frames.
"post process"TRUE = cleans up image noise a bit.
"postproc cutoff"0..1. How aggressively to look for noise.
"frame transition time"How many ms to spend crossfading between frames.

links to related things


site top