I’ve always loved gradients. Either computer generated or in nature.

Gradient Disk

Here’s the SWF of the image above with the gradients rotating around in opposite directions.

package {
	import flash.display.Sprite;
	import flash.display.GradientType;
	import flash.geom.Matrix;
	import flash.utils.Timer;
	import flash.events.TimerEvent;

	[SWF( width="550", height="890" )]
	public class GradientDisk extends Sprite {

		private var _tic				: Timer;
		private var _rotationBG			: Number = Math.PI / 2;
		private var _rotationDisk		: Number = -Math.PI / 2;

		private var _bg:Sprite;

		private var _disk:Sprite;

		public function GradientDisk() {
			_bg = new Sprite();
			this.addChild( _bg );

			_disk = new Sprite();
			this.addChild( _disk );

			draw();

			_tic = new Timer( 33 );
			_tic.addEventListener( TimerEvent.TIMER, onTic );
			_tic.start();
		}

		private function draw():void {
			var matrixBG : Matrix = new Matrix();
			matrixBG.createGradientBox( 890, 890, _rotationBG, 0, 0 );

			_bg.graphics.beginGradientFill(
				GradientType.LINEAR,
				[ 0x0000FF, 0xFF0000 ],
				[ 1, 1 ],
				[ 0, 255 ],
				matrixBG );
			_bg.graphics.drawRect( 0, 0, 550, 890 );

			var matrixDisk : Matrix = new Matrix();
			matrixDisk.createGradientBox( 250, 250, _rotationDisk, 0, 0 );

			_disk.graphics.beginGradientFill(
				GradientType.LINEAR,
				[ 0x0000FF, 0xFF0000 ],
				[ 1, 1 ],
				[ 0, 255 ],
				matrixDisk );
			_disk.graphics.drawCircle( 125, 125, 125 );
			_disk.x = ( 550 - 250 ) / 2;
			_disk.y = ( 890 - 250 ) / 2;
		}

		private function onTic( e:TimerEvent ) : void {
			_rotationBG += 0.003;
			_rotationDisk -= 0.003;
			draw();
		}
	}
}

Speaking of gradients: here's one of my favorite photos Geometria Sfumatura taken in la'Aquila, Italy.

Geometria Sfumatura

What do you think?