Slit Scanning

Made by Amber Jones

Created: November 7th, 2014



 The idea behind my work was to create an artistic piece by using technical forms of composition. For my project, I decided to use the technique of slit scanning, a cinematographic process that involves cutting a slit out of a moveable slide, which is then inserted between the camera and the scene to be photographed. This technique was most notably used in (and originally adapted for) Stanley Kubrick’s 2001: A Space Odyssey (1968) during the star gate sequence in which the main character Dr. David Bowman gets pulled into a time warp which takes him through his life and death. I wanted to use slit scanning as my most prominent technique in the process of creating my composition because I feel like it is one of the cooler, lesser-known techniques used before the digitalization of special effects. I decided to replicate the intense bursts of color and pattern seen in that scene, but while applying them to a more geometric, perspective-heavy form.




Because I have absolutely no experience in cinematography, and the fact that had the constraint on our project that it must be created digitally, I decided to experiment with slit scanning through Processing, a programming language developed for electronic art/media. 


Capture cam;
int X=0;
boolean b_newFrame  = false;  // fresh-frame flag

void setup() {
  size(1280, 780);

  String[] cameras = Capture.list();
  if (cameras.length == 0) {
    println("There are no cameras available for capture.");
  } else {
    println("Available cameras:");
    for (int i = 0; i < cameras.length; i++) {
    // The camera can be initialized directly using an 
    // element from the array returned by list():
    cam = new Capture(this, cameras[0]);
public void captureEvent(Capture cam) {;
  b_newFrame = true;

void draw() {
  if (b_newFrame) { //For every frame of live video
    int slice_mask = (width*height/2)-width; //Subtracts everything above the middle row of pixels from the selection
    for (int i = slice_mask; i < (width*height)/2; i++) { //For each individual pixel in the middle row of pixels in the video
      int sliceDestination = i - slice_mask; //Pixels  will copied to the top row of the canvas
      int sliceSource = i; //Pixels will be copied from the center row of the video
      pixels[sliceDestination] = cam.pixels[sliceSource]; //Copy the center row of the video to the top of the canvas
    arrayCopy(pixels, 0, pixels, width, (height - 1) * width); //Move everything down one row to make room for new frames of video
Click to Expand

I have very minimal experience in processing, so this code wasn't entirely developed by me. Instead, to create my "slit-scans" I used a modified version created by a user on the site "OpenProcessing": 

Original Sketch Link:  


One of the frames captured by my code, with editing in saturation/brightness done in photoshop. 



This piece features a very colorful rectangular prism centered in a blue/pink gradient. Inside the box is composed mostly of brightly colored rainbow stripes. The stripes are aligned in a way that looks almost like a zig-zag pattern, as if they were moving back and forth between the constraints of the sides of the box. There seems to be a light source coming from the front although the object itself seems to be floating in a dimensionless space. The intent of this project was more about the object itself, which could be an explanation as to why the background is flat, but in actuality is due to the fact that I didn’t quite know the best place that this object could be presented in.

Before this semester, I probably wouldn’t have been as critical on my own work. I wouldn’t have cared as much about the piece as a whole and the meaning behind it/ or even behind the process of creating it itself. I definitely have a greater appreciation of the process of analyzing art works and the artists’ original intentions.  


a higher resolution