{
  "version": "008",
  "approach": "A pretrained causal language model generates declarative part programs. A conventional bounded compiler turns those programs into hand-constructed neural RGB fields and collision/movement RNNs. There is no runtime object-template lookup and no learned image/video renderer.",
  "training": {
    "baseModel": "HuggingFaceTB/SmolLM2-360M-Instruct",
    "baseParameters": 361821120,
    "trainableAdapterParameters": 2621440,
    "firstStageExamples": 8000,
    "secondStageExamples": 8000,
    "totalOptimizerSteps": 3200,
    "trainingSeconds": 521.575714699924,
    "device": "NVIDIA GeForce RTX 5080",
    "initialLoss": 1.0820964485406876,
    "finalLoss": 0.0022577718169486615,
    "lossScope": "Teacher-forced average on the first 40 synthetic validation examples. Not visual quality or open-language accuracy.",
    "dataScope": "20 procedural object families, generic named assemblies, part attachment and relative edits. Stage two adds natural phrasing and chains of parts. No image/video data. The base language model was pretrained by Hugging Face."
  },
  "evaluation": {
    "beforeValid": 1,
    "beforeSamples": 14,
    "afterSameProbesValid": 13,
    "categories": {
      "validation_other": {
        "samples": 24,
        "valid": 24,
        "exactPrograms": 23,
        "exactScenesIncludingNames": 24
      },
      "validation_assembly": {
        "samples": 20,
        "valid": 19,
        "exactPrograms": 18,
        "exactScenesIncludingNames": 18
      },
      "validation_relation": {
        "samples": 10,
        "valid": 10,
        "exactPrograms": 10,
        "exactScenesIncludingNames": 10
      }
    },
    "explicitNovelAssemblies": {
      "correct": 3,
      "total": 3,
      "examples": [
        "hovercraft",
        "beacon",
        "zorblatt"
      ],
      "scope": "Small development probes describing explicit dimensions and relations, including a made-up object name. These are not evidence of unrestricted visual understanding."
    },
    "unseenSubjects": {
      "fullySatisfied": 0,
      "total": 8,
      "scope": "Manual strict review of castle, airplane, dinosaur, fountain, lighthouse, coffee stand, spaceship and mailbox requests. Outputs were malformed or did not satisfy the requested shape/parts; syntax validity alone is not success."
    },
    "scope": "Seeded synthetic validation plus development probes. Before/after uses the same dequantized base and decoding settings. No claim of blind benchmark performance.",
    "before": [
      {
        "prompt": "Build a brown table.",
        "scene": "empty",
        "family": "table",
        "program": "move(\"table\",10,10,10,10,\"brown\")",
        "batchSeconds": 3.4174617000389844,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "Wrong number of arguments for move."
      },
      {
        "prompt": "Add a small green tree.",
        "scene": "empty",
        "family": "tree",
        "program": "move(\"group\",x,y,z,width,height,depth,\"color\") adds a solid green tree; x/y/z is its CENTER, y is up. Use several trees to approximate objects creatively. Available colors: green, brown, blue, red, white, black, yellow, pink, purple, gray, cyan, gold, or a hex color.",
        "batchSeconds": 3.4175565000623465,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Make a pink robot.",
        "scene": "empty",
        "family": "robot",
        "program": "move(\"group\",dx,dy,dz) translates a group; paint(\"group\",\"color\") recolours it; scale(\"group\",1.5) resizes it; remove(\"group\") deletes it; copy(\"group\",\"newgroup\",dx,dy,dz) duplicates it; clear() removes all objects. Target names must match the existing scene. Preserve unmentioned objects. Keep coordinates within -24..24, heights 0..32, sizes .5..32, and at most 48 boxes. Ground is built in. Use unique group names. For unrelated requests return no commands.",
        "batchSeconds": 3.417634600074962,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Build a blue bridge.",
        "scene": "empty",
        "family": "bridge",
        "program": "move(\"group\",x,y,z,width,height,depth,\"color\") adds a solid blue bridge; x/y/z is its CENTER, y is up. Use several boxes to approximate objects creatively. Available colors: blue, green, red, white, black, yellow, pink, purple, gray, cyan, gold, or a hex color.",
        "batchSeconds": 3.417684300104156,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Create a yellow staircase.",
        "scene": "empty",
        "family": "stairs",
        "program": "move(\"group\",dx,dy,dz) translates a group; paint(\"group\",\"yellow\") recolours it; scale(\"group\",1.5) resizes it; remove(\"group\") deletes it; copy(\"group\",\"newgroup\",dx,dy,dz) duplicates it; clear() removes all objects. Target names must match the existing scene. Preserve unmentioned objects. Keep coordinates within -24..24, heights 0..32, sizes .5..32, and at most 48 boxes. Ground is built in. Use unique group names. For unrelated requests return no commands.",
        "batchSeconds": 3.4177387999370694,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Build a purple chair next to a green tree.",
        "scene": "empty",
        "family": "composition",
        "program": "move(\"chair\",10,10,10) moves a chair; paint(\"chair\",\"purple\") recolors it; scale(\"chair\",1.5) resizes it; remove(\"chair\") deletes it; copy(\"chair\",\"otherchair\",10,10,10) copies it; clear() removes all objects. Target names must match the existing scene. Use unique group names. For unrelated requests return no commands.",
        "batchSeconds": 3.4177912999875844,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Move the tree 4 units up. Leave the tower alone.",
        "scene": "tree: centered at [0,5,0], color green. tower: centered at [15,6,12], color gray.",
        "family": "move",
        "program": "\"move(\"tree\",4,\"up\")",
        "batchSeconds": 1.220919200219214,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Make the tree pink.",
        "scene": "tree: centered at [0,5,0], color green.",
        "family": "paint",
        "program": "move(\"tree\",5,0,0) moves the tree to the right.",
        "batchSeconds": 1.2209817001130432,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Remove the tree, but keep the tower.",
        "scene": "tree: centered at [0,5,0], color green. tower: centered at [15,6,12], color gray.",
        "family": "remove",
        "program": "move(\"tree\",-10,10,10) moves the tree to the right. move(\"tower\",-10,10,10) moves the tower to the right.",
        "batchSeconds": 1.2210328001528978,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Add a copy of the tree 8 units to the right.",
        "scene": "tree: centered at [0,5,0], color green.",
        "family": "copy",
        "program": "\"copy(\"tree\",[0,8,0],\"color\") copies the tree to the right.",
        "batchSeconds": 1.2210756000131369,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Make a row of 4 cyan blocks, each size 2, starting at x=0, spaced 4 units along x.",
        "scene": "empty",
        "family": "count",
        "program": "move(\"group\",x,y,z,2,width,height,depth,\"color\") adds a cyan block; x/y/z is its CENTER, y is up.",
        "batchSeconds": 1.221125400159508,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Clear the entire scene.",
        "scene": "tree: centered at [0,5,0], color green.",
        "family": "clear",
        "program": "clear()",
        "batchSeconds": 1.2211646002251655,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Make it taller.",
        "scene": "tree: centered at [0,5,0], color green.",
        "family": "reference",
        "program": "move(\"tree\",10,0,0) scales it.",
        "batchSeconds": 0.4198119000066072,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Tell me a joke.",
        "scene": "empty",
        "family": "unrelated",
        "program": "\"What's the difference between a house and a tree?\"",
        "batchSeconds": 0.41985110007226467,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      }
    ],
    "after": [
      {
        "prompt": "Build a brown table.",
        "scene": "empty",
        "family": "table",
        "program": "box(\"table.top\",0,6,0,10,1,7,\"brown\")\nbox(\"table.leg0\",-4,2.75,-2.5,1,5.5,1,\"brown\")\nbox(\"table.leg1\",4,2.75,-2.5,1,5.5,1,\"brown\")\nbox(\"table.leg2\",-4,2.75,2.5,1,5.5,1,\"brown\")\nbox(\"table.leg3\",4,2.75,2.5,1,5.5,1,\"brown\")",
        "batchSeconds": 6.084586899960414,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Add a small green tree.",
        "scene": "empty",
        "family": "tree",
        "program": "box(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"green\")\nscale(\"tree\",0.5)",
        "batchSeconds": 6.084645099937916,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Make a pink robot.",
        "scene": "empty",
        "family": "robot",
        "program": "box(\"robot.body\",0,6,0,5,5,3,\"pink\")\nbox(\"robot.head\",0,10,0,4,3,4,\"pink\")\nbox(\"robot.left_leg\",-1.5,1.75,0,2,3.5,2,\"pink\")\nbox(\"robot.right_leg\",1.5,1.75,0,2,3.5,2,\"pink\")\nbox(\"robot.left_arm\",-3.5,6,0,2,5,2,\"pink\")\nbox(\"robot.right_arm\",3.5,6,0,2,5,2,\"pink\")\nbox(\"robot.eyes\",0,10,-2.25,3,0.5,0.5,\"black\")",
        "batchSeconds": 6.084701399784535,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Build a blue bridge.",
        "scene": "empty",
        "family": "bridge",
        "program": "box(\"bridge.deck\",0,4,0,16,1,6,\"blue\")\nbox(\"bridge.left_pier\",-6,1.75,0,2,3.5,5,\"blue\")\nbox(\"bridge.right_pier\",6,1.75,0,2,3.5,5,\"blue\")\nbox(\"bridge.rail_front\",0,6,-2.5,16,1,1,\"blue\")\nbox(\"bridge.rail_back\",0,6,2.5,16,1,1,\"blue\")",
        "batchSeconds": 6.084747199900448,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Create a yellow staircase.",
        "scene": "empty",
        "family": "stairs",
        "program": "box(\"staircase.step0\",-6,1,0,3,2,6,\"yellow\")\nbox(\"staircase.step1\",-3,2,0,3,4,6,\"yellow\")\nbox(\"staircase.step2\",0,3,0,3,6,6,\"yellow\")\nbox(\"staircase.step3\",3,4,0,3,8,6,\"yellow\")\nbox(\"staircase.step4\",6,5,0,3,10,6,\"yellow\")",
        "batchSeconds": 6.08479079999961,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Build a purple chair next to a green tree.",
        "scene": "empty",
        "family": "composition",
        "program": "box(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"green\")\nscale(\"tree\",0.5)\nbox(\"chair.seat\",0,4,0,6,1,6,\"purple\")\nbox(\"chair.back\",0,7,2.5,6,5,1,\"purple\")\nbox(\"chair.leg0\",-2,1.75,-2,1,3.5,1,\"purple\")\nbox(\"chair.leg1\",2,1.75,-2,1,3.5,1,\"purple\")\nbox(\"chair.leg2\",-2,1.75,2,1,3.5,1,\"purple\")\nbox(\"chair.leg3\",2,1.75,2,1,3.5,1,\"purple\")\nscale(\"chair\",0.5)\nplace(\"chair\",\"tree\",\"left\",2)",
        "batchSeconds": 6.08483889978379,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Build a castle with four towers and a gate.",
        "scene": "empty",
        "family": "unseen_castle",
        "program": "box(\"castle.tower\",0,2,0,6,4,2,\"brown\")\nbox(\"castle.gate\",0,5,0,2,2,2,\"brown\")\nscale(\"castle\",0.5)",
        "batchSeconds": 5.196485599968582,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Create an airplane with wings and a tail.",
        "scene": "empty",
        "family": "unseen_airplane",
        "program": "box(\"airplane.wing0\",0,3,0,2,4,2,\"white\")\nbox(\"airplane.wing1\",0,4,0,2,4,2,\"white\")\nbox(\"airplane.wing2\",0,6,0,2,4,2,\"white\")\nbox(\"airplane.wing3\",0,8,0,2,4,2,\"white\")\nbox(\"airplane.tail0\",-3,3.5,0,2,2,2,\"brown\")\nbox(\"airplane.tail1\",3,3.5,0,2,2,2,\"brown\")\nbox(\"airplane.tail2\",-4,3.5,0,2,2,2,\"brown\")\nbox(\"airplane.tail3\",4,3.5,0,2,2,2,\"brown\")",
        "batchSeconds": 5.196547799976543,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Make a red dinosaur with a long neck.",
        "scene": "empty",
        "family": "unseen_dinosaur",
        "program": "box(\"dinosaur.body\",0,3,0,10,5,4,\"red\")\nbox(\"dinosaur.head\",0,6,0,2,2,2,\"red\")\nbox(\"dinosaur.tail\",-2,8,0,2,4,2,\"red\")\nbox(\"dinosaur.neck\",0,10,0,2,2,2,\"red\")\nscale(\"dinosaur\",0.5)",
        "batchSeconds": 5.196592299966142,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Build a fountain with a basin and water.",
        "scene": "empty",
        "family": "unseen_fountain",
        "program": "box(\"fountain.basin\",0,1,0,9,2,9,\"brown\")\nbox(\"fountain.water\",0,8,0,2,2,2,\"blue\")",
        "batchSeconds": 5.196631100028753,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "A lighthouse with a red roof on a gray tower.",
        "scene": "empty",
        "family": "unseen_lighthouse",
        "program": "box(\"lighthouse.base\",0,0.5,0,10,2,6,\"gray\")\nbox(\"lighthouse.pole\",0,5,0,1,9,1,\"gray\")\nbox(\"lighthouse.lighter\",0,10,0,1,5,1,\"gray\")\nbox(\"lighthouse.tilt\",0,27,0,−1,3,1,\"gray\")\nscale(\"lighthouse\",0.5)\nbox(\"tower.base\",0,1,0,9,2,9,\"gray\")\nbox(\"tower.body\",0,7,0,5,10,5,\"gray\")\nbox(\"tower.cap\",0,13,0,8,2,8,\"gray\")\nscale(\"tower\",0.5)\nplace(\"tower\",\"lighthouse\",\"left\",2)",
        "batchSeconds": 5.196686499984935,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced incomplete arguments. Try again."
      },
      {
        "prompt": "A tiny coffee stand with a counter and canopy.",
        "scene": "empty",
        "family": "unseen_stand",
        "program": "box(\"stand.base\",0,1,0,9,2,9,\"brown\")\nbox(\"stand.body\",0,7,0,5,10,5,\"brown\")\nbox(\"stand.cap\",0,13,0,8,2,8,\"brown\")\nbox(\"stand.canopy\",0,13,0,3,2,3,\"cyan\")",
        "batchSeconds": 5.196727700065821,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Move the tree 4 units up. Leave the tower alone.",
        "scene": "tree: centered at [0,5,0], color green. tower: centered at [15,6,12], color gray.",
        "family": "move",
        "program": "move(\"tree\",0,4,0)",
        "batchSeconds": 2.4845214998349547,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Make the tree pink.",
        "scene": "tree: centered at [0,5,0], color green.",
        "family": "paint",
        "program": "paint(\"tree\",\"pink\")",
        "batchSeconds": 2.484561799792573,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Remove the tree, but keep the tower.",
        "scene": "tree: centered at [0,5,0], color green. tower: centered at [15,6,12], color gray.",
        "family": "remove",
        "program": "remove(\"tree\")",
        "batchSeconds": 2.484593099914491,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Add a copy of the tree 8 units to the right.",
        "scene": "tree: centered at [0,5,0], color green.",
        "family": "copy",
        "program": "copy(\"tree\",\"tree2\",8,0,0)",
        "batchSeconds": 2.484623999800533,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Make a row of 4 cyan blocks, each size 2, starting at x=0, spaced 4 units along x.",
        "scene": "empty",
        "family": "count",
        "program": "box(\"blocks.b0\",0,1,0,2,2,2,\"cyan\")\nbox(\"blocks.b1\",4,1,0,2,2,2,\"cyan\")\nbox(\"blocks.b2\",8,1,0,2,2,2,\"cyan\")\nbox(\"blocks.b3\",12,1,0,2,2,2,\"cyan\")",
        "batchSeconds": 2.4846633998677135,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Clear the entire scene.",
        "scene": "tree: centered at [0,5,0], color green.",
        "family": "clear",
        "program": "clear()",
        "batchSeconds": 2.4846978997811675,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Make it taller.",
        "scene": "tree: centered at [0,5,0], color green.",
        "family": "reference",
        "program": "scale(\"tree\",1.5)",
        "batchSeconds": 2.10214430000633,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Tell me a joke.",
        "scene": "empty",
        "family": "unrelated",
        "program": "I'm a joke. I'm not really there.",
        "batchSeconds": 2.102188599994406,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model produced an incomplete scene recipe. Try a shorter description."
      },
      {
        "prompt": "Build a hovercraft: a white body of size 8 by 2 by 4 on the ground. Attach a cyan canopy of size 4 by 2 by 3 to the above of its body. Attach a red wing of size 2 by 1 by 4 to the left of its body.",
        "scene": "empty",
        "family": "assembly_hovercraft",
        "program": "box(\"hovercraft.body\",0,1,0,8,2,4,\"white\")\nattach(\"hovercraft.canopy\",\"hovercraft.body\",\"above\",4,2,3,\"cyan\")\nattach(\"hovercraft.wing\",\"hovercraft.body\",\"left\",2,1,4,\"red\")",
        "batchSeconds": 2.102251200005412,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Build a beacon: a gray base of size 6 by 2 by 6 on the ground. Attach a white pole of size 2 by 8 by 2 above its base. Attach a yellow light of size 4 by 2 by 4 above its pole.",
        "scene": "empty",
        "family": "assembly_beacon",
        "program": "box(\"beacon.base\",0,1,0,6,2,6,\"gray\")\nattach(\"beacon.pole\",\"beacon.base\",\"above\",2,8,2,\"white\")\nattach(\"beacon.light\",\"beacon.pole\",\"above\",4,2,4,\"yellow\")",
        "batchSeconds": 2.1023411999922246,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Build a zorblatt: a purple core of size 4 by 4 by 4 on the ground. Put a cyan panel (6 x 1 x 2) touching the core on the left. Put a gold fin (2 x 6 x 1) touching the core on the above.",
        "scene": "empty",
        "family": "assembly_zorblatt",
        "program": "box(\"zorblatt.core\",0,2,0,4,4,4,\"purple\")\nattach(\"zorblatt.panel\",\"zorblatt.core\",\"left\",6,1,2,\"cyan\")\nattach(\"zorblatt.fin\",\"zorblatt.core\",\"above\",2,6,1,\"gold\")",
        "batchSeconds": 2.102388500003144,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Make a spaceship with a long body, two wings and a cockpit.",
        "scene": "empty",
        "family": "unseen_spaceship",
        "program": "box(\"spaceship.body\",0,3,0,6,6,2,\"brown\")\nattach(\"spaceship.wings\",\"spaceship.body\",\"above\",2,2,2,\"brown\")\nattach(\"spaceship.cockpit\",\"spaceship.cockpilot\",\"front\",0.5,0.5,1,\"black\")",
        "batchSeconds": 2.1024261000566185,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model referred to a missing group: spaceship.cockpilot"
      },
      {
        "prompt": "Build a blue mailbox with a red flag.",
        "scene": "empty",
        "family": "unseen_mailbox",
        "program": "box(\"mailbox.body\",0,4,0,10,8,8,\"blue\")\nbox(\"mailbox.top\",0,8.5,0,1,1,10,\"red\")\nbox(\"mailbox.left\",-4,1.75,0,2,2.5,2,\"red\")\nbox(\"mailbox.right\",4,1.75,0,2,2.5,2,\"red\")\nscale(\"mailbox\",0.5)",
        "batchSeconds": 5.801161899929866,
        "valid": true,
        "exactProgram": null,
        "exactScene": null
      },
      {
        "prompt": "Build a purple tree next to a yellow bench.",
        "scene": "empty",
        "answer": "box(\"bench.seat\",0,4,0,12,1,4,\"yellow\")\nbox(\"bench.back\",0,6,1.5,12,3,1,\"yellow\")\nbox(\"bench.left\",-4,1.75,0,1,3.5,3,\"yellow\")\nbox(\"bench.right\",4,1.75,0,1,3.5,3,\"yellow\")\nscale(\"bench\",0.5)\nbox(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"purple\")\nscale(\"tree\",0.5)\nplace(\"tree\",\"bench\",\"left\",2)",
        "family": "validation_other",
        "program": "box(\"bench.seat\",0,4,0,12,1,4,\"yellow\")\nbox(\"bench.back\",0,6,1.5,12,3,1,\"yellow\")\nbox(\"bench.left\",-4,1.75,0,1,3.5,3,\"yellow\")\nbox(\"bench.right\",4,1.75,0,1,3.5,3,\"yellow\")\nscale(\"bench\",0.5)\nbox(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"purple\")\nscale(\"tree\",0.5)\nplace(\"tree\",\"bench\",\"left\",2)",
        "batchSeconds": 5.801223699934781,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a brown pine to the back of a gray bench.",
        "scene": "empty",
        "answer": "box(\"bench.seat\",0,4,0,12,1,4,\"gray\")\nbox(\"bench.back\",0,6,1.5,12,3,1,\"gray\")\nbox(\"bench.left\",-4,1.75,0,1,3.5,3,\"gray\")\nbox(\"bench.right\",4,1.75,0,1,3.5,3,\"gray\")\nscale(\"bench\",0.5)\nbox(\"pine.trunk\",0,2,0,2,4,2,\"brown\")\nbox(\"pine.lower\",0,5,0,9,3,9,\"brown\")\nbox(\"pine.middle\",0,8,0,6,3,6,\"brown\")\nbox(\"pine.top\",0,10.5,0,3,2,3,\"brown\")\nscale(\"pine\",0.5)\nplace(\"pine\",\"bench\",\"back\",2)",
        "family": "validation_other",
        "program": "box(\"bench.seat\",0,4,0,12,1,4,\"gray\")\nbox(\"bench.back\",0,6,1.5,12,3,1,\"gray\")\nbox(\"bench.left\",-4,1.75,0,1,3.5,3,\"gray\")\nbox(\"bench.right\",4,1.75,0,1,3.5,3,\"gray\")\nscale(\"bench\",0.5)\nbox(\"pine.trunk\",0,2,0,2,4,2,\"brown\")\nbox(\"pine.lower\",0,5,0,9,3,9,\"brown\")\nbox(\"pine.middle\",0,8,0,6,3,6,\"brown\")\nbox(\"pine.top\",0,10.5,0,3,2,3,\"brown\")\nscale(\"pine\",0.5)\nplace(\"pine\",\"bench\",\"back\",2)",
        "batchSeconds": 5.801274999976158,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make the chair yellow, keeping its position.",
        "scene": "chair: centered at [-12,5,-12], color brown. tower: centered at [15,6,12], color gray.",
        "answer": "paint(\"chair\",\"yellow\")",
        "family": "validation_other",
        "program": "paint(\"chair\",\"yellow\")",
        "batchSeconds": 5.801312699913979,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Please build a small red car at x=12, z=0.",
        "scene": "empty",
        "answer": "box(\"car.body\",0,3,0,11,3,5,\"red\")\nbox(\"car.cabin\",0,5.5,0,5,2,4,\"cyan\")\nbox(\"car.wheel0\",-3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel1\",3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel2\",-3,1.5,3,2,3,1,\"black\")\nbox(\"car.wheel3\",3,1.5,3,2,3,1,\"black\")\nscale(\"car\",0.5)\nmove(\"car\",12,0,0)",
        "family": "validation_other",
        "program": "box(\"car.body\",0,3,0,11,3,5,\"red\")\nbox(\"car.cabin\",0,5.5,0,5,2,4,\"cyan\")\nbox(\"car.wheel0\",-3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel1\",3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel2\",-3,1.5,3,2,3,1,\"black\")\nbox(\"car.wheel3\",3,1.5,3,2,3,1,\"black\")\nscale(\"car\",0.5)\nmove(\"car\",12,0,0)",
        "batchSeconds": 5.801360599929467,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a blue box of width 4, height 6 and depth 2, with center [-12,3.0,0].",
        "scene": "empty",
        "answer": "box(\"block.main\",-12,3,0,4,6,2,\"blue\")",
        "family": "validation_other",
        "program": "box(\"block.main\",-12,3,0,4,6,2,\"blue\")",
        "batchSeconds": 5.801397499861196,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a cyan lamp to the right of a red car.",
        "scene": "empty",
        "answer": "box(\"car.body\",0,3,0,11,3,5,\"red\")\nbox(\"car.cabin\",0,5.5,0,5,2,4,\"cyan\")\nbox(\"car.wheel0\",-3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel1\",3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel2\",-3,1.5,3,2,3,1,\"black\")\nbox(\"car.wheel3\",3,1.5,3,2,3,1,\"black\")\nscale(\"car\",0.5)\nbox(\"lamp.base\",0,0.5,0,4,1,4,\"gray\")\nbox(\"lamp.pole\",0,5,0,1,9,1,\"gray\")\nbox(\"lamp.light\",0,10,0,4,2,4,\"cyan\")\nscale(\"lamp\",0.5)\nplace(\"lamp\",\"car\",\"right\",2)",
        "family": "validation_other",
        "program": "box(\"car.body\",0,3,0,11,3,5,\"red\")\nbox(\"car.cabin\",0,5.5,0,5,2,4,\"cyan\")\nbox(\"car.wheel0\",-3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel1\",3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel2\",-3,1.5,3,2,3,1,\"black\")\nbox(\"car.wheel3\",3,1.5,3,2,3,1,\"black\")\nscale(\"car\",0.5)\nbox(\"lamp.base\",0,0.5,0,4,1,4,\"gray\")\nbox(\"lamp.pole\",0,5,0,1,9,1,\"gray\")\nbox(\"lamp.light\",0,10,0,4,2,4,\"cyan\")\nscale(\"lamp\",0.5)\nplace(\"lamp\",\"car\",\"right\",2)",
        "batchSeconds": 8.341441800119355,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a gold flower next to a purple car.",
        "scene": "empty",
        "answer": "box(\"car.body\",0,3,0,11,3,5,\"purple\")\nbox(\"car.cabin\",0,5.5,0,5,2,4,\"cyan\")\nbox(\"car.wheel0\",-3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel1\",3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel2\",-3,1.5,3,2,3,1,\"black\")\nbox(\"car.wheel3\",3,1.5,3,2,3,1,\"black\")\nscale(\"car\",0.5)\nbox(\"flower.stem\",0,3.5,0,1,7,1,\"green\")\nbox(\"flower.center\",0,8,0,2,2,2,\"yellow\")\nbox(\"flower.petal0\",-2,8,0,2,2,2,\"gold\")\nbox(\"flower.petal1\",2,8,0,2,2,2,\"gold\")\nbox(\"flower.petal2\",0,10,0,2,2,2,\"gold\")\nbox(\"flower.petal3\",0,6,0,2,2,2,\"gold\")\nscale(\"flower\",0.5)\nplace(\"flower\",\"car\",\"left\",2)",
        "family": "validation_other",
        "program": "box(\"car.body\",0,3,0,11,3,5,\"purple\")\nbox(\"car.cabin\",0,5.5,0,5,2,4,\"cyan\")\nbox(\"car.wheel0\",-3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel1\",3,1.5,-3,2,3,1,\"black\")\nbox(\"car.wheel2\",-3,1.5,3,2,3,1,\"black\")\nbox(\"car.wheel3\",3,1.5,3,2,3,1,\"black\")\nscale(\"car\",0.5)\nbox(\"flower.stem\",0,3.5,0,1,7,1,\"green\")\nbox(\"flower.center\",0,8,0,2,2,2,\"yellow\")\nbox(\"flower.petal0\",-2,8,0,2,2,2,\"gold\")\nbox(\"flower.petal1\",2,8,0,2,2,2,\"gold\")\nbox(\"flower.petal2\",0,10,0,2,2,2,\"gold\")\nbox(\"flower.petal3\",0,6,0,2,2,2,\"gold\")\nscale(\"flower\",0.5)\nplace(\"flower\",\"car\",\"left\",2)",
        "batchSeconds": 8.341516199987382,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Please build a green snowman at x=0, z=12.",
        "scene": "empty",
        "answer": "box(\"snowman.base\",0,3,0,6,6,6,\"white\")\nbox(\"snowman.body\",0,8,0,4,4,4,\"white\")\nbox(\"snowman.head\",0,11.5,0,3,3,3,\"white\")\nbox(\"snowman.nose\",0,11.5,-2,1,1,2,\"orange\")\nbox(\"snowman.hat\",0,14,0,4,2,4,\"green\")\nmove(\"snowman\",0,0,12)",
        "family": "validation_other",
        "program": "box(\"snowman.base\",0,3,0,6,6,6,\"white\")\nbox(\"snowman.body\",0,8,0,4,4,4,\"white\")\nbox(\"snowman.head\",0,11.5,0,3,3,3,\"white\")\nbox(\"snowman.nose\",0,11.5,-2,1,1,2,\"orange\")\nbox(\"snowman.hat\",0,14,0,4,2,4,\"green\")\nmove(\"snowman\",0,0,12)",
        "batchSeconds": 8.341568700037897,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a copy of the bed 8 units to the right.",
        "scene": "bed: centered at [0,5,-12], color brown. tower: centered at [15,6,12], color gray.",
        "answer": "copy(\"bed\",\"bed2\",8,0,0)",
        "family": "validation_other",
        "program": "copy(\"bed\",\"bed2\",8,0,0)",
        "batchSeconds": 8.341610700124875,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a orange box of width 8, height 2 and depth 8, with center [-8,1.0,0].",
        "scene": "empty",
        "answer": "box(\"block.main\",-8,1,0,8,2,8,\"orange\")",
        "family": "validation_other",
        "program": "box(\"block.main\",-8,1,0,8,2,8,\"orange\")",
        "batchSeconds": 8.341651800088584,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Please build a small pink bench at x=12, z=-12.",
        "scene": "empty",
        "answer": "box(\"bench.seat\",0,4,0,12,1,4,\"pink\")\nbox(\"bench.back\",0,6,1.5,12,3,1,\"pink\")\nbox(\"bench.left\",-4,1.75,0,1,3.5,3,\"pink\")\nbox(\"bench.right\",4,1.75,0,1,3.5,3,\"pink\")\nscale(\"bench\",0.5)\nmove(\"bench\",12,0,-12)",
        "family": "validation_other",
        "program": "box(\"bench.seat\",0,4,0,12,1,4,\"pink\")\nbox(\"bench.back\",0,6,1.5,12,3,1,\"pink\")\nbox(\"bench.left\",-4,1.75,0,1,3.5,3,\"pink\")\nbox(\"bench.right\",4,1.75,0,1,3.5,3,\"pink\")\nscale(\"bench\",0.5)\nmove(\"bench\",12,0,-12)",
        "batchSeconds": 8.341699700104073,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a copy of the bridge 8 units to the right.",
        "scene": "bridge: centered at [0,5,12], color brown. tower: centered at [15,6,12], color gray.",
        "answer": "copy(\"bridge\",\"bridge2\",8,0,0)",
        "family": "validation_other",
        "program": "copy(\"bridge\",\"bridge2\",8,0,0)",
        "batchSeconds": 6.496858699945733,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Remove the bed, but keep the tower.",
        "scene": "bed: centered at [-8,5,0], color brown. tower: centered at [15,6,12], color gray.",
        "answer": "remove(\"bed\")",
        "family": "validation_other",
        "program": "remove(\"bed\")",
        "batchSeconds": 6.4969017000403255,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a orange tree next to a pink stairs.",
        "scene": "empty",
        "answer": "box(\"stairs.step0\",-6,1,0,3,2,6,\"pink\")\nbox(\"stairs.step1\",-3,2,0,3,4,6,\"pink\")\nbox(\"stairs.step2\",0,3,0,3,6,6,\"pink\")\nbox(\"stairs.step3\",3,4,0,3,8,6,\"pink\")\nbox(\"stairs.step4\",6,5,0,3,10,6,\"pink\")\nscale(\"stairs\",0.5)\nbox(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"orange\")\nscale(\"tree\",0.5)\nplace(\"tree\",\"stairs\",\"left\",2)",
        "family": "validation_other",
        "program": "box(\"stairs.step0\",-6,1,0,3,2,6,\"pink\")\nbox(\"stairs.step1\",-3,2,0,3,4,6,\"pink\")\nbox(\"stairs.step2\",0,3,0,3,6,6,\"pink\")\nbox(\"stairs.step3\",3,4,0,3,8,6,\"pink\")\nbox(\"stairs.step4\",6,5,0,3,10,6,\"pink\")\nscale(\"stairs\",0.5)\nbox(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"orange\")\nscale(\"tree\",0.5)\nplace(\"tree\",\"stairs\",\"left\",2)",
        "batchSeconds": 6.496962400153279,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Please build a white chair at x=0, z=12.",
        "scene": "empty",
        "answer": "box(\"chair.seat\",0,4,0,6,1,6,\"white\")\nbox(\"chair.back\",0,7,2.5,6,5,1,\"white\")\nbox(\"chair.leg0\",-2,1.75,-2,1,3.5,1,\"white\")\nbox(\"chair.leg1\",2,1.75,-2,1,3.5,1,\"white\")\nbox(\"chair.leg2\",-2,1.75,2,1,3.5,1,\"white\")\nbox(\"chair.leg3\",2,1.75,2,1,3.5,1,\"white\")\nmove(\"chair\",0,0,12)",
        "family": "validation_other",
        "program": "box(\"chair.seat\",0,4,0,6,1,6,\"white\")\nbox(\"chair.back\",0,7,2.5,6,5,1,\"white\")\nbox(\"chair.leg0\",-2,1.75,-2,1,3.5,1,\"white\")\nbox(\"chair.leg1\",2,1.75,-2,1,3.5,1,\"white\")\nbox(\"chair.leg2\",-2,1.75,2,1,3.5,1,\"white\")\nbox(\"chair.leg3\",2,1.75,2,1,3.5,1,\"white\")\nmove(\"chair\",0,0,12)",
        "batchSeconds": 6.497012600069866,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a green tower to the front of a green bookshelf.",
        "scene": "empty",
        "answer": "box(\"bookshelf.left\",-4,6,0,1,12,3,\"green\")\nbox(\"bookshelf.right\",4,6,0,1,12,3,\"green\")\nbox(\"bookshelf.shelf0\",0,0.5,0,8,1,3,\"green\")\nbox(\"bookshelf.shelf1\",0,4,0,8,1,3,\"green\")\nbox(\"bookshelf.shelf2\",0,8,0,8,1,3,\"green\")\nbox(\"bookshelf.shelf3\",0,11.5,0,8,1,3,\"green\")\nscale(\"bookshelf\",0.5)\nbox(\"tower.base\",0,1,0,9,2,9,\"green\")\nbox(\"tower.body\",0,7,0,5,10,5,\"green\")\nbox(\"tower.cap\",0,13,0,8,2,8,\"green\")\nscale(\"tower\",0.5)\nplace(\"tower\",\"bookshelf\",\"front\",2)",
        "family": "validation_other",
        "program": "box(\"bookshelf.left\",-4,6,0,1,12,3,\"green\")\nbox(\"bookshelf.right\",4,6,0,1,12,3,\"green\")\nbox(\"bookshelf.shelf0\",0,0.5,0,8,1,3,\"green\")\nbox(\"bookshelf.shelf1\",0,4,0,8,1,3,\"green\")\nbox(\"bookshelf.shelf2\",0,8,0,8,1,3,\"green\")\nbox(\"bookshelf.shelf3\",0,11.5,0,8,1,3,\"green\")\nscale(\"bookshelf\",0.5)\nbox(\"tower.base\",0,1,0,9,2,9,\"green\")\nbox(\"tower.body\",0,7,0,5,10,5,\"green\")\nbox(\"tower.cap\",0,13,0,8,2,8,\"green\")\nscale(\"tower\",0.5)\nplace(\"tower\",\"bookshelf\",\"front\",2)",
        "batchSeconds": 6.497065900126472,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Please build a small cyan tree at x=-12, z=-12.",
        "scene": "empty",
        "answer": "box(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"cyan\")\nscale(\"tree\",0.5)\nmove(\"tree\",-12,0,-12)",
        "family": "validation_other",
        "program": "box(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"cyan\")\nscale(\"tree\",0.5)\nmove(\"tree\",-12,0,-12)",
        "batchSeconds": 6.497107800096273,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a orange chair next to a green snowman.",
        "scene": "empty",
        "answer": "box(\"snowman.base\",0,3,0,6,6,6,\"white\")\nbox(\"snowman.body\",0,8,0,4,4,4,\"white\")\nbox(\"snowman.head\",0,11.5,0,3,3,3,\"white\")\nbox(\"snowman.nose\",0,11.5,-2,1,1,2,\"orange\")\nbox(\"snowman.hat\",0,14,0,4,2,4,\"green\")\nscale(\"snowman\",0.5)\nbox(\"chair.seat\",0,4,0,6,1,6,\"orange\")\nbox(\"chair.back\",0,7,2.5,6,5,1,\"orange\")\nbox(\"chair.leg0\",-2,1.75,-2,1,3.5,1,\"orange\")\nbox(\"chair.leg1\",2,1.75,-2,1,3.5,1,\"orange\")\nbox(\"chair.leg2\",-2,1.75,2,1,3.5,1,\"orange\")\nbox(\"chair.leg3\",2,1.75,2,1,3.5,1,\"orange\")\nscale(\"chair\",0.5)\nplace(\"chair\",\"snowman\",\"left\",2)",
        "family": "validation_other",
        "program": "box(\"snowman.base\",0,3,0,6,6,6,\"white\")\nbox(\"snowman.body\",0,8,0,4,4,4,\"white\")\nbox(\"snowman.head\",0,11.5,0,3,3,3,\"white\")\nbox(\"snowman.nose\",0,11.5,-2,1,1,2,\"orange\")\nbox(\"snowman.hat\",0,14,0,4,2,4,\"green\")\nscale(\"snowman\",0.5)\nbox(\"chair.seat\",0,4,0,6,1,6,\"orange\")\nbox(\"chair.back\",0,7,2.5,6,5,1,\"orange\")\nbox(\"chair.leg0\",-2,1.75,-2,1,3.5,1,\"orange\")\nbox(\"chair.leg1\",2,1.75,-2,1,3.5,1,\"orange\")\nbox(\"chair.leg2\",-2,1.75,2,1,3.5,1,\"orange\")\nbox(\"chair.leg3\",2,1.75,2,1,3.5,1,\"orange\")\nscale(\"chair\",0.5)\nplace(\"chair\",\"snowman\",\"left\",2)",
        "batchSeconds": 8.220834099920467,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Please build a small gold rocket at x=0, z=0.",
        "scene": "empty",
        "answer": "box(\"rocket.body\",0,7,0,4,10,4,\"gold\")\nbox(\"rocket.nose\",0,13,0,2,2,2,\"red\")\nbox(\"rocket.fin_left\",-3,3,0,2,4,2,\"red\")\nbox(\"rocket.fin_right\",3,3,0,2,4,2,\"red\")\nbox(\"rocket.flame\",0,1,0,2,2,2,\"orange\")\nscale(\"rocket\",0.5)",
        "family": "validation_other",
        "program": "box(\"rocket.body\",0,7,0,4,10,4,\"gold\")\nbox(\"rocket.nose\",0,13,0,2,2,2,\"red\")\nbox(\"rocket.fin_left\",-3,3,0,2,4,2,\"red\")\nbox(\"rocket.fin_right\",3,3,0,2,4,2,\"red\")\nbox(\"rocket.flame\",0,1,0,2,2,2,\"orange\")\nscale(\"rocket\",0.5)\nmove(\"rocket\",0,0,0)",
        "batchSeconds": 8.220898800063878,
        "valid": true,
        "exactProgram": false,
        "exactScene": true
      },
      {
        "prompt": "Please build a large orange bridge at x=12, z=12.",
        "scene": "empty",
        "answer": "box(\"bridge.deck\",0,4,0,16,1,6,\"orange\")\nbox(\"bridge.left_pier\",-6,1.75,0,2,3.5,5,\"orange\")\nbox(\"bridge.right_pier\",6,1.75,0,2,3.5,5,\"orange\")\nbox(\"bridge.rail_front\",0,6,-2.5,16,1,1,\"orange\")\nbox(\"bridge.rail_back\",0,6,2.5,16,1,1,\"orange\")\nscale(\"bridge\",1.5)\nmove(\"bridge\",12,0,12)",
        "family": "validation_other",
        "program": "box(\"bridge.deck\",0,4,0,16,1,6,\"orange\")\nbox(\"bridge.left_pier\",-6,1.75,0,2,3.5,5,\"orange\")\nbox(\"bridge.right_pier\",6,1.75,0,2,3.5,5,\"orange\")\nbox(\"bridge.rail_front\",0,6,-2.5,16,1,1,\"orange\")\nbox(\"bridge.rail_back\",0,6,2.5,16,1,1,\"orange\")\nscale(\"bridge\",1.5)\nmove(\"bridge\",12,0,12)",
        "batchSeconds": 8.22095250012353,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a pink box of width 8, height 4 and depth 2, with center [12,2.0,-12].",
        "scene": "empty",
        "answer": "box(\"block.main\",12,2,-12,8,4,2,\"pink\")",
        "family": "validation_other",
        "program": "box(\"block.main\",12,2,-12,8,4,2,\"pink\")",
        "batchSeconds": 8.220994499977678,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Please build a large gray tower at x=12, z=0.",
        "scene": "empty",
        "answer": "box(\"tower.base\",0,1,0,9,2,9,\"gray\")\nbox(\"tower.body\",0,7,0,5,10,5,\"gray\")\nbox(\"tower.cap\",0,13,0,8,2,8,\"gray\")\nscale(\"tower\",1.5)\nmove(\"tower\",12,0,0)",
        "family": "validation_other",
        "program": "box(\"tower.base\",0,1,0,9,2,9,\"gray\")\nbox(\"tower.body\",0,7,0,5,10,5,\"gray\")\nbox(\"tower.cap\",0,13,0,8,2,8,\"gray\")\nscale(\"tower\",1.5)\nmove(\"tower\",12,0,0)",
        "batchSeconds": 8.221039799973369,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a copy of the bookshelf 8 units to the right.",
        "scene": "bookshelf: centered at [8,5,-12], color brown. tower: centered at [15,6,12], color gray.",
        "answer": "copy(\"bookshelf\",\"bookshelf2\",8,0,0)",
        "family": "validation_other",
        "program": "copy(\"bookshelf\",\"bookshelf2\",8,0,0)",
        "batchSeconds": 8.221080400049686,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a copy of the car 8 units to the right.",
        "scene": "car: centered at [0,5,0], color brown. tower: centered at [15,6,12], color gray.",
        "answer": "copy(\"car\",\"car2\",8,0,0)",
        "family": "validation_other",
        "program": "copy(\"car\",\"car2\",8,0,0)",
        "batchSeconds": 3.2854089001193643,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a kiosk: a orange base of size 8 by 4 by 4 on the ground. Add a green cap, 4 wide, 2 tall and 2 deep, behind the base. Add a cyan light, 2 wide, 6 tall and 2 deep, behind the cap. Attach a purple panel of size 2 by 4 by 4 in front of its cap. Put a blue fin (4 x 2 x 2) touching the light on the above.",
        "scene": "empty",
        "answer": "box(\"kiosk.base\",0,2,0,8,4,4,\"orange\")\nattach(\"kiosk.cap\",\"kiosk.base\",\"back\",4,2,2,\"green\")\nattach(\"kiosk.light\",\"kiosk.cap\",\"back\",2,6,2,\"cyan\")\nattach(\"kiosk.panel\",\"kiosk.cap\",\"front\",2,4,4,\"purple\")\nattach(\"kiosk.fin\",\"kiosk.light\",\"above\",4,2,2,\"blue\")",
        "family": "validation_assembly",
        "program": "box(\"kiosk.base\",0,2,0,8,4,4,\"orange\")\nattach(\"kiosk.cap\",\"kiosk.base\",\"back\",4,2,2,\"green\")\nattach(\"kiosk.light\",\"kiosk.cap\",\"back\",2,6,2,\"cyan\")\nattach(\"kiosk.panel\",\"kiosk.cap\",\"front\",2,4,4,\"purple\")\nattach(\"kiosk.fin\",\"light\",\"above\",4,2,2,\"blue\")",
        "batchSeconds": 3.2854852001182735,
        "valid": false,
        "exactProgram": null,
        "exactScene": null,
        "error": "The model referred to a missing group: light"
      },
      {
        "prompt": "Make a hovercraft sculpture. Start with a white base, 4 wide, 2 tall and 6 deep, on the ground. Attach a cyan light of size 4 by 4 by 4 on top of its base. Attach a purple fin of size 6 by 1 by 1 to the left of its base.",
        "scene": "empty",
        "answer": "box(\"hovercraft.base\",0,1,0,4,2,6,\"white\")\nattach(\"hovercraft.light\",\"hovercraft.base\",\"above\",4,4,4,\"cyan\")\nattach(\"hovercraft.fin\",\"hovercraft.base\",\"left\",6,1,1,\"purple\")",
        "family": "validation_assembly",
        "program": "box(\"hovercraft.base\",0,1,0,4,2,6,\"white\")\nattach(\"hovercraft.light\",\"hovercraft.base\",\"above\",4,4,4,\"cyan\")\nattach(\"hovercraft.fin\",\"hovercraft.base\",\"left\",6,1,1,\"purple\")",
        "batchSeconds": 3.285528599983081,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a wisp sculpture. Start with a yellow core, 8 wide, 8 tall and 4 deep, on the ground. Add a brown wing, 4 wide, 2 tall and 2 deep, behind the core. Add a blue roof, 4 wide, 2 tall and 4 deep, to the right of the core. Attach a white light of size 4 by 2 by 4 to the left of its roof.",
        "scene": "empty",
        "answer": "box(\"wisp.core\",0,4,0,8,8,4,\"yellow\")\nattach(\"wisp.wing\",\"wisp.core\",\"back\",4,2,2,\"brown\")\nattach(\"wisp.roof\",\"wisp.core\",\"right\",4,2,4,\"blue\")\nattach(\"wisp.light\",\"wisp.roof\",\"left\",4,2,4,\"white\")",
        "family": "validation_assembly",
        "program": "box(\"wisp.core\",0,4,0,8,8,4,\"yellow\")\nattach(\"wisp.wing\",\"wisp.core\",\"back\",4,2,2,\"brown\")\nattach(\"wisp.roof\",\"wisp.core\",\"right\",4,2,4,\"blue\")\nattach(\"wisp.light\",\"wisp.roof\",\"left\",4,2,4,\"white\")",
        "batchSeconds": 3.2855678000487387,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a quasar sculpture. Start with a gold base, 4 wide, 2 tall and 8 deep, on the ground. Attach a cyan panel of size 1 by 2 by 4 to the above of its base. Add a blue window, 2 wide, 1 tall and 6 deep, to the left of the panel.",
        "scene": "empty",
        "answer": "box(\"quasar.base\",0,1,0,4,2,8,\"gold\")\nattach(\"quasar.panel\",\"quasar.base\",\"above\",1,2,4,\"cyan\")\nattach(\"quasar.window\",\"quasar.panel\",\"left\",2,1,6,\"blue\")",
        "family": "validation_assembly",
        "program": "box(\"quartermainer.base\",0,1,0,4,2,8,\"gold\")\nattach(\"quartermainer.panel\",\"quartermainer.base\",\"above\",1,2,4,\"cyan\")\nattach(\"quartermainer.window\",\"quartermainer.panel\",\"left\",2,1,6,\"blue\")",
        "batchSeconds": 3.2856062001083046,
        "valid": true,
        "exactProgram": false,
        "exactScene": false
      },
      {
        "prompt": "Make a quasar sculpture. Start with a red body, 8 wide, 8 tall and 4 deep, on the ground. Put a purple light (4 x 1 x 2) touching the body on the above. Add a green wing, 1 wide, 4 tall and 1 deep, behind the body. Attach a white panel of size 1 by 2 by 1 to the right of its wing. Add a orange fin, 4 wide, 6 tall and 4 deep, to the left of the panel.",
        "scene": "empty",
        "answer": "box(\"quasar.body\",0,4,0,8,8,4,\"red\")\nattach(\"quasar.light\",\"quasar.body\",\"above\",4,1,2,\"purple\")\nattach(\"quasar.wing\",\"quasar.body\",\"back\",1,4,1,\"green\")\nattach(\"quasar.panel\",\"quasar.wing\",\"right\",1,2,1,\"white\")\nattach(\"quasar.fin\",\"quasar.panel\",\"left\",4,6,4,\"orange\")",
        "family": "validation_assembly",
        "program": "box(\"quasar.body\",0,4,0,8,8,4,\"red\")\nattach(\"quasar.light\",\"quasar.body\",\"above\",4,1,2,\"purple\")\nattach(\"quasar.wing\",\"quasar.body\",\"back\",1,4,1,\"green\")\nattach(\"quasar.panel\",\"quasar.wing\",\"right\",1,2,1,\"white\")\nattach(\"quasar.fin\",\"quasar.panel\",\"left\",4,6,4,\"orange\")",
        "batchSeconds": 3.2856468001846224,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a wisp: a gray body of size 4 by 2 by 2 on the ground. Attach a orange fin of size 6 by 6 by 4 in front of its body. Put a orange window (6 x 6 x 2) touching the fin on the left. Put a blue roof (6 x 2 x 6) touching the body on the above.",
        "scene": "empty",
        "answer": "box(\"wisp.body\",0,1,0,4,2,2,\"gray\")\nattach(\"wisp.fin\",\"wisp.body\",\"front\",6,6,4,\"orange\")\nattach(\"wisp.window\",\"wisp.fin\",\"left\",6,6,2,\"orange\")\nattach(\"wisp.roof\",\"wisp.body\",\"above\",6,2,6,\"blue\")",
        "family": "validation_assembly",
        "program": "box(\"wisp.body\",0,1,0,4,2,2,\"gray\")\nattach(\"wisp.fin\",\"wisp.body\",\"front\",6,6,4,\"orange\")\nattach(\"wisp.window\",\"wisp.fin\",\"left\",6,6,2,\"orange\")\nattach(\"wisp.roof\",\"wisp.body\",\"above\",6,2,6,\"blue\")",
        "batchSeconds": 2.636671199928969,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a wisp sculpture. Start with a red base, 6 wide, 2 tall and 8 deep, on the ground. Put a white roof (6 x 6 x 4) touching the base on the above.",
        "scene": "empty",
        "answer": "box(\"wisp.base\",0,1,0,6,2,8,\"red\")\nattach(\"wisp.roof\",\"wisp.base\",\"above\",6,6,4,\"white\")",
        "family": "validation_assembly",
        "program": "box(\"wisp.base\",0,1,0,6,2,8,\"red\")\nattach(\"wisp.roof\",\"wisp.base\",\"above\",6,6,4,\"white\")",
        "batchSeconds": 2.636716000037268,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a beacon: a blue base of size 2 by 8 by 6 on the ground. Attach a blue light of size 2 by 6 by 4 to the right of its base.",
        "scene": "empty",
        "answer": "box(\"beacon.base\",0,4,0,2,8,6,\"blue\")\nattach(\"beacon.light\",\"beacon.base\",\"right\",2,6,4,\"blue\")",
        "family": "validation_assembly",
        "program": "box(\"beacon.base\",0,4,0,2,8,6,\"blue\")\nattach(\"beacon.light\",\"beacon.base\",\"right\",2,6,4,\"blue\")",
        "batchSeconds": 2.636751600075513,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a wisp sculpture. Start with a purple body, 2 wide, 6 tall and 8 deep, on the ground. Put a orange cap (6 x 2 x 2) touching the body on the back. Attach a red panel of size 2 by 2 by 1 to the right of its body.",
        "scene": "empty",
        "answer": "box(\"wisp.body\",0,3,0,2,6,8,\"purple\")\nattach(\"wisp.cap\",\"wisp.body\",\"back\",6,2,2,\"orange\")\nattach(\"wisp.panel\",\"wisp.body\",\"right\",2,2,1,\"red\")",
        "family": "validation_assembly",
        "program": "box(\"wisp.body\",0,3,0,2,6,8,\"purple\")\nattach(\"wisp.cap\",\"wisp.body\",\"back\",6,2,2,\"orange\")\nattach(\"wisp.panel\",\"wisp.body\",\"right\",2,2,1,\"red\")",
        "batchSeconds": 2.636786499992013,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a beacon sculpture. Start with a white core, 6 wide, 2 tall and 6 deep, on the ground. Add a white cap, 4 wide, 1 tall and 1 deep, to the right of the core. Attach a pink window of size 4 by 4 by 6 above its core. Put a cyan wing (6 x 4 x 2) touching the cap on the right.",
        "scene": "empty",
        "answer": "box(\"beacon.core\",0,1,0,6,2,6,\"white\")\nattach(\"beacon.cap\",\"beacon.core\",\"right\",4,1,1,\"white\")\nattach(\"beacon.window\",\"beacon.core\",\"above\",4,4,6,\"pink\")\nattach(\"beacon.wing\",\"beacon.cap\",\"right\",6,4,2,\"cyan\")",
        "family": "validation_assembly",
        "program": "box(\"beacon.core\",0,1,0,6,2,6,\"white\")\nattach(\"beacon.cap\",\"beacon.core\",\"right\",4,1,1,\"white\")\nattach(\"beacon.window\",\"beacon.core\",\"above\",4,4,6,\"pink\")\nattach(\"beacon.wing\",\"beacon.cap\",\"right\",6,4,2,\"cyan\")",
        "batchSeconds": 2.636825399938971,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a kiosk: a blue core of size 4 by 8 by 4 on the ground. Put a yellow cap (6 x 4 x 4) touching the core on the left. Attach a cyan fin of size 1 by 1 by 2 to the right of its core. Add a purple light, 2 wide, 6 tall and 6 deep, to the left of the cap.",
        "scene": "empty",
        "answer": "box(\"kiosk.core\",0,4,0,4,8,4,\"blue\")\nattach(\"kiosk.cap\",\"kiosk.core\",\"left\",6,4,4,\"yellow\")\nattach(\"kiosk.fin\",\"kiosk.core\",\"right\",1,1,2,\"cyan\")\nattach(\"kiosk.light\",\"kiosk.cap\",\"left\",2,6,6,\"purple\")",
        "family": "validation_assembly",
        "program": "box(\"kiosk.core\",0,4,0,4,8,4,\"blue\")\nattach(\"kiosk.cap\",\"kiosk.core\",\"left\",6,4,4,\"yellow\")\nattach(\"kiosk.fin\",\"kiosk.core\",\"right\",1,1,2,\"cyan\")\nattach(\"kiosk.light\",\"kiosk.cap\",\"left\",2,6,6,\"purple\")",
        "batchSeconds": 2.6368619001004845,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a monument sculpture. Start with a gold core, 2 wide, 4 tall and 2 deep, on the ground. Add a green window, 6 wide, 6 tall and 1 deep, above the core. Put a green cap (1 x 6 x 2) touching the core on the right. Put a gold panel (2 x 4 x 6) touching the core on the back.",
        "scene": "empty",
        "answer": "box(\"monument.core\",0,2,0,2,4,2,\"gold\")\nattach(\"monument.window\",\"monument.core\",\"above\",6,6,1,\"green\")\nattach(\"monument.cap\",\"monument.core\",\"right\",1,6,2,\"green\")\nattach(\"monument.panel\",\"monument.core\",\"back\",2,4,6,\"gold\")",
        "family": "validation_assembly",
        "program": "box(\"monument.core\",0,2,0,2,4,2,\"gold\")\nattach(\"monument.window\",\"monument.core\",\"above\",6,6,1,\"green\")\nattach(\"monument.cap\",\"monument.core\",\"right\",1,6,2,\"green\")\nattach(\"monument.panel\",\"monument.core\",\"back\",2,4,6,\"gold\")",
        "batchSeconds": 3.054182300111279,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a kiosk: a red body of size 4 by 4 by 6 on the ground. Attach a gold window of size 6 by 6 by 4 to the back of its body. Put a green light (4 x 6 x 1) touching the body on the front. Attach a cyan fin of size 1 by 4 by 1 to the back of its body.",
        "scene": "empty",
        "answer": "box(\"kiosk.body\",0,2,0,4,4,6,\"red\")\nattach(\"kiosk.window\",\"kiosk.body\",\"back\",6,6,4,\"gold\")\nattach(\"kiosk.light\",\"kiosk.body\",\"front\",4,6,1,\"green\")\nattach(\"kiosk.fin\",\"kiosk.body\",\"back\",1,4,1,\"cyan\")",
        "family": "validation_assembly",
        "program": "box(\"kiosk.body\",0,2,0,4,4,6,\"red\")\nattach(\"kiosk.window\",\"kiosk.body\",\"back\",6,6,4,\"gold\")\nattach(\"kiosk.light\",\"kiosk.body\",\"front\",4,6,1,\"green\")\nattach(\"kiosk.fin\",\"kiosk.body\",\"back\",1,4,1,\"cyan\")",
        "batchSeconds": 3.0542332001496106,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a beacon sculpture. Start with a orange body, 2 wide, 2 tall and 2 deep, on the ground. Add a purple window, 1 wide, 6 tall and 4 deep, to the right of the body. Put a orange wing (1 x 2 x 2) touching the window on the above. Attach a red fin of size 4 by 1 by 1 to the left of its body. Attach a gray light of size 2 by 6 by 2 to the above of its window.",
        "scene": "empty",
        "answer": "box(\"beacon.body\",0,1,0,2,2,2,\"orange\")\nattach(\"beacon.window\",\"beacon.body\",\"right\",1,6,4,\"purple\")\nattach(\"beacon.wing\",\"beacon.window\",\"above\",1,2,2,\"orange\")\nattach(\"beacon.fin\",\"beacon.body\",\"left\",4,1,1,\"red\")\nattach(\"beacon.light\",\"beacon.window\",\"above\",2,6,2,\"gray\")",
        "family": "validation_assembly",
        "program": "box(\"beacon.body\",0,1,0,2,2,2,\"orange\")\nattach(\"beacon.window\",\"beacon.body\",\"right\",1,6,4,\"purple\")\nattach(\"beacon.wing\",\"beacon.window\",\"above\",1,2,2,\"orange\")\nattach(\"beacon.fin\",\"beacon.body\",\"left\",4,1,1,\"red\")\nattach(\"beacon.light\",\"beacon.window\",\"above\",2,6,2,\"gray\")",
        "batchSeconds": 3.0542764000128955,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a hovercraft: a pink core of size 8 by 6 by 8 on the ground. Put a pink window (1 x 1 x 1) touching the core on the left. Put a yellow fin (6 x 2 x 4) touching the window on the left. Attach a gray wing of size 2 by 6 by 2 behind its core.",
        "scene": "empty",
        "answer": "box(\"hovercraft.core\",0,3,0,8,6,8,\"pink\")\nattach(\"hovercraft.window\",\"hovercraft.core\",\"left\",1,1,1,\"pink\")\nattach(\"hovercraft.fin\",\"hovercraft.window\",\"left\",6,2,4,\"yellow\")\nattach(\"hovercraft.wing\",\"hovercraft.core\",\"back\",2,6,2,\"gray\")",
        "family": "validation_assembly",
        "program": "box(\"hovercraft.core\",0,3,0,8,6,8,\"pink\")\nattach(\"hovercraft.window\",\"hovercraft.core\",\"left\",1,1,1,\"pink\")\nattach(\"hovercraft.fin\",\"hovercraft.window\",\"left\",6,2,4,\"yellow\")\nattach(\"hovercraft.wing\",\"hovercraft.core\",\"back\",2,6,2,\"gray\")",
        "batchSeconds": 3.054315600078553,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a monument sculpture. Start with a cyan core, 6 wide, 8 tall and 8 deep, on the ground. Attach a pink wing of size 2 by 1 by 2 to the front of its core. Add a yellow light, 6 wide, 1 tall and 1 deep, to the left of the wing.",
        "scene": "empty",
        "answer": "box(\"monument.core\",0,4,0,6,8,8,\"cyan\")\nattach(\"monument.wing\",\"monument.core\",\"front\",2,1,2,\"pink\")\nattach(\"monument.light\",\"monument.wing\",\"left\",6,1,1,\"yellow\")",
        "family": "validation_assembly",
        "program": "box(\"monument.core\",0,4,0,6,8,8,\"cyan\")\nattach(\"monument.wing\",\"monument.core\",\"front\",2,1,2,\"pink\")\nattach(\"monument.light\",\"monument.wing\",\"left\",6,1,1,\"yellow\")",
        "batchSeconds": 3.0543508001137525,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a beacon sculpture. Start with a yellow base, 2 wide, 2 tall and 4 deep, on the ground. Attach a brown window of size 4 by 1 by 6 to the front of its base.",
        "scene": "empty",
        "answer": "box(\"beacon.base\",0,1,0,2,2,4,\"yellow\")\nattach(\"beacon.window\",\"beacon.base\",\"front\",4,1,6,\"brown\")",
        "family": "validation_assembly",
        "program": "box(\"beacon.base\",0,1,0,2,2,4,\"yellow\")\nattach(\"beacon.window\",\"beacon.base\",\"front\",4,1,6,\"brown\")",
        "batchSeconds": 3.0543850001413375,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a wisp sculpture. Start with a orange core, 8 wide, 8 tall and 4 deep, on the ground. Attach a white wing of size 1 by 6 by 6 to the right of its core. Add a gold light, 1 wide, 1 tall and 6 deep, behind the core. Attach a pink cap of size 4 by 1 by 4 to the left of its light.",
        "scene": "empty",
        "answer": "box(\"wisp.core\",0,4,0,8,8,4,\"orange\")\nattach(\"wisp.wing\",\"wisp.core\",\"right\",1,6,6,\"white\")\nattach(\"wisp.light\",\"wisp.core\",\"back\",1,1,6,\"gold\")\nattach(\"wisp.cap\",\"wisp.light\",\"left\",4,1,4,\"pink\")",
        "family": "validation_assembly",
        "program": "box(\"wisp.core\",0,4,0,8,8,4,\"orange\")\nattach(\"wisp.wing\",\"wisp.core\",\"right\",1,6,6,\"white\")\nattach(\"wisp.light\",\"wisp.core\",\"back\",1,1,6,\"gold\")\nattach(\"wisp.cap\",\"wisp.light\",\"left\",4,1,4,\"pink\")",
        "batchSeconds": 2.46326919994317,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Make a beacon sculpture. Start with a red base, 8 wide, 2 tall and 2 deep, on the ground. Attach a red roof of size 1 by 6 by 4 on top of its base.",
        "scene": "empty",
        "answer": "box(\"beacon.base\",0,1,0,8,2,2,\"red\")\nattach(\"beacon.roof\",\"beacon.base\",\"above\",1,6,4,\"red\")",
        "family": "validation_assembly",
        "program": "box(\"beacon.base\",0,1,0,8,2,2,\"red\")\nattach(\"beacon.roof\",\"beacon.base\",\"above\",1,6,4,\"red\")",
        "batchSeconds": 2.4633319000713527,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Build a beacon: a gray core of size 6 by 6 by 6 on the ground. Attach a orange fin of size 1 by 1 by 1 to the above of its core. Put a green window (4 x 2 x 1) touching the fin on the front.",
        "scene": "empty",
        "answer": "box(\"beacon.core\",0,3,0,6,6,6,\"gray\")\nattach(\"beacon.fin\",\"beacon.core\",\"above\",1,1,1,\"orange\")\nattach(\"beacon.window\",\"beacon.fin\",\"front\",4,2,1,\"green\")",
        "family": "validation_assembly",
        "program": "box(\"beacon.core\",0,3,0,6,6,6,\"gray\")\nattach(\"beacon.fin\",\"beacon.core\",\"above\",1,1,1,\"orange\")\nattach(\"beacon.window\",\"beacon.fin\",\"front\",4,2,1,\"green\")",
        "batchSeconds": 2.4633872001431882,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Put the well to the right of the house, with a gap of 0.",
        "scene": "well: centered at [-10,5,0], colors green, 3 parts (body,top,base); house: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "place(\"well\",\"house\",\"right\",0)",
        "family": "validation_relation",
        "program": "place(\"well\",\"house\",\"right\",0)",
        "batchSeconds": 2.46343190013431,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Put the tree to the above of the rocket, with a gap of 3.",
        "scene": "tree: centered at [-10,5,0], colors green, 3 parts (body,top,base); rocket: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "place(\"tree\",\"rocket\",\"above\",3)",
        "family": "validation_relation",
        "program": "place(\"tree\",\"rocket\",\"above\",3)",
        "batchSeconds": 2.463474699994549,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Put the well to the left of the bench, with a gap of 0.",
        "scene": "well: centered at [-10,5,0], colors green, 3 parts (body,top,base); bench: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "place(\"well\",\"bench\",\"left\",0)",
        "family": "validation_relation",
        "program": "place(\"well\",\"bench\",\"left\",0)",
        "batchSeconds": 2.463517399970442,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Put the mushroom to the right of the snowman, with a gap of 3.",
        "scene": "mushroom: centered at [-10,5,0], colors green, 3 parts (body,top,base); snowman: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "place(\"mushroom\",\"snowman\",\"right\",3)",
        "family": "validation_relation",
        "program": "place(\"mushroom\",\"snowman\",\"right\",3)",
        "batchSeconds": 0.6009892001748085,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a yellow antenna of size 1 by 2 by 1 on top of the snowman.",
        "scene": "snowman: centered at [-10,5,0], colors green, 3 parts (body,top,base); stairs: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "attach(\"snowman.antenna\",\"snowman\",\"above\",1,2,1,\"yellow\")",
        "family": "validation_relation",
        "program": "attach(\"snowman.antenna\",\"snowman\",\"above\",1,2,1,\"yellow\")",
        "batchSeconds": 0.6010358000639826,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Put the robot to the right of the pine, with a gap of 3.",
        "scene": "robot: centered at [-10,5,0], colors green, 3 parts (body,top,base); pine: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "place(\"robot\",\"pine\",\"right\",3)",
        "family": "validation_relation",
        "program": "place(\"robot\",\"pine\",\"right\",3)",
        "batchSeconds": 0.6010684000793844,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Put the snowman to the back of the bed, with a gap of 1.",
        "scene": "snowman: centered at [-10,5,0], colors green, 3 parts (body,top,base); bed: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "place(\"snowman\",\"bed\",\"back\",1)",
        "family": "validation_relation",
        "program": "place(\"snowman\",\"bed\",\"back\",1)",
        "batchSeconds": 0.6010840001981705,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Add a gold antenna of size 4 by 4 by 2 on top of the well.",
        "scene": "well: centered at [-10,5,0], colors green, 3 parts (body,top,base); car: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "attach(\"well.antenna\",\"well\",\"above\",4,4,2,\"gold\")",
        "family": "validation_relation",
        "program": "attach(\"well.antenna\",\"well\",\"above\",4,4,2,\"gold\")",
        "batchSeconds": 0.6011140001937747,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Put the well to the left of the pine, with a gap of 3.",
        "scene": "well: centered at [-10,5,0], colors green, 3 parts (body,top,base); pine: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "place(\"well\",\"pine\",\"left\",3)",
        "family": "validation_relation",
        "program": "place(\"well\",\"pine\",\"left\",3)",
        "batchSeconds": 0.601144100073725,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      },
      {
        "prompt": "Put the well to the front of the stairs, with a gap of 2.",
        "scene": "well: centered at [-10,5,0], colors green, 3 parts (body,top,base); stairs: centered at [10,5,0], colors blue, 2 parts (body,roof)",
        "answer": "place(\"well\",\"stairs\",\"front\",2)",
        "family": "validation_relation",
        "program": "place(\"well\",\"stairs\",\"front\",2)",
        "batchSeconds": 0.3660794000606984,
        "valid": true,
        "exactProgram": true,
        "exactScene": true
      }
    ]
  },
  "export": {
    "format": "neural-scene-editor-v1",
    "baseModel": "HuggingFaceTB/SmolLM2-360M-Instruct",
    "revision": "a10cc1512eabd3dde888204e902eca88bddb4951",
    "baseURL": "https://huggingface.co/HuggingFaceTB/SmolLM2-360M-Instruct/resolve/a10cc1512eabd3dde888204e902eca88bddb4951/onnx/model_q4f16.onnx",
    "baseBytes": 272737275,
    "baseSHA256": "cc63370efc2aca6d5307518b85162777132cc5b8d68eeb8154ea9b5fce09ad46",
    "graph": "./studio/model/editor.onnx",
    "graphBytes": 5552968,
    "graphSHA256": "98d6b9303a50f4d80621787247b507ab245f9c6cf50323eca8b801470a8626bf",
    "layers": 32,
    "kvHeads": 5,
    "headDim": 64,
    "cacheType": "float16",
    "contextLimit": 2048,
    "adapterBranches": 96,
    "externalTensors": 516,
    "lastTokenProjection": true,
    "tokenOutput": true,
    "note": "Frozen 4-bit upstream model plus locally trained float16 attention adapters. Quantization is evaluated separately from PyTorch training.",
    "parity": {
      "tokenizerIdentical": true,
      "promptTokens": 350,
      "logitRMSE": 0.01241992972791195,
      "logitMaxError": 0.056854248046875,
      "topTokenSame": true,
      "scope": "One prefill, 49,152 final-token logits, dequantized frozen PyTorch base plus FP16 adapter versus exported quantized ONNX CPU. Greedy sequence checks are separate."
    }
  },
  "runtime": {
    "backend": "ONNX Runtime Web 1.31.1 / Dawn D3D12 / RTX 5080. Actual WebGPU compute, no browser UI or phone test.",
    "initializationMs": 710.2435,
    "results": [
      {
        "prompt": "Build a brown table.",
        "inputScene": "empty",
        "text": "box(\"table.top\",0,6,0,10,1,7,\"brown\")\nbox(\"table.leg0\",-4,2.75,-2.5,1,5.5,1,\"brown\")\nbox(\"table.leg1\",4,2.75,-2.5,1,5.5,1,\"brown\")\nbox(\"table.leg2\",-4,2.75,2.5,1,5.5,1,\"brown\")\nbox(\"table.leg3\",4,2.75,2.5,1,5.5,1,\"brown\")",
        "tokens": 139,
        "promptTokens": 350,
        "valid": true,
        "parts": 5,
        "semanticPass": true,
        "milliseconds": 3905.8095999999996
      },
      {
        "prompt": "Make the table blue.",
        "inputScene": "table: centered at [0,3.25,0], colors brown, 5 parts (top,leg0,leg1,leg2,leg3)",
        "text": "paint(\"table\",\"blue\")",
        "tokens": 7,
        "promptTokens": 384,
        "valid": true,
        "parts": 5,
        "semanticPass": true,
        "milliseconds": 252.23720000000048
      },
      {
        "prompt": "Move the table 4 units to the right.",
        "inputScene": "table: centered at [0,3.25,0], colors blue, 5 parts (top,leg0,leg1,leg2,leg3)",
        "text": "move(\"table\",4,0,0)",
        "tokens": 10,
        "promptTokens": 389,
        "valid": true,
        "parts": 5,
        "semanticPass": true,
        "milliseconds": 411.53359999999975
      },
      {
        "prompt": "Add a copy of the table 8 units to the right.",
        "inputScene": "table: centered at [4,3.25,0], colors blue, 5 parts (top,leg0,leg1,leg2,leg3)",
        "text": "copy(\"table\",\"table2\",8,0,0)",
        "tokens": 13,
        "promptTokens": 392,
        "valid": true,
        "parts": 10,
        "semanticPass": true,
        "milliseconds": 416.0137999999997
      },
      {
        "prompt": "Remove the table2, but keep the table.",
        "inputScene": "table: centered at [4,3.25,0], colors blue, 5 parts (top,leg0,leg1,leg2,leg3); table2: centered at [12,3.25,0], colors blue, 5 parts (top,leg0,leg1,leg2,leg3)",
        "text": "remove(\"table2\")",
        "tokens": 5,
        "promptTokens": 426,
        "valid": true,
        "parts": 5,
        "semanticPass": true,
        "milliseconds": 212.77700000000004
      },
      {
        "prompt": "Clear the entire scene.",
        "inputScene": "table: centered at [4,3.25,0], colors blue, 5 parts (top,leg0,leg1,leg2,leg3)",
        "text": "clear()",
        "tokens": 2,
        "promptTokens": 384,
        "valid": true,
        "parts": 0,
        "semanticPass": true,
        "milliseconds": 129.47900000000027
      },
      {
        "prompt": "Make a pink robot.",
        "inputScene": "empty",
        "text": "box(\"robot.body\",0,6,0,5,5,3,\"pink\")\nbox(\"robot.head\",0,10,0,4,3,4,\"pink\")\nbox(\"robot.left_leg\",-1.5,1.75,0,2,3.5,2,\"pink\")\nbox(\"robot.right_leg\",1.5,1.75,0,2,3.5,2,\"pink\")\nbox(\"robot.left_arm\",-3.5,6,0,2,5,2,\"pink\")\nbox(\"robot.right_arm\",3.5,6,0,2,5,2,\"pink\")\nbox(\"robot.eyes\",0,10,-2.25,3,0.5,0.5,\"black\")",
        "tokens": 190,
        "promptTokens": 350,
        "valid": true,
        "parts": 7,
        "semanticPass": true,
        "milliseconds": 5131.3077
      },
      {
        "prompt": "Build a purple chair next to a green tree.",
        "inputScene": "empty",
        "text": "box(\"tree.trunk\",0,3,0,2,6,2,\"brown\")\nbox(\"tree.crown\",0,8,0,8,6,8,\"green\")\nscale(\"tree\",0.5)\nbox(\"chair.seat\",0,4,0,6,1,6,\"purple\")\nbox(\"chair.back\",0,7,2.5,6,5,1,\"purple\")\nbox(\"chair.leg0\",-2,1.75,-2,1,3.5,1,\"purple\")\nbox(\"chair.leg1\",2,1.75,-2,1,3.5,1,\"purple\")\nbox(\"chair.leg2\",-2,1.75,2,1,3.5,1,\"purple\")\nbox(\"chair.leg3\",2,1.75,2,1,3.5,1,\"purple\")\nscale(\"chair\",0.5)\nplace(\"chair\",\"tree\",\"left\",2)",
        "tokens": 226,
        "promptTokens": 355,
        "valid": true,
        "parts": 8,
        "semanticPass": true,
        "milliseconds": 7287.714699999999
      },
      {
        "prompt": "Build a beacon: a gray base of size 6 by 2 by 6 on the ground. Attach a white pole of size 2 by 8 by 2 above its base. Attach a yellow light of size 4 by 2 by 4 above its pole.",
        "inputScene": "empty",
        "text": "box(\"beacon.base\",0,1,0,6,2,6,\"gray\")\nattach(\"beacon.pole\",\"beacon.base\",\"above\",2,8,2,\"white\")\nattach(\"beacon.light\",\"beacon.pole\",\"above\",4,2,4,\"yellow\")",
        "tokens": 67,
        "promptTokens": 402,
        "valid": true,
        "parts": 3,
        "semanticPass": true,
        "milliseconds": 1777.636699999999
      },
      {
        "prompt": "Build a zorblatt: a purple core of size 4 by 4 by 4 on the ground. Put a cyan panel (6 x 1 x 2) touching the core on the left. Put a gold fin (2 x 6 x 1) touching the core on the above.",
        "inputScene": "empty",
        "text": "box(\"zorblatt.core\",0,2,0,4,4,4,\"purple\")\nattach(\"zorblatt.panel\",\"zorblatt.core\",\"left\",6,1,2,\"cyan\")\nattach(\"zorblatt.fin\",\"zorblatt.core\",\"above\",2,6,1,\"gold\")",
        "tokens": 78,
        "promptTokens": 409,
        "valid": true,
        "parts": 3,
        "semanticPass": true,
        "milliseconds": 2127.4411
      }
    ],
    "semanticChecksPassed": 10,
    "semanticChecksTotal": 10,
    "cpu": {
      "backend": "Node ONNX Runtime CPU, same quantized graph and decoding loop as browser. Not a WebGPU or phone test.",
      "results": [
        {
          "prompt": "Build a brown table.",
          "text": "box(\"table.top\",0,6,0,10,1,7,\"brown\")\nbox(\"table.leg0\",-4,2.75,-2.5,1,5.5,1,\"brown\")\nbox(\"table.leg1\",4,2.75,-2.5,1,5.5,1,\"brown\")\nbox(\"table.leg2\",-4,2.75,2.5,1,5.5,1,\"brown\")\nbox(\"table.leg3\",4,2.75,2.5,1,5.5,1,\"brown\")",
          "tokens": 139,
          "promptTokens": 350,
          "valid": true,
          "parts": 5,
          "milliseconds": 2804.1431000000002
        },
        {
          "prompt": "Build a beacon: a gray base of size 6 by 2 by 6 on the ground. Attach a white pole of size 2 by 8 by 2 above its base. Attach a yellow light of size 4 by 2 by 4 above its pole.",
          "text": "box(\"beacon.base\",0,1,0,6,2,6,\"gray\")\nattach(\"beacon.pole\",\"beacon.base\",\"above\",2,8,2,\"white\")\nattach(\"beacon.light\",\"beacon.pole\",\"above\",4,2,4,\"yellow\")",
          "tokens": 67,
          "promptTokens": 402,
          "valid": true,
          "parts": 3,
          "milliseconds": 1825.5329000000002
        }
      ]
    }
  },
  "engine": {
    "scope": "Desktop Node CPU, compilation plus 2,000 simulation ticks per scene; excludes shader compilation and browser layout.",
    "benchmarks": [
      {
        "scene": "authored_demo",
        "parts": 8,
        "compileMs": 7.5381,
        "simulationMs": 0.0078308,
        "neurons": 601,
        "parameters": 4053,
        "uniformVectors": 29
      },
      {
        "scene": "table",
        "parts": 5,
        "compileMs": 2.983799999999974,
        "simulationMs": 0.005030249999999995,
        "neurons": 417,
        "parameters": 2933,
        "uniformVectors": 19
      },
      {
        "scene": "tree",
        "parts": 2,
        "compileMs": 1.2982000000000085,
        "simulationMs": 0.003987450000000024,
        "neurons": 249,
        "parameters": 1537,
        "uniformVectors": 13
      },
      {
        "scene": "robot",
        "parts": 7,
        "compileMs": 3.1299000000000206,
        "simulationMs": 0.007506950000000017,
        "neurons": 529,
        "parameters": 3497,
        "uniformVectors": 23
      },
      {
        "scene": "bridge",
        "parts": 5,
        "compileMs": 3.251600000000053,
        "simulationMs": 0.005236500000000035,
        "neurons": 425,
        "parameters": 2773,
        "uniformVectors": 21
      },
      {
        "scene": "stairs",
        "parts": 5,
        "compileMs": 3.2486999999999853,
        "simulationMs": 0.0070681000000000155,
        "neurons": 401,
        "parameters": 2725,
        "uniformVectors": 15
      },
      {
        "scene": "composition",
        "parts": 8,
        "compileMs": 5.336900000000014,
        "simulationMs": 0.009252299999999991,
        "neurons": 593,
        "parameters": 4125,
        "uniformVectors": 27
      },
      {
        "scene": "unseen_castle",
        "parts": 2,
        "compileMs": 1.4489000000000942,
        "simulationMs": 0.0034452,
        "neurons": 249,
        "parameters": 1537,
        "uniformVectors": 13
      },
      {
        "scene": "unseen_airplane",
        "parts": 8,
        "compileMs": 2.6654000000000906,
        "simulationMs": 0.006043699999999944,
        "neurons": 515,
        "parameters": 3535,
        "uniformVectors": 15
      },
      {
        "scene": "unseen_dinosaur",
        "parts": 4,
        "compileMs": 1.7687000000000808,
        "simulationMs": 0.004690850000000068,
        "neurons": 343,
        "parameters": 2199,
        "uniformVectors": 15
      },
      {
        "scene": "unseen_fountain",
        "parts": 2,
        "compileMs": 1.0860999999999876,
        "simulationMs": 0.0036499000000000024,
        "neurons": 249,
        "parameters": 1537,
        "uniformVectors": 13
      },
      {
        "scene": "unseen_stand",
        "parts": 4,
        "compileMs": 1.5452000000000226,
        "simulationMs": 0.005097549999999956,
        "neurons": 361,
        "parameters": 2233,
        "uniformVectors": 17
      },
      {
        "scene": "count",
        "parts": 4,
        "compileMs": 1.4983999999999469,
        "simulationMs": 0.00400994999999989,
        "neurons": 361,
        "parameters": 2365,
        "uniformVectors": 17
      },
      {
        "scene": "assembly_hovercraft",
        "parts": 3,
        "compileMs": 1.4027000000000953,
        "simulationMs": 0.003932350000000042,
        "neurons": 321,
        "parameters": 1961,
        "uniformVectors": 19
      },
      {
        "scene": "assembly_beacon",
        "parts": 3,
        "compileMs": 1.193300000000363,
        "simulationMs": 0.004456050000000005,
        "neurons": 305,
        "parameters": 1885,
        "uniformVectors": 15
      },
      {
        "scene": "assembly_zorblatt",
        "parts": 3,
        "compileMs": 1.3838000000000648,
        "simulationMs": 0.004168499999999994,
        "neurons": 321,
        "parameters": 1961,
        "uniformVectors": 19
      },
      {
        "scene": "unseen_mailbox",
        "parts": 4,
        "compileMs": 1.3565000000003238,
        "simulationMs": 0.004199699999999893,
        "neurons": 361,
        "parameters": 2321,
        "uniformVectors": 17
      },
      {
        "scene": "maximum_48",
        "parts": 48,
        "compileMs": 11.298800000000028,
        "simulationMs": 0.038937999999999875,
        "neurons": 2481,
        "parameters": 21081,
        "uniformVectors": 19
      }
    ],
    "gpu": {
      "device": "NVIDIA GeForce RTX 5080/PCIe/SSE2",
      "frames": [
        {
          "frame": "authored_demo-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0027216000000000002
        },
        {
          "frame": "authored_demo-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0026912
        },
        {
          "frame": "authored_demo-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0027216000000000002
        },
        {
          "frame": "authored_demo-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0026976
        },
        {
          "frame": "table-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0020512
        },
        {
          "frame": "table-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.002032
        },
        {
          "frame": "table-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0020272
        },
        {
          "frame": "table-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.002032
        },
        {
          "frame": "tree-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001232
        },
        {
          "frame": "tree-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012368000000000001
        },
        {
          "frame": "tree-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001232
        },
        {
          "frame": "tree-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012336
        },
        {
          "frame": "robot-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0024352
        },
        {
          "frame": "robot-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0024416
        },
        {
          "frame": "robot-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0024416
        },
        {
          "frame": "robot-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0024256
        },
        {
          "frame": "bridge-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0019168
        },
        {
          "frame": "bridge-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0019184
        },
        {
          "frame": "bridge-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.00192
        },
        {
          "frame": "bridge-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0019168
        },
        {
          "frame": "stairs-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0019104
        },
        {
          "frame": "stairs-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0019168
        },
        {
          "frame": "stairs-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0019232
        },
        {
          "frame": "stairs-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0018944
        },
        {
          "frame": "composition-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0027568000000000002
        },
        {
          "frame": "composition-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0027824
        },
        {
          "frame": "composition-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0027568000000000002
        },
        {
          "frame": "composition-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0027584000000000003
        },
        {
          "frame": "unseen_castle-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012224
        },
        {
          "frame": "unseen_castle-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012512
        },
        {
          "frame": "unseen_castle-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001248
        },
        {
          "frame": "unseen_castle-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012416
        },
        {
          "frame": "unseen_airplane-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0021136
        },
        {
          "frame": "unseen_airplane-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0021184
        },
        {
          "frame": "unseen_airplane-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.002112
        },
        {
          "frame": "unseen_airplane-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0021376
        },
        {
          "frame": "unseen_dinosaur-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001632
        },
        {
          "frame": "unseen_dinosaur-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0016527999999999998
        },
        {
          "frame": "unseen_dinosaur-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0016288000000000001
        },
        {
          "frame": "unseen_dinosaur-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0016448
        },
        {
          "frame": "unseen_fountain-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012352
        },
        {
          "frame": "unseen_fountain-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012352
        },
        {
          "frame": "unseen_fountain-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012255999999999999
        },
        {
          "frame": "unseen_fountain-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0012079999999999999
        },
        {
          "frame": "unseen_stand-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0017104
        },
        {
          "frame": "unseen_stand-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0017056
        },
        {
          "frame": "unseen_stand-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0017376
        },
        {
          "frame": "unseen_stand-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0017104
        },
        {
          "frame": "count-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001592
        },
        {
          "frame": "count-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015823999999999999
        },
        {
          "frame": "count-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015823999999999999
        },
        {
          "frame": "count-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015984
        },
        {
          "frame": "assembly_hovercraft-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0014992
        },
        {
          "frame": "assembly_hovercraft-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001496
        },
        {
          "frame": "assembly_hovercraft-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015328
        },
        {
          "frame": "assembly_hovercraft-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015072
        },
        {
          "frame": "assembly_beacon-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001496
        },
        {
          "frame": "assembly_beacon-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001496
        },
        {
          "frame": "assembly_beacon-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0014864000000000001
        },
        {
          "frame": "assembly_beacon-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0014927999999999999
        },
        {
          "frame": "assembly_zorblatt-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015392000000000001
        },
        {
          "frame": "assembly_zorblatt-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015536
        },
        {
          "frame": "assembly_zorblatt-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015376
        },
        {
          "frame": "assembly_zorblatt-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0015104
        },
        {
          "frame": "unseen_mailbox-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0018208
        },
        {
          "frame": "unseen_mailbox-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0018127999999999998
        },
        {
          "frame": "unseen_mailbox-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0018208
        },
        {
          "frame": "unseen_mailbox-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.001816
        },
        {
          "frame": "maximum_48-0",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0226576
        },
        {
          "frame": "maximum_48-1",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0226688
        },
        {
          "frame": "maximum_48-2",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.0226704
        },
        {
          "frame": "maximum_48-3",
          "pixels": 25600,
          "maxRGBError": 1,
          "medianGPUms": 0.022668800000000003
        }
      ],
      "totalPixels": 1843200,
      "scope": "Actual desktop offscreen OpenGL using generated GLSL. Draw-only timings exclude compilation, browser composition, model generation and phone behavior."
    },
    "independentSimulationTransitions": 12000,
    "unitAndInterfaceTests": 53
  },
  "limitations": [
    "48 solid boxes, quarter-unit geometry, four orthographic camera views; no arbitrary meshes, textures, skeletons or photographic rendering.",
    "Open-ended unfamiliar object names remain unreliable. Explicit part descriptions work better.",
    "Learned code runs only in a bounded scene grammar; invalid generations leave the existing world unchanged. Valid recipes can still be semantically wrong.",
    "Creation takes seconds; gameplay continues during generation. No language model runs in the frame loop.",
    "About 278.3 MB for base plus editor graph, plus tokenizer/runtime. WebGPU and shader-f16 are required for live text generation.",
    "Actual CPU, WebGPU compute and offscreen GPU rendering were tested on a desktop RTX 5080. Browser layout and phone compatibility/performance were not directly tested."
  ],
  "optimizations": [
    "4-bit frozen linear weights and float16 low-rank adapters.",
    "Exact upstream quantization used during training.",
    "Original frozen tensor bytes downloaded from a pinned public model; only a 5.6 MB adapted graph is hosted here.",
    "KV cache remains on the GPU. Prefill projects only the final hidden token. GPU argmax returns one token instead of transferring vocabulary logits.",
    "The LLM and scene compiler run in separate workers. Models are loaded only on request and cached when browser storage permits.",
    "Each scene is compiled once into sparse neural graphs; per-frame rendering factors out state-only work, caches unchanged frames and adapts resolution."
  ]
}