Jeff Thompson | Blog

Archive for the ‘software’ tag

“Dimension Assignment Panel”

Screenshot of “Dimension Assignment Panel” software – contains red/yellow skull at the top left.

Via: VCS Example

January 18th, 2013 at 7:01 pm

Gradient Compression

An experimental image compression: pixel blocks converted to gradients between darkest and lightest pixels in block.

December 10th, 2012 at 5:11 pm

Spiral Sorting

Sorting an image’s pixels spirally from left to right, outside to inside.

December 10th, 2012 at 11:28 am

Seam Sorting

Sorting pixels along a middle “energy seam”, similar to how Photoshop’s “content-aware scaling” works, with additional glitchy goodness.  Source images (top to bottom) are: an idyllic mountainscape, a crowd of people, the face of a weird looking man, a missile launch, and sheep on a mountain hill.

December 4th, 2012 at 3:40 pm

Custom Filters in Photoshop

Discovered today, quite by accident, that Photoshop has a “custom” filter module (Filters > Other > Custom…) – using kernel processing one can make edge detection, blur, and other simple image filters.  Above is a directional blur that works similar to an all-over Gaussian blur but in just side-to-side.

For some details and examples, see Ian Albert’s “Custom Filters” post.

October 27th, 2012 at 9:18 pm

All The Words In Music

All possible words in the English language that can be formed by Western musical notes (A-G):

A: aa, ab, aba, abaca, abba, abbe, abed, accede, acceded, ace, aced, ad, adage, add, added, ae, aga, age, aged, agee

B: ba, baa, baaed, baba, babe, bacca, bad, bade, badge, baff, baffed, bag, baggage, bagged, be, bead, beaded, bed, bedad, bedded, bede, bee, beef, beefed, beg, begad, begged

C: cab, cabbage, cad, cade, cadee, cadge, cadged, caeca, cafe, caff, cage, caged, ceca, cede, ceded, cee

D: da, dab, dabbed, dace, dad, dae, daff, dag, dagaba, dagga, dagged, dead, deaf, deb, debag, debagged, decad, decade, decaff, dee, deed, deeded, def, deface, defaced, degage

E: ebb, ebbed, ecad, ecce, edge, edged, ef, eff, efface, effaced, effed, egad, egg, egged

F: fa, fab, facade, face, faced, fad, fade, faded, fadge, fadged, faff, faffed, fag, fagged, fed, fee, feed

G: gab, gabbed, gad, gadded, gade, gadge, gae, gaed, gaff, gaffe, gaffed, gag, gaga, gage, gaged, gagged, ged, gee, geed

Created using this word list (not comprehensive, but easy to find and free):
http://dreamsteep.com/projects/the-english-open-word-list.html

And with a rather simple Processing sketch:

/*
EVERY WORD FROM MUSICAL NOTES
Jeff Thompson | 2012 | www.jeffreythompson.org

A list of every word that contains letters from the musical notes (A,B,C,D,E,F,G)
and not any of the others.  Repeats allowed, as are ommissions.

Source file is the English Open Word List:

http://dreamsteep.com/projects/the-english-open-word-list.html

*/

boolean printWords = false;

void setup() {

  String[] ignore = {
  "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", 
  "r", "s", "t", "u", "v", "w", "x", "y", "z"
  };
  boolean store;

  // read each file one by one
  // capital A (65) to capital G (72) in ASCII - no point in reading the other letters!
  for (int i=65; i<72; i++) {
  try {

    // variables to read the file
    String filename = char(i) + " Words.csv";
    BufferedReader reader = createReader(filename);
    println(filename + "...");

    PrintWriter writer = createWriter("words_" + char(i) + ".txt");
    String word;

    // go through all lines
    while ( (word = reader.readLine ()) != null) {

      // reset variable for next word
      store = true;

      // check against blacklist of letters to ignore
      for (String s : ignore) {
        if (word.contains(s)) {
          store = false;
        }
        continue;    // stop looking (faster though not necessary)
      }

      // if we've passed unscathed, store the word and continue
      if (store) {
        if (printWords) {
          println(word);
        }
        writer.println(word);
      }
    }  // end read file while loop

    // close PrintWriter
    writer.flush();
    writer.close();
    }  // end read file try

    catch (Exception e) {
      println("Error reading file: " + e);
    }
  }  // end letter-file loop

  exit();
}

September 25th, 2012 at 2:52 pm

Further Blobs > Drawing

Further version of the blob-tracking drawing software for my Digital Drawing class – goes into use tomorrow!

September 18th, 2012 at 2:17 pm

Image Tracking/Drawing

A few (not quite working) screenshots of a image tracking/drawing software I’m writing in Processing today for my Digital Drawing class.

September 16th, 2012 at 2:53 pm

Polygon Sheet

A little experiment over the weekend.

July 29th, 2012 at 1:03 pm

“screenscrape” by Kyle McDonald

“My screen is a scrapbook: every time my mouse moves, i tear away part of the screen and save it. over time a big bundle like this builds up”

Via: Kyle McDonald

July 20th, 2012 at 10:55 am