pxon ie. "pixel art object notation"

abstract

PXON (pronounced like "picks on" as in "I hate it that Jenn always 'picks on' me."1) is a proposed standard, which no one needs or even asked for, of the representation of pixel art using JSON and properties of the Exif RDF schema. It provides the means for both lightweight data-interchange and the object-oriented creation of pixel art.

structure

It's just JSON. But there are two objects, exif and pxif. exif has any properties defined by the Exif RDF schema (mention and link in the abstract). For the sake of creating pixel art, many of these properties are not necessary or even applicable. They have been narrowed down to:

pxif is the pixel art spin of exif, in essense it is unique to pixel art and breaks down the image beyond its typical metadata and focuses on the individual strokes and drawings of the pixels within the image. The first property, pixels is an array of "pixel" objects representing the pixels drawn in the image. Because it is a new idea in this format, the list of properties is fluid and ever changing at the moment. They are currently:

There used to be a size property which I have removed as canon to pxif objects. I typically manually add that and other properties, but it is no longer and should not be required to represent a pixel - which ultimately is the smallest unit of measurement after all!

{
  "exif": {
    "software"          : "",
    "artist"            : "",
    "imageDescription"  : "",
    "userComment"       : "",
    "copyright"         : "",
    "dateTime"          : ""
  },
  "pxif": {
    "pixels"  : [
      {
        "x"  : 0,
        "y"  : 0,
        "color" : "",
      }
    ]
  }
}

example

{
  "exif": {
    "software": "http://pxonloop.glitch.me",
    "artist": "jenn schiffer",
    "imageDescription": "smile",
    "userComment": "an example pixel drawing to show off pxon",
    "copyright": "jenn schiffer 2018",
    "dateTime": "2015-09-17T15:21:51.761Z"
  },
  "pxif": {
    "pixels": [
      {
        "x": 75,
        "y": 69,
        "color": "rgba(0, 0, 0, 1)",
        "size": 15
      },
      {
        "x": 80,
        "y": 84,
        "color": "rgba(0, 0, 0, 1)",
      },
      {
        "x": 96,
        "y": 82,
        "color": "rgba(0, 0, 0, 1)",
      },
      {
        "x": 110,
        "y": 83,
        "color": "rgba(0, 0, 0, 1)",
      },
      {
        "x": 129,
        "y": 72,
        "color": "rgba(0, 0, 0, 1)",
      },
      {
        "x": 88,
        "y": 40,
        "color": "rgba(0, 0, 0, 1)",
      },
      {
        "x": 112,
        "y": 38,
        "color": "rgba(0, 0, 0, 1)",
      },
      {
        "x": 97,
        "y": 57,
        "color": "rgba(0, 0, 0, 1)",
      }
    ]
  }
}

apps using pxon

changelog

citation and credits

  1. [1] quote by Adam J. Sontag