[NetBehaviour] dbCinema series: Notre Dame Cathedral

Jim Andrews jim at vispo.com
Sun Feb 14 09:05:28 CET 2010

Notre Dame Cathedral

this series of 54 images (as usual, 1280x1024--that's my monitor's res) uses 
images from a google image search of "notre dame cathedral".

this series is more represenentational than the previous ones. the brush is 
still a long rectangle, but it's a bit thicker. and the 'delaytime', the 
amount of time it takes to use another image, is a bit greater, so it 
lingers over each image of notre dame cathedral a bit more than it lingered 
over the images in the previous (abstract) series. the image sampling is a 
bit greater both in duration and area.

it's interesting to work with architectural photos in dbCinema. if 
configured appropriately, you get imaginary architectures out of it.

at this point in the development of dbCinema, there was only one type of 
brush: the 'Vector' brush. and there was only one 'nib' for the brush: a 
retangle that's configurable in length, width, opacity, and rotation speed. 
a brush is a mask. in the photoshop sense. a mask is a greyscale image 
through which we see other images. and the greyscale of the mask establishes 
alpha or opacity levels of what we see through the mask. where the mask is 
black, the image we see through the mask is totally opaque. where the mask 
is grey, the image we see through the mask is somewhat transparent.

in dbCinema, the outline of the 'Vector' brush is a vector image. the fill 
of the mask can be solid or a gradient or no fill at all.

playing with opacity is important in generative art if you want to do 
something other than the usual. in dbCinema, masks can have variable opacity 
and also dynamic opacity.

there were only a couple of 'geometries' at this point, also. in dbCinema, a 
brush's geometry is the path the brush follows around the screen. i'd been 
surfing the net for exotic curves. my friend marko niemi the finnish poet 
programmer and fellow hockey fan pointed out the equation of what i ended up 
referring to as the 'rose' geometry:

x=Xradius * cos(Xk1 * CurrentTheta) * cos(Xk2 * CurrentTheta)
y=Yradius * cos(Yk3 * CurrentTheta) * sin(Yk4 * CurrentTheta)

this sort of exotic curve is great for use in apps where you're moving 
something around a screen. cuz it stays on the screen, for one thing. and 
the motion can be quite complex, like a hand scrawl, or it can be very 
orderly, as in a three-petalled ovoid.

Xradius is the radius of the thing measured from the center of the screen to 
the horizontal edge of the geometry.
Yradius is similar only in the Y direction. so adjusting these two constants 
lets you determine how much of the screen the 'drawing' occupies.

these stay fixed unless the user adjusts them.

CurrentTheta is the variable. this gets incremented each frame of the movie. 
the greater the increment, the faster and farther the brush moves.

Xk1, Xk2, Xk3, and Xk4 are all constants. small adjustments in these can 
make for large variations in the look of the resulting figure.


More information about the NetBehaviour mailing list