1. No Paint Release One – Essex Flowers Digital Commission

    The pictures appending each of jas.life’s previous articles were made on development builds of the website No Paint which launches today as the second digital commission of the Lower East Side gallery Essex Flowers. I’ve been working on the underlying systems for this project since Fall 2014 and I’m glad to finally see some of this work in production. The text below is an excerpt from the gallery’s newsletter that is being sent out this morning.

    Each mark in a painting exists thanks to its acceptance or rejection by an artist. No Paint confines picture making to the act of giving or denying permission. Every picture made on www.nopaint.org is both a collaboration with the system and an investigation of its rules. Initially the system appears chaotic, but over time one learns to thoughtfully exercise their power of choice. In this playful yet straightforward process, one still finds a voice of their own.

    I hope you enjoy the site as much as I do!

    To ice the cake on this birthday I’d like to share one of my favorite recordings: Painting With Light, featuring David Hockney, Jennifer Bartlett, Larry Rivers, and Howard Hodgkin all working with the Quantel Paintbox. Thanks Sarah!

    Development Log

    No Paint’s backend is written in Ruby on Rails 5 and the clientside painting engine is in JavaScript. The landing page weighs in at a healthy 76.5kb. This implementation features its own module system and event library as well as support for multiple simultaneous renderers by way of an intermediate graph.

    Below is some JavaScript code for a high level component that defines the Softy tool in Release One.


    def('softy', function (act) {
      'use strict';
      act.on('prep tool', function (p) {
        act.out('softy.graph.prep', p);
        act.out('touch surf', {p: p, and: function (opts) {
          act.out('softy.graph.spot', opts);
      act.on('drag tool', function (p) {
        act.out('scratch surf', {p: p, and: function (opts) {
          act.out('softy.graph.add', opts);
      act.on('lift tool', function (id) {
        act.out('softy.graph.remove', id);
      act.pipe('softy color', 'softy.graph.color');
      act.pipe('softy size', 'softy.graph.size');
      act.pipe('softy fuzz', 'softy.graph.fuzz');

    The first line defines the “softy” module which is provided an instance of “act”. My “act” here is Pub/Sub with a few personal extras. It’s fun to play around and add functionality to the application now because with this architecture there is little friction involved when attaching new code. I got some of the ideas for this when reading a PDF about Resource-Oriented Computing. Eventually I’ll try to take “act” further and when WebAssembly hits the mainstream my plan is to start writing specialized syntaxes for modules that all share a resource-oriented interface.

    The dataflow in No Paint is fairly linear: Input → Tool → Graph → Renderer. Most of the visual modules post to associated graphs that are observed by the renderers. The file above is only concerned with connecting the abstract happenings of a tool to Softy’s graph model. This module gets loaded when the Softy tool is selected by the engine’s active toolbox.

    Behaviorally speaking, the choice-based interface of Release One takes some ideas from Kenneth O. Stanley’s 2015 book Why Greatness Cannot Be Planned. Visually it’s reminiscent of the Yak Bak which was one of my favorite toys as a kid in addition to the Tamagotchi and Gameboy.

    Sumidagawa Karenka 🎵  seiya-murai feat.ALT


  2. “I Can Sell a Bottle Cap Like This”

    Around the age of 5 I got a Gameboy and a copy of The Legend of Zelda: Link’s Awakening. The best thing about it was that I really had no conception of what its limits were.

    I spent days repeatedly talking to characters in the village, entering the library to see if any new books were there, trying to do new things with the local chicken, and just listening to the beep music. Eventually I found a sword by the beach, slashed up that chicken, and had my first truly awesome experience with software.

    It took another month of on and off play to discover something new and after finding the first dungeon my whole world opened up! I finished the cart a few days later and my enjoyment of games went downhill from there.

    These days it’s harder to enjoy new stuff because I can’t see past all the rearrangements of design patterns I’ve played through before. Why should I keep having to unlock locks that lie beyond the locks I just unlocked? When you’re staring at the Turing tape then all software looks pretty much the same. If a program has no interface then how do you know what it’s doing? Today I have the mindset that great programs are so because of what the user believes is happening, not what the machine is actually computing. This may seem obvious but keep it handy for the next time you fall into a procedurally generated hole and can’t get out.

    I love Yume Nikki and Parappa the Rapper. They’re creators didn’t seem to go out of their way to invent complex mechanics or present extraneous challenges. Instead they simply focused on providing a great environment for the player to spend their time in.

    Parappa the Rapper is linear for sure but once you learn it you can get through in ≈ twenty minutes and the experience feels more like playing an album than the game of Simon Says. The linearity totally works in its favor as a metaphor and the short length gracefully increases replay value. Yume Nikki plays similarly but instead of listening to songs you navigate pictures. What could be better?

    Parappa the Rapper 📻  Prince Fleaswallow’s Rap


  3. I Draw with My Shallow Eye

    If I were to divide all painters and draftspeople into parties of predisposition then each would undoubtedly belong to the Deeps or Shallows. Similar to governing political parties most members would be unwavering lifers, chilling regularly with their friends in order to better misunderstand their enemies. Maybe they’re born into it or maybe it’s just something they signed up for.

    Deep Party

    Shallow Party


    Paula RegoJoan Miró
    Antonio Lopez GarciaLaura Owens
    Salvador DalíAlexander Calder
    Marlene DumasLouise Bourgeois
    Tamara de LempickaDavid Hockney
    Mark RothkoElizabeth Murray
    Emily CarrJo Baer
    Johannes VermeerAndrei Rublev
    Francisco GoyaFrank Gehry

    Often you hear stories of how certain artists “found themselves” or arrived at some kind of pictorial destination. Jackson Pollock, Piet Mondrian, and Philip Guston all share this story of controversially moving from one column to the other and becoming great because they were able to synthesize key properties of both camps on one surface. Picasso is popular for straddling whatever he wants and lots of pictures, even entire periods of his can belong easily to one of these groups. He doesn’t do too much mixing. Picasso… the smelly Flip-flop.

    I think the Shallows & Deeps represent two different faculties that humans have for depicting the visual. In my experience many Americans, especially those who aren’t making images, feel more secure when looking at deep pictures, and I’m not sure why.

    These faculties are something I think about often while making and designing my software. The ideal drawing program should easily give way to either party and allow those on one side of the fence to discover and experience the benefits of trying the other.

    I’m sure the archives at Early Pictures would be more diverse if the tools provided for the children to use weren’t so biased towards the Shallow party.

    Jad Fair 🎵  Starry Eyes


  4. Studio Visit, Ribs, J. Blow @ CSUA

    Today I visited Harry Gould Harvey IV’s studio in Fall River, MA. It’s only a few miles from my birthplace. We had fun getting to know one another and talked about how we mysteriously became aware of Art while growing up here, among other things. He showed me images of the failed 1974 Monumenta biennial in Newport, RI in addition to some precious photographs of roadside abstractions he’s discovered while travelling throughout the US. I demonstrated to him some of my drawing software and showed him my websites. Then we shared music and discussed some sculptures of his.

    Afterwards, I came home and cooked dinner for my Dad. We ate ribs, sweet potato fries and stuffed green peppers. I listened to his stories for a few hours while we drank wine as I drew four pictures.

    Last night I watched a recent talk by Jonathan Blow at Berkeley. I haven’t played The Witness yet but I’m definitely looking forward. I never finished Braid despite my admiration for it. The overly transparent presentation of each mechanic was sort of a drain on me and kind of sucked me out of the larger experience. If you want to have the opposite feeling then play Loren Schmidt’s Strawberry Cubes for an hour. Jonathan made lots of great points about the sad state of software development at evergreen web companies although he didn’t give any emphatic reason as to why this was and I couldn’t help but consider Maciej Cegłowski’s lectures on the subject. I hope they are already friends.

    I think it’s sad that Jonathan doesn’t think the web is a good software system anymore, but perhaps he just needs to look past the connections between individual components and pay more attention to the potential applications of its core architectural principles.

    This is my first blog post. I hope the above gave you a good idea of what kinds of things I’ll be saying on here and I hope to become a better, if not more thoughtful writer after doing this for awhile.

    Galaxie 500 🎶  Tugboat