Optimise OpenGL on Jitter: 3D scene too slow


    Mar 21 2010 | 7:02 pm
    Hi,
    I am using OpenGL in a series of jitter objects (jit.gl.render, jit.gl.sketch and jit.gl.handle). My program displays a large number of simple objects (e.g. cubes, planes or spheres) that are frequently updated.
    An update may be changing the color of one cube only, but it seems that I am forced to erase everything and to reload every single object. I have developed my code in Java, re-using the code given in the example JitterGLTest. For each update, resetting the sketch and redrawing on it slows the OpenGl rendering.
    There must be ways of optimising this, would you happen to know any? I would be happy to try out any suggestion and to report here how they affect the performance.
    If needed, I can provide a simplified version of the program.
    Thank you,
    Jean-Baptiste

    • Mar 21 2010 | 7:57 pm
      Need an example for us to give any assistance
    • Mar 22 2010 | 10:51 am
      Please see the code below
      {
      "boxes" : [ {
      "box" : {
      "maxclass" : "comment",
      "text" : "Question: how to optimise this patch so that:n- the scene doesn't flicker when the dimension is greater than 10 and n- that we change constantly one parameter, e.g. opacity",
      "linecount" : 7,
      "id" : "obj-45",
      "numoutlets" : 0,
      "fontname" : "Arial",
      "fontsize" : 11.595187,
      "patching_rect" : [ 704.0, 56.0, 161.0, 100.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "comment",
      "text" : "Jean-Baptiste ThiebautnSinan Bokesoy",
      "linecount" : 2,
      "id" : "obj-44",
      "numoutlets" : 0,
      "fontname" : "Arial",
      "fontsize" : 11.595187,
      "patching_rect" : [ 782.0, 17.0, 150.0, 33.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "flonum",
      "id" : "obj-42",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "float", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 258.0, 547.0, 50.0, 20.0 ],
      "triscale" : 0.9,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "pak lookat 0. 0. 0.",
      "id" : "obj-9",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 220.0, 620.0, 102.0, 20.0 ],
      "numinlets" : 4
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "10",
      "id" : "obj-36",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "hidden" : 1,
      "patching_rect" : [ 168.0, 464.0, 32.5, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "30",
      "id" : "obj-34",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "hidden" : 1,
      "patching_rect" : [ 126.0, 463.0, 32.5, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "loadbang",
      "id" : "obj-11",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "bang" ],
      "fontsize" : 11.595187,
      "hidden" : 1,
      "patching_rect" : [ 153.0, 420.0, 58.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "t b f",
      "id" : "obj-41",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "float" ],
      "fontsize" : 11.595187,
      "hidden" : 1,
      "patching_rect" : [ 216.0, 271.0, 32.5, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "/ 100.",
      "id" : "obj-40",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "float" ],
      "fontsize" : 11.595187,
      "hidden" : 1,
      "patching_rect" : [ 207.0, 232.0, 40.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "number",
      "id" : "obj-39",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "int", "bang" ],
      "minimum" : 0,
      "maximum" : 100,
      "fontsize" : 11.595187,
      "patching_rect" : [ 217.0, 156.0, 50.0, 20.0 ],
      "triscale" : 0.9,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "comment",
      "text" : "Opacity (%)",
      "id" : "obj-38",
      "numoutlets" : 0,
      "fontname" : "Arial",
      "fontsize" : 12.0,
      "patching_rect" : [ 113.0, 156.0, 73.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "pack glcolor 0.6 0.7 0.6 0.3",
      "id" : "obj-37",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 645.0, 210.0, 150.0, 20.0 ],
      "numinlets" : 5
      }
      }
      , {
      "box" : {
      "maxclass" : "comment",
      "text" : "Metro on/off",
      "id" : "obj-35",
      "numoutlets" : 0,
      "fontname" : "Arial",
      "fontsize" : 12.0,
      "patching_rect" : [ 110.0, 117.0, 74.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "comment",
      "text" : "Dimension",
      "id" : "obj-22",
      "numoutlets" : 0,
      "fontname" : "Arial",
      "fontsize" : 12.0,
      "patching_rect" : [ 112.0, 44.0, 67.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "comment",
      "prototypename" : "title",
      "text" : "Controls",
      "id" : "obj-17",
      "numoutlets" : 0,
      "fontname" : "Arial",
      "fontface" : 3,
      "fontsize" : 16.0,
      "patching_rect" : [ 109.0, 18.0, 150.0, 25.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "t b i",
      "id" : "obj-10",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "int" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 576.0, 54.0, 32.5, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "ezdac~",
      "id" : "obj-165",
      "numoutlets" : 0,
      "hidden" : 1,
      "patching_rect" : [ 506.0, 672.0, 45.0, 45.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "comment",
      "text" : "Random Camera n(requires audio on)",
      "linecount" : 2,
      "id" : "obj-164",
      "numoutlets" : 0,
      "fontname" : "Arial",
      "fontsize" : 12.0,
      "patching_rect" : [ 111.0, 74.0, 206.0, 34.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "id" : "obj-163",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 221.0, 78.0, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "gate",
      "id" : "obj-162",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 635.0, 674.0, 34.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "gate",
      "id" : "obj-161",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 620.0, 659.0, 34.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "gate",
      "id" : "obj-160",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 605.0, 644.0, 34.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "cycle~ 0.025",
      "id" : "obj-62",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "signal" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 700.0, 542.0, 78.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "snapshot~ 40",
      "id" : "obj-63",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "float" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 705.0, 608.0, 83.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "*~ 3.5",
      "id" : "obj-64",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "signal" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 712.0, 576.0, 42.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "cycle~ 0.05",
      "id" : "obj-61",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "signal" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 600.0, 541.0, 72.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "snapshot~ 40",
      "id" : "obj-55",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "float" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 605.0, 607.0, 83.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "*~ 1.5",
      "id" : "obj-60",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "signal" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 612.0, 575.0, 42.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "snapshot~ 40",
      "id" : "obj-6",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "float" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 799.0, 643.0, 83.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "*~ 1.5",
      "id" : "obj-7",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "signal" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 801.0, 583.0, 42.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "cycle~ 0.1",
      "id" : "obj-8",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "signal" ],
      "fontsize" : 12.0,
      "hidden" : 1,
      "patching_rect" : [ 797.0, 542.0, 65.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "number",
      "id" : "obj-5",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "int", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 219.0, 47.0, 50.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "shapeslice 10 10",
      "id" : "obj-43",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 661.0, 236.0, 98.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "t b b b",
      "id" : "obj-33",
      "numoutlets" : 3,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "bang", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 647.0, 140.0, 46.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "button",
      "id" : "obj-32",
      "numoutlets" : 1,
      "outlettype" : [ "bang" ],
      "patching_rect" : [ 647.0, 115.0, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "expr ($f1-$f2/2.)/($f2/4.)",
      "id" : "obj-31",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 420.0, 258.0, 133.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "expr ($f1-$f2/2.)/($f2/4.)",
      "id" : "obj-30",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 420.0, 194.0, 133.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "expr ($f1-$f2/2.)/($f2/4.)",
      "id" : "obj-26",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 420.0, 136.0, 133.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "t b l",
      "id" : "obj-25",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 431.0, 317.0, 32.5, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "t b i",
      "id" : "obj-24",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "int" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 421.0, 242.0, 32.5, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "pack moveto 0. 0. 0.",
      "id" : "obj-23",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 429.0, 288.0, 115.0, 20.0 ],
      "numinlets" : 4
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "uzi 8 0",
      "id" : "obj-21",
      "numoutlets" : 3,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "bang", "int" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 394.0, 216.0, 46.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "uzi 8 0",
      "id" : "obj-20",
      "numoutlets" : 3,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "bang", "int" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 394.0, 164.0, 46.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "uzi 8 0",
      "id" : "obj-19",
      "numoutlets" : 3,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "bang", "int" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 394.0, 106.0, 46.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "loadmess 0",
      "id" : "obj-18",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "hidden" : 1,
      "patching_rect" : [ 222.0, 437.0, 70.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "flonum",
      "id" : "obj-4",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "float", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 153.0, 581.0, 50.0, 20.0 ],
      "triscale" : 0.9,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "flonum",
      "id" : "obj-3",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "float", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 97.0, 574.0, 50.0, 20.0 ],
      "triscale" : 0.9,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "flonum",
      "id" : "obj-2",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "float", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 42.0, 577.0, 50.0, 20.0 ],
      "triscale" : 0.9,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "pak camera 0. 0. 0.",
      "id" : "obj-1",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 38.0, 609.0, 110.0, 20.0 ],
      "numinlets" : 4
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "id" : "obj-12",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 200.0, 624.0, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "floating $1",
      "id" : "obj-14",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 200.0, 647.0, 62.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "p esc-fullscreen",
      "id" : "obj-15",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 103.0, 647.0, 90.0, 20.0 ],
      "numinlets" : 0,
      "patcher" : {
      "fileversion" : 1,
      "rect" : [ 86.0, 108.0, 235.0, 205.0 ],
      "bglocked" : 0,
      "defrect" : [ 86.0, 108.0, 235.0, 205.0 ],
      "openrect" : [ 0.0, 0.0, 0.0, 0.0 ],
      "openinpresentation" : 0,
      "default_fontsize" : 10.0,
      "default_fontface" : 0,
      "default_fontname" : "Arial",
      "gridonopen" : 0,
      "gridsize" : [ 15.0, 15.0 ],
      "gridsnaponopen" : 0,
      "toolbarvisible" : 1,
      "boxanimatetime" : 200,
      "imprint" : 0,
      "enablehscroll" : 1,
      "enablevscroll" : 1,
      "devicewidth" : 0.0,
      "boxes" : [ {
      "box" : {
      "maxclass" : "comment",
      "text" : "Escape ASCII Code",
      "id" : "obj-7",
      "numoutlets" : 0,
      "fontname" : "Arial",
      "fontsize" : 11.595187,
      "patching_rect" : [ 86.0, 67.0, 114.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "outlet",
      "id" : "obj-2",
      "numoutlets" : 0,
      "patching_rect" : [ 27.0, 157.25, 25.0, 25.0 ],
      "numinlets" : 1,
      "comment" : ""
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "fullscreen $1",
      "id" : "obj-3",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 27.0, 127.25, 76.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "key",
      "id" : "obj-4",
      "numoutlets" : 4,
      "fontname" : "Arial",
      "outlettype" : [ "int", "int", "int", "int" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 27.0, 37.0, 46.0, 20.0 ],
      "numinlets" : 0
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "select 27",
      "id" : "obj-5",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 27.0, 67.25, 57.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "id" : "obj-6",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 27.0, 97.25, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      ],
      "lines" : [ {
      "patchline" : {
      "source" : [ "obj-3", 0 ],
      "destination" : [ "obj-2", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-6", 0 ],
      "destination" : [ "obj-3", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-5", 0 ],
      "destination" : [ "obj-6", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-4", 0 ],
      "destination" : [ "obj-5", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      ]
      }
      ,
      "saved_object_attributes" : {
      "default_fontname" : "Arial",
      "fontname" : "Arial",
      "default_fontsize" : 10.0,
      "globalpatchername" : "",
      "fontface" : 0,
      "fontsize" : 10.0,
      "default_fontface" : 0
      }
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "jit.window foo @depthbuffer 1",
      "id" : "obj-16",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 103.0, 676.0, 163.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "jit.gl.handle foo",
      "id" : "obj-27",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "", "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 306.0, 313.0, 89.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "id" : "obj-28",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 626.0, 453.0, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "blend_enable $1",
      "id" : "obj-29",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 624.0, 486.0, 94.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "jit.fpsgui",
      "id" : "obj-52",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "", "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 107.0, 339.0, 80.0, 35.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "cube 0.1 0.1 0.01",
      "id" : "obj-53",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 430.0, 357.0, 100.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "shininess $1",
      "id" : "obj-101",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 544.0, 486.0, 75.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "flonum",
      "id" : "obj-102",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "float", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 544.0, 463.0, 50.0, 20.0 ],
      "triscale" : 0.9,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "id" : "obj-105",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 322.0, 463.0, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "smooth_shading $1",
      "id" : "obj-106",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 322.0, 486.0, 112.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "id" : "obj-110",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 436.0, 463.0, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "lighting_enable $1",
      "id" : "obj-111",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 436.0, 486.0, 105.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "number",
      "id" : "obj-120",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "int", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 266.0, 115.0, 50.0, 20.0 ],
      "triscale" : 0.9,
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "id" : "obj-121",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 223.0, 463.0, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "depth_enable $1",
      "id" : "obj-122",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 223.0, 486.0, 97.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "toggle",
      "id" : "obj-123",
      "numoutlets" : 1,
      "outlettype" : [ "int" ],
      "patching_rect" : [ 222.0, 115.0, 20.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "qmetro 20",
      "id" : "obj-124",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 63.0, 277.0, 63.0, 20.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "t b erase b",
      "id" : "obj-125",
      "numoutlets" : 3,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "erase", "bang" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 63.0, 303.0, 63.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "jit.gl.sketch foo",
      "id" : "obj-126",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "", "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 367.0, 544.0, 87.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "jit.gl.render foo",
      "id" : "obj-127",
      "numoutlets" : 2,
      "fontname" : "Arial",
      "outlettype" : [ "bang", "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 10.0, 676.0, 87.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "newobj",
      "text" : "loadmess 1",
      "id" : "obj-129",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "hidden" : 1,
      "patching_rect" : [ 323.0, 435.0, 70.0, 20.0 ],
      "numinlets" : 1
      }
      }
      , {
      "box" : {
      "maxclass" : "message",
      "text" : "reset",
      "id" : "obj-135",
      "numoutlets" : 1,
      "fontname" : "Arial",
      "outlettype" : [ "" ],
      "fontsize" : 11.595187,
      "patching_rect" : [ 673.0, 171.0, 61.0, 18.0 ],
      "numinlets" : 2
      }
      }
      , {
      "box" : {
      "maxclass" : "panel",
      "id" : "obj-13",
      "numoutlets" : 0,
      "patching_rect" : [ 106.0, 15.0, 220.0, 197.0 ],
      "numinlets" : 1
      }
      }
      ],
      "lines" : [ {
      "patchline" : {
      "source" : [ "obj-129", 0 ],
      "destination" : [ "obj-163", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-11", 0 ],
      "destination" : [ "obj-36", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-36", 0 ],
      "destination" : [ "obj-5", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-34", 0 ],
      "destination" : [ "obj-39", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-11", 0 ],
      "destination" : [ "obj-34", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-135", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 1,
      "midpoints" : [ 682.5, 366.0, 376.5, 366.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-53", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 1,
      "midpoints" : [ 439.5, 459.0, 376.5, 459.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-29", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 0,
      "midpoints" : [ 633.5, 523.5, 376.5, 523.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-122", 0 ],
      "destination" : [ "obj-27", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-27", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 0,
      "midpoints" : [ 315.5, 438.0, 376.5, 438.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-106", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 1,
      "midpoints" : [ 331.5, 523.5, 376.5, 523.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-111", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 1,
      "midpoints" : [ 445.5, 523.5, 376.5, 523.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-101", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 1,
      "midpoints" : [ 553.5, 523.5, 376.5, 523.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-122", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 1,
      "midpoints" : [ 232.5, 523.5, 376.5, 523.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-25", 1 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 0,
      "midpoints" : [ 454.0, 440.0, 376.5, 440.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-1", 0 ],
      "destination" : [ "obj-127", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-125", 1 ],
      "destination" : [ "obj-127", 0 ],
      "hidden" : 0,
      "midpoints" : [ 94.5, 499.0, 19.5, 499.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-125", 0 ],
      "destination" : [ "obj-127", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-29", 0 ],
      "destination" : [ "obj-127", 0 ],
      "hidden" : 0,
      "midpoints" : [ 633.5, 589.5, 19.5, 589.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-33", 2 ],
      "destination" : [ "obj-135", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-32", 0 ],
      "destination" : [ "obj-33", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-25", 0 ],
      "destination" : [ "obj-53", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-18", 0 ],
      "destination" : [ "obj-121", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-129", 0 ],
      "destination" : [ "obj-28", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-15", 0 ],
      "destination" : [ "obj-16", 0 ],
      "hidden" : 0,
      "midpoints" : [ 112.5, 671.0, 112.5, 671.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-14", 0 ],
      "destination" : [ "obj-16", 0 ],
      "hidden" : 0,
      "midpoints" : [ 209.5, 671.0, 112.5, 671.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-12", 0 ],
      "destination" : [ "obj-14", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-102", 0 ],
      "destination" : [ "obj-101", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-28", 0 ],
      "destination" : [ "obj-29", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-110", 0 ],
      "destination" : [ "obj-111", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-105", 0 ],
      "destination" : [ "obj-106", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-121", 0 ],
      "destination" : [ "obj-122", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-125", 2 ],
      "destination" : [ "obj-52", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-123", 0 ],
      "destination" : [ "obj-124", 0 ],
      "hidden" : 1,
      "midpoints" : [ 231.5, 205.5, 72.5, 205.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-120", 0 ],
      "destination" : [ "obj-124", 1 ],
      "hidden" : 0,
      "midpoints" : [ 275.5, 205.5, 116.5, 205.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-124", 0 ],
      "destination" : [ "obj-125", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-129", 0 ],
      "destination" : [ "obj-105", 0 ],
      "hidden" : 1,
      "midpoints" : [ 332.5, 460.0, 331.5, 460.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-2", 0 ],
      "destination" : [ "obj-1", 1 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-3", 0 ],
      "destination" : [ "obj-1", 2 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-4", 0 ],
      "destination" : [ "obj-1", 3 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-43", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 0,
      "midpoints" : [ 670.5, 398.5, 376.5, 398.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-33", 1 ],
      "destination" : [ "obj-43", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-24", 0 ],
      "destination" : [ "obj-23", 0 ],
      "hidden" : 0,
      "midpoints" : [ 430.5, 274.5, 438.5, 274.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-23", 0 ],
      "destination" : [ "obj-25", 0 ],
      "hidden" : 0,
      "midpoints" : [ 438.5, 312.0, 440.5, 312.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-8", 0 ],
      "destination" : [ "obj-7", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-60", 0 ],
      "destination" : [ "obj-55", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-61", 0 ],
      "destination" : [ "obj-60", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-62", 0 ],
      "destination" : [ "obj-64", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-64", 0 ],
      "destination" : [ "obj-63", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-55", 0 ],
      "destination" : [ "obj-160", 1 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-63", 0 ],
      "destination" : [ "obj-161", 1 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-6", 0 ],
      "destination" : [ "obj-162", 1 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-163", 0 ],
      "destination" : [ "obj-160", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-163", 0 ],
      "destination" : [ "obj-161", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-163", 0 ],
      "destination" : [ "obj-162", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-163", 0 ],
      "destination" : [ "obj-165", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-160", 0 ],
      "destination" : [ "obj-2", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-161", 0 ],
      "destination" : [ "obj-3", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-162", 0 ],
      "destination" : [ "obj-4", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-5", 0 ],
      "destination" : [ "obj-10", 0 ],
      "hidden" : 0,
      "midpoints" : [ 228.5, 75.0, 393.5, 75.0, 393.5, 44.0, 585.5, 44.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-10", 0 ],
      "destination" : [ "obj-32", 0 ],
      "hidden" : 0,
      "midpoints" : [ 585.5, 94.0, 656.5, 94.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-129", 0 ],
      "destination" : [ "obj-12", 0 ],
      "hidden" : 0,
      "midpoints" : [ 332.5, 539.0, 209.5, 539.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-129", 0 ],
      "destination" : [ "obj-123", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-10", 1 ],
      "destination" : [ "obj-19", 1 ],
      "hidden" : 0,
      "midpoints" : [ 599.0, 89.5, 430.5, 89.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-33", 0 ],
      "destination" : [ "obj-19", 0 ],
      "hidden" : 0,
      "midpoints" : [ 656.5, 169.0, 530.0, 169.0, 530.0, 96.0, 403.5, 96.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-19", 0 ],
      "destination" : [ "obj-20", 0 ],
      "hidden" : 0,
      "midpoints" : [ 403.5, 144.5, 403.5, 144.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-10", 1 ],
      "destination" : [ "obj-20", 1 ],
      "hidden" : 0,
      "midpoints" : [ 599.0, 118.5, 430.5, 118.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-20", 0 ],
      "destination" : [ "obj-21", 0 ],
      "hidden" : 0,
      "midpoints" : [ 403.5, 199.5, 403.5, 199.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-10", 1 ],
      "destination" : [ "obj-21", 1 ],
      "hidden" : 0,
      "midpoints" : [ 599.0, 144.5, 430.5, 144.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-21", 2 ],
      "destination" : [ "obj-24", 0 ],
      "hidden" : 0,
      "midpoints" : [ 430.5, 238.5, 430.5, 238.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-37", 0 ],
      "destination" : [ "obj-126", 0 ],
      "hidden" : 0,
      "midpoints" : [ 654.5, 386.5, 376.5, 386.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-33", 1 ],
      "destination" : [ "obj-37", 0 ],
      "hidden" : 0,
      "midpoints" : [ 670.0, 184.5, 654.5, 184.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-39", 0 ],
      "destination" : [ "obj-40", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-40", 0 ],
      "destination" : [ "obj-41", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-41", 1 ],
      "destination" : [ "obj-37", 4 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-41", 0 ],
      "destination" : [ "obj-32", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-7", 0 ],
      "destination" : [ "obj-6", 0 ],
      "hidden" : 1,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-42", 0 ],
      "destination" : [ "obj-9", 3 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-9", 0 ],
      "destination" : [ "obj-127", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-19", 2 ],
      "destination" : [ "obj-26", 0 ],
      "hidden" : 0,
      "midpoints" : [ 430.5, 130.5, 429.5, 130.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-10", 1 ],
      "destination" : [ "obj-26", 1 ],
      "hidden" : 0,
      "midpoints" : [ 599.0, 104.5, 543.5, 104.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-26", 0 ],
      "destination" : [ "obj-23", 1 ],
      "hidden" : 0,
      "midpoints" : [ 429.5, 221.5, 470.5, 221.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-20", 2 ],
      "destination" : [ "obj-30", 0 ],
      "hidden" : 0,
      "midpoints" : [ 430.5, 188.5, 429.5, 188.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-10", 1 ],
      "destination" : [ "obj-30", 1 ],
      "hidden" : 0,
      "midpoints" : [ 599.0, 133.5, 543.5, 133.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-30", 0 ],
      "destination" : [ "obj-23", 2 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-10", 1 ],
      "destination" : [ "obj-31", 1 ],
      "hidden" : 0,
      "midpoints" : [ 599.0, 165.5, 543.5, 165.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-31", 0 ],
      "destination" : [ "obj-23", 3 ],
      "hidden" : 0,
      "midpoints" : [ 429.5, 282.5, 534.5, 282.5 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-24", 1 ],
      "destination" : [ "obj-31", 0 ],
      "hidden" : 0,
      "midpoints" : [ 444.0, 271.0, 436.75, 271.0, 436.75, 248.0, 429.5, 248.0 ]
      }
      }
      , {
      "patchline" : {
      "source" : [ "obj-129", 0 ],
      "destination" : [ "obj-110", 0 ],
      "hidden" : 0,
      "midpoints" : [ ]
      }
      }
      ]
      }
    • Mar 22 2010 | 12:30 pm
      From a first look:
      - It is possible to change commands in [jit.gl.sketch] without having to rebuild the entire list with cmd_replace. So if you add in color commands and keep track of the index you can change that. Though changing most/all of them all the time wouldn't be a good idea, rebuilding would then be just as fast.
      - I don't know the 'cube' command in great detail, but I suppose it is 'dim 2'? Apart from that, when you go over dimension 10, you're drawing over 1000 transparent cubes (=12k transparent triangles), I don't see any way to optimalize that, nothing seems inefficient at first sight. Someone else?
      Also, please post with 'copy compressed' from the edit menu.
    • Mar 22 2010 | 12:49 pm
      You are right, the 'cube' command works in 'dim 2'. Which, as far as I understand, translates as 'shapeslice 2 2' for 'jit.gl.sketch'. Doing this improves the efficiency a great deal (but I cannot use spheres or torus).
      I will try to change the commands using 'cmd_replace'. That might well be *exactly* what I was looking for. Thanks!
      I have posted the patch using 'copy compressed' in the thread http://cycling74.com/forums/topic.php?id=25469 and suggest to continue on that thread.