Thursday, 21 March 2013

Collected - to develop #2

More - a collection of software and code related things.

Software environments
Blocky by Google
ModKit
Scratch
Learn Scratch
Live Code by runrev
ifttt
Lego Mindstormers
Video about Hypercard archive.org video
Hypercard.org Great Hypercard resource inc. additional stacks

 

Code - how to, resources and other
Code Academy
Golan Courses - on github
Python.org wiki
Paul Dourish Goodies - see Manifesto for Futurist Programmers & the Original Jargon file
Learnable Programming - Bret Victor
Worrydream.com - Bret Victor
Inventing on Principle (video) Bret Victor

Collected - to develop #1

Just a few things I've traversed in the last day or two (in no particular order). It's been fun following links and threads and I'm hoping to spend more time reading, thinking and doing in relation to them..

Banff Centre
Euphoria and Dystopia by Cook and Graham (Banff Pub.)
runme.org
readme100 book
Computer Lib/ Dream Machines by Ted Nelson
Computer Lib book sample
Project Xanadu by Ted Nelson
Project Xanadu - Wikipedia
Whole Earth Catalogue - Wikipedia by Stewart Brand
Simon Penny Website - Thanks Ian!
Posthumanist Performativity: Toward an Understanding of
How Matter Comes to Matter
by Karen Barad
Hype Cycles
Perl, the first post modern computer language by Larry Wall
Larry Wall about page
NewMediaReader Chapters
NewMediaReader site + extras
technological debris conference

Tuesday, 12 March 2013

Pixel Play

In 'Pixel' Graham Harwood writes of 'constructed seeing' and of our preoccupation with splitting light into it's constituent parts and shifting it from one place to another - present day development in technology for rendering, resolution and saving can be traced back to Newton's Prism and Filippo Brunelleschi's formulation of perspective - 'the quantification of vision resulting in the pixel' (pp 214).
Brunelleschi is said to have demonstrated the principle of perspective by placing a net over a door of the Florentine Cathedral and painting the Baptistry visible from it, using the grid that the net formed to trace interscting lines and paint sample blocks of light (from a central point). This principle is traced through to a Modern context and our relationship with (and consumption of) the image in the following quote.

"The algorithm to render perspective relies on the fact that light normally propagates along straight lines. We can therefore work out, for any object in space, which light rays from its surface will reach a given point. This knowledge allows anyone who learns the method to achieve a repeatable result. In addition to showing how lines of light radiate from objects, perspective sets up rules by which they can be shown to converge at a point. In this way it creates the position of a witness outside the frame of the picture, a position by which the scene can be interrogated. This position can only be occupied by a mechanism or person endowed with the correct procedures of interpretation. Such a systematization of sight sets in play a skepticism of non-verifiable personal perception. It sets up a mechanics of vision relying on self-correction and verification: logical procedures employed in today’s seeing machines. With the dual—and not entirely uncontradictory—ascents of science and capitalism as explanatory and organizing principles, picturing, with its inheritance from perspective has tended to become synonymous with possession." (pp 214)


More on this later...

Perspective is an interesting subject. This image illustrates how Brunelleschi demonstrated the principle.

Brunalleschi-duomo


The video below narrates the story in more detail, providing some context for the image above (view from 19.56 min):



Note: The perspective grid is attributed to Leon Alberti (24.45 min) - it gets interesting when this system is analysed and you relate it to the points Harwood makes above.

I had the idea that I would get the computer to 'paint' the Baptistry using a grid... not for proportion or lines but just to play with the idea of 'quantification of vision' and resolution i.e if you were to paint the scene with the aid of a grid it would not be calibrated to the size of a pixel and the colour you painted with would likewise be more loosely defined. The initial result was obviously disappointing - just pixelated, but once I piped in some variables to incrementally increase the pixel sample size and colour this sample with the average colour value taken from it, things got interesting:

Baptistry Grid .mov

Reference:
'Pixel' by G.Harwood in 'Software Studies\ A Lexicon' (2008), Ed. M.Fuller, MIT Press, London (pp 213 - 217)

Monday, 11 March 2013

Photoshop Hack

Have decided that I have to get more proficient at posting, less finessing - just get it down! Here we go...

I have set up a little site to show practical things I am doing: thinkering.co.uk. I decided that it should be very minimal - no descriptions just display, similar to a gallery perhaps. It will contain experiments conducted in relation to my research as well as any other bits I get up to. I'm hoping to add historical content too, so it will be a bit of a biography.

A few ideas have surfaced over the last few weeks. Mainly in relation to the 'Inside Photoshop' article I read by Lev Manovich as well as 'Pixel' (in Software Studies a Lexicon) by Graham Harwood.
More in-depth info relating to LM article available here: Inside Photoshop

LM's schemes divide media specific techniques into two parts:
1. Augmented simulation of the pre-digital and
2. New computational techniques that have 'no obvious equivalents in previous physical or electronic media'

He states that automation is a key feature when considering the above, though makes a distinction between high level automation (algorithms) - a new computational technique and 'low level automation' (algorithms that links users/ ui/ tools/ outcomes which must be manipulated manually) - augmented simulation etc...interesting.

This made me wonder if it was possible to set the two schemes in motion, against each other within Photoshop (PS), the idea being that a traditional manually manipulated technique/tool would be put in the hands of an algorithm. i.e high level automation subverts manual manipulation of the augmented pre-digital technique.
This idea was in part inspired by John Hilliards 'Camera recording it's Own Condition' (1971).

Camera Recording its Own Condition (7 Apertures, 10 Speeds, 2 Mirrors) 1971 by John Hilliard born 1945

It is possible to run and write useful scripts for PS to automate tasks, such as batching and resizing etc. but I wasn't sure how accessible this would be - turns out it's fairly straightforward, though not brilliantly supported IMO. As well as writing scripts yourself from scratch, you can set up a listener for the Actions panel (move scripting plugin from Applications>PS>Plug-ins>Scripting>Utilities to Plug-ins>Automate) to capture functions and then rework these by accessing the script listener log file that is produced as a result.

Anyway, found that Adobe have Extendscript Toolkit utility for writing functions and that this can be done in JScript. Adobe also ships with reference/ guide for doing this (a bit basic).

Useful info on scripting PS found on WWW include:
Adobe Devnet PS Scripting - documentation etc.
Russell Browns Scripts - Dr Brown, very good with downloadable scripts
Morris Photographics - simple explainations
PS-Scripts Forum - useful forum (a lot aren't!)
Kirupa Tutorial
Adobe TV meets Dr Brown for Scripts

Summary of outcomes
It was good to get stuck in finally and the results weren't bad, the best of which is this Pallet knife filter. The filter was scripted to run 500 times and then compiled into a contact sheet. I quite like the fact that to begin, the manual manipulation is obvious and measured but before too long, the automation produces a blurry blue-green moire which creeps across the image - frames combined and exported as a GIF show how this grows. Other examples in this set show simple simulated photo-correction procedures (colour balance, levels etc.) automated, with larger examples showing some interesting abstractions that resulted.