blaggart is an infinitely extending real time pixel graffiti art board
JavaScript CSS HTML Shell Makefile PHP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



blaggart is an infinite graffiti wall. users can draw and chat (frolic) together in real time without having to refresh the browser window.

running blaggart

  1. install node and npm so they can be reached from $PATH.
  2. install sass so it can be reached from $PATH and then install compass where sass can find it.
    • git clone git://
    • cd blaggart/src/blaggart
    • make deps # fetches all dependencies and builds css from scss files
    • node blaggart.js # run blaggart

settings can be modified by moving local.js.example to local.js and editing it.


  • zooming out shrinking/enlarging existing pixels
  • anonymous login
  • setting nickname after registration
    • like/dislike tiles
    • save tiles
    • anarchy option to turn on/off saved tile overlay.
  • 2d game world
    • background layer editing
    • event triggers
    • loading sprites from image files (animated gif/sprite map/multiple images)
    • drawing sprites in browser
    • enemy attack pattern programming
    • update other players with edits as they happen
  • offer of chromeframe for ie7 and below


  • chat
    • ability to pull down conversation chats into discussion.
    • discussion messages are tiered with children/parent and up/down votes to give indication of worth.
    • discussion can update in real time, with various ways to mark which post is currently being read:
      • draggable token
      • keyboard selection
      • mouse hover/click
  • news world
    • 2nd dimension is time. can submit links/text and/or images.
    • tagged per category.

change log

2011 october 26

  • can zoom in and out without reloading the page.
  • can move whilst zoomed out.

2011 august 29

  • use mongoose 2.0 buffer support to store images as binary data.
  • enable websockets in chrome 15+ now that 0.8 supports them.

2011 august 12

  • work around websocket issues with chrome 14-15
  • chrome 14-15 also lie about being able to turn off image interpolation.
  • connect directly to nodejs port for data (faster!)

2011 august 11

  • browser using cached image after returning to flushed image.
  • losing watch on current tile on refresh/moving back to it.

2011 august 6

  • moving around, without zooming :(
  • detect chrome 13 lying about being able to turn off interpolation.

2011 august 1

  • open id authentication.

2011 july 30

  • does custom pixelated scale in browsers that force image interpolation.
  • default view zoomed in times 8 gives the default tile size.

2011 july 28

  • ie8 works.
  • turquoise works.

2011 july 26

  • server
    • sends broadcasts draw requests as received instead of splitting them into one broadcast per pixel.
    • server buffers image during pixel creation instead of regenerating from canvas with every request.
    • server removes images that haven't been used in a while from cache.
  • client
    • fix displaying latest comments.
    • ie8 live drawing.
    • order chats chronologically but if scrolled to bottom then force scroll down on new chat.
    • fix duplicate events and persistent disconnect indicator on reconnect.

2011 july 23

  • store canvas and comments in mongo database
  • style with compass.
  • cache draw events in the client between server responses.

2011 july 19

  • upgrade to node 0.4.x and all node packages to latest everything.

2011 july 19

  • store image on server side canvas.

2010 nov 10

  • live painting works.

2010 nov 9

  • drawing interpolation.

2010 nov 7

  • start of rewrite using nodejs to bring realtime everything.

2009 nov 10

  • for javascript mode use an html5 canvas instead of many small divs to represent pixels. this breaks javascript mode for ie until the nodejs rewrite.

2009 july 12

  • robin - no more empty notes.

2009 june 23

  • imported svn to git.

2008 december 23

  • can add notes to the canvas (modern sexual feeling note handling).

2006 december 18

  • robin starts adding a flash canvas to go with the DHTML one that draws divs to represent pixels.

2006 july 6

  • first blaggart svn was created.
    • php server-side.
    • terrible javascript client-side (at the time browsers were slow and we needed every cycle we could get... using classes made things even slower).