Friday, 21 October 2011

Finding performance limits

As I see it, Moore's law tells us that if a research prototype runs fast enough, then you aren't doing it right! I'm expecting that this thing will not run at the speed of a respectable language, at least not on the development platforms I'm using. I've therefore been waiting for my experiments to run into performance limits. I've finally found one, after realising that you can't have nicely antialiased lines if you are going to do affine transforms - for that to work, the transform has to be interpolated. Bicubic interpolation produced nice smooth results on this image (a first stack made of index cards rather than book pages), but runs slowly enough that the page turn animation was already finished before the pages were rendered. An entertaining (not) half-day ensued, as I played with ImageObservers and MediaTrackers in multiple animation threads. At the end of this, I just gave up - I don't think I understand how they work, and index cards don't need to bend anyway.


  1. "As I see it, Moore's law tells us that if a research prototype runs fast enough, then you aren't doing it right!"

    Surely that's the case if you're only building an interpreted language?

    Do you have any documentation/literature that describes your general goals with the "layer language"? It would be useful to know where you're ultimately headed (or at least where you are currently aiming for).

  2. Sorry, Sam - there is no documentation! I don't want to make any commitments until I know what I can achieve.

    Things that I have said to people in unguarded moments have included:

    1. It's a mashup between Photoshop and Excel.

    2. It's a purely visual language, that will use massive computational resources to produce a crude replication of either a) FORTH or b) LISP.

    3. It's a reimplementation of Hypercard in Java.

    4. It's going to be something like Scratch, but less powerful.

    Or, as I said in my earlier post entitled "Making marks on the medium of time", it's an attempt to integrate the Photoshop History and Layer palettes

  3. Sounds superbly intriguing. I look forward to the continuing journey of exploring what actually it is!

    Will you be doing any open development - i.e. pushing code to a public repository or releasing alpha builds?