{"vocab": ["<|pad|>", "<|end|>", "<|prompt|>", "<|threejs|>", "<|svg|>", "<|sdf|>", "<|unk|>", " ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "\n", "\t", "1.", "0.", ".5", "0.08", "0.04", "0.03", "0.12", "2.", "0.2", "0.1", "0.07", ".6", "0.24", "16", "0.05", ".01", "0.02", "0.16", "3.2", ".9", "48", "1.5", "3.", "0.22", "10", ".02", "12.", "0.5", "32", "0.28", ".55", ".3", "0.32", "0.23", "0.17", "0.01", ".25", "170", ".4", "230", "250", "340", "0.3", "12", "24", "0.06", "0.18", "0.09", "0.26", "14", "0.11", "0.21", ".7", "0.29", "0.14", "1.9", "6.", "300", ".002", ".03", "8.", ".001", "2000", "0.44", "0.15", "160", "0.31", "0.48", "0.35", "20", "0.36", "0.6", "0.25", "0.19", "1.42", "0.96", "0.27", "0.4", "0.45", "26", "0.94", "#000000", "0.56", "#1e1f24", "1.8", "0.33", ".45", ".75", ".05", "0.52", "0x1e1f24", "0.8", "0.43", "0.95", "0.55", "0.42", "130", "0.72", "34", "0.34", "0.38", "0.49", "40", "0.13", "0.47", ".35", "0.37", ".97", "0.64", "0.46", ".8", "11", "22", "240", "0.78", "23", "25", "0.53", "0.7", "28", "0.88", "44", "#f5f5f5", "0.68", "52", "0.85", "80", "0.41", "0.82", "0.51", "64", "30", "0.39", "0.91", "0.76", "0xf5f5f5", "56", "4.", "0.83", "2.5", "#9aa0a6", "0.66", "72", "176", "36", ".95", "140", "0.54", "0.9", "88", "0.61", "0.73", "17", ".93", "0.79", "96", "0.67", "#6a5cff", "#8b5a3c", "0.97", "0.98", "0.84", "0x9aa0a6", "0.65", "0x6a5cff", "18", "0.57", "0.92", "42", "15", "21", "0.63", "38", "0x3a3f47", "0.89", "0x8b5a3c", "0xf3e9d2", "#f3e9d2", "29", "1.4", "19", "0.69", "1.04", "112", "#3a3f47", "31", "0.75", "0.77", "0xc8f7ff", "54", "46", "0xfff1e8", "60", "74", "35", "#c8f7ff", "0.59", "#747477", "#515153", "86", "104", "0.58", "33", "0.74", "0x747477", "1.25", "0.71", "76", "1.7", "1.6", "27", "0.81", "0x000000", "58", "#fff1e8", "1.08", "0.62", "0.86", "70", "68", "50", "66", "84", "1.06", "#e05a4f", "0.93", "1.12", "0xe05a4f", "#f28bb3", ".85", "24.", ".33", ".52", "0xf4d35e", ".06", ".2", "#a8d8f0", "3.5", "128", "37", "#f39c4a", "0xa8d8f0", ".98", "10.", ".47", ".62", ".08", "2.4", ".44", ".78", "13", "62", "0xf39c4a", ".86", ".92", ".65", "75", "#f6efe6", "173", "82", ".96", ".89", ".87", "#f4d35e", "0x29adff", "0x07070d", "78", "71", "264", "352", "237", "94", "69", "#07070d", "67", "#29adff", "0xf28bb3", "1.02", "102", "114", "43", "77", "73", "79", "92", "108", "#5cb85c", "#4a7fd4", "90", "#f9f9f9", "#aeaeae", "#a3d65c", "85", "118", "0x4a7fd4", "0.87", "49", "120", "#c0c4c8", "#86898c", "95", "0x5cb85c", "87", "116", "1.16", "1.2", "110", "81", "51", "0x2bb3a3", "105", "0xf9f9f9", "45", "100", "1.03", "5.", "1.01", "89", "106", "#00e436", "98", "#2bb3a3", "1.07", "#8e6cc9", "47", "83", "1.05", "1.1", "1.14", "#c2c3c7", "41", "#85888d", "#5d5f62", "0.99", "0xd9b38c", "53", "0xb8323a", "0xc0c4c8", "0xffb200", "65", "59", "61", "103", "#b8323a", "0x8e6cc9", "1.28", "#ffb200", "57", "93", "0xf8f1e3", "39", "63", "0x5f574f", "#d9b38c", "55", "#2c3e70", "107", "0xc2c3c7", "99", "0x00e436", "97", "91", "0xff004d", "1.18", "#e8b93a", "1.11", "144", "101", "0xe8b93a", "#f8f1e3", "#ada89e", "136", "1.36", "0xffa300", "0x2c3e70", "#5f574f", "1.32", "1.09", "0x85888d", "#ff6100", "122", "111", "117", "109", "0xff6100", "1.44", "#b79986", "#806b5d", "0xab5236", "#ffa300", "124", "126", "0xa3d65c", "152", "0xff7c00", "1.24", "0xf8e49b", "#ec9992", "#a56b66", "#f8c28f", "#ad8764", "#ab5236", "#7ec8e3", "0xb79986", "#2e7d4f", "1.19", "1.13", "#c9e7f6", "#8ca1ac", "1.15", "1.22", "0xec9992", "4.5", "115", "1.48", "#c6e69a", "#8aa16b", "0x7ec8e3", "1.17", "1.68", "0xff77a8", "148", "168", "#ff004d", "0x2e7d4f", "#ff77a8", "142", "146", "119", "113", "0xff1300", "#00aaff", "0x00aaff", "0xf8c28f", "#0062ff", "184", "150", "1.3", "#7cd0c6", "#56918a", "0xf7b7d0", "1.21", "#ffc700", "0x9ad39a", "#ff7c00", "0xffec27", "0x1d2b53", "#ff1300", "1.76", "0xffc700", "162", "#9ad39a", "#6b936b", "0x7c87a6", "0x7cd0c6", "#00ff00", "#f7b7d0", "#ac8091", "1.72", "121", "0xc9e7f6", "#f8e49b", "#ad9f6c", "158", "164", "0x00ff00", "#1d2b53", "154", "1.34", "166", "132", "#ff0063", "123", "#7c87a6", "#565e74", "#83769c", "1.64", "192", "#00ffe1", "#8fb0e4", "#647b9f", "#ffec27", "1.26", "138", "1.38", "0x0044ff", "134", "0x0062ff", "0x5d00ff", "180", "0xff8100", "125", "1.46", "0xf1d485", "174", "127", "0x00ffe1", "1.37", "172", "#d38085", "#93595d", "182", "178", "0x8fb0e4", "1.84", "0xffba00", "0x7dae92", "1.47", "0xff0063", "1.41", "1.33", "1.65", "#ffccaa", "#0044ff", "1.66", "1.23", "1.74", "186", "0xd38085", "#e7d0b8", "#a19180", "#5d00ff", "1.39", "156", "1.52", "139", "1.31", "1.29", "#ff000f", "#94ff00", "1.27", "133", "0xff000f", "131", "0xc6e69a", "1.43", "1.35", "0x00ff6b", "196", "1.63", "1.49", "1.45", "129", "1.86", "1.88", "#ff8100", "#008751", "0x00bbff", "1.56", "1.92", "#00bbff", "190", "0x94ff00", "#7e2553", "143", "135", "1.61", "137", "0x008751", "165", "188", "0x83769c", "0xffccaa", "194", "1.78", "0xb9a4de", "0x7e2553", "#b9a4de", "#81729b", "147", "#7dae92", "#577966", "1.58", "1.59", "200", "1.82", "#f1d485", "#a8945d", "1.67", "0xe7d0b8", "1.62", "145", "141", "1.54", "167", "169", "1.57", "0xafddee", "1.69", "149", "198", "1.71", "163", "1.94", "#ffba00", "208", "224", "1.75", "157", "1.77", "1.96", "1.73", "171", "#00ff6b", "216", "288", "204", "1.98", "212", "1.79", "155", "1.55", "159", "#afddee", "#7a9aa6", "161", "2.08", "210", "2.04", "175", "1.83", "153", "2.02", "202", "256", "218", "1.97", "206", "222", "214", "151", "1.89", "220", "1.53", "226", "1.81", "234", "1.93", "236", "2.03", "272", "177", "1.95", "1.51", "228", "1.87", "290", "1.85", "1.99", "278", "262", "298", "2.06", "187", "246", "242", "191", "217", "181", "1.91", "2.01", "179", "189", "215", "282", "276", "232", "213", "280", "270", "238", "284", "207", "286", "296", "292", "201", "254", "2.07", "2.12", "268", "185", "260", "266", "183", "244", "5.5", "274", "vec", "\n ", "float", "return", "max", "if", "\n ", "map", "part", "min", "new", "THREE", "abs", "col", "box", "ball", "fill", "width", "ro", "rd", "length", "stroke", "cyl", "normalize", "tg", "height", "rx", "rect", "Math", "cylz", "set", "ellipse", "cx", "cy", "ry", "const", "xz", "uv", "wvy", "svg", "else", "pyr", "scale", "for", "cone", "leg", "PI", "sha", "cylx", "break", "clamp", "tm", "uniform", "yxz", "xzy", "xyy", "yxy", "yyx", "int", "cross", "function", "eye", "nor", "geo", "place", "rotation", "ConeGeometry", "polygon", "wheel", "st", "points", "in", "hubcap", "dif", "xy", "\n ", "mix", "round", "add", "dot", "version", "es", "precision", "highp", "out", "void", "main", "gl_FragCoord", "sin", "cos", "exp", "tt", "xmlns", "http", "www", "org", "viewBox", "Group", "position", "BoxGeometry", "color", "window", "body", "filter", "rotateY", "CylinderGeometry", "petal", "fract", "lo", "hi", "te", "th", "dt", "arm", "pixel", "cells", "let", "vox", "roughness", "SphereGeometry", "Mesh", "MeshStandardMaterial", "head", "smooth", "headlight", "spot", "lowpoly", "neon", "wire", "defs", "clay", "fin", "ear", "style", "tx", "nose", "make", "pupil", "button", "tail", "layer", "stem", "top", "pow", "wing", "smoothstep", "of", "linejoin", "floor", "tower", "back", "inside", "tint", "key", "true", "LineSegments", "LineBasicMaterial", "canopy", "huge", "none", "small", "flower", "px", "feComposite", "operator", "id", "result", "SourceGraphic", "url", "glow", "feMerge", "feMergeNode", "big", "please", "tiny", "draw", "paw", "snowman", "hat", "create", "spire", "battlement", "art", "sculpt", "want", "chair", "generate", "build", "table", "seat", "fountain", "tree", "bench", "cap", "trunk", "antenna", "cabin", "cactus", "pine", "socket", "front", "foot", "setScalar", "castle", "taillight", "pig", "lamp", "mushroom", "pink", "fish", "transform", "yellow", "gold", "purple", "boat", "orange", "duck", "reflect", "cat", "teal", "blue", "white", "cream", "MeshPhysicalMaterial", "clearcoat", "bevel", "plane", "step", "sign", "lime", "red", "WireframeGeometry", "Map", "\n ", "InstancedMesh", "size", "Object", "Color", "split", "Number", "updateMatrix", "setMatrixAt", "matrix", "setColorAt", "setHex", "navy", "IcosahedronGeometry", "flatShading", "emissive", "emissiveIntensity", "EdgesGeometry", "brown", "robot", "gray", "filterUnits", "userSpaceOnUse", "feFlood", "feTile", "feMorphology", "dilate", "radius", "shape", "rendering", "crispEdges", "green", "truck", "frog", "feGaussianBlur", "stdDeviation", "rocket", "black", "bus", "house", "car", "bottom", "middle", "brim", "snout", "keep", "gate", "blueprint", "outline", "leaf", "center", "stand", "faceted", "claymation", "plasticine", "wireframe", "cup", "hull", "bow", "deck", "mast", "sail", "glowing", "basin", "water", "column", "bowl", "spray", "cyber", "backrest", "fuselage", "cockpit", "tailplane", "strut", "base", "pole", "light", "low", "poly", "cab", "cargo", "chassis", "torso", "chest", "panel", "tip", "beak", "synthwave", "pot", "pastel", "walls", "roof", "door", "chimney", "bit", "engine", "voxel", "belly", "mouth", "stripe", "windshield", "blocky", "plastic", "toy", "glossy", "piglet", "sailboat", "soft", "goldfish", "park", "daisy", "oak", "spaceship", "toadstool", "toad", "coach", "duckling", "lorry", "kitten", "kitty", "lamppost", "fir", "droid", "bot", "jet", "home", "airplane", "cottage", "pickup", "street", "sedan", "auto", ", ", ");", "=\"", "\" ", "),", "(p", "/ ", ".x", "float ", "); ", "--", "// ", "){", ".y", "return ", "); // ", "}\n", "(vec", ">\n", "=\"-", ">\n<", ");\n ", "= ", ")),", " p", "max(", "d,", "(p-", ")*", "d=", "\"/", " <", "(d,", "\"/>", ",vec", "!--", "!-- ", " --", " -->\n<", ")-", "part(", "min(", "d=U", "d=U(d,", "(p-vec", "),vec", ": ", ".x,", "\"/> <", "\"/> \n\n\n\n\n<", "function ", ";}\nvec", "return d", "C(", "t=", "t);", "t+=", "||t", "||t>", "col=", " + ", ") / ", "\" stroke-", "\" stroke-width=\"", "col,", "place(m", "place(m, ", "place(m, k, x, y, z, a, b, c", "') {", "') { m.", "') { m.rotation", " = Math.PI / ", "; m.scale.set(", "a, c", "); }\n ", "' ? new THREE.ConeGeometry", "' ? new THREE.ConeGeometry(", "max(q.x,", "-ro", "=(", ", -", "); // leg", " <= ", "polygon ", "g>\n<", "(p.xz", ".y),", ".x<", " b", "(n", "*(", ");\n if(m<", ", col", "cyl(p-vec", "); // eye", "polygon points", "cyl', ", "\"/><", "><", "),L", " -->\n\n<", ".z)),", "xy*", "/rd", ");\n col=", "else if(", ";\n}\n", " l", " -->\n", " p=ro+rd*tg", " p=ro+rd*tg;", "exp(-", "*tg*tg", "}\n O", "}\n O=vec", "(col,", " C(float m){\n if(m<", ");\n return vec", "*sha", "\n\n\n<", "/svg>\n", "g ", "') ", "') return ", "Math.round", "Math.round((", ") / S", ") / S); ", " * S", ");\n const ", "\nconst g", "\nconst g = new THREE.", "\nconst g = new THREE.Group", "();\nfunction ", "position.set(", "if (k === 'cylx", "if (k === 'cylz", "function part(", "function part(k, x, y, z, a, b, c", "function part(k, x, y, z, a, b, c, col", "function part(k, x, y, z, a, b, c, col) {\n ", "BoxGeometry(", ").", "g.add", ");\n}\npart('", "return g", "return g;\n", "\n d=U(d,cylz", "\n d=U(d,cylz(p-vec", " in", "(geo", "({ color", "({ color: ", "\npart('cyl', ", "); // wheel", "max(dot", " -->\n\n\n<", "mix(vec", "*tg*tg));\n ", "*tg*tg));\n }\n O=vec", "\npart('cylz", "\npart('cylz', ", " - ", ");\n d=U(d,", "\n return d;\n}\nvec", "); // hubcap", "\nconst g = new THREE.Group();\nfunction ", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n ", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n ", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / ", "; m.scale.set(b, ", "; m.scale.set(b, a, c", "; m.scale.set(b, a, c); }\n ", "; m.scale.set(b, a, c); }\n else ", "; m.scale.set(b, a, c); }\n else if (k === 'cylz", "; m.scale.set(b, a, c); }\n else if (k === 'cylz') { m.rotation", "; m.scale.set(b, a, c); }\n else if (k === 'cylz') { m.rotation.x", "; m.scale.set(b, a, c); }\n else if (k === 'cylz') { m.rotation.x = Math.PI / ", "; m.scale.set(a, c", "; m.scale.set(a, c, ", "; m.scale.set(a, c, b", "; m.scale.set(a, c, b); }\n ", "; m.scale.set(a, c, b); }\n else", "; m.scale.set(a, c, b); }\n else m.scale.set(", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\n", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n ", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const ", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = ", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = k === '", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = k === 'box", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = k === 'box' ? new THREE.", "; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = k === 'box' ? new THREE.BoxGeometry(", ")\n : k === 'ball", ")\n : k === 'ball' ? new THREE.", ")\n : k === 'cone", ")\n : k === 'cone' ? new THREE.ConeGeometry(", ")\n : k === 'pyr", ")\n : k === 'pyr' ? new THREE.ConeGeometry(", ").rotateY", ").rotateY(", ").rotateY(Math.PI / ", ")\n : new THREE.", ")\n : new THREE.CylinderGeometry", ")\n : new THREE.CylinderGeometry(", ");\n const m", ");\n const m = new THREE.", "({ color: col", " }));\n ", "place(m, k, x, y, z, a, b, c);\n ", "place(m, k, x, y, z, a, b, c);\n g.add", "place(m, k, x, y, z, a, b, c);\n g.add(m", "place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "(geo, ", " -->\n\n\n", "\npart('box', -", "\"/> \n\n \n\n\n\n\n", "LineSegments(new THREE.", "), new THREE.LineBasicMaterial", "), new THREE.LineBasicMaterial({ color: col", ", smooth, ", ");\n d=U(d,box(p-vec", ");\n const m = new THREE.Mesh(geo, new THREE.MeshStandardMaterial({ color: col, roughness: ", "); // pupil", "none\" stroke-width=\"", "\"/> \n\n<", " -->\n\n\n\n<", " in=\"SourceGraphic", "\"/>\n<", "filter=\"", "filter=\"url", "filter=\"url(", "filter=\"url(#", "b\"/><", "\"/> \n\n\n<", " -->\n\n\n\n", "); // leg\n d=U(d,cyl(p-vec", "\"/> \n \n \n", "\"/> \n\n", ");\n col=mix", ");\n col=mix(col", ");\n col=mix(col,vec", "),smoothstep(", ");\n const float ", ");\n const float S", ");\n const float S=", "),b", "),i", "-ro)/rd,i", "-ro)/rd,", "-ro)/rd,lo", "-ro)/rd,lo=min(", "-ro)/rd,lo=min(i", "),hi", "),hi=max(", "),hi=max(i", ");\n float te", ");\n float te=max(", ");\n float te=max(max(lo", ");\n float te=max(max(lo.x,", ");\n float te=max(max(lo.x,lo", ");\n float te=max(max(lo.x,lo.y),", ");\n float te=max(max(lo.x,lo.y),max(lo", ");\n float te=max(max(lo.x,lo.y),max(lo.z", ");\n float te=max(max(lo.x,lo.y),max(lo.z,", ")),tx", ")),tx=min(", ")),tx=min(hi", ")),tx=min(hi.x,", ")),tx=min(hi.x,min(", ")),tx=min(hi.x,min(hi", ")),tx=min(hi.x,min(hi.y,", ")),tx=min(hi.x,min(hi.y,hi", ")),tx=min(hi.x,min(hi.y,hi.z)),", ")),tx=min(hi.x,min(hi.y,hi.z)),th=", ")),tx=min(hi.x,min(hi.y,hi.z)),th=-", ",m=", ",tt=", ",tt=te", ",tt=te;\n vec", " n=vec", ");\n if(", ");\n if(te", ");\n if(te<", ");\n if(te", "||tt>tx", "||tt>tx)break;", "||tt>tx)break;\n ", "||tt>tx)break;\n }\n ", "||tt>tx)break;\n }\n }\n if(", "||tt>tx)break;\n }\n }\n if(th", "||tt>tx)break;\n }\n }\n if(th>", " p=ro+rd*th", " p=ro+rd*th,", " p=ro+rd*th,f=", " p=ro+rd*th,f=abs(fract", " p=ro+rd*th,f=abs(fract(p", " p=ro+rd*th,f=abs(fract(p/", " p=ro+rd*th,f=abs(fract(p/S", " p=ro+rd*th,f=abs(fract(p/S)-", "-abs(", "-abs(n", "-abs(n));\n float ", "-abs(n));\n float e", "-abs(n));\n float e=max(", "-abs(n));\n float e=max(f", "-abs(n));\n float e=max(f.x,", "-abs(n));\n float e=max(f.x,max(", "-abs(n));\n float e=max(f.x,max(f", "-abs(n));\n float e=max(f.x,max(f.y,", "-abs(n));\n float e=max(f.x,max(f.y,f", "-abs(n));\n float e=max(f.x,max(f.y,f.z)", "-abs(n));\n float e=max(f.x,max(f.y,f.z));\n col=", "-abs(n));\n float e=max(f.x,max(f.y,f.z));\n col=C", "-abs(n));\n float e=max(f.x,max(f.y,f.z));\n col=C(m", "-abs(n));\n float e=max(f.x,max(f.y,f.z));\n col=C(m)*(", "*max(dot(n,L),", ",L))", ",L)))*(", ",L)))*(e", ",L)))*(e>", "); // body\n d=U(d,ball(p-vec", " p=ro+rd*t,n=nor(p);\n ", " p=ro+rd*t,n=nor(p);\n n", " p=ro+rd*t,n=nor(p);\n n=normalize(", " p=ro+rd*t,n=nor(p);\n n=normalize(floor", " p=ro+rd*t,n=nor(p);\n n=normalize(floor(n", " p=ro+rd*t,n=nor(p);\n n=normalize(floor(n*", "));\n float dif=max(dot(n,L),", "); // window\npart('box', ", ");\n const m = new THREE.LineSegments(new THREE.", ");\n const m = new THREE.LineSegments(new THREE.WireframeGeometry", ");\n const m = new THREE.LineSegments(new THREE.WireframeGeometry(geo", ");\n const m = new THREE.LineSegments(new THREE.WireframeGeometry(geo), new THREE.LineBasicMaterial({ color: col", "\ng.scale.setScalar(", "\nconst g = new THREE.Group(), ", "\nconst g = new THREE.Group(), S", "\nconst g = new THREE.Group(), S = ", ", cells", ", cells = ", ", cells = new ", ", cells = new Map", ", cells = new Map();\nfunction ", ", cells = new Map();\nfunction inside(k, ", ", cells = new Map();\nfunction inside(k, u", ", cells = new Map();\nfunction inside(k, u, ", ", cells = new Map();\nfunction inside(k, u, v", ", cells = new Map();\nfunction inside(k, u, v, ", ", cells = new Map();\nfunction inside(k, u, v, w", ", cells = new Map();\nfunction inside(k, u, v, w) {\n ", ", cells = new Map();\nfunction inside(k, u, v, w) {\n if (k === '", ", cells = new Map();\nfunction inside(k, u, v, w) {\n if (k === 'ball", ", cells = new Map();\nfunction inside(k, u, v, w) {\n if (k === 'ball') return u * u + v * v", ", cells = new Map();\nfunction inside(k, u, v, w) {\n if (k === 'ball') return u * u + v * v + w * w <= ", ";\n if (k === 'cyl", ";\n if (k === 'cyl') return u * u + w * w <= ", ";\n if (k === 'cylx", ";\n if (k === 'cylx') return ", ";\n if (k === 'cylx') return v * v", ";\n if (k === 'cylx') return v * v + w * w <= ", ";\n if (k === 'cylz", ";\n if (k === 'cylz') return u * u + v * v", ";\n if (k === 'cylz') return u * u + v * v <= ", ";\n if (k === 'cone", ";\n if (k === 'cone') return u * u + w * w <= ", ";\n if (k === 'cone') return u * u + w * w <= ((", ") *", ") ** ", ";\n if (k === 'pyr", ";\n if (k === 'pyr') return ", ";\n if (k === 'pyr') return Math.", ";\n if (k === 'pyr') return Math.max(", ";\n if (k === 'pyr') return Math.max(Math.abs(", ";\n if (k === 'pyr') return Math.max(Math.abs(u", ";\n if (k === 'pyr') return Math.max(Math.abs(u), ", ";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(", ";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(w", ";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(w))", ";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(w)) <= ", ";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(w)) <= (", ";\n return ", ";\n return true", ";\n return true;\n}\n", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x -", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x +", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y -", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S -", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j + ',' + ", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j + ',' + l", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j + ',' + l, col", ";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j + ',' + l, col);\n}\npart('", "\nconst vox", "\nconst vox = new THREE.", "\nconst vox = new THREE.InstancedMesh", "\nconst vox = new THREE.InstancedMesh(new THREE.", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "), new THREE.MeshStandardMaterial", "), new THREE.MeshStandardMaterial({ ", "), new THREE.MeshStandardMaterial({ roughness: ", " }), ", " }), cells", " }), cells.", " }), cells.size", " }), cells.size);\n", " }), cells.size);\nconst ", " }), cells.size);\nconst o", " }), cells.size);\nconst o = new THREE.", " }), cells.size);\nconst o = new THREE.Object", "D(), ", "D(), tint", "D(), tint = new THREE.", "D(), tint = new THREE.Color", "D(), tint = new THREE.Color();\n", "D(), tint = new THREE.Color();\nlet", "D(), tint = new THREE.Color();\nlet ", "D(), tint = new THREE.Color();\nlet n", "D(), tint = new THREE.Color();\nlet n = ", ";\nfor (", ";\nfor (const [", ";\nfor (const [key", ";\nfor (const [key, col", ";\nfor (const [key, col]", ";\nfor (const [key, col] of", ";\nfor (const [key, col] of ", ";\nfor (const [key, col] of cells", ";\nfor (const [key, col] of cells) {\n ", ";\nfor (const [key, col] of cells) {\n const [", ";\nfor (const [key, col] of cells) {\n const [i", ";\nfor (const [key, col] of cells) {\n const [i, ", ";\nfor (const [key, col] of cells) {\n const [i, j", ";\nfor (const [key, col] of cells) {\n const [i, j, ", ";\nfor (const [key, col] of cells) {\n const [i, j, l", ";\nfor (const [key, col] of cells) {\n const [i, j, l]", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = ", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(','", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, ", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, j * S", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, j * S + ", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, j * S + S", ";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, j * S + S / ", ", l * S", ", l * S);\n o.", ", l * S);\n o.updateMatrix", ", l * S);\n o.updateMatrix(", ", l * S);\n o.updateMatrix();\n vox.", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, ", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, ", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col)", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\n", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(vox", "\"/>\n\n\n\n\n\n \n\n\n\n\n\n<", "=\"t\" operator=\"in\"/>\n<", "\"/>\n\n\n\n\n\n\n\n\n\n\n\n<", "%\"><", "\" result=\"b\"/><", "\" result=\"b\"/><", "\" result=\"b\"/>\n<", "\" result=\"b\"/>\n\n\n\n\n\n \n \n \n \n \n\n\n", "\"/> \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n\n", "); // leaf", "); // center", "); // base", "); // pole", "); // light", "\"/>\n\n \n \n \n \n\n\n\n \n\n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n", ";\n d=U(d,ball(p-vec", "); // bottom\n d=U(d,ball(p-vec", "); // middle\n d=U(d,ball(p-vec", "); // head\n d=U(d,ball(p-vec", "); // button\n d=U(d,cyl(p-vec", "); // hat brim\n d=U(d,cyl(p-vec", "), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('box', ", "); // head\n d=U(d,cylz(p-vec", "); // snout\n d=U(d,ball(p-vec", "); // eye\n d=U(d,pyr(p-vec", "); // ear\n d=U(d,cyl(p-vec", "\"/> \n\n\n \n \n \n \n\n\n", "\"/> \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n\n \n\n\n", "), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('ball', ", "); // walls\n d=U(d,pyr(p-vec", "); // roof\n d=U(d,box(p-vec", "); // door\n d=U(d,box(p-vec", "); // head\npart('pyr', ", "); // ear\npart('ball', ", "); // nose\npart('cyl', ", "); // paw\npart('cyl', -", "); // paw\npart('box', ", "); // headlight\nreturn g;\n", "fir tree", "); // body\npart('cone', ", "); // fin\npart('box', -", "); // fin\npart('box', ", "); // fin\npart('cone', ", "\"/> \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n", "); // spot\n return d;\n}\nvec", "); // window\npart('cylz', ", "); // headlight\npart('box', -", "); // taillight\npart('box', -", "\"/> \n \n \n\n\n", "\"/> \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n", "\"/> \n\n\n", "\"/> \n\n\n", "\"/> \n \n \n\n\n\n \n\n\n", "); // belly\npart('ball', ", "); // eye socket\npart('ball', -", "); // eye socket\npart('ball', ", "); // pupil\npart('ball', -", "); // pupil\npart('box', ", "); // mouth\npart('ball', ", "); // front foot\npart('ball', -", "); // front foot\npart('ball', ", "); // back leg\npart('ball', -", "); // sail\nreturn g;\n", "\"/> \n \n \n \n\n\n", "\"/> \n \n\n\n", " in polygon ", " in polygon style", "small\nprecision highp float;\nuniform vec", "); // body\n d=U(d,cone(p-vec", "); // fin\n d=U(d,cone(p-vec", "); // canopy\n return d;\n}\nvec", "); // wheel\nreturn g;\n", "\"/> \n\n\n", ");\n d=U(d,cylx(p-vec", "); // wheel\n return d;\n}\nvec", "); // stand\nreturn g;\n", "purple\nprecision highp float;\nuniform vec", "\"/> \n \n \n\n\n \n \n\n\n \n \n \n \n\n\n \n\n\n", "huge\nprecision highp float;\nuniform vec", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cylx', ", "\"/> \n \n \n\n \n\n\n", " in outline", "); // hat\nreturn g;\n", "\"/> \n \n \n \n \n \n \n \n \n\n\n\n", "\"/> \n \n\n\n", "); // taillight\nreturn g;\n", "teal\nprecision highp float;\nuniform vec", "); // back leg\n return d;\n}\nvec", "gold\nprecision highp float;\nuniform vec", "); // canopy\npart('ball', -", "\"/> \n\n\n", "red\nprecision highp float;\nuniform vec", "); // spot\nreturn g;\n", "); // battlement\nreturn g;\n", "); // engine\n return d;\n}\nvec", "\"/> \n\n\n", " in outline style", "); // taillight\n return d;\n}\nvec", "\"/> \n \n\n\n", "); // flower\nreturn g;\n", " in claymation", "big\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / ", "tiny\nprecision highp float;\nuniform vec", " in claymation style", ", big\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / ", "\"/> \n\n\n\n", "); // engine\nreturn g;\n", "gold\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / ", ")\">\n \n \n\n\n\n\n \n \n \n \n \n \n\n\n\n\n \n \n\n\n\n", "d: house, lowpoly, ", "d: cactus, smooth, ", "d: duck, lowpoly, ", "d: rocket, smooth, ", "generate a huge ", "make a big ", "draw a small ", "\"/> \n \n \n\n\n\n\n \n \n\n\n \n \n\n\n \n\n \n\n \n\n\n\n", "d: robot, neon, ", "d: pig, pixel, ", "d: bus, clay, ", "d: table, clay, ", "a big ", "d: lamp, wire, ", "); // engine\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "\"/> \n\n\n\n", "\"/> \n\n\n\n", "d: mushroom, lowpoly, ", "d: duck, pixel, ", "d: flower, lowpoly, ", "d: car, lowpoly, ", "d: plane, neon, ", "d: fountain, lowpoly, ", "art of a ", "d: bus, neon, ", "); // layer\n d.x*=", "d: boat, neon, ", ";\n d=U(d,cylx(p-vec", "); // wheel\n d.x*=", "d: pine, neon, ", "plasticine art of a ", "d: pine, wire, ", "\"/> \n \n\n\n", "clay art of a ", "d: fish, neon, ", "gold -->\n \n\n\n\n", "d: rocket, wire, ", "\"/> \n\n\n\n", "d: tree, wire, ", ", red", "d: truck, lowpoly, ", "); // battlement\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "d: lamp, clay, ", "create a tiny ", "wireframe art of a ", "gray -->\n\n \n\n\n\n", "navy -->\n \n \n \n \n \n\n\n \n\n\n\n", "d: lamp, smooth, ", "make a yellow ", "generate a gold ", "), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cylx', ", "sculpt a brown ", ", navy", "); // petal\ng.scale.setScalar(", ");\n const m = new THREE.LineSegments(new THREE.WireframeGeometry(geo), new THREE.LineBasicMaterial({ color: col }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cylx', ", "d: tree, neon, ", "d: car, wire, ", "d: fountain, neon\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / ", "\"/> \n \n\n \n\n\n\n", ", cream", "sculpt a pink ", "d: fish, lowpoly, ", "); // petal\n d.x*=", "\"/> \n\n\n \n\n\n\n", "); // cup\ng.scale.setScalar(", "brown\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / ", "voxel art of a ", "); // chimney\n d.x*=", "white -->\n\n \n \n \n\n\n\n\n\n\n \n\n\n\n", "tiny -->\n \n\n\n\n", "i want a lime ", "); // canopy\n d.x*=", "faceted art of a ", "\"/> \n\n\n\n", "); // layer\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "tiny -->\n \n \n\n\n \n\n\n \n\n\n\n", "d: lamp, lowpoly\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / ", "draw a teal ", "make polygon art of a ", "black -->\n \n\n\n \n\n\n\n", "clay snowman", ", lowpoly, brown -->\n\n \n \n \n \n \n \n\n\n", "sculpt a faceted ", "make a gold ", "sculpt a gold ", "generate a red ", "make a navy ", "); // engine\n d.x*=", "d: flower, lowpoly -->\n\n\n \n\n \n\n\n\n\n\n\n\n\n\n\n\n \n\n \n\n\n\n \n\n\n\n\n\n", "\n"], ["=\"", "-"], [">\n", "<"], [");", "\n "], ["=", " "], [")", "),"], [" ", "p"], ["max", "("], ["d", ","], ["(p", "-"], [")", "*"], ["d", "="], ["\"", "/"], [" ", "<"], ["(", "d,"], ["\"/", ">"], [",", "vec"], ["!", "--"], ["!--", " "], [" ", "--"], [" --", ">\n<"], [")", "-"], ["part", "("], ["min", "("], ["d=", "U"], ["d=U", "(d,"], ["(p-", "vec"], ["),", "vec"], [":", " "], [".x", ","], ["\"/>", " <"], ["\"/> <", "!-- "], ["new", " "], [" p", ",vec"], ["new ", "THREE"], ["new THREE", "."], ["part(", "'"], ["'", ", "], ["\n ", "d=U(d,"], [".", "z"], [",", "-"], [");", "}\n"], ["if", "("], ["\n", "part('"], ["fill", "=\""], [")", " "], ["width", "=\""], ["\" ", "fill=\""], [";", "\n"], [");}\n", "float "], [" ", "r"], [" r", "){"], ["e", "."], ["=", "vec"], [" ", "= "], ["k", " "], ["k ", "="], ["k =", "="], ["k ==", "= "], ["k === ", "'"], ["\" ", "stroke"], [");", "\n"], ["q", ".y"], ["abs", "("], ["a", ", "], ["min(", "r"], [")", ".x"], ["\" ", "y"], ["\" y", "=\"-"], ["\" ", "width=\""], ["\" ", "height"], ["\" height", "=\""], ["m", "."], ["\" ", "rx"], ["\" rx", "=\""], [" ", "x"], [";", "\n "], ["(p", "+"], ["rect", " x"], ["b", ", "], ["=", "normalize"], ["/", "r"], [",", "r"], ["map", "(p+"], [";", "i"], [" ", "m."], ["\" stroke", "=\""], [");\n", "}\n"], ["Math", "."], [" ", "-"], ["}", "\n "], ["(", "-"], [") ", "{"], [" -->\n<", "rect x"], [".", "set"], [".set", "("], ["'", " "], [" ", "q"], [" q", "="], ["(p", "."], ["return ", "vec"], ["ellipse", " "], ["ellipse ", "cx"], ["\" ", "cy"], ["\" ", "ry"], ["\" ry", "=\""], ["*", " "], [" ", "("], ["const", " "], ["x", ", "], ["x, ", "y"], ["x, y", ", "], ["x, y, ", "z"], ["a, ", "b, "], ["a, b, ", "c"], [")", "\n "], [" ", "a"], [" ", "* "], ["' ", "?"], ["' ?", " "], ["' ? ", "new THREE."], [")\n ", ": "], [".z", ")"], [";", "return "], ["length", "("], [");", "return "], [" r){", "vec"], [")*", "min(r"], [")*min(r", ".x,"], ["){", "\n "], ["map(p+", "e."], [").x", "-"], [").x-", "map"], [").x-map", "(p-"], [").x-map(p-", "e."], ["ro", "+"], ["ro+", "rd"], ["ro+rd", "*"], [" -->\n<", "ellipse cx"], [")", ");\n "], ["wvy", "-"], ["d", ": "], ["k", ", "], ["\" cy", "=\"-"], [";", "}\n"], ["+", "="], [")", "/"], ["box", "(p-vec"], ["if", " ("], ["\n ", "vec"], ["ball", "(p-vec"], ["+", "+"], ["(", "("], ["box", "', "], ["if (", "k === '"], ["(", "m"], ["k, ", "x, y, z"], ["k, x, y, z", ", "], ["k, x, y, z, ", "a, b, c"], [" ", "/ "], ["max(", "q"], ["\n d=U(d,", "box(p-vec"], ["ball", "', "], ["\n d=U(d,", "ball(p-vec"], [" -->\n\n\n<"], ["function", " "], [";}\n", "vec"], ["return ", "d"], ["C", "("], ["t", "="], ["t", ");"], ["t", "+="], ["||", "t"], ["||t", ">"], ["col", "="], [" ", "+ "], [") ", "/ "], ["\" stroke", "-"], ["\" stroke-", "width=\""], ["col", ","], ["place", "(m"], ["place(m", ", "], ["place(m, ", "k, x, y, z, a, b, c"], ["'", ") {"], ["') {", " m."], ["') { m.", "rotation"], [" = ", "Math.PI / "], [";", " m.scale.set("], ["a, ", "c"], ["); ", "}\n "], ["' ? new THREE.", "ConeGeometry"], ["' ? new THREE.ConeGeometry", "("], ["max(q", ".x,"], ["-", "ro"], ["=", "("], [", ", "-"], ["); // ", "leg"], [" <", "= "], ["polygon", " "], ["g", ">\n<"], ["(p.", "xz"], [".y", "),"], [".x", "<"], [" ", "b"], ["(", "n"], ["*", "("], [");\n ", "if(m<"], [", ", "col"], ["cyl", "(p-vec"], ["); // ", "eye"], ["polygon ", "points"], ["cyl", "', "], ["\"/>", "<"], [">", "<"], ["),", "L"], [" -->\n<", "polygon points"], ["/", "g>\n<"], [".z", ")),"], ["xy", "*"], ["/", "rd"], [");\n ", "col="], ["else ", "if("], [";\n", "}\n"], [" ", "l"], [" -->\n"], [" p=ro+rd*", "tg"], [" p=ro+rd*tg", ";"], ["exp", "(-"], ["*tg", "*tg"], ["}\n ", "O"], ["}\n O", "=vec"], ["(", "col,"], [" C(float m){\n ", "if(m<"], [");\n ", "return vec"], ["*", "sha"], ["<", "svg"], ["\n<", "!-- "], ["\">\n\n<", "/g>\n<"], ["/svg", ">\n"], ["g", " "], ["'", ") "], ["') ", "return "], ["Math.", "round"], ["Math.round", "(("], [") / ", "S"], [") / S", "); "], [" * ", "S"], [");\n ", "const "], ["\nconst ", "g"], ["\nconst g", " = new THREE."], ["\nconst g = new THREE.", "Group"], ["();\n", "function "], ["position", ".set("], ["if (k === '", "cylx"], ["if (k === '", "cylz"], ["function ", "part("], ["function part(", "k, x, y, z, a, b, c"], ["function part(k, x, y, z, a, b, c", ", col"], ["function part(k, x, y, z, a, b, c, col", ") {\n "], ["BoxGeometry", "("], [")", "."], ["g.", "add"], [");\n}\n", "part('"], ["return ", "g"], ["return g", ";\n"], ["\n d=U(d,", "cylz"], ["\n d=U(d,cylz", "(p-vec"], [" ", "in"], ["(", "geo"], ["({ ", "color"], ["({ color", ": "], ["\npart('", "cyl', "], ["); // ", "wheel"], ["max(", "dot"], [" -->\n\n\n<"], ["mix", "(vec"], ["*tg*tg", "));\n "], ["*tg*tg));\n ", "}\n O=vec"], ["\npart('", "cylz"], ["\npart('cylz", "', "], [" -", " "], [");\n ", "d=U(d,"], ["\n ", "return d;\n}\nvec"], ["); // ", "hubcap"], ["\nconst g = new THREE.Group", "();\nfunction "], ["\nconst g = new THREE.Group();\nfunction ", "place(m, k, x, y, z, a, b, c"], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c", ") {\n "], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n ", "m."], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.", "position.set("], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(", "x, y, z"], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z", ");\n "], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n ", "if (k === 'cylx"], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx", "') { m.rotation"], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation", ".z"], ["\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z", " = Math.PI / "], ["; m.scale.set(", "b, "], ["; m.scale.set(b, ", "a, c"], ["; m.scale.set(b, a, c", "); }\n "], ["; m.scale.set(b, a, c); }\n ", "else "], ["; m.scale.set(b, a, c); }\n else ", "if (k === 'cylz"], ["; m.scale.set(b, a, c); }\n else if (k === 'cylz", "') { m.rotation"], ["; m.scale.set(b, a, c); }\n else if (k === 'cylz') { m.rotation", ".x"], ["; m.scale.set(b, a, c); }\n else if (k === 'cylz') { m.rotation.x", " = Math.PI / "], ["; m.scale.set(", "a, c"], ["; m.scale.set(a, c", ", "], ["; m.scale.set(a, c, ", "b"], ["; m.scale.set(a, c, b", "); }\n "], ["; m.scale.set(a, c, b); }\n ", "else"], ["; m.scale.set(a, c, b); }\n else", " m.scale.set("], ["; m.scale.set(a, c, b); }\n else m.scale.set(", "a, b, c"], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c", ");\n}\n"], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\n", "function part(k, x, y, z, a, b, c, col) {\n "], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n ", "const "], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const ", "geo"], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo", " = "], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = ", "k === '"], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = k === '", "box"], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = k === 'box", "' ? new THREE."], ["; m.scale.set(a, c, b); }\n else m.scale.set(a, b, c);\n}\nfunction part(k, x, y, z, a, b, c, col) {\n const geo = k === 'box' ? new THREE.", "BoxGeometry("], [")\n : k === '", "ball"], [")\n : k === 'ball", "' ? new THREE."], [")\n : k === '", "cone"], [")\n : k === 'cone", "' ? new THREE.ConeGeometry("], [")\n : k === '", "pyr"], [")\n : k === 'pyr", "' ? new THREE.ConeGeometry("], [").", "rotateY"], [").rotateY", "("], [").rotateY(", "Math.PI / "], [")\n : ", "new THREE."], [")\n : new THREE.", "CylinderGeometry"], [")\n : new THREE.CylinderGeometry", "("], [");\n const ", "m"], [");\n const m", " = new THREE."], ["({ color: ", "col"], [" }", "));\n "], ["place(m, k, x, y, z, a, b, c", ");\n "], ["place(m, k, x, y, z, a, b, c);\n ", "g.add"], ["place(m, k, x, y, z, a, b, c);\n g.add", "(m"], ["place(m, k, x, y, z, a, b, c);\n g.add(m", ");\n}\npart('"], ["(geo", ", "], [" -->\n\n<", "/svg>\n"], ["\npart('box', ", "-"], ["\"/> \n\n<", "g "], [", ", "neon"], [", ", "clay"], ["\"/> \n\n\n\n\n"], ["LineSegments", "(new THREE."], ["), new THREE.", "LineBasicMaterial"], ["), new THREE.LineBasicMaterial", "({ color: col"], [", smooth", ", "], [");\n d=U(d,", "box(p-vec"], [");\n const m = new THREE.Mesh(geo, new THREE.MeshStandardMaterial", "({ color: col, roughness: "], ["); // ", "pupil"], ["none", "\" stroke-width=\""], ["\"/> \n<", "defs"], [" -->\n<"], [" -->\n<", "filter"], [" -->\n\n\n<"], [" in=\"", "SourceGraphic"], ["\"/><", "/"], ["filter", ">\n<"], ["filter", "=\""], ["filter=\"", "url"], ["filter=\"url", "("], ["filter=\"url(", "#"], ["b", "\"/><"], ["\"/> \n\n<", "/g>\n<"], [" -->\n\n\n<", "/svg>\n"], ["); // leg", "\n d=U(d,cyl(p-vec"], ["\"/> \n \n \n"], ["\"/> \n\n<", "ellipse cx=\""], [" p=ro+rd*t,n=nor(p", ");"], [" p=ro+rd*t,n=nor(p);", "\n vec"], [" q=abs(fract", "(p."], [" q=abs(fract(p.", "xy*"], [");\n col=", "mix(vec"], ["),", "C(h"], ["),C(h", ".y),"], ["),C(h.y),", "step"], ["),C(h.y),step", "("], [",max(q.x,q.y)", "));\n "], [",max(q.x,q.y)));\n ", "}else if(tg>"], [");\n col=", "mix"], [");\n col=mix", "(col"], [");\n col=mix(col", ",vec"], ["),", "smoothstep("], [");\n const ", "float "], [");\n const float ", "S"], [");\n const float S", "="], ["),", "b"], ["),", "i"], ["-ro)/rd", ",i"], ["-ro)/rd", ","], ["-ro)/rd,", "lo"], ["-ro)/rd,lo", "=min("], ["-ro)/rd,lo=min(", "i"], ["),", "hi"], ["),hi", "=max("], ["),hi=max(", "i"], [");\n float ", "te"], [");\n float te", "=max("], [");\n float te=max(", "max(lo"], [");\n float te=max(max(lo", ".x,"], [");\n float te=max(max(lo.x,", "lo"], [");\n float te=max(max(lo.x,lo", ".y),"], [");\n float te=max(max(lo.x,lo.y),", "max(lo"], [");\n float te=max(max(lo.x,lo.y),max(lo", ".z"], [");\n float te=max(max(lo.x,lo.y),max(lo.z", ","], [")),", "tx"], [")),tx", "=min("], [")),tx=min(", "hi"], [")),tx=min(hi", ".x,"], [")),tx=min(hi.x,", "min("], [")),tx=min(hi.x,min(", "hi"], [")),tx=min(hi.x,min(hi", ".y,"], [")),tx=min(hi.x,min(hi.y,", "hi"], [")),tx=min(hi.x,min(hi.y,hi", ".z)),"], [")),tx=min(hi.x,min(hi.y,hi.z)),", "th="], [")),tx=min(hi.x,min(hi.y,hi.z)),th=", "-"], [",", "m="], [",", "tt="], [",tt=", "te"], [",tt=te", ";\n vec"], [" ", "n=vec"], [");\n ", "if("], [");\n if(", "te"], [");\n if(te", "<"], [");\n if(te<", "tx"], [");\n if(te"], ["||tt>", "tx"], ["||tt>tx", ")break;"], ["||tt>tx)break;", "\n "], ["||tt>tx)break;\n ", "}\n "], ["||tt>tx)break;\n }\n ", "}\n if("], ["||tt>tx)break;\n }\n }\n if(", "th"], ["||tt>tx)break;\n }\n }\n if(th", ">"], [" p=ro+rd*", "th"], [" p=ro+rd*th", ","], [" p=ro+rd*th,", "f="], [" p=ro+rd*th,f=", "abs(fract"], [" p=ro+rd*th,f=abs(fract", "(p"], [" p=ro+rd*th,f=abs(fract(p", "/"], [" p=ro+rd*th,f=abs(fract(p/", "S"], [" p=ro+rd*th,f=abs(fract(p/S", ")-"], ["-", "abs("], ["-abs(", "n"], ["-abs(n", "));\n float "], ["-abs(n));\n float ", "e"], ["-abs(n));\n float e", "=max("], ["-abs(n));\n float e=max(", "f"], ["-abs(n));\n float e=max(f", ".x,"], ["-abs(n));\n float e=max(f.x,", "max("], ["-abs(n));\n float e=max(f.x,max(", "f"], ["-abs(n));\n float e=max(f.x,max(f", ".y,"], ["-abs(n));\n float e=max(f.x,max(f.y,", "f"], ["-abs(n));\n float e=max(f.x,max(f.y,f", ".z)"], ["-abs(n));\n float e=max(f.x,max(f.y,f.z)", ");\n col="], ["-abs(n));\n float e=max(f.x,max(f.y,f.z));\n col=", "C"], ["-abs(n));\n float e=max(f.x,max(f.y,f.z));\n col=C", "(m"], ["-abs(n));\n float e=max(f.x,max(f.y,f.z));\n col=C(m", ")*("], ["*", "max(dot(n,L),"], [",L", "))"], [",L))", ")*("], [",L)))*(", "e"], [",L)))*(e", ">"], ["); // body", "\n d=U(d,ball(p-vec"], [" p=ro+rd*t,n=nor(p", ");\n "], [" p=ro+rd*t,n=nor(p);\n ", "n"], [" p=ro+rd*t,n=nor(p);\n n", "=normalize("], [" p=ro+rd*t,n=nor(p);\n n=normalize(", "floor"], [" p=ro+rd*t,n=nor(p);\n n=normalize(floor", "(n"], [" p=ro+rd*t,n=nor(p);\n n=normalize(floor(n", "*"], ["));\n float ", "dif=max(dot(n,L),"], ["); // window", "\npart('box', "], [");\n const m = new THREE.", "LineSegments(new THREE."], [");\n const m = new THREE.LineSegments(new THREE.", "WireframeGeometry"], [");\n const m = new THREE.LineSegments(new THREE.WireframeGeometry", "(geo"], [");\n const m = new THREE.LineSegments(new THREE.WireframeGeometry(geo", "), new THREE.LineBasicMaterial({ color: col"], ["\n", "g.scale.setScalar("], ["\nconst g = new THREE.Group", "(), "], ["\nconst g = new THREE.Group(), ", "S"], ["\nconst g = new THREE.Group(), S", " = "], [", ", "cells"], [", cells", " = "], [", cells = ", "new "], [", cells = new ", "Map"], [", cells = new Map", "();\nfunction "], [", cells = new Map();\nfunction ", "inside(k, "], [", cells = new Map();\nfunction inside(k, ", "u"], [", cells = new Map();\nfunction inside(k, u", ", "], [", cells = new Map();\nfunction inside(k, u, ", "v"], [", cells = new Map();\nfunction inside(k, u, v", ", "], [", cells = new Map();\nfunction inside(k, u, v, ", "w"], [", cells = new Map();\nfunction inside(k, u, v, w", ") {\n "], [", cells = new Map();\nfunction inside(k, u, v, w) {\n ", "if (k === '"], [", cells = new Map();\nfunction inside(k, u, v, w) {\n if (k === '", "ball"], [", cells = new Map();\nfunction inside(k, u, v, w) {\n if (k === 'ball", "') return u * u + v * v"], [", cells = new Map();\nfunction inside(k, u, v, w) {\n if (k === 'ball') return u * u + v * v", " + w * w <= "], [";\n if (k === '", "cyl"], [";\n if (k === 'cyl", "') return u * u + w * w <= "], [";\n ", "if (k === 'cylx"], [";\n if (k === 'cylx", "') return "], [";\n if (k === 'cylx') return ", "v * v"], [";\n if (k === 'cylx') return v * v", " + w * w <= "], [";\n ", "if (k === 'cylz"], [";\n if (k === 'cylz", "') return u * u + v * v"], [";\n if (k === 'cylz') return u * u + v * v", " <= "], [";\n if (k === '", "cone"], [";\n if (k === 'cone", "') return u * u + w * w <= "], [";\n if (k === 'cone') return u * u + w * w <= ", "(("], [") ", "*"], [") *", "* "], [";\n if (k === '", "pyr"], [";\n if (k === 'pyr", "') return "], [";\n if (k === 'pyr') return ", "Math."], [";\n if (k === 'pyr') return Math.", "max("], [";\n if (k === 'pyr') return Math.max(", "Math.abs("], [";\n if (k === 'pyr') return Math.max(Math.abs(", "u"], [";\n if (k === 'pyr') return Math.max(Math.abs(u", "), "], [";\n if (k === 'pyr') return Math.max(Math.abs(u), ", "Math.abs("], [";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(", "w"], [";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(w", "))"], [";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(w))", " <= "], [";\n if (k === 'pyr') return Math.max(Math.abs(u), Math.abs(w)) <= ", "("], [";\n ", "return "], [";\n return ", "true"], [";\n return true", ";\n}\n"], [";\n return true;\n}\n", "function part(k, x, y, z, a, b, c, col) {\n "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n ", "for (let"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let", " i"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i", " = Math.round(("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((", "x"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x", " -"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x -", " a) / S); i"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i", " <= Math.round(("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((", "x"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x", " "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x ", "+"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x +", " a) / S); i"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i", "++"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++", ")\n "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n ", "for (let"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let", " "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let ", "j"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j", " = Math.round(("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((", "y"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y", " -"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y -", " b"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b", ") / S); j"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j", " <= Math.round(("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((", "y"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y", " + "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + ", "b"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b", ") / S); j"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j", "++)"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)", "\n "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n ", "for (let"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let", " l"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l", " = Math.round(("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((", "z"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z", " - "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - ", "c) / S); l"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l", " <= Math.round(("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((", "z"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z", " + "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + ", "c) / S); l"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l", "++)"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)", "\n "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n ", "if ("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (", "inside(k, "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, ", "("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (", "i * S"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S", " -"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S -", " x"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x", ") / "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / ", "a, "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, ", "("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (", "j * S"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S", " - "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - ", "y"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y", ") / "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / ", "b, "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, ", "("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (", "l * S"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S", " - "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - ", "z"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z", ") / "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / ", "c"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c", ")"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)", ") "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) ", "cells"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells", ".set("], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(", "i"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i", " + ',' + "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + ", "j"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j", " + ',' + "], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j + ',' + ", "l"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j + ',' + l", ", col"], [";\n return true;\n}\nfunction part(k, x, y, z, a, b, c, col) {\n for (let i = Math.round((x - a) / S); i <= Math.round((x + a) / S); i++)\n for (let j = Math.round((y - b) / S); j <= Math.round((y + b) / S); j++)\n for (let l = Math.round((z - c) / S); l <= Math.round((z + c) / S); l++)\n if (inside(k, (i * S - x) / a, (j * S - y) / b, (l * S - z) / c)) cells.set(i + ',' + j + ',' + l, col", ");\n}\npart('"], ["\nconst ", "vox"], ["\nconst vox", " = new THREE."], ["\nconst vox = new THREE.", "InstancedMesh"], ["\nconst vox = new THREE.InstancedMesh", "(new THREE."], ["\nconst vox = new THREE.InstancedMesh(new THREE.", "BoxGeometry("], ["\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(", "S * "], ["), new THREE.", "MeshStandardMaterial"], ["), new THREE.MeshStandardMaterial", "({ "], ["), new THREE.MeshStandardMaterial({ ", "roughness: "], [" }", "), "], [" }), ", "cells"], [" }), cells", "."], [" }), cells.", "size"], [" }), cells.size", ");\n"], [" }), cells.size);\n", "const "], [" }), cells.size);\nconst ", "o"], [" }), cells.size);\nconst o", " = new THREE."], [" }), cells.size);\nconst o = new THREE.", "Object"], ["D", "(), "], ["D(), ", "tint"], ["D(), tint", " = new THREE."], ["D(), tint = new THREE.", "Color"], ["D(), tint = new THREE.Color", "();\n"], ["D(), tint = new THREE.Color();\n", "let"], ["D(), tint = new THREE.Color();\nlet", " "], ["D(), tint = new THREE.Color();\nlet ", "n"], ["D(), tint = new THREE.Color();\nlet n", " = "], [";\n", "for ("], [";\nfor (", "const ["], [";\nfor (const [", "key"], [";\nfor (const [key", ", col"], [";\nfor (const [key, col", "]"], [";\nfor (const [key, col]", " of"], [";\nfor (const [key, col] of", " "], [";\nfor (const [key, col] of ", "cells"], [";\nfor (const [key, col] of cells", ") {\n "], [";\nfor (const [key, col] of cells) {\n ", "const ["], [";\nfor (const [key, col] of cells) {\n const [", "i"], [";\nfor (const [key, col] of cells) {\n const [i", ", "], [";\nfor (const [key, col] of cells) {\n const [i, ", "j"], [";\nfor (const [key, col] of cells) {\n const [i, j", ", "], [";\nfor (const [key, col] of cells) {\n const [i, j, ", "l"], [";\nfor (const [key, col] of cells) {\n const [i, j, l", "]"], [";\nfor (const [key, col] of cells) {\n const [i, j, l]", " = "], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = ", "key"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key", "."], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.", "split"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split", "("], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(", "',"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',", "'"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(','", ")."], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').", "map"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map", "("], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(", "Number"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number", ");\n o."], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.", "position.set("], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(", "i * S"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S", ", "], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, ", "j * S"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, j * S", " + "], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, j * S + ", "S"], [";\nfor (const [key, col] of cells) {\n const [i, j, l] = key.split(',').map(Number);\n o.position.set(i * S, j * S + S", " / "], [", ", "l * S"], [", l * S", ");\n o."], [", l * S);\n o.", "updateMatrix"], [", l * S);\n o.updateMatrix", "("], [", l * S);\n o.updateMatrix(", ");\n vox."], [", l * S);\n o.updateMatrix();\n vox.", "setMatrixAt"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt", "(n"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n", ", "], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, ", "o."], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.", "matrix"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix", ");\n vox."], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.", "setColorAt"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt", "(n"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n", "++"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++", ", "], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, ", "tint"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint", "."], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.", "setHex"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex", "(col"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col", ")"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col)", ");\n}\n"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\n", "g.add"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add", "("], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(", "vox"], ["\"/>\n<", "ellipse cx=\""], ["a", "\"/>\n\n\n<", "g "], [" -->\n\n \n\n\n\n\n\n<", "feFlood"], ["\"><", "feTile"], ["\"/><"], ["=\"t\" operator=\"in\"/><", "feMorphology"], ["=\"t\" operator=\"in\"/>\n<"], ["\"/>\n<", "g "], ["\"/>\n\n\n\n\n\n\n\n\n\n\n<"], ["%\"><", "feGaussianBlur"], ["%\"><"], ["\" result=\"b\"/><", "feMerge"], ["\" result=\"b\"/><"], ["\" result=\"b\"/><", "feMergeNode"], ["\" result=\"b\"/><"], ["\" result=\"b\"/><", "feMergeNode"], ["\" result=\"b\"/>\n<"], ["\" result=\"b\"/>\n<", "rect x=\"-"], ["\"/>\n\n\n\n\n \n \n \n \n \n\n\n"], ["\"/> \n \n \n \n \n \n \n \n \n \n\n<", "rect x=\""], ["\"/> \n \n \n\n\n"], ["); // ", "leaf"], ["); // ", "center"], ["); // ", "base"], ["); // ", "pole"], ["); // ", "light"], ["\"/>\n\n<", "rect x=\"-"], ["); // ", "fuselage"], ["); // ", "cockpit"], ["); // ", "tailplane"], ["); // ", "strut"], ["); // window", "\npart('box', -"], ["\"/> \n \n \n \n\n\n\n \n\n \n \n\n\n \n \n\n\n \n \n \n \n \n \n \n \n \n \n\n\n"], [";", "\n d=U(d,ball(p-vec"], ["); // bottom", "\n d=U(d,ball(p-vec"], ["); // middle", "\n d=U(d,ball(p-vec"], ["); // head", "\n d=U(d,ball(p-vec"], ["); // button", "\n d=U(d,cyl(p-vec"], ["); // hat brim", "\n d=U(d,cyl(p-vec"], ["), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "box', "], ["); // head", "\n d=U(d,cylz(p-vec"], ["); // snout", "\n d=U(d,ball(p-vec"], ["); // eye", "\n d=U(d,pyr(p-vec"], ["); // ear", "\n d=U(d,cyl(p-vec"], ["\"/> \n\n\n \n \n \n \n\n\n"], ["\"/> \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n<", "ellipse cx=\""], ["); // base", "\n d=U(d,cyl(p-vec"], ["); // pole", "\n d=U(d,pyr(p-vec"], ["); // cap", "\n d=U(d,box(p-vec"], ["); // fuselage", "\n d=U(d,ball(p-vec"], ["); // cockpit", "\n d=U(d,box(p-vec"], ["); // wing", "\n d=U(d,box(p-vec"], ["); // tailplane", "\n d=U(d,box(p-vec"], ["); // fin", "\n d=U(d,cyl(p-vec"], ["); // strut", "\n d=U(d,cylz(p-vec"], ["\"/>\n\n<", "g transform=\"scale("], ["); // bottom", "\npart('ball', "], ["); // middle", "\npart('ball', "], ["); // head", "\npart('ball', "], ["); // eye", "\npart('box', "], ["); // button", "\npart('cyl', "], ["); // hat brim", "\npart('cyl', "], ["); // trunk", "\npart('cone', "], ["\"/> \n\n\n"], ["), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "ball', "], ["); // walls", "\n d=U(d,pyr(p-vec"], ["); // roof", "\n d=U(d,box(p-vec"], ["); // door", "\n d=U(d,box(p-vec"], ["); // head", "\npart('pyr', "], ["); // ear", "\npart('ball', "], ["); // nose", "\npart('cyl', "], ["); // paw", "\npart('cyl', -"], ["); // paw", "\npart('box', "], ["); // headlight", "\nreturn g;\n"], ["fir", " tree"], ["); // body", "\npart('cone', "], ["); // fin", "\npart('box', -"], ["); // fin", "\npart('box', "], ["); // fin", "\npart('cone', "], ["\"/> \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n"], ["); // spot", "\n return d;\n}\nvec"], ["); // window", "\npart('cylz', "], ["); // headlight", "\npart('box', -"], ["); // taillight", "\npart('box', -"], ["\"/> \n \n \n\n\n"], ["\"/> \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n"], ["\"/> \n\n\n"], ["\"/> \n\n\n"], ["\"/> \n \n \n\n<", "ellipse cx=\"-"], ["); // spray", "\n return d;\n}\nvec"], ["a\"/>\n\n \n\n\n"], ["); // belly", "\npart('ball', "], ["); // eye socket", "\npart('ball', -"], ["); // eye socket", "\npart('ball', "], ["); // pupil", "\npart('ball', -"], ["); // pupil", "\npart('box', "], ["); // mouth", "\npart('ball', "], ["); // front foot", "\npart('ball', -"], ["); // front foot", "\npart('ball', "], ["); // back leg", "\npart('ball', -"], ["); // sail", "\nreturn g;\n"], ["\"/> \n \n \n \n\n\n"], ["\"/> \n \n\n\n"], [" in ", "polygon "], [" in polygon ", "style"], ["small", "\nprecision highp float;\nuniform vec"], ["); // body", "\n d=U(d,cone(p-vec"], ["); // fin", "\n d=U(d,cone(p-vec"], ["); // canopy", "\n return d;\n}\nvec"], ["); // wheel", "\nreturn g;\n"], ["\"/> \n\n\n"], [");\n d=U(d,", "cylx(p-vec"], ["); // wheel", "\n return d;\n}\nvec"], ["); // stand", "\nreturn g;\n"], ["purple", "\nprecision highp float;\nuniform vec"], ["\"/> \n \n \n\n\n \n \n\n\n \n \n \n \n\n\n \n\n\n"], ["huge", "\nprecision highp float;\nuniform vec"], [" }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "cylx', "], ["\"/> \n \n \n\n \n\n\n"], [" in ", "outline"], ["); // hat", "\nreturn g;\n"], ["\"/> \n \n \n \n \n \n \n \n \n\n\n\n"], ["\"/> \n \n\n\n"], ["); // taillight", "\nreturn g;\n"], ["teal", "\nprecision highp float;\nuniform vec"], ["); // back leg", "\n return d;\n}\nvec"], ["gold", "\nprecision highp float;\nuniform vec"], ["); // canopy", "\npart('ball', -"], ["\"/> \n\n\n"], ["red", "\nprecision highp float;\nuniform vec"], ["); // spot", "\nreturn g;\n"], ["); // battlement", "\nreturn g;\n"], ["); // engine", "\n return d;\n}\nvec"], ["\"/> \n\n\n"], [" in outline", " style"], ["); // taillight", "\n return d;\n}\nvec"], ["\"/> \n \n\n\n"], ["); // flower", "\nreturn g;\n"], [" in ", "claymation"], ["big", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / "], ["tiny", "\nprecision highp float;\nuniform vec"], [" in claymation", " style"], [", big", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / "], ["\"/> \n\n\n\n"], ["); // engine", "\nreturn g;\n"], ["gold", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / "], [")", "\">\n \n \n\n\n<", "rect x=\""], ["teal", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / "], [" in plasticine", " style"], ["\"/>\n\n \n \n \n \n \n \n\n\n\n\n \n \n\n\n\n"], ["d: house", ", lowpoly, "], ["d: cactus", ", smooth, "], ["d: duck", ", lowpoly, "], ["d: rocket", ", smooth, "], ["generate a ", "huge "], ["make a ", "big "], ["draw a ", "small "], ["\"/> \n \n \n\n\n\n\n \n \n\n\n \n \n\n\n \n\n \n\n \n\n\n\n"], ["d: robot", ", neon, "], ["d: pig", ", pixel, "], ["d: bus", ", clay, "], ["d: table", ", clay, "], ["a ", "big "], ["d: lamp", ", wire, "], ["); // engine", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["\"/> \n\n\n\n"], ["\"/> \n\n\n\n"], ["d: mushroom", ", lowpoly, "], ["d: duck", ", pixel, "], ["d: flower", ", lowpoly, "], ["d: car", ", lowpoly, "], ["d: plane", ", neon, "], ["d: fountain", ", lowpoly, "], ["art", " of a "], ["d: bus", ", neon, "], ["); // layer", "\n d.x*="], ["d: boat", ", neon, "], [";", "\n d=U(d,cylx(p-vec"], ["); // wheel", "\n d.x*="], ["d: pine", ", neon, "], ["plasticine", " art of a "], ["d: pine", ", wire, "], ["\"/> \n \n\n\n"], ["clay", " art of a "], ["d: fish", ", neon, "], ["gold", " -->\n \n\n\n\n"], ["d: rocket", ", wire, "], ["\"/> \n\n\n\n"], ["d: tree", ", wire, "], [", ", "red"], ["d: truck", ", lowpoly, "], ["); // battlement", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["d: lamp", ", clay, "], ["create a ", "tiny "], ["wireframe", " art of a "], ["gray", " -->\n\n \n\n\n\n"], ["navy", " -->\n \n \n \n \n \n\n\n \n\n\n\n"], ["d: lamp", ", smooth, "], ["make a ", "yellow "], ["generate a ", "gold "], ["), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "cylx', "], ["sculpt a ", "brown "], [", ", "navy"], ["); // petal", "\ng.scale.setScalar("], [");\n const m = new THREE.LineSegments(new THREE.WireframeGeometry(geo), new THREE.LineBasicMaterial({ color: col", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cylx', "], ["d: tree", ", neon, "], ["d: car", ", wire, "], ["d: fountain", ", neon\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / "], ["\"/> \n \n\n \n\n\n\n"], [", ", "cream"], ["sculpt a ", "pink "], ["d: fish", ", lowpoly, "], ["); // petal", "\n d.x*="], ["\"/> \n\n\n \n\n\n\n"], ["); // cup", "\ng.scale.setScalar("], ["brown", "\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / "], ["voxel", " art of a "], ["); // chimney", "\n d.x*="], ["white", " -->\n\n \n \n \n\n\n\n\n<", "polygon points"], ["\"/>\n\n \n\n\n\n"], ["tiny", " -->\n \n\n\n\n"], ["i want a ", "lime "], ["); // canopy", "\n d.x*="], ["faceted", " art of a "], ["\"/> \n\n\n\n"], ["); // layer", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["tiny", " -->\n \n \n\n\n \n\n\n \n\n\n\n"], ["d: lamp", ", lowpoly\nconst g = new THREE.Group();\nfunction place(m, k, x, y, z, a, b, c) {\n m.position.set(x, y, z);\n if (k === 'cylx') { m.rotation.z = Math.PI / "], ["draw a ", "teal "], ["make polygon ", "art of a "], ["black", " -->\n \n\n\n \n\n\n\n"], ["clay", " snowman"], [", lowpoly, brown", " -->\n\n \n \n \n \n \n \n\n\n"], ["sculpt a ", "faceted "], ["make a ", "gold "], ["sculpt a ", "gold "], ["generate a ", "red "], ["make a ", "navy "], ["); // engine", "\n d.x*="], ["d: flower", ", lowpoly -->\n\n\n \n\n \n\n\n\n\n\n\n\n\n\n\n\n \n\n \n\n\n\n \n\n\n\n\n\n