Archive for August, 2008

08 Widget

Has anyone been having problems downloading files from the widget on my blog?
Please let me know if so.


Well, from the replies so far, it’s… inconclusive.
Seems it works fine for some, but not for all. I’ll keep adding things to the widget, but any major releases I’ll also add to Memo’s QC archive. Just give me a shout in the comments for a particular post if you need to download something and can’t get to it for some reason.


Iterative CIFilter

Just discovered it’s possible to apply an effect iteratively in a CIKernel, by editing the JavaScript filter function. I’m going to have some fun with iterative glitching effects, I think!

This code simply applies a color addition on each pass, so if you feed in a black image, and set Color to a dark grey, the color of the output image get pregressively lighter as you turn up the number of Iterations.

Kernel Code:

kernel vec4 additionEffect(sampler image, __color Color)
	return sample(image, samplerCoord(image)) + Color;

JavaScript from bottom panel (with ‘Edit Filter Function’ option turned on):
function __image main(__image image, __color Color, __index Iterations) {

var result = additionEffect.apply(image.definition, null, image, Color);

for(i = 0; i < Iterations; i++) { result = additionEffect.apply(result.definition, null, result, Color); } return result; }[/code] You could iteratively apply some kind of distortion effect, using different values for each pass using the same method. You could even use the JS Math.random() function to to randomise the values being sent to each iteration of you CIKernel function, for added glitchy fun. Sadly I don't have time to play with this at the moment, but I can see some cool implementations, including maybe the possibility of doing something like this in a single CIFilter.


Nice one Hob

tb SphericalHarmonics again.

Nice tune too. It’s ‘Vamp’ by Trentemøller, apparently.


Spherical Harmonics in Action Again

choenyi vs The Moon Foetus: Silver Dollar
Video by Scott Furr

I posted some screenshots from this video a while back. Well, the finished piece has now finally been released. Very nice it is too, and it features an early pre-release version of my Spherical Harmonics QTZ that Scott modified to allow an input image to be mapped onto the surface of the mesh. I’ve since added that feature to the release version.

I’ve swapped the original YouTube video for a vimeo version of much better quality.


Debugging Macro

I’ve just created a little macro that’s really handy for debugging.
It’s basically 3 billboards, one displays a string, a second displays a coloured square, while the third display an image.

Very simple. Very handy for debugging, though (particularly as QC’s patches don’t output a value unless they’re connected to something).

I’ve made a clip of it for future use.


Minor JS String Variation

Variation on a theme: String wipe effect where each character appears as a random ascii char.

Inserts random character at specified position in string,
and sets subsequent characters to blank.

toneburst 2008

function (__string outputString, __structure outputStruct) main (__string inputString, __number Position)
	// Initialise vars
	var result = new Object();
	var outString = "";
	var outArray = new Array();
	if(!_testMode) {
		// Set character count to length of string
		var chars = inputString.length;

		// Set threshold start position for character randomisation
		var wipePos = Math.floor(Position * chars);
		// Loop through characters
		for (i = 0; i < chars; i++) {
			// Generate random number in 65 > 122 range
			var rand = Math.random() * 57 + 65;
			// Accumulate outString by picking from inputString, space character or random ASCII character
			var char;
			if (i < wipePos) {
				// Current char is less than threshold wipe position
				char = inputString.charAt(i);
			} else if (i > wipePos) {
				// Current char is more than threshold wipe position
				char = " ";
			} else {
				// Current char is at threshold wipe position in input string
				// so character will be randomised
				char = String.fromCharCode(rand);
			outString += char;
			// Set output array at index i
			outArray[i] = char;

	// Set output string + struct
	result.outputString = outString;
	result.outputStruct = outArray;
	// Output
	return result;

Updated version of the QTZ uploaded to the Box widget.
‘tb JS-ASCII Demos 1.0.4’


August 2008


Blog Stats

  • 493,214 hits