Download tokenizer.json from StarpowerTechnology/WVY-3D-23m: direct link, hf CLI and curl.
- Browser
- Download file 234 kB
-
https://huggingface.co/StarpowerTechnology/WVY-3D-23m/resolve/main/tokenizer.json
- Command line
-
hf download hf://StarpowerTechnology/WVY-3D-23m/tokenizer.json
-
curl -L -o tokenizer.json https://huggingface.co/StarpowerTechnology/WVY-3D-23m/resolve/main/tokenizer.json
234 kB
| {"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,", "\"/> <", "\"/> <!-- ", "new ", " p,vec", "new THREE", "new THREE.", "part('", "', ", "\n d=U(d,", ".z", ",-", ");}\n", "if(", "\npart('", "fill=\"", ") ", "width=\"", "\" fill=\"", ";\n", ");}\nfloat ", " 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<rect x=\"-", "Math.PI", "Math.PI / ", " m.scale", " m.scale.set(", ")\n : k === '", ");\n ", ";\n vec", "if(m", "if(m<", ")return vec", " = new THREE.", "\npart('box', ", "\npart('ball', ", ")+", "break;", "){\n vec", "=normalize(", " i", "){float ", "h=", "clamp(", ")*(", " -->\n<ellipse cx=\"", "+ ", ") {\n ", ".x*", ";\nuniform", ";\nuniform ", "){vec", "abs(p", "=length", "=length(p", " d=", " d=vec", ".xz", ".xz)-", "));}\nfloat ", " r){return ", " r){return cyl", " r){return cyl(p.", ",r.", " q=p", " q=p/r", " q=p/r;return ", " q=p/r;return max(", "-q.y", "-q.y)*", ",abs(", ",abs(q.y", ",abs(q.y)-", ")*min(r.x,min(r", ")*min(r.x,min(r.y", ")*min(r.x,min(r.y,r", ")*min(r.x,min(r.y,r.z)", ")*min(r.x,min(r.y,r.z))*", "abs(q", "float m", "){\n vec", ").x,", ").x,map(p+e.", "s=", "for(", "for(int", "for(int i", "for(int i=", ";i<", ";i++", "s,", "||", ")break;", "(a", "=normalize(vec", "cross(", " p=", " p=ro+rd*", "*tg", ",L", " a ", "else ", "// wvy-", "/svg", "\">\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<polygon points", "/g>\n<", ".z)),", "xy*", "/rd", ");\n col=", "else if(", ";\n}\n", " l", " -->\n<rect x=\"", "){float h=", "*h", "g.", "), ", "\nconst ", "();\n", "({", "({ ", " }", "\n d=U(d,cyl(p-vec", ",n", "#version", "#version ", " es", " es\n", " es\n// wvy-", "\nprecision", "\nprecision ", "\nprecision highp", "\nprecision highp ", "\nprecision highp float", "\nprecision highp float;\nuniform ", "\nprecision highp float;\nuniform vec", " R", " R;\nuniform ", " R;\nuniform float ", " R;\nuniform float T", " R;\nuniform float T;\n", " R;\nuniform float T;\nout", " R;\nuniform float T;\nout ", " R;\nuniform float T;\nout vec", " O", " O;\n", " O;\nfloat ", " O;\nfloat box", " O;\nfloat box(vec", " b){vec", " q=abs(p", " q=abs(p)-", " q=abs(p)-b", " q=abs(p)-b;return ", " q=abs(p)-b;return length(", " q=abs(p)-b;return length(max(q", " q=abs(p)-b;return length(max(q,", "))+", "))+min(", "))+min(max(q.x,", "))+min(max(q.x,max(", "))+min(max(q.x,max(q.y", "))+min(max(q.x,max(q.y,", "))+min(max(q.x,max(q.y,q", "))+min(max(q.x,max(q.y,q.z)),", ");}\nfloat ball", ");}\nfloat ball(vec", " r){float ", " r){float k", "=length(p/r", "=length(p/r),", "=length(p/r),k", "=length(p/", "=length(p/(", "=length(p/(r", "=length(p/(r*", "=length(p/(r*r", "=length(p/(r*r)", "=length(p/(r*r));return ", "=length(p/(r*r));return k", "*(k", ")/max(", ")/max(k", "e-", ");}\nfloat cyl", ");}\nfloat cyl(vec", "((length", "((length(p.xz", "((length(p.xz/r", "((length(p.xz/r.xz)-", ")*min(r.x,r", ")*min(r.x,r.z", ")*min(r.x,r.z),", ")*min(r.x,r.z),abs(p", ")*min(r.x,r.z),abs(p.y", ")*min(r.x,r.z),abs(p.y)-", ")*min(r.x,r.z),abs(p.y)-r", ")*min(r.x,r.z),abs(p.y)-r.y", ")*min(r.x,r.z),abs(p.y)-r.y);return ", ")*min(r.x,r.z),abs(p.y)-r.y);return min(", ")*min(r.x,r.z),abs(p.y)-r.y);return min(max(", ")*min(r.x,r.z),abs(p.y)-r.y);return min(max(d", ")*min(r.x,r.z),abs(p.y)-r.y);return min(max(d.x,", ")*min(r.x,r.z),abs(p.y)-r.y);return min(max(d.x,d", ")*min(r.x,r.z),abs(p.y)-r.y);return min(max(d.x,d.y),", ")+length(", ")+length(max(", ")+length(max(d,", "));}\nfloat cylx", "));}\nfloat cylx(vec", " r){return cyl(p.yxz", " r){return cyl(p.yxz,r.", " r){return cyl(p.yxz,r.yxz", " r){return cyl(p.yxz,r.yxz);}\nfloat ", " r){return cyl(p.yxz,r.yxz);}\nfloat cylz", " r){return cyl(p.yxz,r.yxz);}\nfloat cylz(vec", " r){return cyl(p.xzy", " r){return cyl(p.xzy,r.", " r){return cyl(p.xzy,r.xzy", " r){return cyl(p.xzy,r.xzy);}\nfloat ", " r){return cyl(p.xzy,r.xzy);}\nfloat cone", " r){return cyl(p.xzy,r.xzy);}\nfloat cone(vec", " q=p/r;return max(length(", " q=p/r;return max(length(q", " q=p/r;return max(length(q.xz)-", " q=p/r;return max(length(q.xz)-(", ";}\nfloat ", ";}\nfloat pyr", ";}\nfloat pyr(vec", " q=p/r;return max(max(", " q=p/r;return max(max(abs(q", " q=p/r;return max(max(abs(q.x", " q=p/r;return max(max(abs(q.x),", " q=p/r;return max(max(abs(q.x),abs(q", " q=p/r;return max(max(abs(q.x),abs(q.z)", " q=p/r;return max(max(abs(q.x),abs(q.z))-", " q=p/r;return max(max(abs(q.x),abs(q.z))-(", " U", " U(vec", " a,", " a,float ", " a,float d,", " a,float d,float m", "a.x", ":a", " map", " map(vec", " p){\n vec", "return d;\n}\n", "return d;\n}\nvec", " C(", " C(float m", " C(float m){\n ", ");\n}\nvec", " nor", " nor(vec", " p){vec", " e", " e=vec", ");return normalize", ");return normalize(vec", "(map(p+e.", "(map(p+e.xyy", "(map(p+e.xyy).x-map(p-e.", "(map(p+e.xyy).x-map(p-e.xyy", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx).x", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx).x));}\nfloat ", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx).x));}\nfloat sha", "(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx).x));}\nfloat sha(vec", " l){float ", " l){float s=", ",t=", ";for(int i=", ";i++){float h=", ";i++){float h=map(p+", ";i++){float h=map(p+l", ";i++){float h=map(p+l*", ";i++){float h=map(p+l*t", ";i++){float h=map(p+l*t).x", ";i++){float h=map(p+l*t).x;", ";i++){float h=map(p+l*t).x;s=", ";i++){float h=map(p+l*t).x;s=min(", ";i++){float h=map(p+l*t).x;s=min(s,", "*h/", "*h/t);", "*h/t);t+=", "*h/t);t+=clamp(", "*h/t);t+=clamp(h", "*h/t);t+=clamp(h,", ");if(", ");if(s", ");if(s<", ")break;}", ")break;}return ", ")break;}return clamp(", ")break;}return clamp(s,", ");}\nvoid", ");}\nvoid ", ");}\nvoid main", ");}\nvoid main(", ");}\nvoid main(){\n vec", " uv", " uv=(", " uv=(gl_FragCoord", " uv=(gl_FragCoord.", " uv=(gl_FragCoord.xy*", "-R", "-R)/", "-R)/R", "-R)/R.y", "-R)/R.y;\n ", "-R)/R.y;\n float ", "-R)/R.y;\n float a", "-R)/R.y;\n float a=", "+T", "+T*", " ro", " ro=vec", "*sin", "*sin(a", "*sin(a),", "*cos", "*cos(a", "*cos(a)),", "*cos(a)),w", "*cos(a)),w=normalize(vec", ")-ro", ")-ro),", ")-ro),u", ")-ro),u=normalize(", ")-ro),u=normalize(cross(", ")-ro),u=normalize(cross(w", ")-ro),u=normalize(cross(w,vec", "))),", "))),v", "))),v=", "))),v=cross(", "))),v=cross(u", "))),v=cross(u,", "))),v=cross(u,w", "))),v=cross(u,w);\n ", "))),v=cross(u,w);\n vec", " rd", " rd=normalize(", " rd=normalize(uv", " rd=normalize(uv.x*", " rd=normalize(uv.x*u", " rd=normalize(uv.x*u+", " rd=normalize(uv.x*u+uv", " rd=normalize(uv.x*u+uv.y", " rd=normalize(uv.x*u+uv.y*", " rd=normalize(uv.x*u+uv.y*v", " rd=normalize(uv.x*u+uv.y*v+", "*w", "*w),L", "*w),L=normalize(vec", "));\n float ", "));\n float tg", "));\n float tg=", "));\n float tg=-ro", "));\n float tg=-ro.y", "));\n float tg=-ro.y/rd", "));\n float tg=-ro.y/rd.y", "));\n float tg=-ro.y/rd.y;\n vec", " col", " col=vec", ");\n float ", ";i++){", "h=map", "if(h", "if(h.x<", "}\n if(", "}else if(", "}else if(tg", "}else if(tg>", " 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", "<svg ", "<svg xmlns", "<svg xmlns=\"", "<svg xmlns=\"http", "<svg xmlns=\"http:", "<svg xmlns=\"http:/", "<svg xmlns=\"http://", "<svg xmlns=\"http://www", "<svg xmlns=\"http://www.", "<svg xmlns=\"http://www.w", "org/", "/svg\" ", "/svg\" viewBox", "/svg\" viewBox=\"-", "\">\n<!-- ", "\">\n<!-- wvy-", " -->\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", "();\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<ellipse cx=\"-", " a,float d,float m){", " a,float d,float m){return d", " a,float d,float m){return d<", " a,float d,float m){return d<a.x", " a,float d,float m){return d<a.x?", " a,float d,float m){return d<a.x?vec", "(d,m", "(d,m)", "(d,m):a", "(d,m):a;}\nvec", ");\n float t=", ";vec", " h", " h=vec", ");\n for(int i=", ";i++){h=map", ";i++){h=map(", ";i++){h=map(ro+rd*", ";i++){h=map(ro+rd*t);", ";i++){h=map(ro+rd*t);if(h.x<", ")break;t+=", ")break;t+=h", ")break;t+=h.x*", ";}\n if(", ";}\n if(t", ";}\n if(t<", " p=ro+rd*t", " p=ro+rd*t,n", " p=ro+rd*t,n=", " p=ro+rd*t,n=nor", " p=ro+rd*t,n=nor(p", ");\n float ", "C(h", " -->\n<polygon points=\"-", "\"/>\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</g>\n</svg>\n", "\npart('box', -", "\"/> <!-- leg", "rect x=\"-", "max(dot(n", ");\n col=C(h", ");\n col=C(h.y", ");\n col=C(h.y)*(", "abs(fract", "(p+n", "(p+n*", " p=ro+rd*tg;\n ", " p=ro+rd*tg;\n col=", " p=ro+rd*tg;\n col=mix(vec", "*sha(p", "*sha(p,L", "*sha(p,L)),", "*sha(p,L)),col,", "-exp(-", "tt=", "n=vec", ".y;", "}\n ", "tm.z", ");\n }else if(tg>", "') return u", "') return u * ", "') return u * u", "') return u * u + ", "w * ", "w * w", "w * w <= ", "for (", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "roughness: ", ")\n : k === 'ball' ? new THREE.SphereGeometry", ")\n : k === 'ball' ? new THREE.SphereGeometry(", "(new THREE.", "\nreturn g;\n", ");\n const m = new THREE.Mesh", ");\n const m = new THREE.Mesh(geo, ", ");\n const m = new THREE.Mesh(geo, new THREE.", "\"/> <!-- eye", "); // window", "); // body", "\npart('ball', -", ", smooth", "\" cy=\"", "\"/> <!-- leg -->\n<rect x=\"-", "); // petal", " in ", " p=ro+rd*t,n=nor(p);\n float ", "max(dot(n,L", "max(dot(n,L),", " q=abs(fract", ",max(q.x,", ",max(q.x,q.y", ",max(q.x,q.y)", "*dif", "-ro)/", "-ro)/rd", ",i", "=max(", ".y,", "tm.y", ".x;", "+=st", "+=dt", ");}\n ", ", lowpoly", ", wire", "v * ", "v * v", ";\n if (k === '", "for (let", " = Math.round((", " <= Math.round((", "',", "S * ", "o.", " style", "), new THREE.", "({ color: col, ", "({ color: col, roughness: ", ", pixel", "\"/>\n<g ", ", neon", ", clay", "\"/> <!-- wheel", ");\n const m = new THREE.Mesh(geo, new THREE.MeshStandardMaterial", "\">\n<rect x=\"-", "); // arm", " in=\"", "></", "\n d=U(d,pyr", "\n d=U(d,pyr(p-vec", "); // wheel\n d=U(d,cylz(p-vec", "\"/> <!-- hubcap", "); // eye\n d=U(d,ball(p-vec", "\npart('pyr", "\npart('pyr', ", "); // head", "); // spot", "); // headlight", "); // leg\n d=U(d,box(p-vec", "ellipse cx=\"", "); // wheel\npart('cylz', ", "); // ear", "pow(", "(rd", "dif=", "dif=max(dot(n,L),", ")*sha", ")*sha(p+n*", ",L);\n col=C(h.y)*(", " p=ro+rd*tg;\n vec", " q=abs(fract(p.xz", " q=abs(fract(p.xz*", "smoothstep(", ",max(q.x,q.y))*", ",max(q.x,q.y))*exp(-", "f=", " -->\n<polygon points=\"", " of", "=(b", "=min(", "max(lo", "th=", "m=", "((c", "((c+", ")*S", "tm.x<", "tm.z){", "tm.z){tt=", "tm.z){tt=tm", "c.y", ",-st", ".z;", "\"/>\n<g stroke", "\"/>\n<g stroke-", "\"/>\n<g stroke-linejoin", "\"/>\n<g stroke-linejoin=\"", "));\n float ", "); // nose", "))", "(col", "); // hubcap\n d=U(d,cylz(p-vec", ");\nreturn g;\n", "*sha(p+n*", "(), ", "inside(", "inside(k, ", "') return u * u + v * v", " + w * w <= ", "') return u * u + w * w <= ", " - v", " - v) / ", "Math.abs(", " a) / S); ", " a) / S); i", ") / S); j", "++)", "c) / S); ", "c) / S); l", "i * S", "j * S", "l * S", " + ',", " + ',' ", " + ',' + ", ", S * ", "const [", ");\n o.", ");\n vox", ");\n vox.", "*dif);\n }else if(tg>", "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=\"", "\"/> <!-- window", " x=\"-", "\"/><feComposite", "=\"t", "operator=\"", "); // window\n d=U(d,box(p-vec", " -->\n<defs", " -->\n<defs><", " -->\n<defs><filter", " -->\n<defs><filter ", " -->\n<defs><filter id", " -->\n<defs><filter id=\"", "\" x", "\" x=\"-", "\"><", " in=\"SourceGraphic", "\"/></", "filter></", "filter></defs", "filter></defs>\n<", "filter=\"", "filter=\"url", "filter=\"url(", "filter=\"url(#", "b\"/><", "\"/> <!-- body", "); // fin", ", lowpoly, ", " please", "\npart('cone", "\npart('cone', ", "make a ", "); // hubcap\npart('cylz', ", ", clay, ", "); // button", "); // leg\npart('box', -", ", pixel, ", "draw a ", "\n d=U(d,cone", "\n d=U(d,cone(p-vec", ", neon, ", "create a ", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('box', ", ", wire, ", "sculpt a ", "i ", "i want", "i want a ", ");\n d=U(d,cyl(p-vec", "); // tail", "\"/> <!-- petal", "); // top", "a ", " art", "generate a ", "build a ", "); // stem", "); // wing", "); // petal\n d=U(d,ball(p-vec", "); // layer", "\npart('cyl', -", "\"/> <!-- headlight", "\"/> <!-- arm", "\"/> <!-- spot", ");\n d=U(d,ball(p-vec", "); // back", "\"/> <!-- head", "); // eye\npart('ball', ", "); // canopy", " leg", " socket", "front ", "front foot", "g.scale", "g.scale.", "g.scale.setScalar", "g.scale.setScalar(", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cyl', ", ");\n p", ");\n p/", ");\n p/=", "\n d", "\n d.x*", "\n d.x*=", ";\n return d;\n}\nvec", "\"/>\n<g>\n<", "); // eye\npart('ball', -", "g transform", "g transform=\"", "g transform=\"scale", "g transform=\"scale(", " -->\n</g>\n</g>\n<", " -->\n</g>\n</g>\n</svg>\n", "); // leg\n d=U(d,cyl(p-vec", "\"/> <!-- hubcap -->\n<ellipse cx=\"-", "\"/> <!-- wheel -->\n<ellipse cx=\"-", "\"/> <!-- eye -->\n<ellipse cx=\"", "); // wheel\npart('cylz', -", "); // hubcap\npart('cylz', -", "make ", "); // hat", " p=ro+rd*t,n=nor(p);\n float dif=max(dot(n,L),", "*dif)+", "*dif)+vec", ")*pow(", ")*pow(max(dot", ")*pow(max(dot(", ")*pow(max(dot(reflect", ")*pow(max(dot(reflect(rd", ")*pow(max(dot(reflect(rd,n", ")*pow(max(dot(reflect(rd,n),L", ")*pow(max(dot(reflect(rd,n),L),", ")*dif", ")*dif;\n ", ")*dif;\n }else if(tg>", "\"/> <!-- ear", " p=ro+rd*t,n=nor(p);\n float f=", " p=ro+rd*t,n=nor(p);\n float f=pow(", "-max(dot(n", "-max(dot(n,-", "-max(dot(n,-rd", "-max(dot(n,-rd),", "*f", "*f);\n }else if(tg>", ");\n col", ");\n col+", ");\n col+=vec", ")*smoothstep(", "*tg*tg);\n ", "*tg*tg);\n }\n O=vec", "); // tower", "); // spire", "); // battlement", "\npart('pyr', -", "); // paw", " of a ", ");\n const m = new THREE.Mesh(geo, new THREE.MeshPhysicalMaterial", ");\n const m = new THREE.Mesh(geo, new THREE.MeshPhysicalMaterial({ color: col, roughness: ", ", clearcoat", ", clearcoat: ", "\"/>\n<g stroke-linejoin=\"bevel", "); // cap", "\"/> <!-- eye -->\n<ellipse cx=\"-", "\">\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<tx){\n vec", " c", " c=", " c=floor", " c=floor((", " c=floor((ro+rd*", " c=floor((ro+rd*(", " c=floor((ro+rd*(te", " c=floor((ro+rd*(te+", "))/", "))/S", "))/S),", "))/S),st", "))/S),st=", "))/S),st=sign", "))/S),st=sign(rd", "))/S),st=sign(rd),", "))/S),st=sign(rd),dt", "))/S),st=sign(rd),dt=", "))/S),st=sign(rd),dt=abs(", "))/S),st=sign(rd),dt=abs(S", "))/S),st=sign(rd),dt=abs(S/rd", "))/S),st=sign(rd),dt=abs(S/rd),", "))/S),st=sign(rd),dt=abs(S/rd),tm", "))/S),st=sign(rd),dt=abs(S/rd),tm=", "))/S),st=sign(rd),dt=abs(S/rd),tm=((c+", "))/S),st=sign(rd),dt=abs(S/rd),tm=((c+max(", "))/S),st=sign(rd),dt=abs(S/rd),tm=((c+max(st", "))/S),st=sign(rd),dt=abs(S/rd),tm=((c+max(st,", "))*S", "))*S-ro)/rd", "))*S-ro)/rd;", "))*S-ro)/rd;\n ", "))*S-ro)/rd;\n for(int i=", ";i++){\n ", ";i++){\n vec", " h=map", " h=map((c+", ")*S);", ")*S);\n ", ")*S);\n if(h.x<", "){th=", "){th=tt", "){th=tt;", "){th=tt;m=", "){th=tt;m=h", "){th=tt;m=h.y;", "){th=tt;m=h.y;break;", "){th=tt;m=h.y;break;}\n ", "){th=tt;m=h.y;break;}\n if(", "){th=tt;m=h.y;break;}\n if(tm.x<", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm.x", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm.x+=dt", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm.x+=dt.x;", "){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm.x+=dt.x;n=vec", "(-st", "(-st.x,", ");}\n else if(", ");}\n else if(tm.y", ");}\n else if(tm.y<", ");}\n else if(tm.y<tm.z){tt=tm", ");}\n else if(tm.y<tm.z){tt=tm.y;", ");}\n else if(tm.y<tm.z){tt=tm.y;c.y", ");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st", ");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;", ");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;tm.y", ");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;tm.y+=dt", ");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;tm.y+=dt.y;", ");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;tm.y+=dt.y;n=vec", ",-st.y,", ");}\n else", ");}\n else{", ");}\n else{tt=", ");}\n else{tt=tm.z", ");}\n else{tt=tm.z;", ");}\n else{tt=tm.z;c", ");}\n else{tt=tm.z;c.z", ");}\n else{tt=tm.z;c.z+=st", ");}\n else{tt=tm.z;c.z+=st.z;", ");}\n else{tt=tm.z;c.z+=st.z;tm.z", ");}\n else{tt=tm.z;c.z+=st.z;tm.z+=dt", ");}\n else{tt=tm.z;c.z+=st.z;tm.z+=dt.z;", ");}\n else{tt=tm.z;c.z+=st.z;tm.z+=dt.z;n=vec", ",-st.z", ",-st.z);}\n ", ",-st.z);}\n if(", ",-st.z);}\n if(c.y", ",-st.z);}\n if(c.y<", ",-st.z);}\n if(c.y<-", "||tt", "||tt>", "||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<ellipse cx=\"", "a\"/>\n<g stroke-linejoin=\"", "a\"/>\n<g stroke-linejoin=\"round", " art of a ", "); // spot\n d=U(d,ball(p-vec", " -->\n<g ", " -->\n<g fill=\"", " -->\n<g fill=\"none\" stroke-width=\"", " a,float d,float m){float h=", " a,float d,float m){float h=clamp(", "*(d", "*(d-", "*(d-a.x", "*(d-a.x)/", ");return vec", "(mix", "(mix(d,", "(mix(d,a", "(mix(d,a.x,", "(mix(d,a.x,h", "(mix(d,a.x,h)-", "*h*(", "-h", "-h),", "-h),h", "-h),h<", "?m", "?m:a", "?m:a.y", "?m:a.y);}\n", "?m:a.y);}\nvec", " p=ro+rd*t,n=nor(p);\n float dif", " p=ro+rd*t,n=nor(p);\n float dif=(", " p=ro+rd*t,n=nor(p);\n float dif=(dot", " p=ro+rd*t,n=nor(p);\n float dif=(dot(n", " p=ro+rd*t,n=nor(p);\n float dif=(dot(n,L", " p=ro+rd*t,n=nor(p);\n float dif=(dot(n,L)*", ",L)", ",L));\n col=C(h.y)*(", ")\n : k === 'ball' ? new THREE.IcosahedronGeometry", ")\n : k === 'ball' ? new THREE.IcosahedronGeometry(", ", flatShading", ", flatShading: ", ", flatShading: true", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('ball', ", ");\n const m = new THREE.Mesh(geo, new THREE.MeshStandardMaterial({ color: ", ", emissive", ", emissive: ", ", emissive: col", ", emissive: col, ", ", emissive: col, emissiveIntensity", ", emissive: col, emissiveIntensity: ", " }));\n m.", " }));\n m.add", " }));\n m.add(new THREE.", " }));\n m.add(new THREE.LineSegments(new THREE.", " }));\n m.add(new THREE.LineSegments(new THREE.EdgesGeometry", " }));\n m.add(new THREE.LineSegments(new THREE.EdgesGeometry(geo, ", "), new THREE.LineBasicMaterial({ color: col }", "), new THREE.LineBasicMaterial({ color: col })", "), new THREE.LineBasicMaterial({ color: col })));\n ", "), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "\"/> <!-- nose", "huge ", "small ", "); // cabin", "); // body\npart('ball', ", "); // seat", "\">\n<g transform=\"scale(", " -->\n<defs><filter id=\"px", " -->\n<defs><filter id=\"px\" ", " -->\n<defs><filter id=\"px\" filterUnits", " -->\n<defs><filter id=\"px\" filterUnits=\"", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", "\"><feFlood", "\"><feFlood x=\"-", "\"/><feComposite x=\"-", "\"/><feTile", "\"/><feTile ", "\"/><feTile result", "\"/><feTile result=\"t", "\"/><feTile result=\"t\"/><feComposite", "\"/><feTile result=\"t\"/><feComposite in=\"SourceGraphic", "\"/><feTile result=\"t\"/><feComposite in=\"SourceGraphic\" ", "\"/><feTile result=\"t\"/><feComposite in=\"SourceGraphic\" in", "=\"t\" ", "=\"t\" operator=\"", "=\"t\" operator=\"in", "=\"t\" operator=\"in\"/><", "=\"t\" operator=\"in\"/><feMorphology", "=\"t\" operator=\"in\"/><feMorphology ", "=\"t\" operator=\"in\"/><feMorphology operator=\"", "=\"t\" operator=\"in\"/><feMorphology operator=\"dilate", "=\"t\" operator=\"in\"/><feMorphology operator=\"dilate\" ", "=\"t\" operator=\"in\"/><feMorphology operator=\"dilate\" radius", "=\"t\" operator=\"in\"/><feMorphology operator=\"dilate\" radius=\"", "\"/></filter></defs>\n<", "\"/></filter></defs>\n<g ", "\"/></filter></defs>\n<g filter=\"url(#", "\"/></filter></defs>\n<g filter=\"url(#px", "\"/></filter></defs>\n<g filter=\"url(#px)", "\"/></filter></defs>\n<g filter=\"url(#px)\" ", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape-", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges", " -->\n<defs><filter id=\"glow", " -->\n<defs><filter id=\"glow\" x=\"-", "%\" y=\"-", "%\" width=\"", "%\" height=\"", "%\"><", "%\"><feGaussianBlur", "%\"><feGaussianBlur ", "%\"><feGaussianBlur stdDeviation", "%\"><feGaussianBlur stdDeviation=\"", "\" result", "\" result=\"", "\" result=\"b\"/><", "\" result=\"b\"/><feMerge", "\" result=\"b\"/><feMerge><", "\" result=\"b\"/><feMerge><feMergeNode", "\" result=\"b\"/><feMerge><feMergeNode in=\"", "\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><", "\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode", "\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic", "\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></", "\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></feMerge", "\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></feMerge></", "\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></feMerge></filter></defs>\n<", "\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></feMerge></filter></defs>\n<rect x=\"-", "\"/>\n<g filter=\"url(#", "\"/>\n<g filter=\"url(#glow", "\"/>\n<g filter=\"url(#glow)", "\"/>\n<g filter=\"url(#glow)\" fill=\"", "\"/>\n<g filter=\"url(#glow)\" fill=\"none\" stroke-width=\"", "); // antenna", "\"/> <!-- pupil", "); // trunk", "\"/> <!-- layer", "big ", "); // headlight\n d=U(d,box(p-vec", "tiny ", "\"/> <!-- fin", "); // leg\n return d;\n}\nvec", "d: cat", "d: snowman", " brim", "d: pig", "d: castle", "); // taillight", "); // eye socket", "); // front foot", "); // back leg", "d: flower", "); // stem\n d=U(d,ball(p-vec", "d: fish", " fin", " tree", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(vox);\nreturn g;\n", "d: chair", "d: mushroom", "d: pine", "d: table", "\"/> <!-- button", "); // petal\npart('ball', -", "d: boat", "d: fountain", "); // nose\n d=U(d,ball(p-vec", "d: bench", "); // nose\npart('ball', ", "\"/> <!-- eye -->\n<rect x=\"-", "cylx(p-vec", "\"/> <!-- tail", "d: plane", "\"/> <!-- window -->\n<rect x=\"", "); // leg\npart('box', ", "\"/> <!-- back", "\"/> <!-- window -->\n<rect x=\"-", "\"/> <!-- canopy", "\"/> <!-- stem", "); // stem\npart('ball', ", "d: lamp", "low ", "low poly", "cylx', ", "d: truck", "d: robot", "chest ", "chest panel", " tip", "d: duck", "rect x=\"", "d: tree", "); // hubcap\n d=U(d,box(p-vec", "d: cactus", "\"/> <!-- wheel -->\n<rect x=\"", "\"/> <!-- wing", ")\">\n<rect x=\"-", "\"/> <!-- top", " bench", " snowman", "\"/> <!-- leg -->\n</g>\n</svg>\n", "\"/> <!-- head -->\n<ellipse cx=\"", "\"/> <!-- arm -->\n<rect x=\"-", "d: house", "); // leg\npart('cyl', -", "\"/> <!-- petal -->\n<ellipse cx=\"", "); // leg\nreturn g;\n", "-bit", " table", "); // button\n d=U(d,ball(p-vec", "d: rocket", "d: frog", " chair", "\"/> <!-- headlight -->\n<rect x=\"-", "d: car", "\"/> <!-- stem -->\n<ellipse cx=\"", "\"/> <!-- petal -->\n<ellipse cx=\"-", "); // ear\n d=U(d,pyr(p-vec", "d: bus", "\"/> <!-- layer -->\n<polygon points=\"-", "\"/> <!-- seat", "\"/> <!-- seat -->\n<rect x=\"", " fountain", "); // spot\npart('ball', -", "\"/> <!-- hubcap -->\n<ellipse cx=\"", "\"/> <!-- wheel -->\n<ellipse cx=\"", "\">\n<rect x=\"", "\"/> <!-- ear -->\n<polygon points=\"-", "); // hubcap\npart('box', ", "); // headlight\npart('box', ", "); // tower\n d=U(d,cone(p-vec", "\"/> <!-- paw", "); // eye\n d=U(d,box(p-vec", "); // bottom", "); // middle", "); // hat brim", "); // snout", "\n d=U(d,cylx(p-vec", "); // top fin", "); // stand", "\"/> <!-- battlement", "\"/> <!-- tower", "\"/> <!-- spire", "\"/> <!-- spire -->\n<rect x=\"-", " cactus", "pixel art", "\"/> <!-- trunk", "); // hull", "); // bow", "); // deck", "); // mast", "); // sail", "); // cup", "); // keep", "); // gate", "\"/> <!-- hubcap -->\n</g>\n</svg>\n", "); // leaf", "); // center", "); // base", "); // pole", "); // light", "\"/>\n<g>\n<rect x=\"-", "); // fuselage", "); // cockpit", "); // tailplane", "); // strut", "); // window\npart('box', -", "\"/> <!-- hat", ", smooth -->\n<ellipse cx=\"", "); // basin", "); // water", "); // column", "); // bowl", "); // spray", "\"/> <!-- head -->\n<rect x=\"-", "); // tower\npart('cone', ", ";\n d=U(d,box(p-vec", "); // arm\n d=U(d,cyl(p-vec", "); // arm\n d=U(d,box(p-vec", "\"/> <!-- antenna", "); // petal\npart('ball', ", "\">\n<polygon points", "); // ear\npart('pyr', -", "); // button\npart('ball', ", "); // layer\npart('cone', ", "); // seat\n d=U(d,box(p-vec", ", wire -->\n<g fill=\"none\" stroke-width=\"", "blueprint ", "wireframe ", "plasticine ", ", neon\nprecision highp float;\nuniform vec", "); // beak", "faceted ", "\"/> <!-- body -->\n<polygon points=\"-", ", lowpoly -->\n<ellipse cx=\"", "); // head\n d=U(d,box(p-vec", "); // canopy\n d=U(d,ball(p-vec", ", huge", ", wire\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 / ", "); // pot", "); // flower", "\"/>\n<g stroke-linejoin=\"bevel\">\n<rect x=\"-", "); // pupil\n d=U(d,ball(p-vec", "yellow ", ");\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('box', ", ", pixel\nprecision highp float;\nuniform vec", ", wire\nprecision highp float;\nuniform vec", "); // head\npart('box', ", "outline ", "glowing ", "); // torso", "); // chest panel", "); // antenna tip", "pink ", "); // layer\n d=U(d,cone(p-vec", "); // backrest", "\"/> <!-- cap", "\"/> <!-- arm -->\n<rect x=\"", "); // seat\npart('box', ", "gold ", "claymation ", ", smooth\nprecision highp float;\nuniform vec", "); // walls", "); // roof", "); // door", "); // chimney", "lowpoly ", ", clay -->\n<rect x=\"-", ", pixel\nconst g = new THREE.Group(), S = ", ", 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 / ", ", smooth\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 / ", "); // cab", "); // cargo", "); // chassis", "\"/> <!-- tail -->\n<ellipse cx=\"", "cyber ", "\"/> <!-- back leg", "\"/> <!-- eye socket", "\"/> <!-- front foot", "\npart('cylx', ", "teal ", "cream ", "\"/> <!-- cabin", "orange ", "a\"/>\n<g stroke-linejoin=\"round\">\n<rect x=\"-", ", small", "); // engine", "purple ", "); // spot\npart('ball', ", ", clay\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 / ", "); // body\n d=U(d,box(p-vec", "synthwave ", "blue ", "\"/> <!-- taillight", "\"/> <!-- fin -->\n<rect x=\"-", ", big", "low poly ", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges\">\n<rect x=\"-", "\"/> <!-- body -->\n<rect x=\"-", ", lowpoly\nprecision highp float;\nuniform vec", "\"/> <!-- headlight -->\n<ellipse cx=\"", "); // stripe", "); // windshield", "); // eye socket\n d=U(d,ball(p-vec", "); // front foot\n d=U(d,ball(p-vec", "white ", "voxel ", "); // belly", "); // mouth", ", 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 / ", ", neon -->\n<defs><filter id=\"glow\" x=\"-", "red ", "lime ", "); // tail\n return d;\n}\nvec", "neon ", "park bench", ", clay\nprecision highp float;\nuniform vec", "); // leg\npart('cyl', ", "navy ", "); // fin\n d=U(d,box(p-vec", ", flatShading: true }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('box', ", ", pixel -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", "-bit ", "clay ", ", tiny", "wire ", "blocky ", "\"/> <!-- trunk -->\n<polygon points=\"-", "); // headlight\n return d;\n}\nvec", "pixel ", "brown ", "), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cyl', ", "gray ", "green ", ";\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('cyl', ", "\"/> <!-- nose -->\n<ellipse cx=\"", "\"/> <!-- spot -->\n<ellipse cx=\"-", "\"/> <!-- body -->\n<ellipse cx=\"", "black ", "pastel ", ";\n d=U(d,cyl(p-vec", " style please", "\"/> <!-- eye -->\n<polygon points=\"-", "\"/> <!-- spot -->\n<ellipse cx=\"", "\"/> <!-- body -->\n<polygon points=\"", ", flatShading: true }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cyl', ", ";\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('box', ", "); // tail\nreturn g;\n", "\"/> <!-- top -->\n<rect x=\"", "\"/> <!-- button -->\n<ellipse cx=\"", "\"/> <!-- window -->\n</g>\n</svg>\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", "\"/> <!-- backrest", "\"/> <!-- backrest -->\n<rect x=\"", "pine tree", "\"/>\n<g stroke-linejoin=\"bevel\">\n<polygon points", "\"/> <!-- back -->\n<rect x=\"", "); // head\n d=U(d,pyr(p-vec", "); // ear\n d=U(d,ball(p-vec", "); // nose\n d=U(d,cyl(p-vec", "); // paw\n d=U(d,cyl(p-vec", "); // paw\n d=U(d,box(p-vec", "smooth ", "); // hull\npart('pyr', ", "); // bow\npart('box', ", "); // deck\npart('box', -", "); // cabin\npart('cyl', ", "); // mast\npart('box', ", "); // body\npart('pyr', -", "); // tail\npart('pyr', -", "); // top fin\npart('ball', ", "); // pupil\npart('ball', ", "); // pupil\npart('cyl', ", "); // keep\n d=U(d,box(p-vec", "); // gate\n d=U(d,cyl(p-vec", "); // spire\n d=U(d,cyl(p-vec", "); // spire\n d=U(d,box(p-vec", "); // battlement\n d=U(d,box(p-vec", "\"/> <!-- ear -->\n<rect x=\"", "\"/> <!-- paw -->\n<rect x=\"-", "toy ", "); // top\npart('box', ", "); // leaf\n d=U(d,ball(p-vec", "); // center\n d=U(d,ball(p-vec", "); // base\npart('cyl', ", "); // pole\npart('pyr', ", "); // cap\npart('box', ", "glossy ", "\"/> <!-- nose -->\n</g>\n</svg>\n", "\"/> <!-- keep", "\"/> <!-- keep -->\n<rect x=\"", "\"/> <!-- battlement -->\n<rect x=\"-", "\"/> <!-- battlement -->\n<rect x=\"", "\"/> <!-- tower -->\n<polygon points=\"", "\"/> <!-- tower -->\n<polygon points=\"-", "\"/> <!-- gate", "pixel art ", "); // fuselage\npart('ball', ", "); // cockpit\npart('box', ", "); // wing\npart('box', -", "); // tailplane\npart('box', -", "); // fin\npart('cyl', ", "); // strut\npart('cylz', ", ");\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('cyl', ", "plastic ", "); // basin\npart('cyl', ", "); // water\npart('cyl', ", "); // column\npart('cyl', ", "); // bowl\npart('ball', ", "); // body\n d=U(d,pyr(p-vec", "); // tail\n d=U(d,pyr(p-vec", "); // top fin\n d=U(d,ball(p-vec", "); // pupil\n d=U(d,cyl(p-vec", ";\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('ball', ", "\"/> <!-- headlight -->\n<rect x=\"", "\"/> <!-- cab", "\"/> <!-- cab -->\n<rect x=\"", "\"/> <!-- cargo", "\"/> <!-- cargo -->\n<rect x=\"-", "\"/> <!-- chassis", "\"/> <!-- chassis -->\n<rect x=\"", "\"/> <!-- tail -->\n<polygon points=\"-", "\"/> <!-- leaf", "\"/> <!-- center", "); // hat\n return d;\n}\nvec", "); // cap\n d=U(d,ball(p-vec", "); // cab\n d=U(d,box(p-vec", "); // cargo\n d=U(d,box(p-vec", "); // chassis\n d=U(d,cylz(p-vec", "); // back\n d=U(d,box(p-vec", "\"/> <!-- spot -->\n<rect x=\"-", "\"/> <!-- body -->\n<rect x=\"", "\"/> <!-- snout", "\"/> <!-- basin", "\"/> <!-- basin -->\n<rect x=\"-", "\"/> <!-- water", "\"/> <!-- water -->\n<rect x=\"-", "\"/> <!-- column", "\"/> <!-- column -->\n<rect x=\"-", "\"/> <!-- bowl", "\"/> <!-- spray", "\"/> <!-- bottom", "\"/> <!-- middle", "\"/> <!-- hat brim", "\"/> <!-- hat brim -->\n<rect x=\"-", "); // cap\npart('ball', ", "); // top\n d=U(d,box(p-vec", "); // beak\npart('ball', ", "); // wing\npart('ball', -", "); // wing\npart('pyr', ", "); // hull\n d=U(d,pyr(p-vec", "); // bow\n d=U(d,box(p-vec", "); // deck\n d=U(d,box(p-vec", "); // cabin\n d=U(d,cyl(p-vec", "); // mast\n d=U(d,box(p-vec", "); // battlement\n return d;\n}\nvec", "\"/> <!-- paw -->\n<ellipse cx=\"", "); // head\npart('cylz', ", "); // snout\npart('ball', ", "); // eye\npart('pyr', ", "); // ear\npart('cyl', ", "); // keep\npart('box', ", "); // gate\npart('cyl', ", "); // spire\npart('cyl', -", "); // tower\npart('cone', -", "); // spire\npart('box', ", "); // battlement\npart('box', -", "); // pot\n d=U(d,cyl(p-vec", "); // top\n d=U(d,cylx(p-vec", "); // arm\n d=U(d,cylx(p-vec", "); // arm\n d=U(d,ball(p-vec", "); // torso\n d=U(d,box(p-vec", "); // chest panel\n d=U(d,box(p-vec", "); // eye\n d=U(d,cyl(p-vec", "); // antenna\n d=U(d,ball(p-vec", "); // antenna tip\n d=U(d,box(p-vec", "\"/> <!-- torso", "\"/> <!-- torso -->\n<rect x=\"-", "\"/> <!-- antenna tip", "\"/> <!-- antenna tip -->\n<rect x=\"", "\"/> <!-- chest panel", "\"/> <!-- leg -->\n<polygon points=\"", "); // leaf\npart('ball', ", "); // center\npart('ball', ", "\"/>\n<g>\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<g>\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', ", "\"/> <!-- layer -->\n</g>\n</svg>\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', ", "\"/> <!-- top fin", "\"/> <!-- top fin -->\n<rect x=\"-", "\"/> <!-- stand", "); // trunk\n d=U(d,ball(p-vec", "); // basin\n d=U(d,cyl(p-vec", "); // water\n d=U(d,cyl(p-vec", "); // column\n d=U(d,cyl(p-vec", "); // bowl\n d=U(d,ball(p-vec", "soft ", "); // stripe\n d=U(d,box(p-vec", "); // windshield\n d=U(d,cylz(p-vec", "\"/> <!-- leg -->\n<ellipse cx=\"", "); // petal\n return d;\n}\nvec", "\"/> <!-- cup", "\"/> <!-- petal -->\n<polygon points=\"-", "); // stand\n return d;\n}\nvec", "ellipse cx=\"-", "); // backrest\npart('box', ", "); // trunk\n d=U(d,cone(p-vec", "); // backrest\n d=U(d,box(p-vec", "); // back\npart('box', ", ")\">\n<ellipse cx=\"", "); // beak\n d=U(d,ball(p-vec", "); // wing\n d=U(d,ball(p-vec", "); // wing\n d=U(d,pyr(p-vec", "\"/> <!-- ear -->\n<ellipse cx=\"", "\"/> <!-- cap -->\n<ellipse cx=\"", "\"/> <!-- beak", ");\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('ball', ", ", flatShading: true }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('ball', ", "\"/> <!-- fuselage", "\"/> <!-- cockpit", "\"/> <!-- cockpit -->\n<rect x=\"-", "\"/> <!-- wing -->\n<rect x=\"-", "\"/> <!-- tailplane", "\"/> <!-- tailplane -->\n<rect x=\"-", "\"/> <!-- fin -->\n<rect x=\"", "\"/> <!-- strut", "\"/> <!-- hull", "\"/> <!-- hull -->\n<polygon points=\"", "\"/> <!-- bow", "\"/> <!-- bow -->\n<rect x=\"-", "\"/> <!-- deck", "\"/> <!-- deck -->\n<rect x=\"-", "\"/> <!-- cabin -->\n<rect x=\"", "\"/> <!-- mast", "\"/> <!-- mast -->\n<rect x=\"", "\"/> <!-- sail", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(vox);\n", ", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(vox);\ng.scale.setScalar(", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges\">\n<ellipse cx=\"", "\"/> <!-- belly", "\"/> <!-- mouth", "); // pot\npart('cyl', ", "); // top\npart('cylx', ", "); // arm\npart('cyl', ", "); // arm\npart('cylx', ", "); // arm\npart('cylx', -", "); // arm\npart('cyl', -", "); // arm\npart('ball', ", "\"/> <!-- pupil -->\n<ellipse cx=\"", "\"/> <!-- gate -->\n</g>\n</svg>\n", "); // spot\n return d;\n}\nvec", "); // window\npart('cylz', ", "); // headlight\npart('box', -", "); // taillight\npart('box', -", "\"/> <!-- leaf -->\n<ellipse cx=\"", "); // leg\n d.x*=", "\"/> <!-- antenna -->\n<ellipse cx=\"", "); // flower\n return d;\n}\nvec", "\"/> <!-- canopy -->\n</g>\n</svg>\n", "\"/> <!-- bottom -->\n<ellipse cx=\"", "\"/> <!-- middle -->\n<ellipse cx=\"", "\"/> <!-- hat -->\n<ellipse cx=\"", "); // light\n return d;\n}\nvec", "); // walls\npart('pyr', ", "); // roof\npart('box', ", "); // door\npart('box', ", "); // cup\n return d;\n}\nvec", "\"/> <!-- taillight -->\n<rect x=\"-", "\"/> <!-- cabin -->\n<rect x=\"-", "\"/> <!-- chimney", "\"/> <!-- chimney -->\n<rect x=\"-", "\"/> <!-- walls", "\"/> <!-- walls -->\n<polygon points=\"-", "\"/> <!-- roof", "\"/> <!-- roof -->\n<rect x=\"-", "\"/> <!-- door", "\"/> <!-- door -->\n<rect x=\"", "); // torso\npart('box', ", "); // chest panel\npart('box', ", "); // eye\npart('box', -", "); // eye\npart('cyl', ", "); // antenna\npart('ball', ", "); // antenna tip\npart('box', ", "); // arm\npart('box', -", "); // arm\npart('box', ", "\"/> <!-- leg -->\n<rect x=\"", "\"/> <!-- nose -->\n<rect x=\"", "\"/> <!-- fin -->\n<polygon points=\"-", "\"/> <!-- engine", "\"/> <!-- spray -->\n</g>\n</svg>\n", "\"/> <!-- spot -->\n</g>\n</svg>\n", "\"/> <!-- snout -->\n</g>\n</svg>\n", "\"/> <!-- pot", "\"/> <!-- pot -->\n<rect x=\"-", "\"/> <!-- flower", "); // belly\n d=U(d,ball(p-vec", "); // pupil\n d=U(d,box(p-vec", "); // mouth\n d=U(d,ball(p-vec", "); // back leg\n d=U(d,ball(p-vec", "); // body\npart('box', ", "); // spray\nreturn g;\n", "\"/> <!-- stripe", "\"/> <!-- stripe -->\n<rect x=\"-", "\"/> <!-- windshield", "\"/> <!-- windshield -->\n<rect x=\"", "street ", "street lamp", "\">\n<ellipse cx=\"-", "); // spray\n return d;\n}\nvec", "a\"/>\n<g stroke-linejoin=\"round\">\n<ellipse cx=\"", "\"/> <!-- center -->\n</g>\n</svg>\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", "\"/> <!-- base", "\"/> <!-- base -->\n<rect x=\"-", "\"/> <!-- pole", "\"/> <!-- pole -->\n<polygon points=\"-", "\"/> <!-- cap -->\n<rect x=\"-", "\"/> <!-- light", "); // cup\nreturn g;\n", "); // trunk\npart('ball', ", "); // sail\n return d;\n}\nvec", "); // chimney\n return d;\n}\nvec", "a\"/>\n<g stroke-linejoin=\"round\">\n<g transform=\"scale(", "\"/> <!-- mouth -->\n</g>\n</svg>\n", "\"/> <!-- bowl -->\n<ellipse cx=\"", "\"/> <!-- pupil -->\n</g>\n</svg>\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", "\"/> <!-- button -->\n</g>\n</svg>\n", ");\n d=U(d,cylx(p-vec", "); // wheel\n return d;\n}\nvec", "); // stand\nreturn g;\n", "purple\nprecision highp float;\nuniform vec", "\"/> <!-- canopy -->\n<rect x=\"-", "\"/> <!-- fuselage -->\n<ellipse cx=\"", "\"/> <!-- strut -->\n<ellipse cx=\"", "\"/>\n<g stroke-linejoin=\"bevel\">\n<polygon points=\"", "); // body\npart('box', -", "); // cabin\npart('box', -", "); // cabin\n d=U(d,box(p-vec", "); // window\n d=U(d,cylz(p-vec", "); // taillight\n d=U(d,box(p-vec", "\"/> <!-- wing -->\n<ellipse cx=\"-", "\"/> <!-- wing -->\n<ellipse cx=\"", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges\">\n<g transform=\"scale(", "\"/> <!-- trunk -->\n<ellipse cx=\"", "\"/> <!-- stand -->\n<ellipse cx=\"", ", huge\nprecision highp float;\nuniform vec", "white\nprecision highp float;\nuniform vec", "); // cab\npart('box', ", "); // cargo\npart('box', ", "); // chassis\npart('cylz', ", "\"/> <!-- taillight -->\n<ellipse cx=\"", "\"/> <!-- pupil -->\n<rect x=\"-", "blue\nprecision highp float;\nuniform vec", "\"/>\n<g stroke-linejoin=\"bevel\">\n<g transform=\"scale(", "pink\nprecision highp float;\nuniform vec", "); // canopy\npart('ball', ", "\"/> <!-- sail -->\n</g>\n</svg>\n", "huge\nprecision highp float;\nuniform vec", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cylx', ", "\"/> <!-- hubcap -->\n<polygon points=\"-", "\"/> <!-- wheel -->\n<polygon points=\"-", "cream\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 / ", "\"/> <!-- engine -->\n<ellipse cx=\"", "\">\n<polygon points=\"-", "); // light\nreturn g;\n", "); // layer\nreturn g;\n", "); // stripe\npart('box', -", "); // windshield\npart('cylz', ", "); // layer\n return d;\n}\nvec", "\"/> <!-- beak -->\n</g>\n</svg>\n", " in outline", "); // hat\nreturn g;\n", "\"/> <!-- back leg -->\n<ellipse cx=\"-", "\"/> <!-- back leg -->\n<ellipse cx=\"", "\"/> <!-- eye socket -->\n<ellipse cx=\"-", "\"/> <!-- eye socket -->\n<ellipse cx=\"", "\"/> <!-- belly -->\n<ellipse cx=\"", "\"/> <!-- front foot -->\n<ellipse cx=\"-", "\"/> <!-- pupil -->\n<ellipse cx=\"-", "\"/> <!-- arm -->\n<ellipse cx=\"", "\"/> <!-- leg -->\n</g>\n</g>\n</svg>\n", "\"/> <!-- button -->\n<rect x=\"-", "yellow\nprecision highp float;\nuniform vec", "\"/> <!-- wheel -->\n</g>\n</svg>\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', -", "\"/> <!-- light -->\n</g>\n</svg>\n", "red\nprecision highp float;\nuniform vec", "); // spot\nreturn g;\n", "); // battlement\nreturn g;\n", "); // engine\n return d;\n}\nvec", "\"/> <!-- flower -->\n</g>\n</svg>\n", " in outline style", "); // taillight\n return d;\n}\nvec", "\"/> <!-- cup -->\n<rect x=\"", "big\nprecision highp float;\nuniform vec", "orange\nprecision highp float;\nuniform vec", "); // leg\ng.scale.setScalar(", "yellow\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 wire", "); // petal\nreturn g;\n", " in pixel art", " in pastel", " in cyber", "huge\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 / ", "\"/> <!-- chest panel -->\n</g>\n</svg>\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 / ", "\"/> <!-- hubcap -->\n</g>\n</g>\n</svg>\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<rect x=\"", " in low poly", " in neon", "); // chimney\nreturn g;\n", "lime\nprecision highp float;\nuniform vec", "small\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 pixel art style", " in wire style", " in faceted", "\"/> <!-- front foot -->\n<ellipse cx=\"", ", small\nprecision highp float;\nuniform vec", "); // tail\n d.x*=", " in cyber style", "green\nprecision highp float;\nuniform vec", " in clay", ", small\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 / ", "navy\nprecision highp float;\nuniform vec", " in glowing", " in pastel style", " in wireframe", "); // headlight\n d.x*=", " in neon style", "purple\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 lowpoly", "); // leg\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", " in plasticine", " in blueprint", "black\nprecision highp float;\nuniform vec", ", big\nprecision highp float;\nuniform vec", "cream\nprecision highp float;\nuniform vec", " in faceted style", "orange\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 / ", "d: chair, smooth, ", "\"/> <!-- stem -->\n<polygon points=\"-", " in lowpoly style", "pink\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 / ", ", huge\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 / ", "); // back leg\nreturn g;\n", ", lowpoly, brown", "\"/>\n<g>\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<g stroke-linejoin=\"bevel\">\n<polygon points=\"-", "d: pine, smooth, ", " in low poly style", "red\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 / ", "\"/> <!-- top -->\n<rect x=\"-", "tiny\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 / ", "gray\nprecision highp float;\nuniform vec", "d: snowman, clay, ", "\"/> <!-- head -->\n<polygon points=\"", "-bit style", "gray\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 wireframe style", " in blueprint style", "\"/> <!-- back leg -->\n<polygon points=\"-", "\"/> <!-- eye socket -->\n<polygon points=\"-", "\"/> <!-- eye -->\n<polygon points=\"", "\"/> <!-- canopy -->\n<ellipse cx=\"-", "d: fish, smooth, ", " in clay style", "a huge ", "); // canopy\nreturn g;\n", " in glowing style", " in synthwave", " in smooth", "sculpt a huge ", "d: castle, lowpoly, ", "d: pig, neon, ", " in plastic", "d: boat, smooth, ", "a\"/>\n<g stroke-linejoin=\"round\">\n<rect x=\"", "d: cat, clay, ", ", tiny\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 / ", "lime\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 / ", "d: table, wire, ", "i want a small ", "d: fountain, smooth, ", " in synthwave style", "\"/>\n<g stroke-linejoin=\"bevel\">\n<rect x=\"", " in plastic style", "d: lamp, neon, ", "make a small ", " in blocky", "d: fountain, neon, ", " in pixel", "i want a tiny ", "d: cat, pixel, ", "sculpt a big ", "d: snowman, lowpoly, ", "d: plane, clay, ", "d: car, smooth, ", "\"/> <!-- canopy -->\n<ellipse cx=\"", "d: pig, lowpoly, ", "d: rocket, pixel, ", "navy\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 / ", "d: snowman, smooth, ", "\"/> <!-- window -->\n</g>\n</g>\n</svg>\n", "d: house, lowpoly, ", "d: cactus, smooth, ", "d: duck, lowpoly, ", "d: rocket, smooth, ", "generate a huge ", "make a big ", "draw a small ", "\"/> <!-- canopy -->\n<polygon points=\"-", "d: frog, pixel, ", "\"/> <!-- hubcap -->\n<polygon points=\"", "\"/> <!-- wheel -->\n<polygon points=\"", "blue\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 / ", "); // tail\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", ", purple", "white\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 / ", "d: bench, lowpoly, ", "pink -->\n<ellipse cx=\"", "make a huge ", " C(float m){\n return vec", "build a small ", " in toy", ", pink", "black\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 / ", "generate a big ", "d: bench, clay, ", "\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges\">\n<rect x=\"", "d: car, neon, ", ", wire, brown", "create a big ", " in voxel", ", lime", "d: mushroom, smooth, ", "d: duck, smooth, ", " in toy style", "draw a tiny ", " in blocky style", "d: table, smooth, ", ", white", " in smooth style", "d: truck, pixel, ", "d: snowman, neon, ", "create a small ", ", orange", "d: robot, pixel, ", "d: pine, lowpoly, ", "draw a huge ", "build a huge ", "d: bus, wire, ", ", blue", ")\">\n<polygon points=\"-", "\"/> <!-- cup -->\n<rect x=\"-", "d: truck, wire, ", "sculpt a small ", "i want a big ", "d: cactus, clay, ", " in pixel style", "green\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 / ", "\"/> <!-- wing -->\n<polygon points=\"-", "d: plane, smooth, ", "); // tail\ng.scale.setScalar(", "d: tree, lowpoly, ", "draw a big ", " in soft", "d: chair, lowpoly, ", "d: mushroom, neon, ", "a small ", "d: mushroom, pixel, ", " in glossy", "d: cat, wire, ", "d: castle, neon, ", ", brown", "d: fish, pixel, ", "a tiny ", "d: house, clay, ", ", huge -->\n<ellipse cx=\"", "make a tiny ", "d: chair, clay, ", "d: castle, smooth, ", "make polygon ", "d: cactus, lowpoly, ", "d: tree, clay, ", "d: castle, wire, ", "d: house, pixel, ", "d: pig, clay, ", "generate a tiny ", "i want a huge ", "d: bench, pixel, ", "d: robot, clay, ", "d: duck, clay, ", "d: rocket, lowpoly, ", "d: boat, clay, ", "d: lamp, pixel, ", "d: castle, clay, ", "d: pine, pixel, ", "d: castle, pixel, ", "d: chair, wire, ", "d: flower, clay, ", "d: tree, pixel, ", "d: flower, smooth, ", "d: table, pixel, ", "create a huge ", "d: duck, wire, ", "d: pig, wire, ", " in glossy style", "d: cat, smooth, ", "d: boat, wire, ", "blueprint art of a ", "d: bus, smooth, ", "d: chair, neon, ", " in soft style", "d: car, clay, ", "d: pig, smooth, ", "d: fountain, wire, ", "d: bus, pixel, ", "d: rocket, neon, ", "); // headlight\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "d: duck, neon, ", " in voxel style", "lime -->\n<ellipse cx=\"", "d: flower, neon, ", "\"/> <!-- chest panel -->\n<rect x=\"", ", gold", ", teal", "d: frog, neon, ", ", black", "\"/> <!-- bowl -->\n<polygon points=\"-", "d: fish, wire, ", "d: plane, wire, ", "d: flower, wire, ", " fountain please", ", gray", "big -->\n<ellipse cx=\"", "d: boat, lowpoly, ", "d: frog, lowpoly, ", "d: fountain, pixel, ", "d: mushroom, clay, ", "small -->\n<ellipse cx=\"", "d: mushroom, wire, ", "\"/> <!-- button -->\n<polygon points=\"-", "d: flower, pixel, ", "sculpt a tiny ", "build a big ", "d: frog, clay, ", "lowpoly art of a ", "d: boat, pixel, ", ", green", "d: cat, neon, ", "d: tree, smooth, ", "); // sail\n d.x*=", "d: house, smooth, ", ", yellow", "yellow -->\n<ellipse cx=\"", "d: bench, neon, ", "d: house, wire, ", "d: bench, wire, ", "d: table, neon, ", "d: cactus, neon, ", "d: robot, lowpoly, ", "d: truck, clay, ", "brown\nprecision highp float;\nuniform vec", "d: robot, smooth, ", "); // stand\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "build a tiny ", "\"/> <!-- headlight -->\n<polygon points=\"", "); // light\ng.scale.setScalar(", "generate a small ", ", small -->\n<ellipse cx=\"", "d: frog, smooth, ", "d: cactus, pixel, ", "d: truck, neon, ", "\"/> <!-- gate -->\n</g>\n</g>\n</svg>\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 * ", "\"/> <!-- wheel -->\n</g>\n</g>\n</svg>\n", "\"/> <!-- layer -->\n</g>\n</g>\n</svg>\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, ", "\"/> <!-- pupil -->\n<polygon points=\"", " snowman please", "d: lamp, lowpoly, ", "\"/> <!-- eye -->\n</g>\n</svg>\n", "clay art of a ", "d: fish, neon, ", "gold -->\n<ellipse cx=\"", "\"/> <!-- spot -->\n</g>\n</g>\n</svg>\n", "d: rocket, wire, ", "\"/> <!-- beak -->\n</g>\n</g>\n</svg>\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<ellipse cx=\"", "); // petal\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "d: plane, pixel, ", "d: bench, smooth, ", "); // hat\n d.x*=", "cream -->\n<ellipse cx=\"", "\"/> <!-- snout -->\n</g>\n</g>\n</svg>\n", "navy -->\n<ellipse cx=\"", "\"/> <!-- belly -->\n<polygon points=\"", "\"/> <!-- pupil -->\n<polygon points=\"-", "\"/> <!-- front foot -->\n<polygon points=\"-", "d: snowman, pixel, ", "d: pine, clay, ", "); // spot\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "\"/> <!-- stand -->\n<polygon points=\"", "\"/> <!-- spot -->\n<polygon points=\"-", "d: table, lowpoly, ", "build a yellow ", "); // taillight\ng.scale.setScalar(", "a\"/>\n<g stroke-linejoin=\"round\">\n<ellipse cx=\"-", "d: fish, clay, ", "d: chair, pixel, ", "\"/> <!-- spray -->\n</g>\n</g>\n</svg>\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 / ", "\"/> <!-- leaf -->\n<polygon points=\"", "\"/> <!-- petal -->\n<polygon points=\"", "); // back leg\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", ", big -->\n<ellipse cx=\"", ";\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('cylx', ", "); // wheel\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "); // headlight\ng.scale.setScalar(", "d: cat, lowpoly, ", "\"/> <!-- flower -->\n</g>\n</g>\n</svg>\n", ", cream", "sculpt a pink ", "d: fish, lowpoly, ", "); // petal\n d.x*=", "\"/> <!-- front foot -->\n<polygon points=\"", "); // sail\ng.scale.setScalar(", "blue -->\n<ellipse cx=\"", "green -->\n<ellipse cx=\"", "\"/> <!-- nose -->\n</g>\n</g>\n</svg>\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<ellipse cx=\"", "toy art of a ", "); // flower\ng.scale.setScalar(", ")\">\n<ellipse cx=\"-", "); // canopy\ng.scale.setScalar(", "); // cup\n d.x*=", "d: robot, wire, ", "d: snowman, wire, ", "build a pink ", "d: plane, lowpoly, ", "); // spot\ng.scale.setScalar(", "d: fountain, clay, ", "); // spot\n d.x*=", "); // spray\ng.scale.setScalar(", "sailboat please", "i want a polygon ", "); // canopy\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "\"/> <!-- bottom -->\n<polygon points=\"-", "\"/> <!-- middle -->\n<polygon points=\"-", "\"/> <!-- hat -->\n<polygon points=\"", "orange -->\n<ellipse cx=\"", ", tiny -->\n<ellipse cx=\"", "\"/>\n<g>\n<polygon points", "\"/>\n<g>\n<polygon points=\"-", "cyber art of a ", "); // light\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "); // sail\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "castle please", "wire art of a ", "pixel art art of a ", "\"/> <!-- chest panel -->\n</g>\n</g>\n</svg>\n", "tiny -->\n<defs><filter id=\"glow\" x=\"-", "create a cream ", "make a black ", "\"/> <!-- sail -->\n</g>\n</g>\n</svg>\n", "i want a lime ", "); // canopy\n d.x*=", "faceted art of a ", "\"/> <!-- pupil -->\n</g>\n</g>\n</svg>\n", "); // layer\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "tiny -->\n<rect x=\"-", "outline art of a ", "i want a teal ", "cyber fountain", "\"/> <!-- center -->\n<ellipse cx=\"", "cream\nconst g = new THREE.Group(), S = ", "neon art of a ", "\"/> <!-- nose -->\n<polygon points=\"-", "big\nconst g = new THREE.Group(), S = ", "); // hat\ng.scale.setScalar(", "glowing art of a ", "red -->\n<ellipse cx=\"", "neon chair", "-bit art of a ", "tiny -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", "make lowpoly art of a ", "generate a gray ", "\"/> <!-- front foot -->\n<rect x=\"-", "d: cactus, wire, ", "purple -->\n<ellipse cx=\"", "make faceted ", "make a red ", "generate a lime ", "); // stand\n d.x*=", "huge -->\n<ellipse cx=\"", "); // engine\ng.scale.setScalar(", "a polygon ", "sculpt a orange ", "d: fountain, neon\nprecision highp float;\nuniform vec", "make a cream ", "d: truck, smooth, ", "); // cup\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "build a purple ", "draw a lime ", "\"/> <!-- canopy -->\n</g>\n</g>\n</svg>\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<ellipse cx=\"", "); // battlement\ng.scale.setScalar(", "duck please", "); // flower\n d.x*=", "\"/> <!-- tail -->\n<polygon points=\"", "green -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", "); // stand\ng.scale.setScalar(", "draw a white ", "); // chimney\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "create a purple ", "); // back leg\n d.x*=", " table please", ", flatShading: true }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cylx', ", "draw a gold ", "d: snowman, clay -->\n<rect x=\"-", "i want a yellow ", "\"/> <!-- light -->\n</g>\n</g>\n</svg>\n", "clay snowman", ", lowpoly, brown -->\n<ellipse cx=\"", "make blocky ", "d: pig, smooth -->\n<ellipse cx=\"", "\"/> <!-- arm -->\n<polygon points=\"-", "\"/> <!-- spot -->\n<polygon points=\"", "blocky art of a ", "); // light\n d.x*=", "\"/> <!-- fuselage -->\n<polygon points=\"", "\"/> <!-- nose -->\n<polygon points=\"", "\"/> <!-- strut -->\n<polygon points=\"", "\"/> <!-- petal -->\n</g>\n</svg>\n", "sculpt a faceted ", "make a gold ", "sculpt a gold ", "generate a red ", "make a navy ", "); // engine\n d.x*=", "d: flower, lowpoly -->\n<ellipse cx=\"", "gray -->\n<rect x=\"-", "make clay art of a ", "blue -->\n<rect x=\"-", "build a green ", "); // chimney\ng.scale.setScalar(", "create a pink ", "); // wheel\ng.scale.setScalar(", "draw a green ", "sculpt a lime ", "pixel art of a ", "make a blueprint ", "d: pig, wire\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 / ", "make plasticine ", "); // spray\n d.x*=", "draw a orange ", "a yellow ", "\"/> <!-- antenna -->\n<polygon points=\"-", "make wireframe ", "make a pink ", "create a white ", "d: fish, smooth\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 glowing ", "big -->\n<rect x=\"-", "d: plane, 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 / ", "generate a orange ", "); // hat\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * ", "outline table", "draw a cyber ", "); // taillight\n d.x*=", "d: plane, wire\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 / ", "d: pine, clay\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 / ", ", big\nconst g = new THREE.Group(), S = ", "\"/> <!-- cap -->\n<polygon points=\"-", "teal -->\n<ellipse cx=\"", "white -->\n<g fill=\"none\" stroke-width=\"", "draw a faceted ", "small -->\n<g fill=\"none\" stroke-width=\"", "draw a outline ", "make a green ", "d: castle, smooth\nprecision highp float;\nuniform vec", "d: boat, smooth\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 / ", "purple -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", ", small -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", "sculpt a blueprint ", "create a lime ", "generate a navy ", "d: flower, pixel\nprecision highp float;\nuniform vec", "piglet please", "synthwave art of a ", "create a brown ", "orange\nconst g = new THREE.Group(), S = ", "plasticine snowman", "d: truck, lowpoly -->\n<ellipse cx=\"", "i want a blue ", "d: pine, pixel\nprecision highp float;\nuniform vec", "i want a pink ", " chair please", "huge -->\n<g fill=\"none\" stroke-width=\"", "d: tree, lowpoly -->\n<ellipse cx=\"", "sculpt a purple ", "glowing fountain", "i want a outline ", "i want a red ", "build a blue ", "generate a purple ", "small -->\n<rect x=\"-", "); // back leg\ng.scale.setScalar(", ", tiny\nconst g = new THREE.Group(), S = ", "sculpt a blue ", "d: bench, wire -->\n<g fill=\"none\" stroke-width=\"", "make a blue ", "d: chair, smooth -->\n<ellipse cx=\"", "d: cat, pixel\nprecision highp float;\nuniform vec", "d: chair, neon\nprecision highp float;\nuniform vec", "draw a blue ", "make blueprint art of a ", "d: fish, wire\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 / ", "a blue ", "clay table", "\"/> <!-- engine -->\n<polygon points=\"-", "gold -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", "i want a voxel ", "a wire ", "plasticine table", "d: pig, smooth\nprecision highp float;\nuniform vec", "sculpt a polygon ", "oak please", "\"/> <!-- leg -->\n<polygon points=\"-", "create a orange ", "claymation snowman", "d: cat, neon -->\n<defs><filter id=\"glow\" x=\"-", "a gold ", "teal -->\n<rect x=\"-", "a claymation ", "a orange ", "create a wireframe ", "a outline ", "orange -->\n<rect x=\"-", "glowing table", "d: lamp, 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 / ", "build a white ", "\"/> <!-- paw -->\n<polygon points=\"-", "d: flower, pixel -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", "make wireframe art of a ", "build a plasticine ", "orange -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-", "teal -->\n<g fill=\"none\" stroke-width=\"", "make a brown ", "pixel table", "d: house, lowpoly -->\n<ellipse cx=\"", "); // cabin\npart('box', ", "); // layer\ng.scale.setScalar(", "sculpt a gray ", "make a white ", "claymation art of a ", "pink -->\n<rect x=\"-"], "merges": [[",", " "], [")", ";"], ["=", "\""], ["\"", " "], [")", ","], ["(", "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", ","], ["\"/>", " <"], ["\"/> <", "!-- "], ["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<rect x", "=\"-"], ["Math.", "PI"], ["Math.PI", " / "], [" m.", "scale"], [" m.scale", ".set("], [")\n : ", "k === '"], [");", "\n "], [";\n ", "vec"], ["if(", "m"], ["if(m", "<"], [")", "return vec"], [" = ", "new THREE."], ["\npart('", "box', "], ["\npart('", "ball', "], [")", "+"], ["break", ";"], ["){", "\n vec"], ["=normalize", "("], [" ", "i"], ["){", "float "], ["h", "="], ["clamp", "("], [")*", "("], [" -->\n<ellipse cx", "=\""], ["+", " "], [") {", "\n "], [".x", "*"], [";\n", "uniform"], [";\nuniform", " "], ["){", "vec"], ["abs", "(p"], ["=", "length"], ["=length", "(p"], [" ", "d="], [" d=", "vec"], [".", "xz"], [".xz", ")-"], [")", ");}\nfloat "], [" r){", "return "], [" r){return ", "cyl"], [" r){return cyl", "(p."], [",r", "."], [" q=", "p"], [" q=p", "/r"], [" q=p/r", ";return "], [" q=p/r;return ", "max("], ["-", "q.y"], ["-q.y", ")*"], [",", "abs("], [",abs(", "q.y"], [",abs(q.y", ")-"], [")*min(r.x,", "min(r"], [")*min(r.x,min(r", ".y"], [")*min(r.x,min(r.y", ",r"], [")*min(r.x,min(r.y,r", ".z)"], [")*min(r.x,min(r.y,r.z)", ")*"], ["abs(", "q"], ["float ", "m"], ["){\n ", "vec"], [")", ".x,"], [").x,", "map(p+e."], ["s", "="], ["for", "("], ["for(", "int"], ["for(int", " i"], ["for(int i", "="], [";i", "<"], [";i", "++"], ["s", ","], ["|", "|"], [")", "break;"], ["(", "a"], ["=normalize", "(vec"], ["cross", "("], [" p", "="], [" p=", "ro+rd*"], ["*", "tg"], [",", "L"], [" a", " "], ["else", " "], ["// ", "wvy-"], ["/", "svg"], ["\"", ">\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<rect x", "=\""], ["){float ", "h="], ["*", "h"], ["g", "."], [")", ", "], ["\n", "const "], ["(", ");\n"], ["(", "{"], ["({", " "], [" ", "}"], ["\n d=U(d,", "cyl(p-vec"], [",", "n"], ["#", "version"], ["#version", " "], [" ", "es"], [" es", "\n"], [" es\n", "// wvy-"], ["\n", "precision"], ["\nprecision", " "], ["\nprecision ", "highp"], ["\nprecision highp", " "], ["\nprecision highp ", "float"], ["\nprecision highp float", ";\nuniform "], ["\nprecision highp float;\nuniform ", "vec"], [" ", "R"], [" R", ";\nuniform "], [" R;\nuniform ", "float "], [" R;\nuniform float ", "T"], [" R;\nuniform float T", ";\n"], [" R;\nuniform float T;\n", "out"], [" R;\nuniform float T;\nout", " "], [" R;\nuniform float T;\nout ", "vec"], [" ", "O"], [" O", ";\n"], [" O;\n", "float "], [" O;\nfloat ", "box"], [" O;\nfloat box", "(vec"], [" b", "){vec"], [" q=", "abs(p"], [" q=abs(p", ")-"], [" q=abs(p)-", "b"], [" q=abs(p)-b", ";return "], [" q=abs(p)-b;return ", "length("], [" q=abs(p)-b;return length(", "max(q"], [" q=abs(p)-b;return length(max(q", ","], [")", ")+"], ["))+", "min("], ["))+min(", "max(q.x,"], ["))+min(max(q.x,", "max("], ["))+min(max(q.x,max(", "q.y"], ["))+min(max(q.x,max(q.y", ","], ["))+min(max(q.x,max(q.y,", "q"], ["))+min(max(q.x,max(q.y,q", ".z)),"], [");}\nfloat ", "ball"], [");}\nfloat ball", "(vec"], [" r){", "float "], [" r){float ", "k"], ["=length(p", "/r"], ["=length(p/r", "),"], ["=length(p/r),", "k"], ["=length(p", "/"], ["=length(p/", "("], ["=length(p/(", "r"], ["=length(p/(r", "*"], ["=length(p/(r*", "r"], ["=length(p/(r*r", ")"], ["=length(p/(r*r)", ");return "], ["=length(p/(r*r));return ", "k"], ["*(", "k"], [")/", "max("], [")/max(", "k"], ["e", "-"], [");}\nfloat ", "cyl"], [");}\nfloat cyl", "(vec"], ["((", "length"], ["((length", "(p.xz"], ["((length(p.xz", "/r"], ["((length(p.xz/r", ".xz)-"], [")*min(r.x,", "r"], [")*min(r.x,r", ".z"], [")*min(r.x,r.z", "),"], [")*min(r.x,r.z),", "abs(p"], [")*min(r.x,r.z),abs(p", ".y"], [")*min(r.x,r.z),abs(p.y", ")-"], [")*min(r.x,r.z),abs(p.y)-", "r"], [")*min(r.x,r.z),abs(p.y)-r", ".y"], [")*min(r.x,r.z),abs(p.y)-r.y", ");return "], [")*min(r.x,r.z),abs(p.y)-r.y);return ", "min("], [")*min(r.x,r.z),abs(p.y)-r.y);return min(", "max("], [")*min(r.x,r.z),abs(p.y)-r.y);return min(max(", "d"], [")*min(r.x,r.z),abs(p.y)-r.y);return min(max(d", ".x,"], [")*min(r.x,r.z),abs(p.y)-r.y);return min(max(d.x,", "d"], [")*min(r.x,r.z),abs(p.y)-r.y);return min(max(d.x,d", ".y),"], [")+", "length("], [")+length(", "max("], [")+length(max(", "d,"], ["));}\nfloat ", "cylx"], ["));}\nfloat cylx", "(vec"], [" r){return cyl(p.", "yxz"], [" r){return cyl(p.yxz", ",r."], [" r){return cyl(p.yxz,r.", "yxz"], [" r){return cyl(p.yxz,r.yxz", ");}\nfloat "], [" r){return cyl(p.yxz,r.yxz);}\nfloat ", "cylz"], [" r){return cyl(p.yxz,r.yxz);}\nfloat cylz", "(vec"], [" r){return cyl(p.", "xzy"], [" r){return cyl(p.xzy", ",r."], [" r){return cyl(p.xzy,r.", "xzy"], [" r){return cyl(p.xzy,r.xzy", ");}\nfloat "], [" r){return cyl(p.xzy,r.xzy);}\nfloat ", "cone"], [" r){return cyl(p.xzy,r.xzy);}\nfloat cone", "(vec"], [" q=p/r;return max(", "length("], [" q=p/r;return max(length(", "q"], [" q=p/r;return max(length(q", ".xz)-"], [" q=p/r;return max(length(q.xz)-", "("], [";}\n", "float "], [";}\nfloat ", "pyr"], [";}\nfloat pyr", "(vec"], [" q=p/r;return max(", "max("], [" q=p/r;return max(max(", "abs(q"], [" q=p/r;return max(max(abs(q", ".x"], [" q=p/r;return max(max(abs(q.x", "),"], [" q=p/r;return max(max(abs(q.x),", "abs(q"], [" q=p/r;return max(max(abs(q.x),abs(q", ".z)"], [" q=p/r;return max(max(abs(q.x),abs(q.z)", ")-"], [" q=p/r;return max(max(abs(q.x),abs(q.z))-", "("], [" ", "U"], [" U", "(vec"], [" a", ","], [" a,", "float "], [" a,float ", "d,"], [" a,float d,", "float m"], ["a", ".x"], [":", "a"], [" ", "map"], [" map", "(vec"], [" p", "){\n vec"], ["return d", ";\n}\n"], ["return d;\n}\n", "vec"], [" ", "C("], [" C(", "float m"], [" C(float m", "){\n "], [");\n}\n", "vec"], [" ", "nor"], [" nor", "(vec"], [" p", "){vec"], [" ", "e"], [" e", "=vec"], [");return ", "normalize"], [");return normalize", "(vec"], ["(", "map(p+e."], ["(map(p+e.", "xyy"], ["(map(p+e.xyy", ").x-map(p-e."], ["(map(p+e.xyy).x-map(p-e.", "xyy"], ["(map(p+e.xyy).x-map(p-e.xyy", ").x,map(p+e."], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.", "yxy"], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy", ").x-map(p-e."], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.", "yxy"], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy", ").x,map(p+e."], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.", "yyx"], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx", ").x-map(p-e."], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.", "yyx"], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx", ").x"], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx).x", "));}\nfloat "], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx).x));}\nfloat ", "sha"], ["(map(p+e.xyy).x-map(p-e.xyy).x,map(p+e.yxy).x-map(p-e.yxy).x,map(p+e.yyx).x-map(p-e.yyx).x));}\nfloat sha", "(vec"], [" l", "){float "], [" l){float ", "s="], [",", "t="], [";", "for(int i="], [";i++", "){float h="], [";i++){float h=", "map(p+"], [";i++){float h=map(p+", "l"], [";i++){float h=map(p+l", "*"], [";i++){float h=map(p+l*", "t"], [";i++){float h=map(p+l*t", ").x"], [";i++){float h=map(p+l*t).x", ";"], [";i++){float h=map(p+l*t).x;", "s="], [";i++){float h=map(p+l*t).x;s=", "min("], [";i++){float h=map(p+l*t).x;s=min(", "s,"], ["*h", "/"], ["*h/", "t);"], ["*h/t);", "t+="], ["*h/t);t+=", "clamp("], ["*h/t);t+=clamp(", "h"], ["*h/t);t+=clamp(h", ","], [");", "if("], [");if(", "s"], [");if(s", "<"], [")break;", "}"], [")break;}", "return "], [")break;}return ", "clamp("], [")break;}return clamp(", "s,"], [");}\n", "void"], [");}\nvoid", " "], [");}\nvoid ", "main"], [");}\nvoid main", "("], [");}\nvoid main(", "){\n vec"], [" ", "uv"], [" uv", "=("], [" uv=(", "gl_FragCoord"], [" uv=(gl_FragCoord", "."], [" uv=(gl_FragCoord.", "xy*"], ["-", "R"], ["-R", ")/"], ["-R)/", "R"], ["-R)/R", ".y"], ["-R)/R.y", ";\n "], ["-R)/R.y;\n ", "float "], ["-R)/R.y;\n float ", "a"], ["-R)/R.y;\n float a", "="], ["+", "T"], ["+T", "*"], [" ", "ro"], [" ro", "=vec"], ["*", "sin"], ["*sin", "(a"], ["*sin(a", "),"], ["*", "cos"], ["*cos", "(a"], ["*cos(a", ")),"], ["*cos(a)),", "w"], ["*cos(a)),w", "=normalize(vec"], [")-", "ro"], [")-ro", "),"], [")-ro),", "u"], [")-ro),u", "=normalize("], [")-ro),u=normalize(", "cross("], [")-ro),u=normalize(cross(", "w"], [")-ro),u=normalize(cross(w", ",vec"], [")", ")),"], ["))),", "v"], ["))),v", "="], ["))),v=", "cross("], ["))),v=cross(", "u"], ["))),v=cross(u", ","], ["))),v=cross(u,", "w"], ["))),v=cross(u,w", ");\n "], ["))),v=cross(u,w);\n ", "vec"], [" ", "rd"], [" rd", "=normalize("], [" rd=normalize(", "uv"], [" rd=normalize(uv", ".x*"], [" rd=normalize(uv.x*", "u"], [" rd=normalize(uv.x*u", "+"], [" rd=normalize(uv.x*u+", "uv"], [" rd=normalize(uv.x*u+uv", ".y"], [" rd=normalize(uv.x*u+uv.y", "*"], [" rd=normalize(uv.x*u+uv.y*", "v"], [" rd=normalize(uv.x*u+uv.y*v", "+"], ["*", "w"], ["*w", "),L"], ["*w),L", "=normalize(vec"], ["));\n ", "float "], ["));\n float ", "tg"], ["));\n float tg", "="], ["));\n float tg=", "-ro"], ["));\n float tg=-ro", ".y"], ["));\n float tg=-ro.y", "/rd"], ["));\n float tg=-ro.y/rd", ".y"], ["));\n float tg=-ro.y/rd.y", ";\n vec"], [" ", "col"], [" col", "=vec"], [");\n ", "float "], [";i++", "){"], ["h=", "map"], ["if(", "h"], ["if(h", ".x<"], ["}\n ", "if("], ["}", "else if("], ["}else if(", "tg"], ["}else if(tg", ">"], [" 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"], ["<svg", " "], ["<svg ", "xmlns"], ["<svg xmlns", "=\""], ["<svg xmlns=\"", "http"], ["<svg xmlns=\"http", ":"], ["<svg xmlns=\"http:", "/"], ["<svg xmlns=\"http:/", "/"], ["<svg xmlns=\"http://", "www"], ["<svg xmlns=\"http://www", "."], ["<svg xmlns=\"http://www.", "w"], ["org", "/"], ["/svg", "\" "], ["/svg\" ", "viewBox"], ["/svg\" viewBox", "=\"-"], ["\">\n<", "!-- "], ["\">\n<!-- ", "wvy-"], [" -->\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<ellipse cx", "=\"-"], [" a,float d,float m", "){"], [" a,float d,float m){", "return d"], [" a,float d,float m){return d", "<"], [" a,float d,float m){return d<", "a.x"], [" a,float d,float m){return d<a.x", "?"], [" a,float d,float m){return d<a.x?", "vec"], ["(d,", "m"], ["(d,m", ")"], ["(d,m)", ":a"], ["(d,m):a", ";}\nvec"], [");\n float ", "t="], [";", "vec"], [" ", "h"], [" h", "=vec"], [");\n ", "for(int i="], [";i++){", "h=map"], [";i++){h=map", "("], [";i++){h=map(", "ro+rd*"], [";i++){h=map(ro+rd*", "t);"], [";i++){h=map(ro+rd*t);", "if(h.x<"], [")break;", "t+="], [")break;t+=", "h"], [")break;t+=h", ".x*"], [";", "}\n if("], [";}\n if(", "t"], [";}\n if(t", "<"], [" p=ro+rd*", "t"], [" p=ro+rd*t", ",n"], [" p=ro+rd*t,n", "="], [" p=ro+rd*t,n=", "nor"], [" p=ro+rd*t,n=nor", "(p"], [");\n ", "float "], ["C(", "h"], [" -->\n<polygon points", "=\"-"], ["\"/", ">\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</g>\n<", "/svg>\n"], ["\npart('box', ", "-"], ["\"/> <!-- ", "leg"], ["rect x", "=\"-"], ["max(dot", "(n"], [");\n col=", "C(h"], [");\n col=C(h", ".y"], [");\n col=C(h.y", ")*("], ["abs(", "fract"], ["(p+", "n"], ["(p+n", "*"], [" p=ro+rd*tg;", "\n "], [" p=ro+rd*tg;\n ", "col="], [" p=ro+rd*tg;\n col=", "mix(vec"], ["*sha", "(p"], ["*sha(p", ",L"], ["*sha(p,L", ")),"], ["*sha(p,L)),", "col,"], ["-", "exp(-"], ["tt", "="], ["n", "=vec"], [".y", ";"], ["}", "\n "], ["tm", ".z"], [");\n ", "}else if(tg>"], ["') return ", "u"], ["') return u", " * "], ["') return u * ", "u"], ["') return u * u", " + "], ["w", " * "], ["w * ", "w"], ["w * w", " <= "], ["for", " ("], [" }));\n ", "place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('"], ["roughness", ": "], [")\n : k === 'ball' ? new THREE.", "SphereGeometry"], [")\n : k === 'ball' ? new THREE.SphereGeometry", "("], ["(", "new THREE."], ["\n", "return g;\n"], [");\n const m = new THREE.", "Mesh"], [");\n const m = new THREE.Mesh", "(geo, "], [");\n const m = new THREE.Mesh(geo, ", "new THREE."], ["\"/> <!-- ", "eye"], ["); // ", "window"], ["); // ", "body"], ["\npart('ball', ", "-"], [", ", "smooth"], ["\" cy", "=\""], ["\"/> <!-- leg", " -->\n<rect x=\"-"], ["); // ", "petal"], [" in", " "], [" p=ro+rd*t,n=nor(p", ");\n float "], ["max(dot(n", ",L"], ["max(dot(n,L", "),"], [" q=", "abs(fract"], [",", "max(q.x,"], [",max(q.x,", "q.y"], [",max(q.x,q.y", ")"], ["*", "dif"], ["-ro", ")/"], ["-ro)/", "rd"], [",", "i"], ["=", "max("], [".y", ","], ["tm", ".y"], [".x", ";"], ["+=", "st"], ["+=", "dt"], [");", "}\n "], [", ", "lowpoly"], [", ", "wire"], ["v", " * "], ["v * ", "v"], [";\n ", "if (k === '"], ["for (", "let"], [" = ", "Math.round(("], [" <= ", "Math.round(("], ["'", ","], ["S", " * "], ["o", "."], [" ", "style"], ["), ", "new THREE."], ["({ color: col", ", "], ["({ color: col, ", "roughness: "], [", ", "pixel"], ["\"/>\n<", "g "], [", ", "neon"], [", ", "clay"], ["\"/> <!-- ", "wheel"], [");\n const m = new THREE.Mesh(geo, new THREE.", "MeshStandardMaterial"], ["\">\n<", "rect x=\"-"], ["); // ", "arm"], [" in", "=\""], ["><", "/"], ["\n d=U(d,", "pyr"], ["\n d=U(d,pyr", "(p-vec"], ["); // wheel", "\n d=U(d,cylz(p-vec"], ["\"/> <!-- ", "hubcap"], ["); // eye", "\n d=U(d,ball(p-vec"], ["\npart('", "pyr"], ["\npart('pyr", "', "], ["); // ", "head"], ["); // ", "spot"], ["); // ", "headlight"], ["); // leg", "\n d=U(d,box(p-vec"], ["ellipse cx", "=\""], ["); // wheel", "\npart('cylz', "], ["); // ", "ear"], ["pow", "("], ["(", "rd"], ["dif", "="], ["dif=", "max(dot(n,L),"], [")*", "sha"], [")*sha", "(p+n*"], [",L", ");\n col=C(h.y)*("], [" p=ro+rd*tg;", "\n vec"], [" q=abs(fract", "(p.xz"], [" q=abs(fract(p.xz", "*"], ["smoothstep", "("], [",max(q.x,q.y)", ")*"], [",max(q.x,q.y))*", "exp(-"], ["f", "="], [" -->\n<polygon points", "=\""], [" ", "of"], ["=(", "b"], ["=", "min("], ["max(", "lo"], ["th", "="], ["m", "="], ["((", "c"], ["((c", "+"], [")*", "S"], ["tm", ".x<"], ["tm.z", "){"], ["tm.z){", "tt="], ["tm.z){tt=", "tm"], ["c", ".y"], [",-", "st"], [".z", ";"], ["\"/>\n<g ", "stroke"], ["\"/>\n<g stroke", "-"], ["\"/>\n<g stroke-", "linejoin"], ["\"/>\n<g stroke-linejoin", "=\""], [")", ");\n float "], ["); // ", "nose"], [")", ")"], ["(", "col"], ["); // hubcap", "\n d=U(d,cylz(p-vec"], [");\n", "return g;\n"], ["*sha", "(p+n*"], ["(", "), "], ["inside", "("], ["inside(", "k, "], ["') return u * u + ", "v * v"], [" + ", "w * w <= "], ["') return u * u + ", "w * w <= "], [" - ", "v"], [" - v", ") / "], ["Math.", "abs("], [" a", ") / S); "], [" a) / S); ", "i"], [") / S); ", "j"], ["++", ")"], ["c", ") / S); "], ["c) / S); ", "l"], ["i", " * S"], ["j", " * S"], ["l", " * S"], [" + ", "',"], [" + ',", "' "], [" + ',' ", "+ "], [", ", "S * "], ["const ", "["], [");\n ", "o."], [");\n ", "vox"], [");\n vox", "."], ["*dif", ");\n }else if(tg>"], ["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=\""], ["\"/> <!-- ", "window"], [" x", "=\"-"], ["\"/><", "feComposite"], ["=\"", "t"], ["operator", "=\""], ["); // window", "\n d=U(d,box(p-vec"], [" -->\n<", "defs"], [" -->\n<defs", "><"], [" -->\n<defs><", "filter"], [" -->\n<defs><filter", " "], [" -->\n<defs><filter ", "id"], [" -->\n<defs><filter id", "=\""], ["\" ", "x"], ["\" x", "=\"-"], ["\"", "><"], [" in=\"", "SourceGraphic"], ["\"/><", "/"], ["filter", "></"], ["filter></", "defs"], ["filter></defs", ">\n<"], ["filter", "=\""], ["filter=\"", "url"], ["filter=\"url", "("], ["filter=\"url(", "#"], ["b", "\"/><"], ["\"/> <!-- ", "body"], ["); // ", "fin"], [", lowpoly", ", "], [" ", "please"], ["\npart('", "cone"], ["\npart('cone", "', "], ["make", " a "], ["); // hubcap", "\npart('cylz', "], [", clay", ", "], ["); // ", "button"], ["); // leg", "\npart('box', -"], [", pixel", ", "], ["draw", " a "], ["\n d=U(d,", "cone"], ["\n d=U(d,cone", "(p-vec"], [", neon", ", "], ["create", " a "], [" }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "box', "], [", wire", ", "], ["sculpt", " a "], ["i", " "], ["i ", "want"], ["i want", " a "], [");\n d=U(d,", "cyl(p-vec"], ["); // ", "tail"], ["\"/> <!-- ", "petal"], ["); // ", "top"], ["a", " "], [" ", "art"], ["generate", " a "], ["build", " a "], ["); // ", "stem"], ["); // ", "wing"], ["); // petal", "\n d=U(d,ball(p-vec"], ["); // ", "layer"], ["\npart('cyl', ", "-"], ["\"/> <!-- ", "headlight"], ["\"/> <!-- ", "arm"], ["\"/> <!-- ", "spot"], [");\n d=U(d,", "ball(p-vec"], ["); // ", "back"], ["\"/> <!-- ", "head"], ["); // eye", "\npart('ball', "], ["); // ", "canopy"], [" ", "leg"], [" ", "socket"], ["front", " "], ["front ", "foot"], ["g.", "scale"], ["g.scale", "."], ["g.scale.", "setScalar"], ["g.scale.setScalar", "("], [" }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "cyl', "], [");\n ", "p"], [");\n p", "/"], [");\n p/", "="], ["\n ", "d"], ["\n d", ".x*"], ["\n d.x*", "="], [";\n ", "return d;\n}\nvec"], ["\"/>\n<", "g>\n<"], ["); // eye", "\npart('ball', -"], ["g ", "transform"], ["g transform", "=\""], ["g transform=\"", "scale"], ["g transform=\"scale", "("], [" -->\n</g>\n<", "/g>\n<"], [" -->\n</g>\n</g>\n<", "/svg>\n"], ["); // leg", "\n d=U(d,cyl(p-vec"], ["\"/> <!-- hubcap", " -->\n<ellipse cx=\"-"], ["\"/> <!-- wheel", " -->\n<ellipse cx=\"-"], ["\"/> <!-- eye", " -->\n<ellipse cx=\""], ["); // wheel\npart('cylz', ", "-"], ["); // hubcap\npart('cylz', ", "-"], ["make", " "], ["); // ", "hat"], [" p=ro+rd*t,n=nor(p);\n float ", "dif=max(dot(n,L),"], ["*dif", ")+"], ["*dif)+", "vec"], [")*", "pow("], [")*pow(", "max(dot"], [")*pow(max(dot", "("], [")*pow(max(dot(", "reflect"], [")*pow(max(dot(reflect", "(rd"], [")*pow(max(dot(reflect(rd", ",n"], [")*pow(max(dot(reflect(rd,n", "),L"], [")*pow(max(dot(reflect(rd,n),L", "),"], [")*", "dif"], [")*dif", ";\n "], [")*dif;\n ", "}else if(tg>"], ["\"/> <!-- ", "ear"], [" p=ro+rd*t,n=nor(p);\n float ", "f="], [" p=ro+rd*t,n=nor(p);\n float f=", "pow("], ["-", "max(dot(n"], ["-max(dot(n", ",-"], ["-max(dot(n,-", "rd"], ["-max(dot(n,-rd", "),"], ["*", "f"], ["*f", ");\n }else if(tg>"], [");\n ", "col"], [");\n col", "+"], [");\n col+", "=vec"], [")*", "smoothstep("], ["*tg*tg", ");\n "], ["*tg*tg);\n ", "}\n O=vec"], ["); // ", "tower"], ["); // ", "spire"], ["); // ", "battlement"], ["\npart('pyr', ", "-"], ["); // ", "paw"], [" of", " a "], [");\n const m = new THREE.Mesh(geo, new THREE.", "MeshPhysicalMaterial"], [");\n const m = new THREE.Mesh(geo, new THREE.MeshPhysicalMaterial", "({ color: col, roughness: "], [", ", "clearcoat"], [", clearcoat", ": "], ["\"/>\n<g stroke-linejoin=\"", "bevel"], ["); // ", "cap"], ["\"/> <!-- eye", " -->\n<ellipse cx=\"-"], ["\">\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<tx", "){\n vec"], [" ", "c"], [" c", "="], [" c=", "floor"], [" c=floor", "(("], [" c=floor((", "ro+rd*"], [" c=floor((ro+rd*", "("], [" c=floor((ro+rd*(", "te"], [" c=floor((ro+rd*(te", "+"], [")", ")/"], ["))/", "S"], ["))/S", "),"], ["))/S),", "st"], ["))/S),st", "="], ["))/S),st=", "sign"], ["))/S),st=sign", "(rd"], ["))/S),st=sign(rd", "),"], ["))/S),st=sign(rd),", "dt"], ["))/S),st=sign(rd),dt", "="], ["))/S),st=sign(rd),dt=", "abs("], ["))/S),st=sign(rd),dt=abs(", "S"], ["))/S),st=sign(rd),dt=abs(S", "/rd"], ["))/S),st=sign(rd),dt=abs(S/rd", "),"], ["))/S),st=sign(rd),dt=abs(S/rd),", "tm"], ["))/S),st=sign(rd),dt=abs(S/rd),tm", "="], ["))/S),st=sign(rd),dt=abs(S/rd),tm=", "((c+"], ["))/S),st=sign(rd),dt=abs(S/rd),tm=((c+", "max("], ["))/S),st=sign(rd),dt=abs(S/rd),tm=((c+max(", "st"], ["))/S),st=sign(rd),dt=abs(S/rd),tm=((c+max(st", ","], [")", ")*S"], ["))*S", "-ro)/rd"], ["))*S-ro)/rd", ";"], ["))*S-ro)/rd;", "\n "], ["))*S-ro)/rd;\n ", "for(int i="], [";i++){", "\n "], [";i++){\n ", "vec"], [" ", "h=map"], [" h=map", "((c+"], [")*S", ");"], [")*S);", "\n "], [")*S);\n ", "if(h.x<"], ["){", "th="], ["){th=", "tt"], ["){th=tt", ";"], ["){th=tt;", "m="], ["){th=tt;m=", "h"], ["){th=tt;m=h", ".y;"], ["){th=tt;m=h.y;", "break;"], ["){th=tt;m=h.y;break;", "}\n "], ["){th=tt;m=h.y;break;}\n ", "if("], ["){th=tt;m=h.y;break;}\n if(", "tm.x<"], ["){th=tt;m=h.y;break;}\n if(tm.x<", "tm.y"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y", "&"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&", "&"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&", "tm.x<"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<", "tm.z){tt=tm"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm", ".x;"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;", "c"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c", ".x"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x", "+=st"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st", ".x;"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;", "tm"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm", ".x"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm.x", "+=dt"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm.x+=dt", ".x;"], ["){th=tt;m=h.y;break;}\n if(tm.x<tm.y&&tm.x<tm.z){tt=tm.x;c.x+=st.x;tm.x+=dt.x;", "n=vec"], ["(-", "st"], ["(-st", ".x,"], [");}\n ", "else if("], [");}\n else if(", "tm.y"], [");}\n else if(tm.y", "<"], [");}\n else if(tm.y<", "tm.z){tt=tm"], [");}\n else if(tm.y<tm.z){tt=tm", ".y;"], [");}\n else if(tm.y<tm.z){tt=tm.y;", "c.y"], [");}\n else if(tm.y<tm.z){tt=tm.y;c.y", "+=st"], [");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st", ".y;"], [");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;", "tm.y"], [");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;tm.y", "+=dt"], [");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;tm.y+=dt", ".y;"], [");}\n else if(tm.y<tm.z){tt=tm.y;c.y+=st.y;tm.y+=dt.y;", "n=vec"], [",-st", ".y,"], [");}\n ", "else"], [");}\n else", "{"], [");}\n else{", "tt="], [");}\n else{tt=", "tm.z"], [");}\n else{tt=tm.z", ";"], [");}\n else{tt=tm.z;", "c"], [");}\n else{tt=tm.z;c", ".z"], [");}\n else{tt=tm.z;c.z", "+=st"], [");}\n else{tt=tm.z;c.z+=st", ".z;"], [");}\n else{tt=tm.z;c.z+=st.z;", "tm.z"], [");}\n else{tt=tm.z;c.z+=st.z;tm.z", "+=dt"], [");}\n else{tt=tm.z;c.z+=st.z;tm.z+=dt", ".z;"], [");}\n else{tt=tm.z;c.z+=st.z;tm.z+=dt.z;", "n=vec"], [",-st", ".z"], [",-st.z", ");}\n "], [",-st.z);}\n ", "if("], [",-st.z);}\n if(", "c.y"], [",-st.z);}\n if(c.y", "<"], [",-st.z);}\n if(c.y<", "-"], ["||", "tt"], ["||tt", ">"], ["||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<g stroke-linejoin=\""], ["a\"/>\n<g stroke-linejoin=\"", "round"], [" art", " of a "], ["); // spot", "\n d=U(d,ball(p-vec"], [" -->\n<", "g "], [" -->\n<g ", "fill=\""], [" -->\n<g fill=\"", "none\" stroke-width=\""], [" a,float d,float m", "){float h="], [" a,float d,float m){float h=", "clamp("], ["*(", "d"], ["*(d", "-"], ["*(d-", "a.x"], ["*(d-a.x", ")/"], [");", "return vec"], ["(", "mix"], ["(mix", "(d,"], ["(mix(d,", "a"], ["(mix(d,a", ".x,"], ["(mix(d,a.x,", "h"], ["(mix(d,a.x,h", ")-"], ["*h", "*("], ["-", "h"], ["-h", "),"], ["-h),", "h"], ["-h),h", "<"], ["?", "m"], ["?m", ":a"], ["?m:a", ".y"], ["?m:a.y", ");}\n"], ["?m:a.y);}\n", "vec"], [" p=ro+rd*t,n=nor(p);\n float ", "dif"], [" p=ro+rd*t,n=nor(p);\n float dif", "=("], [" p=ro+rd*t,n=nor(p);\n float dif=(", "dot"], [" p=ro+rd*t,n=nor(p);\n float dif=(dot", "(n"], [" p=ro+rd*t,n=nor(p);\n float dif=(dot(n", ",L"], [" p=ro+rd*t,n=nor(p);\n float dif=(dot(n,L", ")*"], [",L", ")"], [",L)", ");\n col=C(h.y)*("], [")\n : k === 'ball' ? new THREE.", "IcosahedronGeometry"], [")\n : k === 'ball' ? new THREE.IcosahedronGeometry", "("], [", ", "flatShading"], [", flatShading", ": "], [", flatShading: ", "true"], [" }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "ball', "], [");\n const m = new THREE.Mesh(geo, new THREE.MeshStandardMaterial", "({ color: "], [", ", "emissive"], [", emissive", ": "], [", emissive: ", "col"], [", emissive: col", ", "], [", emissive: col, ", "emissiveIntensity"], [", emissive: col, emissiveIntensity", ": "], [" }));\n ", "m."], [" }));\n m.", "add"], [" }));\n m.add", "(new THREE."], [" }));\n m.add(new THREE.", "LineSegments(new THREE."], [" }));\n m.add(new THREE.LineSegments(new THREE.", "EdgesGeometry"], [" }));\n m.add(new THREE.LineSegments(new THREE.EdgesGeometry", "(geo, "], ["), new THREE.LineBasicMaterial({ color: col", " }"], ["), new THREE.LineBasicMaterial({ color: col }", ")"], ["), new THREE.LineBasicMaterial({ color: col })", "));\n "], ["), new THREE.LineBasicMaterial({ color: col })));\n ", "place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('"], ["\"/> <!-- ", "nose"], ["huge", " "], ["small", " "], ["); // ", "cabin"], ["); // body", "\npart('ball', "], ["); // ", "seat"], ["\">\n<", "g transform=\"scale("], [" -->\n<defs><filter id=\"", "px"], [" -->\n<defs><filter id=\"px", "\" "], [" -->\n<defs><filter id=\"px\" ", "filterUnits"], [" -->\n<defs><filter id=\"px\" filterUnits", "=\""], [" -->\n<defs><filter id=\"px\" filterUnits=\"", "userSpaceOnUse"], [" -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse", "\" x=\"-"], ["\"><", "feFlood"], ["\"><feFlood", " x=\"-"], ["\"/><feComposite", " x=\"-"], ["\"/><", "feTile"], ["\"/><feTile", " "], ["\"/><feTile ", "result"], ["\"/><feTile result", "=\"t"], ["\"/><feTile result=\"t", "\"/><feComposite"], ["\"/><feTile result=\"t\"/><feComposite", " in=\"SourceGraphic"], ["\"/><feTile result=\"t\"/><feComposite in=\"SourceGraphic", "\" "], ["\"/><feTile result=\"t\"/><feComposite in=\"SourceGraphic\" ", "in"], ["=\"t", "\" "], ["=\"t\" ", "operator=\""], ["=\"t\" operator=\"", "in"], ["=\"t\" operator=\"in", "\"/><"], ["=\"t\" operator=\"in\"/><", "feMorphology"], ["=\"t\" operator=\"in\"/><feMorphology", " "], ["=\"t\" operator=\"in\"/><feMorphology ", "operator=\""], ["=\"t\" operator=\"in\"/><feMorphology operator=\"", "dilate"], ["=\"t\" operator=\"in\"/><feMorphology operator=\"dilate", "\" "], ["=\"t\" operator=\"in\"/><feMorphology operator=\"dilate\" ", "radius"], ["=\"t\" operator=\"in\"/><feMorphology operator=\"dilate\" radius", "=\""], ["\"/></", "filter></defs>\n<"], ["\"/></filter></defs>\n<", "g "], ["\"/></filter></defs>\n<g ", "filter=\"url(#"], ["\"/></filter></defs>\n<g filter=\"url(#", "px"], ["\"/></filter></defs>\n<g filter=\"url(#px", ")"], ["\"/></filter></defs>\n<g filter=\"url(#px)", "\" "], ["\"/></filter></defs>\n<g filter=\"url(#px)\" ", "shape"], ["\"/></filter></defs>\n<g filter=\"url(#px)\" shape", "-"], ["\"/></filter></defs>\n<g filter=\"url(#px)\" shape-", "rendering"], ["\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering", "=\""], ["\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"", "crispEdges"], [" -->\n<defs><filter id=\"", "glow"], [" -->\n<defs><filter id=\"glow", "\" x=\"-"], ["%", "\" y=\"-"], ["%", "\" width=\""], ["%", "\" height=\""], ["%", "\"><"], ["%\"><", "feGaussianBlur"], ["%\"><feGaussianBlur", " "], ["%\"><feGaussianBlur ", "stdDeviation"], ["%\"><feGaussianBlur stdDeviation", "=\""], ["\" ", "result"], ["\" result", "=\""], ["\" result=\"", "b\"/><"], ["\" result=\"b\"/><", "feMerge"], ["\" result=\"b\"/><feMerge", "><"], ["\" result=\"b\"/><feMerge><", "feMergeNode"], ["\" result=\"b\"/><feMerge><feMergeNode", " in=\""], ["\" result=\"b\"/><feMerge><feMergeNode in=\"", "b\"/><"], ["\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><", "feMergeNode"], ["\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode", " in=\"SourceGraphic"], ["\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic", "\"/></"], ["\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></", "feMerge"], ["\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></feMerge", "></"], ["\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></feMerge></", "filter></defs>\n<"], ["\" result=\"b\"/><feMerge><feMergeNode in=\"b\"/><feMergeNode in=\"SourceGraphic\"/></feMerge></filter></defs>\n<", "rect x=\"-"], ["\"/>\n<g ", "filter=\"url(#"], ["\"/>\n<g filter=\"url(#", "glow"], ["\"/>\n<g filter=\"url(#glow", ")"], ["\"/>\n<g filter=\"url(#glow)", "\" fill=\""], ["\"/>\n<g filter=\"url(#glow)\" fill=\"", "none\" stroke-width=\""], ["); // ", "antenna"], ["\"/> <!-- ", "pupil"], ["); // ", "trunk"], ["\"/> <!-- ", "layer"], ["big", " "], ["); // headlight", "\n d=U(d,box(p-vec"], ["tiny", " "], ["\"/> <!-- ", "fin"], ["); // leg", "\n return d;\n}\nvec"], ["d: ", "cat"], ["d: ", "snowman"], [" ", "brim"], ["d: ", "pig"], ["d: ", "castle"], ["); // ", "taillight"], ["); // eye", " socket"], ["); // ", "front foot"], ["); // back", " leg"], ["d: ", "flower"], ["); // stem", "\n d=U(d,ball(p-vec"], ["d: ", "fish"], [" ", "fin"], [" ", "tree"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(vox", ");\nreturn g;\n"], ["d: ", "chair"], ["d: ", "mushroom"], ["d: ", "pine"], ["d: ", "table"], ["\"/> <!-- ", "button"], ["); // petal", "\npart('ball', -"], ["d: ", "boat"], ["d: ", "fountain"], ["); // nose", "\n d=U(d,ball(p-vec"], ["d: ", "bench"], ["); // nose", "\npart('ball', "], ["\"/> <!-- eye", " -->\n<rect x=\"-"], ["cylx", "(p-vec"], ["\"/> <!-- ", "tail"], ["d: ", "plane"], ["\"/> <!-- window", " -->\n<rect x=\""], ["); // leg", "\npart('box', "], ["\"/> <!-- ", "back"], ["\"/> <!-- window", " -->\n<rect x=\"-"], ["\"/> <!-- ", "canopy"], ["\"/> <!-- ", "stem"], ["); // stem", "\npart('ball', "], ["d: ", "lamp"], ["low", " "], ["low ", "poly"], ["cylx", "', "], ["d: ", "truck"], ["d: ", "robot"], ["chest", " "], ["chest ", "panel"], [" ", "tip"], ["d: ", "duck"], ["rect x", "=\""], ["d: ", "tree"], ["); // hubcap", "\n d=U(d,box(p-vec"], ["d: ", "cactus"], ["\"/> <!-- wheel", " -->\n<rect x=\""], ["\"/> <!-- ", "wing"], [")", "\">\n<rect x=\"-"], ["\"/> <!-- ", "top"], [" ", "bench"], [" ", "snowman"], ["\"/> <!-- leg", " -->\n</g>\n</svg>\n"], ["\"/> <!-- head", " -->\n<ellipse cx=\""], ["\"/> <!-- arm", " -->\n<rect x=\"-"], ["d: ", "house"], ["); // leg", "\npart('cyl', -"], ["\"/> <!-- petal", " -->\n<ellipse cx=\""], ["); // leg", "\nreturn g;\n"], ["-", "bit"], [" ", "table"], ["); // button", "\n d=U(d,ball(p-vec"], ["d: ", "rocket"], ["d: ", "frog"], [" ", "chair"], ["\"/> <!-- headlight", " -->\n<rect x=\"-"], ["d: ", "car"], ["\"/> <!-- stem", " -->\n<ellipse cx=\""], ["\"/> <!-- petal", " -->\n<ellipse cx=\"-"], ["); // ear", "\n d=U(d,pyr(p-vec"], ["d: ", "bus"], ["\"/> <!-- layer", " -->\n<polygon points=\"-"], ["\"/> <!-- ", "seat"], ["\"/> <!-- seat", " -->\n<rect x=\""], [" ", "fountain"], ["); // spot", "\npart('ball', -"], ["\"/> <!-- hubcap", " -->\n<ellipse cx=\""], ["\"/> <!-- wheel", " -->\n<ellipse cx=\""], ["\">\n<", "rect x=\""], ["\"/> <!-- ear", " -->\n<polygon points=\"-"], ["); // hubcap", "\npart('box', "], ["); // headlight", "\npart('box', "], ["); // tower", "\n d=U(d,cone(p-vec"], ["\"/> <!-- ", "paw"], ["); // eye", "\n d=U(d,box(p-vec"], ["); // ", "bottom"], ["); // ", "middle"], ["); // hat", " brim"], ["); // ", "snout"], ["\n d=U(d,", "cylx(p-vec"], ["); // top", " fin"], ["); // ", "stand"], ["\"/> <!-- ", "battlement"], ["\"/> <!-- ", "tower"], ["\"/> <!-- ", "spire"], ["\"/> <!-- spire", " -->\n<rect x=\"-"], [" ", "cactus"], ["pixel", " art"], ["\"/> <!-- ", "trunk"], ["); // ", "hull"], ["); // ", "bow"], ["); // ", "deck"], ["); // ", "mast"], ["); // ", "sail"], ["); // ", "cup"], ["); // ", "keep"], ["); // ", "gate"], ["\"/> <!-- hubcap", " -->\n</g>\n</svg>\n"], ["); // ", "leaf"], ["); // ", "center"], ["); // ", "base"], ["); // ", "pole"], ["); // ", "light"], ["\"/>\n<g>\n<", "rect x=\"-"], ["); // ", "fuselage"], ["); // ", "cockpit"], ["); // ", "tailplane"], ["); // ", "strut"], ["); // window", "\npart('box', -"], ["\"/> <!-- ", "hat"], [", smooth", " -->\n<ellipse cx=\""], ["); // ", "basin"], ["); // ", "water"], ["); // ", "column"], ["); // ", "bowl"], ["); // ", "spray"], ["\"/> <!-- head", " -->\n<rect x=\"-"], ["); // tower", "\npart('cone', "], [";", "\n d=U(d,box(p-vec"], ["); // arm", "\n d=U(d,cyl(p-vec"], ["); // arm", "\n d=U(d,box(p-vec"], ["\"/> <!-- ", "antenna"], ["); // petal", "\npart('ball', "], ["\">\n<", "polygon points"], ["); // ear", "\npart('pyr', -"], ["); // button", "\npart('ball', "], ["); // layer", "\npart('cone', "], ["); // seat", "\n d=U(d,box(p-vec"], [", wire", " -->\n<g fill=\"none\" stroke-width=\""], ["blueprint", " "], ["wireframe", " "], ["plasticine", " "], [", neon", "\nprecision highp float;\nuniform vec"], ["); // ", "beak"], ["faceted", " "], ["\"/> <!-- body", " -->\n<polygon points=\"-"], [", lowpoly", " -->\n<ellipse cx=\""], ["); // head", "\n d=U(d,box(p-vec"], ["); // canopy", "\n d=U(d,ball(p-vec"], [", ", "huge"], [", wire", "\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 / "], ["); // ", "pot"], ["); // ", "flower"], ["\"/>\n<g stroke-linejoin=\"bevel", "\">\n<rect x=\"-"], ["); // pupil", "\n d=U(d,ball(p-vec"], ["yellow", " "], [");\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('box', "], [", pixel", "\nprecision highp float;\nuniform vec"], [", wire", "\nprecision highp float;\nuniform vec"], ["); // head", "\npart('box', "], ["outline", " "], ["glowing", " "], ["); // ", "torso"], ["); // ", "chest panel"], ["); // antenna", " tip"], ["pink", " "], ["); // layer", "\n d=U(d,cone(p-vec"], ["); // ", "backrest"], ["\"/> <!-- ", "cap"], ["\"/> <!-- arm", " -->\n<rect x=\""], ["); // seat", "\npart('box', "], ["gold", " "], ["claymation", " "], [", smooth", "\nprecision highp float;\nuniform vec"], ["); // ", "walls"], ["); // ", "roof"], ["); // ", "door"], ["); // ", "chimney"], ["lowpoly", " "], [", clay", " -->\n<rect x=\"-"], [", pixel", "\nconst g = new THREE.Group(), S = "], [", 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 / "], [", smooth", "\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 / "], ["); // ", "cab"], ["); // ", "cargo"], ["); // ", "chassis"], ["\"/> <!-- tail", " -->\n<ellipse cx=\""], ["cyber", " "], ["\"/> <!-- back", " leg"], ["\"/> <!-- eye", " socket"], ["\"/> <!-- ", "front foot"], ["\npart('", "cylx', "], ["teal", " "], ["cream", " "], ["\"/> <!-- ", "cabin"], ["orange", " "], ["a\"/>\n<g stroke-linejoin=\"round", "\">\n<rect x=\"-"], [", ", "small"], ["); // ", "engine"], ["purple", " "], ["); // spot", "\npart('ball', "], [", clay", "\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 / "], ["); // body", "\n d=U(d,box(p-vec"], ["synthwave", " "], ["blue", " "], ["\"/> <!-- ", "taillight"], ["\"/> <!-- fin", " -->\n<rect x=\"-"], [", ", "big"], ["low poly", " "], ["\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges", "\">\n<rect x=\"-"], ["\"/> <!-- body", " -->\n<rect x=\"-"], [", lowpoly", "\nprecision highp float;\nuniform vec"], ["\"/> <!-- headlight", " -->\n<ellipse cx=\""], ["); // ", "stripe"], ["); // ", "windshield"], ["); // eye socket", "\n d=U(d,ball(p-vec"], ["); // front foot", "\n d=U(d,ball(p-vec"], ["white", " "], ["voxel", " "], ["); // ", "belly"], ["); // ", "mouth"], [", 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 / "], [", neon", " -->\n<defs><filter id=\"glow\" x=\"-"], ["red", " "], ["lime", " "], ["); // tail", "\n return d;\n}\nvec"], ["neon", " "], ["park", " bench"], [", clay", "\nprecision highp float;\nuniform vec"], ["); // leg", "\npart('cyl', "], ["navy", " "], ["); // fin", "\n d=U(d,box(p-vec"], [", flatShading: true", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('box', "], [", pixel", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-"], ["-bit", " "], ["clay", " "], [", ", "tiny"], ["wire", " "], ["blocky", " "], ["\"/> <!-- trunk", " -->\n<polygon points=\"-"], ["); // headlight", "\n return d;\n}\nvec"], ["pixel", " "], ["brown", " "], ["), new THREE.LineBasicMaterial({ color: col })));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "cyl', "], ["gray", " "], ["green", " "], [";\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('", "cyl', "], ["\"/> <!-- nose", " -->\n<ellipse cx=\""], ["\"/> <!-- spot", " -->\n<ellipse cx=\"-"], ["\"/> <!-- body", " -->\n<ellipse cx=\""], ["black", " "], ["pastel", " "], [";", "\n d=U(d,cyl(p-vec"], [" style", " please"], ["\"/> <!-- eye", " -->\n<polygon points=\"-"], ["\"/> <!-- spot", " -->\n<ellipse cx=\""], ["\"/> <!-- body", " -->\n<polygon points=\""], [", flatShading: true", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cyl', "], [";\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('", "box', "], ["); // tail", "\nreturn g;\n"], ["\"/> <!-- top", " -->\n<rect x=\""], ["\"/> <!-- button", " -->\n<ellipse cx=\""], ["\"/> <!-- window", " -->\n</g>\n</svg>\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"], ["\"/> <!-- ", "backrest"], ["\"/> <!-- backrest", " -->\n<rect x=\""], ["pine", " tree"], ["\"/>\n<g stroke-linejoin=\"bevel", "\">\n<polygon points"], ["\"/> <!-- back", " -->\n<rect x=\""], ["); // head", "\n d=U(d,pyr(p-vec"], ["); // ear", "\n d=U(d,ball(p-vec"], ["); // nose", "\n d=U(d,cyl(p-vec"], ["); // paw", "\n d=U(d,cyl(p-vec"], ["); // paw", "\n d=U(d,box(p-vec"], ["smooth", " "], ["); // hull", "\npart('pyr', "], ["); // bow", "\npart('box', "], ["); // deck", "\npart('box', -"], ["); // cabin", "\npart('cyl', "], ["); // mast", "\npart('box', "], ["); // body", "\npart('pyr', -"], ["); // tail", "\npart('pyr', -"], ["); // top fin", "\npart('ball', "], ["); // pupil", "\npart('ball', "], ["); // pupil", "\npart('cyl', "], ["); // keep", "\n d=U(d,box(p-vec"], ["); // gate", "\n d=U(d,cyl(p-vec"], ["); // spire", "\n d=U(d,cyl(p-vec"], ["); // spire", "\n d=U(d,box(p-vec"], ["); // battlement", "\n d=U(d,box(p-vec"], ["\"/> <!-- ear", " -->\n<rect x=\""], ["\"/> <!-- paw", " -->\n<rect x=\"-"], ["toy", " "], ["); // top", "\npart('box', "], ["); // leaf", "\n d=U(d,ball(p-vec"], ["); // center", "\n d=U(d,ball(p-vec"], ["); // base", "\npart('cyl', "], ["); // pole", "\npart('pyr', "], ["); // cap", "\npart('box', "], ["glossy", " "], ["\"/> <!-- nose", " -->\n</g>\n</svg>\n"], ["\"/> <!-- ", "keep"], ["\"/> <!-- keep", " -->\n<rect x=\""], ["\"/> <!-- battlement", " -->\n<rect x=\"-"], ["\"/> <!-- battlement", " -->\n<rect x=\""], ["\"/> <!-- tower", " -->\n<polygon points=\""], ["\"/> <!-- tower", " -->\n<polygon points=\"-"], ["\"/> <!-- ", "gate"], ["pixel art", " "], ["); // fuselage", "\npart('ball', "], ["); // cockpit", "\npart('box', "], ["); // wing", "\npart('box', -"], ["); // tailplane", "\npart('box', -"], ["); // fin", "\npart('cyl', "], ["); // strut", "\npart('cylz', "], [");\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('cyl', "], ["plastic", " "], ["); // basin", "\npart('cyl', "], ["); // water", "\npart('cyl', "], ["); // column", "\npart('cyl', "], ["); // bowl", "\npart('ball', "], ["); // body", "\n d=U(d,pyr(p-vec"], ["); // tail", "\n d=U(d,pyr(p-vec"], ["); // top fin", "\n d=U(d,ball(p-vec"], ["); // pupil", "\n d=U(d,cyl(p-vec"], [";\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('", "ball', "], ["\"/> <!-- headlight", " -->\n<rect x=\""], ["\"/> <!-- ", "cab"], ["\"/> <!-- cab", " -->\n<rect x=\""], ["\"/> <!-- ", "cargo"], ["\"/> <!-- cargo", " -->\n<rect x=\"-"], ["\"/> <!-- ", "chassis"], ["\"/> <!-- chassis", " -->\n<rect x=\""], ["\"/> <!-- tail", " -->\n<polygon points=\"-"], ["\"/> <!-- ", "leaf"], ["\"/> <!-- ", "center"], ["); // hat", "\n return d;\n}\nvec"], ["); // cap", "\n d=U(d,ball(p-vec"], ["); // cab", "\n d=U(d,box(p-vec"], ["); // cargo", "\n d=U(d,box(p-vec"], ["); // chassis", "\n d=U(d,cylz(p-vec"], ["); // back", "\n d=U(d,box(p-vec"], ["\"/> <!-- spot", " -->\n<rect x=\"-"], ["\"/> <!-- body", " -->\n<rect x=\""], ["\"/> <!-- ", "snout"], ["\"/> <!-- ", "basin"], ["\"/> <!-- basin", " -->\n<rect x=\"-"], ["\"/> <!-- ", "water"], ["\"/> <!-- water", " -->\n<rect x=\"-"], ["\"/> <!-- ", "column"], ["\"/> <!-- column", " -->\n<rect x=\"-"], ["\"/> <!-- ", "bowl"], ["\"/> <!-- ", "spray"], ["\"/> <!-- ", "bottom"], ["\"/> <!-- ", "middle"], ["\"/> <!-- hat", " brim"], ["\"/> <!-- hat brim", " -->\n<rect x=\"-"], ["); // cap", "\npart('ball', "], ["); // top", "\n d=U(d,box(p-vec"], ["); // beak", "\npart('ball', "], ["); // wing", "\npart('ball', -"], ["); // wing", "\npart('pyr', "], ["); // hull", "\n d=U(d,pyr(p-vec"], ["); // bow", "\n d=U(d,box(p-vec"], ["); // deck", "\n d=U(d,box(p-vec"], ["); // cabin", "\n d=U(d,cyl(p-vec"], ["); // mast", "\n d=U(d,box(p-vec"], ["); // battlement", "\n return d;\n}\nvec"], ["\"/> <!-- paw", " -->\n<ellipse cx=\""], ["); // head", "\npart('cylz', "], ["); // snout", "\npart('ball', "], ["); // eye", "\npart('pyr', "], ["); // ear", "\npart('cyl', "], ["); // keep", "\npart('box', "], ["); // gate", "\npart('cyl', "], ["); // spire", "\npart('cyl', -"], ["); // tower\npart('cone', ", "-"], ["); // spire", "\npart('box', "], ["); // battlement", "\npart('box', -"], ["); // pot", "\n d=U(d,cyl(p-vec"], ["); // top", "\n d=U(d,cylx(p-vec"], ["); // arm", "\n d=U(d,cylx(p-vec"], ["); // arm", "\n d=U(d,ball(p-vec"], ["); // torso", "\n d=U(d,box(p-vec"], ["); // chest panel", "\n d=U(d,box(p-vec"], ["); // eye", "\n d=U(d,cyl(p-vec"], ["); // antenna", "\n d=U(d,ball(p-vec"], ["); // antenna tip", "\n d=U(d,box(p-vec"], ["\"/> <!-- ", "torso"], ["\"/> <!-- torso", " -->\n<rect x=\"-"], ["\"/> <!-- antenna", " tip"], ["\"/> <!-- antenna tip", " -->\n<rect x=\""], ["\"/> <!-- ", "chest panel"], ["\"/> <!-- leg", " -->\n<polygon points=\""], ["); // leaf", "\npart('ball', "], ["); // center", "\npart('ball', "], ["\"/>\n<g>\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<g>\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', "], ["\"/> <!-- layer", " -->\n</g>\n</svg>\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', "], ["\"/> <!-- top", " fin"], ["\"/> <!-- top fin", " -->\n<rect x=\"-"], ["\"/> <!-- ", "stand"], ["); // trunk", "\n d=U(d,ball(p-vec"], ["); // basin", "\n d=U(d,cyl(p-vec"], ["); // water", "\n d=U(d,cyl(p-vec"], ["); // column", "\n d=U(d,cyl(p-vec"], ["); // bowl", "\n d=U(d,ball(p-vec"], ["soft", " "], ["); // stripe", "\n d=U(d,box(p-vec"], ["); // windshield", "\n d=U(d,cylz(p-vec"], ["\"/> <!-- leg", " -->\n<ellipse cx=\""], ["); // petal", "\n return d;\n}\nvec"], ["\"/> <!-- ", "cup"], ["\"/> <!-- petal", " -->\n<polygon points=\"-"], ["); // stand", "\n return d;\n}\nvec"], ["ellipse cx", "=\"-"], ["); // backrest", "\npart('box', "], ["); // trunk", "\n d=U(d,cone(p-vec"], ["); // backrest", "\n d=U(d,box(p-vec"], ["); // back", "\npart('box', "], [")", "\">\n<ellipse cx=\""], ["); // beak", "\n d=U(d,ball(p-vec"], ["); // wing", "\n d=U(d,ball(p-vec"], ["); // wing", "\n d=U(d,pyr(p-vec"], ["\"/> <!-- ear", " -->\n<ellipse cx=\""], ["\"/> <!-- cap", " -->\n<ellipse cx=\""], ["\"/> <!-- ", "beak"], [");\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('ball', "], [", flatShading: true", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('ball', "], ["\"/> <!-- ", "fuselage"], ["\"/> <!-- ", "cockpit"], ["\"/> <!-- cockpit", " -->\n<rect x=\"-"], ["\"/> <!-- wing", " -->\n<rect x=\"-"], ["\"/> <!-- ", "tailplane"], ["\"/> <!-- tailplane", " -->\n<rect x=\"-"], ["\"/> <!-- fin", " -->\n<rect x=\""], ["\"/> <!-- ", "strut"], ["\"/> <!-- ", "hull"], ["\"/> <!-- hull", " -->\n<polygon points=\""], ["\"/> <!-- ", "bow"], ["\"/> <!-- bow", " -->\n<rect x=\"-"], ["\"/> <!-- ", "deck"], ["\"/> <!-- deck", " -->\n<rect x=\"-"], ["\"/> <!-- cabin", " -->\n<rect x=\""], ["\"/> <!-- ", "mast"], ["\"/> <!-- mast", " -->\n<rect x=\""], ["\"/> <!-- ", "sail"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(vox", ");\n"], [", l * S);\n o.updateMatrix();\n vox.setMatrixAt(n, o.matrix);\n vox.setColorAt(n++, tint.setHex(col));\n}\ng.add(vox);\n", "g.scale.setScalar("], ["\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges", "\">\n<ellipse cx=\""], ["\"/> <!-- ", "belly"], ["\"/> <!-- ", "mouth"], ["); // pot", "\npart('cyl', "], ["); // top", "\npart('cylx', "], ["); // arm", "\npart('cyl', "], ["); // arm", "\npart('cylx', "], ["); // arm\npart('cylx', ", "-"], ["); // arm", "\npart('cyl', -"], ["); // arm", "\npart('ball', "], ["\"/> <!-- pupil", " -->\n<ellipse cx=\""], ["\"/> <!-- gate", " -->\n</g>\n</svg>\n"], ["); // spot", "\n return d;\n}\nvec"], ["); // window", "\npart('cylz', "], ["); // headlight", "\npart('box', -"], ["); // taillight", "\npart('box', -"], ["\"/> <!-- leaf", " -->\n<ellipse cx=\""], ["); // leg", "\n d.x*="], ["\"/> <!-- antenna", " -->\n<ellipse cx=\""], ["); // flower", "\n return d;\n}\nvec"], ["\"/> <!-- canopy", " -->\n</g>\n</svg>\n"], ["\"/> <!-- bottom", " -->\n<ellipse cx=\""], ["\"/> <!-- middle", " -->\n<ellipse cx=\""], ["\"/> <!-- hat", " -->\n<ellipse cx=\""], ["); // light", "\n return d;\n}\nvec"], ["); // walls", "\npart('pyr', "], ["); // roof", "\npart('box', "], ["); // door", "\npart('box', "], ["); // cup", "\n return d;\n}\nvec"], ["\"/> <!-- taillight", " -->\n<rect x=\"-"], ["\"/> <!-- cabin", " -->\n<rect x=\"-"], ["\"/> <!-- ", "chimney"], ["\"/> <!-- chimney", " -->\n<rect x=\"-"], ["\"/> <!-- ", "walls"], ["\"/> <!-- walls", " -->\n<polygon points=\"-"], ["\"/> <!-- ", "roof"], ["\"/> <!-- roof", " -->\n<rect x=\"-"], ["\"/> <!-- ", "door"], ["\"/> <!-- door", " -->\n<rect x=\""], ["); // torso", "\npart('box', "], ["); // chest panel", "\npart('box', "], ["); // eye", "\npart('box', -"], ["); // eye", "\npart('cyl', "], ["); // antenna", "\npart('ball', "], ["); // antenna tip", "\npart('box', "], ["); // arm", "\npart('box', -"], ["); // arm", "\npart('box', "], ["\"/> <!-- leg", " -->\n<rect x=\""], ["\"/> <!-- nose", " -->\n<rect x=\""], ["\"/> <!-- fin", " -->\n<polygon points=\"-"], ["\"/> <!-- ", "engine"], ["\"/> <!-- spray", " -->\n</g>\n</svg>\n"], ["\"/> <!-- spot", " -->\n</g>\n</svg>\n"], ["\"/> <!-- snout", " -->\n</g>\n</svg>\n"], ["\"/> <!-- ", "pot"], ["\"/> <!-- pot", " -->\n<rect x=\"-"], ["\"/> <!-- ", "flower"], ["); // belly", "\n d=U(d,ball(p-vec"], ["); // pupil", "\n d=U(d,box(p-vec"], ["); // mouth", "\n d=U(d,ball(p-vec"], ["); // back leg", "\n d=U(d,ball(p-vec"], ["); // body", "\npart('box', "], ["); // spray", "\nreturn g;\n"], ["\"/> <!-- ", "stripe"], ["\"/> <!-- stripe", " -->\n<rect x=\"-"], ["\"/> <!-- ", "windshield"], ["\"/> <!-- windshield", " -->\n<rect x=\""], ["street", " "], ["street ", "lamp"], ["\">\n<", "ellipse cx=\"-"], ["); // spray", "\n return d;\n}\nvec"], ["a\"/>\n<g stroke-linejoin=\"round", "\">\n<ellipse cx=\""], ["\"/> <!-- center", " -->\n</g>\n</svg>\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"], ["\"/> <!-- ", "base"], ["\"/> <!-- base", " -->\n<rect x=\"-"], ["\"/> <!-- ", "pole"], ["\"/> <!-- pole", " -->\n<polygon points=\"-"], ["\"/> <!-- cap", " -->\n<rect x=\"-"], ["\"/> <!-- ", "light"], ["); // cup", "\nreturn g;\n"], ["); // trunk", "\npart('ball', "], ["); // sail", "\n return d;\n}\nvec"], ["); // chimney", "\n return d;\n}\nvec"], ["a\"/>\n<g stroke-linejoin=\"round", "\">\n<g transform=\"scale("], ["\"/> <!-- mouth", " -->\n</g>\n</svg>\n"], ["\"/> <!-- bowl", " -->\n<ellipse cx=\""], ["\"/> <!-- pupil", " -->\n</g>\n</svg>\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"], ["\"/> <!-- button", " -->\n</g>\n</svg>\n"], [");\n d=U(d,", "cylx(p-vec"], ["); // wheel", "\n return d;\n}\nvec"], ["); // stand", "\nreturn g;\n"], ["purple", "\nprecision highp float;\nuniform vec"], ["\"/> <!-- canopy", " -->\n<rect x=\"-"], ["\"/> <!-- fuselage", " -->\n<ellipse cx=\""], ["\"/> <!-- strut", " -->\n<ellipse cx=\""], ["\"/>\n<g stroke-linejoin=\"bevel\">\n<polygon points", "=\""], ["); // body", "\npart('box', -"], ["); // cabin", "\npart('box', -"], ["); // cabin", "\n d=U(d,box(p-vec"], ["); // window", "\n d=U(d,cylz(p-vec"], ["); // taillight", "\n d=U(d,box(p-vec"], ["\"/> <!-- wing", " -->\n<ellipse cx=\"-"], ["\"/> <!-- wing", " -->\n<ellipse cx=\""], ["\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges", "\">\n<g transform=\"scale("], ["\"/> <!-- trunk", " -->\n<ellipse cx=\""], ["\"/> <!-- stand", " -->\n<ellipse cx=\""], [", huge", "\nprecision highp float;\nuniform vec"], ["white", "\nprecision highp float;\nuniform vec"], ["); // cab", "\npart('box', "], ["); // cargo", "\npart('box', "], ["); // chassis", "\npart('cylz', "], ["\"/> <!-- taillight", " -->\n<ellipse cx=\""], ["\"/> <!-- pupil", " -->\n<rect x=\"-"], ["blue", "\nprecision highp float;\nuniform vec"], ["\"/>\n<g stroke-linejoin=\"bevel", "\">\n<g transform=\"scale("], ["pink", "\nprecision highp float;\nuniform vec"], ["); // canopy", "\npart('ball', "], ["\"/> <!-- sail", " -->\n</g>\n</svg>\n"], ["huge", "\nprecision highp float;\nuniform vec"], [" }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('", "cylx', "], ["\"/> <!-- hubcap", " -->\n<polygon points=\"-"], ["\"/> <!-- wheel", " -->\n<polygon points=\"-"], ["cream", "\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 / "], ["\"/> <!-- engine", " -->\n<ellipse cx=\""], ["\">\n<polygon points", "=\"-"], ["); // light", "\nreturn g;\n"], ["); // layer", "\nreturn g;\n"], ["); // stripe", "\npart('box', -"], ["); // windshield", "\npart('cylz', "], ["); // layer", "\n return d;\n}\nvec"], ["\"/> <!-- beak", " -->\n</g>\n</svg>\n"], [" in ", "outline"], ["); // hat", "\nreturn g;\n"], ["\"/> <!-- back leg", " -->\n<ellipse cx=\"-"], ["\"/> <!-- back leg", " -->\n<ellipse cx=\""], ["\"/> <!-- eye socket", " -->\n<ellipse cx=\"-"], ["\"/> <!-- eye socket", " -->\n<ellipse cx=\""], ["\"/> <!-- belly", " -->\n<ellipse cx=\""], ["\"/> <!-- front foot", " -->\n<ellipse cx=\"-"], ["\"/> <!-- pupil", " -->\n<ellipse cx=\"-"], ["\"/> <!-- arm", " -->\n<ellipse cx=\""], ["\"/> <!-- leg", " -->\n</g>\n</g>\n</svg>\n"], ["\"/> <!-- button", " -->\n<rect x=\"-"], ["yellow", "\nprecision highp float;\nuniform vec"], ["\"/> <!-- wheel", " -->\n</g>\n</svg>\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', -"], ["\"/> <!-- light", " -->\n</g>\n</svg>\n"], ["red", "\nprecision highp float;\nuniform vec"], ["); // spot", "\nreturn g;\n"], ["); // battlement", "\nreturn g;\n"], ["); // engine", "\n return d;\n}\nvec"], ["\"/> <!-- flower", " -->\n</g>\n</svg>\n"], [" in outline", " style"], ["); // taillight", "\n return d;\n}\nvec"], ["\"/> <!-- cup", " -->\n<rect x=\""], ["big", "\nprecision highp float;\nuniform vec"], ["orange", "\nprecision highp float;\nuniform vec"], ["); // leg", "\ng.scale.setScalar("], ["yellow", "\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 ", "wire"], ["); // petal", "\nreturn g;\n"], [" in ", "pixel art"], [" in ", "pastel"], [" in ", "cyber"], ["huge", "\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 / "], ["\"/> <!-- chest panel", " -->\n</g>\n</svg>\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 / "], ["\"/> <!-- hubcap", " -->\n</g>\n</g>\n</svg>\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<rect x=\""], [" in ", "low poly"], [" in ", "neon"], ["); // chimney", "\nreturn g;\n"], ["lime", "\nprecision highp float;\nuniform vec"], ["small", "\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 pixel art", " style"], [" in wire", " style"], [" in ", "faceted"], ["\"/> <!-- front foot", " -->\n<ellipse cx=\""], [", small", "\nprecision highp float;\nuniform vec"], ["); // tail", "\n d.x*="], [" in cyber", " style"], ["green", "\nprecision highp float;\nuniform vec"], [" in ", "clay"], [", small", "\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 / "], ["navy", "\nprecision highp float;\nuniform vec"], [" in ", "glowing"], [" in pastel", " style"], [" in ", "wireframe"], ["); // headlight", "\n d.x*="], [" in neon", " style"], ["purple", "\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 ", "lowpoly"], ["); // leg", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], [" in ", "plasticine"], [" in ", "blueprint"], ["black", "\nprecision highp float;\nuniform vec"], [", big", "\nprecision highp float;\nuniform vec"], ["cream", "\nprecision highp float;\nuniform vec"], [" in faceted", " style"], ["orange", "\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 / "], ["d: chair", ", smooth, "], ["\"/> <!-- stem", " -->\n<polygon points=\"-"], [" in lowpoly", " style"], ["pink", "\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 / "], [", huge", "\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 / "], ["); // back leg", "\nreturn g;\n"], [", lowpoly, ", "brown"], ["\"/>\n<g>\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<g stroke-linejoin=\"bevel\">\n<polygon points", "=\"-"], ["d: pine", ", smooth, "], [" in low poly", " style"], ["red", "\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 / "], ["\"/> <!-- top", " -->\n<rect x=\"-"], ["tiny", "\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 / "], ["gray", "\nprecision highp float;\nuniform vec"], ["d: snowman", ", clay, "], ["\"/> <!-- head", " -->\n<polygon points=\""], ["-bit", " style"], ["gray", "\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 wireframe", " style"], [" in blueprint", " style"], ["\"/> <!-- back leg", " -->\n<polygon points=\"-"], ["\"/> <!-- eye socket", " -->\n<polygon points=\"-"], ["\"/> <!-- eye", " -->\n<polygon points=\""], ["\"/> <!-- canopy", " -->\n<ellipse cx=\"-"], ["d: fish", ", smooth, "], [" in clay", " style"], ["a ", "huge "], ["); // canopy", "\nreturn g;\n"], [" in glowing", " style"], [" in ", "synthwave"], [" in ", "smooth"], ["sculpt a ", "huge "], ["d: castle", ", lowpoly, "], ["d: pig", ", neon, "], [" in ", "plastic"], ["d: boat", ", smooth, "], ["a\"/>\n<g stroke-linejoin=\"round", "\">\n<rect x=\""], ["d: cat", ", clay, "], [", tiny", "\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 / "], ["lime", "\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 / "], ["d: table", ", wire, "], ["i want a ", "small "], ["d: fountain", ", smooth, "], [" in synthwave", " style"], ["\"/>\n<g stroke-linejoin=\"bevel", "\">\n<rect x=\""], [" in plastic", " style"], ["d: lamp", ", neon, "], ["make a ", "small "], [" in ", "blocky"], ["d: fountain", ", neon, "], [" in ", "pixel"], ["i want a ", "tiny "], ["d: cat", ", pixel, "], ["sculpt a ", "big "], ["d: snowman", ", lowpoly, "], ["d: plane", ", clay, "], ["d: car", ", smooth, "], ["\"/> <!-- canopy", " -->\n<ellipse cx=\""], ["d: pig", ", lowpoly, "], ["d: rocket", ", pixel, "], ["navy", "\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 / "], ["d: snowman", ", smooth, "], ["\"/> <!-- window", " -->\n</g>\n</g>\n</svg>\n"], ["d: house", ", lowpoly, "], ["d: cactus", ", smooth, "], ["d: duck", ", lowpoly, "], ["d: rocket", ", smooth, "], ["generate a ", "huge "], ["make a ", "big "], ["draw a ", "small "], ["\"/> <!-- canopy", " -->\n<polygon points=\"-"], ["d: frog", ", pixel, "], ["\"/> <!-- hubcap", " -->\n<polygon points=\""], ["\"/> <!-- wheel", " -->\n<polygon points=\""], ["blue", "\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 / "], ["); // tail", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], [", ", "purple"], ["white", "\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 / "], ["d: bench", ", lowpoly, "], ["pink", " -->\n<ellipse cx=\""], ["make a ", "huge "], [" C(float m){\n ", "return vec"], ["build a ", "small "], [" in ", "toy"], [", ", "pink"], ["black", "\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 / "], ["generate a ", "big "], ["d: bench", ", clay, "], ["\"/></filter></defs>\n<g filter=\"url(#px)\" shape-rendering=\"crispEdges", "\">\n<rect x=\""], ["d: car", ", neon, "], [", wire, ", "brown"], ["create a ", "big "], [" in ", "voxel"], [", ", "lime"], ["d: mushroom", ", smooth, "], ["d: duck", ", smooth, "], [" in toy", " style"], ["draw a ", "tiny "], [" in blocky", " style"], ["d: table", ", smooth, "], [", ", "white"], [" in smooth", " style"], ["d: truck", ", pixel, "], ["d: snowman", ", neon, "], ["create a ", "small "], [", ", "orange"], ["d: robot", ", pixel, "], ["d: pine", ", lowpoly, "], ["draw a ", "huge "], ["build a ", "huge "], ["d: bus", ", wire, "], [", ", "blue"], [")", "\">\n<polygon points=\"-"], ["\"/> <!-- cup", " -->\n<rect x=\"-"], ["d: truck", ", wire, "], ["sculpt a ", "small "], ["i want a ", "big "], ["d: cactus", ", clay, "], [" in pixel", " style"], ["green", "\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 / "], ["\"/> <!-- wing", " -->\n<polygon points=\"-"], ["d: plane", ", smooth, "], ["); // tail", "\ng.scale.setScalar("], ["d: tree", ", lowpoly, "], ["draw a ", "big "], [" in ", "soft"], ["d: chair", ", lowpoly, "], ["d: mushroom", ", neon, "], ["a ", "small "], ["d: mushroom", ", pixel, "], [" in ", "glossy"], ["d: cat", ", wire, "], ["d: castle", ", neon, "], [", ", "brown"], ["d: fish", ", pixel, "], ["a ", "tiny "], ["d: house", ", clay, "], [", huge", " -->\n<ellipse cx=\""], ["make a ", "tiny "], ["d: chair", ", clay, "], ["d: castle", ", smooth, "], ["make ", "polygon "], ["d: cactus", ", lowpoly, "], ["d: tree", ", clay, "], ["d: castle", ", wire, "], ["d: house", ", pixel, "], ["d: pig", ", clay, "], ["generate a ", "tiny "], ["i want a ", "huge "], ["d: bench", ", pixel, "], ["d: robot", ", clay, "], ["d: duck", ", clay, "], ["d: rocket", ", lowpoly, "], ["d: boat", ", clay, "], ["d: lamp", ", pixel, "], ["d: castle", ", clay, "], ["d: pine", ", pixel, "], ["d: castle", ", pixel, "], ["d: chair", ", wire, "], ["d: flower", ", clay, "], ["d: tree", ", pixel, "], ["d: flower", ", smooth, "], ["d: table", ", pixel, "], ["create a ", "huge "], ["d: duck", ", wire, "], ["d: pig", ", wire, "], [" in glossy", " style"], ["d: cat", ", smooth, "], ["d: boat", ", wire, "], ["blueprint", " art of a "], ["d: bus", ", smooth, "], ["d: chair", ", neon, "], [" in soft", " style"], ["d: car", ", clay, "], ["d: pig", ", smooth, "], ["d: fountain", ", wire, "], ["d: bus", ", pixel, "], ["d: rocket", ", neon, "], ["); // headlight", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["d: duck", ", neon, "], [" in voxel", " style"], ["lime", " -->\n<ellipse cx=\""], ["d: flower", ", neon, "], ["\"/> <!-- chest panel", " -->\n<rect x=\""], [", ", "gold"], [", ", "teal"], ["d: frog", ", neon, "], [", ", "black"], ["\"/> <!-- bowl", " -->\n<polygon points=\"-"], ["d: fish", ", wire, "], ["d: plane", ", wire, "], ["d: flower", ", wire, "], [" fountain", " please"], [", ", "gray"], ["big", " -->\n<ellipse cx=\""], ["d: boat", ", lowpoly, "], ["d: frog", ", lowpoly, "], ["d: fountain", ", pixel, "], ["d: mushroom", ", clay, "], ["small", " -->\n<ellipse cx=\""], ["d: mushroom", ", wire, "], ["\"/> <!-- button", " -->\n<polygon points=\"-"], ["d: flower", ", pixel, "], ["sculpt a ", "tiny "], ["build a ", "big "], ["d: frog", ", clay, "], ["lowpoly", " art of a "], ["d: boat", ", pixel, "], [", ", "green"], ["d: cat", ", neon, "], ["d: tree", ", smooth, "], ["); // sail", "\n d.x*="], ["d: house", ", smooth, "], [", ", "yellow"], ["yellow", " -->\n<ellipse cx=\""], ["d: bench", ", neon, "], ["d: house", ", wire, "], ["d: bench", ", wire, "], ["d: table", ", neon, "], ["d: cactus", ", neon, "], ["d: robot", ", lowpoly, "], ["d: truck", ", clay, "], ["brown", "\nprecision highp float;\nuniform vec"], ["d: robot", ", smooth, "], ["); // stand", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["build a ", "tiny "], ["\"/> <!-- headlight", " -->\n<polygon points=\""], ["); // light", "\ng.scale.setScalar("], ["generate a ", "small "], [", small", " -->\n<ellipse cx=\""], ["d: frog", ", smooth, "], ["d: cactus", ", pixel, "], ["d: truck", ", neon, "], ["\"/> <!-- gate", " -->\n</g>\n</g>\n</svg>\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 * "], ["\"/> <!-- wheel", " -->\n</g>\n</g>\n</svg>\n"], ["\"/> <!-- layer", " -->\n</g>\n</g>\n</svg>\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, "], ["\"/> <!-- pupil", " -->\n<polygon points=\""], [" snowman", " please"], ["d: lamp", ", lowpoly, "], ["\"/> <!-- eye", " -->\n</g>\n</svg>\n"], ["clay", " art of a "], ["d: fish", ", neon, "], ["gold", " -->\n<ellipse cx=\""], ["\"/> <!-- spot", " -->\n</g>\n</g>\n</svg>\n"], ["d: rocket", ", wire, "], ["\"/> <!-- beak", " -->\n</g>\n</g>\n</svg>\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<ellipse cx=\""], ["); // petal", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["d: plane", ", pixel, "], ["d: bench", ", smooth, "], ["); // hat", "\n d.x*="], ["cream", " -->\n<ellipse cx=\""], ["\"/> <!-- snout", " -->\n</g>\n</g>\n</svg>\n"], ["navy", " -->\n<ellipse cx=\""], ["\"/> <!-- belly", " -->\n<polygon points=\""], ["\"/> <!-- pupil", " -->\n<polygon points=\"-"], ["\"/> <!-- front foot", " -->\n<polygon points=\"-"], ["d: snowman", ", pixel, "], ["d: pine", ", clay, "], ["); // spot", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["\"/> <!-- stand", " -->\n<polygon points=\""], ["\"/> <!-- spot", " -->\n<polygon points=\"-"], ["d: table", ", lowpoly, "], ["build a ", "yellow "], ["); // taillight", "\ng.scale.setScalar("], ["a\"/>\n<g stroke-linejoin=\"round", "\">\n<ellipse cx=\"-"], ["d: fish", ", clay, "], ["d: chair", ", pixel, "], ["\"/> <!-- spray", " -->\n</g>\n</g>\n</svg>\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 / "], ["\"/> <!-- leaf", " -->\n<polygon points=\""], ["\"/> <!-- petal", " -->\n<polygon points=\""], ["); // back leg", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], [", big", " -->\n<ellipse cx=\""], [";\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('", "cylx', "], ["); // wheel", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["); // headlight", "\ng.scale.setScalar("], ["d: cat", ", lowpoly, "], ["\"/> <!-- flower", " -->\n</g>\n</g>\n</svg>\n"], [", ", "cream"], ["sculpt a ", "pink "], ["d: fish", ", lowpoly, "], ["); // petal", "\n d.x*="], ["\"/> <!-- front foot", " -->\n<polygon points=\""], ["); // sail", "\ng.scale.setScalar("], ["blue", " -->\n<ellipse cx=\""], ["green", " -->\n<ellipse cx=\""], ["\"/> <!-- nose", " -->\n</g>\n</g>\n</svg>\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<ellipse cx=\""], ["toy", " art of a "], ["); // flower", "\ng.scale.setScalar("], [")", "\">\n<ellipse cx=\"-"], ["); // canopy", "\ng.scale.setScalar("], ["); // cup", "\n d.x*="], ["d: robot", ", wire, "], ["d: snowman", ", wire, "], ["build a ", "pink "], ["d: plane", ", lowpoly, "], ["); // spot", "\ng.scale.setScalar("], ["d: fountain", ", clay, "], ["); // spot", "\n d.x*="], ["); // spray", "\ng.scale.setScalar("], ["sailboat", " please"], ["i want a ", "polygon "], ["); // canopy", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["\"/> <!-- bottom", " -->\n<polygon points=\"-"], ["\"/> <!-- middle", " -->\n<polygon points=\"-"], ["\"/> <!-- hat", " -->\n<polygon points=\""], ["orange", " -->\n<ellipse cx=\""], [", tiny", " -->\n<ellipse cx=\""], ["\"/>\n<g>\n<", "polygon points"], ["\"/>\n<g>\n<polygon points", "=\"-"], ["cyber", " art of a "], ["); // light", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["); // sail", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["castle", " please"], ["wire", " art of a "], ["pixel art", " art of a "], ["\"/> <!-- chest panel", " -->\n</g>\n</g>\n</svg>\n"], ["tiny", " -->\n<defs><filter id=\"glow\" x=\"-"], ["create a ", "cream "], ["make a ", "black "], ["\"/> <!-- sail", " -->\n</g>\n</g>\n</svg>\n"], ["i want a ", "lime "], ["); // canopy", "\n d.x*="], ["faceted", " art of a "], ["\"/> <!-- pupil", " -->\n</g>\n</g>\n</svg>\n"], ["); // layer", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["tiny", " -->\n<rect x=\"-"], ["outline", " art of a "], ["i want a ", "teal "], ["cyber", " fountain"], ["\"/> <!-- center", " -->\n<ellipse cx=\""], ["cream", "\nconst g = new THREE.Group(), S = "], ["neon", " art of a "], ["\"/> <!-- nose", " -->\n<polygon points=\"-"], ["big", "\nconst g = new THREE.Group(), S = "], ["); // hat", "\ng.scale.setScalar("], ["glowing", " art of a "], ["red", " -->\n<ellipse cx=\""], ["neon", " chair"], ["-bit", " art of a "], ["tiny", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-"], ["make ", "lowpoly art of a "], ["generate a ", "gray "], ["\"/> <!-- front foot", " -->\n<rect x=\"-"], ["d: cactus", ", wire, "], ["purple", " -->\n<ellipse cx=\""], ["make ", "faceted "], ["make a ", "red "], ["generate a ", "lime "], ["); // stand", "\n d.x*="], ["huge", " -->\n<ellipse cx=\""], ["); // engine", "\ng.scale.setScalar("], ["a ", "polygon "], ["sculpt a ", "orange "], ["d: fountain", ", neon\nprecision highp float;\nuniform vec"], ["make a ", "cream "], ["d: truck", ", smooth, "], ["); // cup", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["build a ", "purple "], ["draw a ", "lime "], ["\"/> <!-- canopy", " -->\n</g>\n</g>\n</svg>\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<ellipse cx=\""], ["); // battlement", "\ng.scale.setScalar("], ["duck", " please"], ["); // flower", "\n d.x*="], ["\"/> <!-- tail", " -->\n<polygon points=\""], ["green", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-"], ["); // stand", "\ng.scale.setScalar("], ["draw a ", "white "], ["); // chimney", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["create a ", "purple "], ["); // back leg", "\n d.x*="], [" table", " please"], [", flatShading: true", " }));\n place(m, k, x, y, z, a, b, c);\n g.add(m);\n}\npart('cylx', "], ["draw a ", "gold "], ["d: snowman", ", clay -->\n<rect x=\"-"], ["i want a ", "yellow "], ["\"/> <!-- light", " -->\n</g>\n</g>\n</svg>\n"], ["clay", " snowman"], [", lowpoly, brown", " -->\n<ellipse cx=\""], ["make ", "blocky "], ["d: pig", ", smooth -->\n<ellipse cx=\""], ["\"/> <!-- arm", " -->\n<polygon points=\"-"], ["\"/> <!-- spot", " -->\n<polygon points=\""], ["blocky", " art of a "], ["); // light", "\n d.x*="], ["\"/> <!-- fuselage", " -->\n<polygon points=\""], ["\"/> <!-- nose", " -->\n<polygon points=\""], ["\"/> <!-- strut", " -->\n<polygon points=\""], ["\"/> <!-- petal", " -->\n</g>\n</svg>\n"], ["sculpt a ", "faceted "], ["make a ", "gold "], ["sculpt a ", "gold "], ["generate a ", "red "], ["make a ", "navy "], ["); // engine", "\n d.x*="], ["d: flower", ", lowpoly -->\n<ellipse cx=\""], ["gray", " -->\n<rect x=\"-"], ["make ", "clay art of a "], ["blue", " -->\n<rect x=\"-"], ["build a ", "green "], ["); // chimney", "\ng.scale.setScalar("], ["create a ", "pink "], ["); // wheel", "\ng.scale.setScalar("], ["draw a ", "green "], ["sculpt a ", "lime "], ["pixel", " art of a "], ["make a ", "blueprint "], ["d: pig", ", wire\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 / "], ["make ", "plasticine "], ["); // spray", "\n d.x*="], ["draw a ", "orange "], ["a ", "yellow "], ["\"/> <!-- antenna", " -->\n<polygon points=\"-"], ["make ", "wireframe "], ["make a ", "pink "], ["create a ", "white "], ["d: fish", ", smooth\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 ", "glowing "], ["big", " -->\n<rect x=\"-"], ["d: plane", ", 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 / "], ["generate a ", "orange "], ["); // hat", "\nconst vox = new THREE.InstancedMesh(new THREE.BoxGeometry(S * "], ["outline", " table"], ["draw a ", "cyber "], ["); // taillight", "\n d.x*="], ["d: plane", ", wire\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 / "], ["d: pine", ", clay\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 / "], [", big", "\nconst g = new THREE.Group(), S = "], ["\"/> <!-- cap", " -->\n<polygon points=\"-"], ["teal", " -->\n<ellipse cx=\""], ["white", " -->\n<g fill=\"none\" stroke-width=\""], ["draw a ", "faceted "], ["small", " -->\n<g fill=\"none\" stroke-width=\""], ["draw a ", "outline "], ["make a ", "green "], ["d: castle", ", smooth\nprecision highp float;\nuniform vec"], ["d: boat", ", smooth\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 / "], ["purple", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-"], [", small", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-"], ["sculpt a ", "blueprint "], ["create a ", "lime "], ["generate a ", "navy "], ["d: flower", ", pixel\nprecision highp float;\nuniform vec"], ["piglet", " please"], ["synthwave", " art of a "], ["create a ", "brown "], ["orange", "\nconst g = new THREE.Group(), S = "], ["plasticine", " snowman"], ["d: truck", ", lowpoly -->\n<ellipse cx=\""], ["i want a ", "blue "], ["d: pine", ", pixel\nprecision highp float;\nuniform vec"], ["i want a ", "pink "], [" chair", " please"], ["huge", " -->\n<g fill=\"none\" stroke-width=\""], ["d: tree", ", lowpoly -->\n<ellipse cx=\""], ["sculpt a ", "purple "], ["glowing", " fountain"], ["i want a ", "outline "], ["i want a ", "red "], ["build a ", "blue "], ["generate a ", "purple "], ["small", " -->\n<rect x=\"-"], ["); // back leg", "\ng.scale.setScalar("], [", tiny", "\nconst g = new THREE.Group(), S = "], ["sculpt a ", "blue "], ["d: bench", ", wire -->\n<g fill=\"none\" stroke-width=\""], ["make a ", "blue "], ["d: chair", ", smooth -->\n<ellipse cx=\""], ["d: cat", ", pixel\nprecision highp float;\nuniform vec"], ["d: chair", ", neon\nprecision highp float;\nuniform vec"], ["draw a ", "blue "], ["make ", "blueprint art of a "], ["d: fish", ", wire\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 / "], ["a ", "blue "], ["clay", " table"], ["\"/> <!-- engine", " -->\n<polygon points=\"-"], ["gold", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-"], ["i want a ", "voxel "], ["a ", "wire "], ["plasticine", " table"], ["d: pig", ", smooth\nprecision highp float;\nuniform vec"], ["sculpt a ", "polygon "], ["oak", " please"], ["\"/> <!-- leg", " -->\n<polygon points=\"-"], ["create a ", "orange "], ["claymation", " snowman"], ["d: cat", ", neon -->\n<defs><filter id=\"glow\" x=\"-"], ["a ", "gold "], ["teal", " -->\n<rect x=\"-"], ["a ", "claymation "], ["a ", "orange "], ["create a ", "wireframe "], ["a ", "outline "], ["orange", " -->\n<rect x=\"-"], ["glowing", " table"], ["d: lamp", ", 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 / "], ["build a ", "white "], ["\"/> <!-- paw", " -->\n<polygon points=\"-"], ["d: flower", ", pixel -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-"], ["make ", "wireframe art of a "], ["build a ", "plasticine "], ["orange", " -->\n<defs><filter id=\"px\" filterUnits=\"userSpaceOnUse\" x=\"-"], ["teal", " -->\n<g fill=\"none\" stroke-width=\""], ["make a ", "brown "], ["pixel", " table"], ["d: house", ", lowpoly -->\n<ellipse cx=\""], ["); // cabin", "\npart('box', "], ["); // layer", "\ng.scale.setScalar("], ["sculpt a ", "gray "], ["make a ", "white "], ["claymation", " art of a "], ["pink", " -->\n<rect x=\"-"]]} |