{"version":1,"record":{"id":"gen-agent-10-mvnf7wbx-zo41j","agentId":"agent-10","agentName":"Apollo Yeets","prompt":"Mario Kart styled KART and RIDER. Keep distance between for easy splitting. Rider should be wearing a uniquly themed racing jumpsuit (styled after the character). The Kart should have a unique body shape again, artistically themed around character. Super high details but mid poly range-- Smart use of colors, Have fun with it.","model":"openai/gpt-6-luna-pro","agentic":false,"slices":1,"sliceSteps":4,"code":"const group = new THREE.Group();\ngroup.name = 'MarioKartAndRider';\n\nconst mat = (name, color, roughness, metalness) => {\n  const m = new THREE.MeshStandardMaterial({ color, roughness, metalness });\n  m.name = name;\n  return m;\n};\n\nconst olive = mat('AnodizedOlive', 0xa7a527, 0.32, 1);\nconst black = mat('NearBlackRubberAndTrim', 0x11151a, 0.9, 0);\nconst cyan = mat('NeonCyanAnodizedTrim', 0x00d9ef, 0.27, 1);\nconst magenta = mat('SignatureMagenta', 0xff00d0, 0.3, 1);\nconst steel = mat('BrushedSteel', 0x9ba6a8, 0.3, 1);\nconst red = mat('RacingSuitRed', 0xd51d24, 0.48, 0);\nconst blue = mat('RacingSuitBlue', 0x164ca5, 0.5, 0);\nconst skin = mat('WarmSkin', 0xe7ad78, 0.72, 0);\nconst white = mat('WarmWhite', 0xf2eee4, 0.55, 0);\nconst brown = mat('BootLeather', 0x573621, 0.78, 0);\nconst mustacheMat = mat('MustacheAndHair', 0x281811, 0.88, 0);\nconst eyeMat = mat('EyeDark', 0x17191a, 0.4, 0);\n\nfunction addMesh(parent, geometry, material, name, position, rotation, scale) {\n  const mesh = new THREE.Mesh(geometry, material);\n  mesh.name = name;\n  if (position) mesh.position.set(position[0], position[1], position[2]);\n  if (rotation) mesh.rotation.set(rotation[0], rotation[1], rotation[2]);\n  if (scale) mesh.scale.set(scale[0], scale[1], scale[2]);\n  parent.add(mesh);\n  return mesh;\n}\nfunction box(parent, name, material, size, position, rotation, scale) {\n  return addMesh(parent, new THREE.BoxGeometry(size[0], size[1], size[2]), material, name, position, rotation, scale);\n}\nfunction sphere(parent, name, material, position, scale, widthSegments = 16, heightSegments = 12) {\n  return addMesh(parent, new THREE.SphereGeometry(1, widthSegments, heightSegments), material, name, position, null, scale);\n}\nfunction cylinder(parent, name, material, radiusTop, radiusBottom, height, position, rotation, radialSegments = 16) {\n  return addMesh(parent, new THREE.CylinderGeometry(radiusTop, radiusBottom, height, radialSegments), material, name, position, rotation);\n}\n\nconst kart = new THREE.Group();\nkart.name = 'Kart';\nkart.position.set(-1.35, 0, 0);\ngroup.add(kart);\n\nconst kartShell = new THREE.Group();\nkartShell.name = 'Kart.BodyShell';\nkart.add(kartShell);\n\nconst bodyHull = GEO.createHull({\n  length: 1.58,\n  stations: [\n    { t: 0, beam: 0.045, chine: 0.035, chineY: 0.53, keelY: 0.52, gunY: 0.57 },\n    { t: 0.08, beam: 0.28, chine: 0.22, chineY: 0.42, keelY: 0.37, gunY: 0.70 },\n    { t: 0.22, beam: 0.47, chine: 0.39, chineY: 0.36, keelY: 0.32, gunY: 0.72 },\n    { t: 0.48, beam: 0.51, chine: 0.43, chineY: 0.35, keelY: 0.31, gunY: 0.70 },\n    { t: 0.77, beam: 0.47, chine: 0.40, chineY: 0.34, keelY: 0.31, gunY: 0.68 },\n    { t: 1, beam: 0.34, chine: 0.29, chineY: 0.36, keelY: 0.34, gunY: 0.64 }\n  ],\n  chine: 'round',\n  keel: 'round',\n  samples: 28\n});\naddMesh(kartShell, bodyHull.geometry, olive, 'Kart.BodyShell.Main', [0, 0, 0], null, null);\n\nconst wheelAssembly = new THREE.Group();\nwheelAssembly.name = 'Kart.WheelAssembly';\nkart.add(wheelAssembly);\n\nfor (let side = -1; side <= 1; side += 2) {\n  for (let axle = 0; axle < 2; axle++) {\n    const z = axle === 0 ? 0.49 : -0.48;\n    const x = side * 0.59;\n    const wheelName = `Kart.Wheel.${side < 0 ? 'Left' : 'Right'}.${axle === 0 ? 'Front' : 'Rear'}`;\n    cylinder(wheelAssembly, `${wheelName}.Tire`, black, 0.235, 0.235, 0.15, [x, 0.27, z], [0, 0, Math.PI / 2], 20);\n    cylinder(wheelAssembly, `${wheelName}.Hub`, steel, 0.112, 0.112, 0.158, [x, 0.27, z], [0, 0, Math.PI / 2], 16);\n    cylinder(wheelAssembly, `${wheelName}.HubInset`, olive, 0.061, 0.061, 0.165, [x + side * 0.006, 0.27, z], [0, 0, Math.PI / 2], 12);\n    cylinder(wheelAssembly, `${wheelName}.AxleCap`, black, 0.031, 0.031, 0.18, [x + side * 0.01, 0.27, z], [0, 0, Math.PI / 2], 10);\n  }\n}\n\nconst chassis = new THREE.Group();\nchassis.name = 'Kart.ChassisAndCockpit';\nkart.add(chassis);\nbox(chassis, 'Kart.Underslung.Chassis', black, [0.77, 0.13, 1.17], [0, 0.37, 0.02]);\nbox(chassis, 'Kart.Seat.Base', black, [0.42, 0.12, 0.40], [0, 0.59, -0.18]);\nbox(chassis, 'Kart.Seat.Cushion', red, [0.36, 0.12, 0.31], [0, 0.67, -0.18], [-0.12, 0, 0]);\nbox(chassis, 'Kart.Seat.Back', black, [0.39, 0.39, 0.12], [0, 0.79, -0.38], [-0.16, 0, 0]);\nbox(chassis, 'Kart.Rear.EngineBlock', black, [0.42, 0.23, 0.29], [0, 0.55, -0.62]);\nbox(chassis, 'Kart.Rear.EngineTop', steel, [0.29, 0.045, 0.18], [0, 0.69, -0.62]);\nfor (let i = 0; i < 3; i++) {\n  box(chassis, `Kart.EngineVent.${i + 1}`, cyan, [0.27, 0.018, 0.025], [0, 0.72 + i * 0.025, -0.62]);\n}\n\nconst controls = new THREE.Group();\ncontrols.name = 'Kart.Controls';\nkart.add(controls);\ncylinder(controls, 'Kart.Steering.Column', steel, 0.025, 0.025, 0.28, [0, 0.79, 0.11], [0.35, 0, 0], 10);\naddMesh(\n  controls,\n  new THREE.TorusGeometry(0.17, 0.025, 8, 20),\n  black,\n  'Kart.SteeringWheel',\n  [0, 0.91, 0.16],\n  [Math.PI / 2 - 0.28, 0, 0],\n  [1, 0.83, 1]\n);\nbox(controls, 'Kart.Steering.Center', olive, [0.085, 0.055, 0.055], [0, 0.91, 0.16]);\n\nconst aero = new THREE.Group();\naero.name = 'Kart.AeroDetails';\nkart.add(aero);\nbox(aero, 'Kart.Front.Bumper', black, [0.94, 0.09, 0.12], [0, 0.36, 0.78]);\nbox(aero, 'Kart.Front.Bumper.CyanInlay', cyan, [0.55, 0.018, 0.014], [0, 0.411, 0.82]);\nbox(aero, 'Kart.Rear.Bumper', black, [0.86, 0.09, 0.11], [0, 0.38, -0.79]);\n\nfor (let side = -1; side <= 1; side += 2) {\n  box(aero, `Kart.SideSkirt.${side < 0 ? 'Left' : 'Right'}`, black, [0.08, 0.10, 0.82], [side * 0.48, 0.40, -0.02]);\n  box(aero, `Kart.SideSkirt.CyanEdge.${side < 0 ? 'Left' : 'Right'}`, cyan, [0.025, 0.025, 0.70], [side * 0.525, 0.39, -0.015]);\n  for (let i = 0; i < 4; i++) {\n    const z = 0.25 - i * 0.18;\n    const tooth = cylinder(aero, `Kart.SerratedEdge.${side < 0 ? 'Left' : 'Right'}.${i + 1}`, olive, 0.045, 0.045, 0.10, [side * 0.50, 0.37, z], [Math.PI / 2, 0, 0], 3);\n    tooth.rotation.set(Math.PI / 2, 0, Math.PI / 2);\n  }\n  box(aero, `Kart.RearWing.Support.${side < 0 ? 'Left' : 'Right'}`, steel, [0.045, 0.24, 0.045], [side * 0.27, 0.72, -0.67], [-0.12, 0, 0]);\n}\nbox(aero, 'Kart.RearWing', black, [0.76, 0.075, 0.20], [0, 0.84, -0.68], [-0.08, 0, 0]);\nbox(aero, 'Kart.RearWing.CyanLip', cyan, [0.63, 0.022, 0.025], [0, 0.80, -0.77]);\nfor (let side = -1; side <= 1; side += 2) {\n  sphere(aero, `Kart.FrontLamp.${side < 0 ? 'Left' : 'Right'}`, cyan, [side * 0.31, 0.56, 0.705], [0.10, 0.047, 0.035], 12, 8);\n}\nsphere(aero, 'Kart.Signature.Emblem', magenta, [0, 0.706, 0.46], [0.055, 0.025, 0.026], 12, 8);\nfor (let side = -1; side <= 1; side += 2) {\n  cylinder(aero, `Kart.Exhaust.${side < 0 ? 'Left' : 'Right'}`, steel, 0.055, 0.055, 0.15, [side * 0.28, 0.47, -0.70], [Math.PI / 2, 0, 0], 12);\n}\n\nconst rider = new THREE.Group();\nrider.name = 'Rider';\nrider.position.set(1.25, 0, 0);\ngroup.add(rider);\n\nconst outfit = new THREE.Group();\noutfit.name = 'Rider.RacingSuit';\nrider.add(outfit);\n\nsphere(outfit, 'Rider.Torso.RedSuit', red, [0, 1.07, 0], [0.28, 0.37, 0.22]);\nsphere(outfit, 'Rider.Overalls.Bib', blue, [0, 0.99, 0.173], [0.205, 0.25, 0.065]);\nbox(outfit, 'Rider.Overalls.Strap.Left', blue, [0.075, 0.29, 0.075], [-0.15, 1.19, 0.12], [0, 0, -0.14]);\nbox(outfit, 'Rider.Overalls.Strap.Right', blue, [0.075, 0.29, 0.075], [0.15, 1.19, 0.12], [0, 0, 0.14]);\nfor (let side = -1; side <= 1; side += 2) {\n  sphere(outfit, `Rider.OverallButton.${side < 0 ? 'Left' : 'Right'}`, steel, [side * 0.13, 1.23, 0.193], [0.035, 0.035, 0.022], 10, 8);\n  sphere(outfit, `Rider.Glove.${side < 0 ? 'Left' : 'Right'}`, white, [side * 0.39, 1.08, 0.32], [0.105, 0.095, 0.11]);\n  cylinder(outfit, `Rider.Arm.RedSleeve.${side < 0 ? 'Left' : 'Right'}`, red, 0.095, 0.12, 0.38, [side * 0.29, 1.13, 0.13], [0, 0, side * 0.62], 12);\n  sphere(outfit, `Rider.Elbow.${side < 0 ? 'Left' : 'Right'}`, red, [side * 0.38, 1.00, 0.24], [0.105, 0.10, 0.11]);\n  box(outfit, `Rider.Glove.Cuff.${side < 0 ? 'Left' : 'Right'}`, white, [0.13, 0.075, 0.11], [side * 0.39, 1.08, 0.25], [0, 0, side * 0.15]);\n  cylinder(outfit, `Rider.PantLeg.${side < 0 ? 'Left' : 'Right'}`, blue, 0.13, 0.16, 0.43, [side * 0.145, 0.49, 0], [0, 0, side * 0.05], 12);\n  sphere(outfit, `Rider.Boot.${side < 0 ? 'Left' : 'Right'}`, brown, [side * 0.16, 0.13, 0.12], [0.16, 0.12, 0.24]);\n  box(outfit, `Rider.BootSole.${side < 0 ? 'Left' : 'Right'}`, black, [0.29, 0.045, 0.34], [side * 0.16, 0.045, 0.13]);\n}\n\nconst head = new THREE.Group();\nhead.name = 'Rider.Head';\nhead.position.set(0, 1.52, 0.015);\nrider.add(head);\nsphere(head, 'Rider.Head.Face', skin, [0, 0, 0.01], [0.235, 0.255, 0.205]);\nsphere(head, 'Rider.Ear.Left', skin, [-0.225, -0.01, 0.0], [0.065, 0.09, 0.07], 12, 8);\nsphere(head, 'Rider.Ear.Right', skin, [0.225, -0.01, 0.0], [0.065, 0.09, 0.07], 12, 8);\nfor (let side = -1; side <= 1; side += 2) {\n  sphere(head, `Rider.Eye.White.${side < 0 ? 'Left' : 'Right'}`, white, [side * 0.082, 0.055, 0.181], [0.052, 0.072, 0.027], 12, 8);\n  sphere(head, `Rider.Eye.Pupil.${side < 0 ? 'Left' : 'Right'}`, eyeMat, [side * 0.078, 0.05, 0.205], [0.021, 0.037, 0.012], 10, 8);\n}\nsphere(head, 'Rider.Nose', skin, [0, -0.045, 0.219], [0.083, 0.075, 0.075], 14, 10);\nsphere(head, 'Rider.Mustache.Left', mustacheMat, [-0.088, -0.13, 0.205], [0.10, 0.055, 0.045], 12, 8);\nsphere(head, 'Rider.Mustache.Right', mustacheMat, [0.088, -0.13, 0.205], [0.10, 0.055, 0.045], 12, 8);\nsphere(head, 'Rider.Hair.Back', mustacheMat, [0, -0.12, -0.12], [0.21, 0.15, 0.10]);\n\nconst cap = new THREE.Group();\ncap.name = 'Rider.RacingCap';\nhead.add(cap);\nsphere(cap, 'Rider.Cap.Crown', red, [0, 0.205, -0.015], [0.25, 0.15, 0.22], 16, 10);\nbox(cap, 'Rider.Cap.Bill', red, [0.39, 0.045, 0.22], [0, 0.145, 0.16], [0.04, 0, 0]);\nsphere(cap, 'Rider.Cap.FrontBadge', white, [0, 0.218, 0.194], [0.073, 0.065, 0.018], 12, 8);\nsphere(cap, 'Rider.Cap.SignaturePin', magenta, [0.16, 0.24, 0.11], [0.026, 0.026, 0.022], 10, 8);\n\nreturn group;","tone":null,"animations":[],"usage":{"requests":2,"generations":0,"promptTokens":75361,"completionTokens":27719,"totalTokens":103080,"cost":0.01955885085,"activeMs":0,"ratingSum":0,"ratingCount":0,"judgeCost":0},"startedAt":1792908147309,"completedAt":1792908283305,"durationMs":135996,"report":"Parts: 88 meshes, 10009 triangles. Size: 3.79 x 1.86 x 1.68 (X x Y x Z). Lowest point Y=0.000.\nValidator: no geometry defects (NaN, degenerate faces, bad winding, open shells).","sliceCount":1,"sliceIds":["gen-agent-10-mvnf7wbx-zo41j-s1"],"judging":{"status":"done","judges":[{"model":"deepseek/deepseek-v4.1-flash-1017","label":"DeepSeek v4.1 Flash","error":"The judge did not return valid JSON scores.","durationMs":24095},{"scores":{"silhouette":7,"proportion":6,"detail":5,"materials":5,"assembly":6,"readability":6},"average":5.833333333333333,"notes":"The Mario-like rider is immediately recognizable, and the separation makes the two pieces easy to distinguish. The kart is comparatively plain and very dark in the render, while the rider reads as standing rather than seated.","model":"openai/gpt-6-luna","label":"GPT-6 Luna","usage":{"prompt_tokens":6309,"completion_tokens":499,"total_tokens":6808,"cost":0.0010276695,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":6306,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":0.00103805,"upstream_inference_prompt_cost":0.00078855,"upstream_inference_completions_cost":0.0002495},"completion_tokens_details":{"reasoning_tokens":421,"image_tokens":0,"audio_tokens":0}},"durationMs":7872},{"scores":{"silhouette":6,"proportion":5,"detail":5,"materials":5,"assembly":6,"readability":6},"average":5.5,"notes":"Rider reads clearly as a Mario-style character in red cap and overalls, but the kart is a dark, boxy buggy with a body that is mostly lost in black and does not read as a themed Mario Kart vehicle. Proportions are off, with an oversized rider torso and head, and the kart body is nearly invisible against the dark background.","model":"anthropic/claude-haiku-5.5","label":"Claude Haiku 5.5","usage":{"prompt_tokens":8250,"completion_tokens":163,"total_tokens":8413,"cost":0.000897435,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":0.0009065,"upstream_inference_prompt_cost":0.000825,"upstream_inference_completions_cost":0.0000815},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0,"audio_tokens":0}},"durationMs":4945}],"score":5.666666666666666,"cost":0.0019251045000000001,"tokens":15221,"at":1792908307558},"thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-10-mvnf7wbx-zo41j.png"},"slices":[{"id":"gen-agent-10-mvnf7wbx-zo41j-s1","index":1,"summary":"Single shot","final":false,"code":"const group = new THREE.Group();\ngroup.name = 'MarioKartAndRider';\n\nconst mat = (name, color, roughness, metalness) => {\n  const m = new THREE.MeshStandardMaterial({ color, roughness, metalness });\n  m.name = name;\n  return m;\n};\n\nconst olive = mat('AnodizedOlive', 0xa7a527, 0.32, 1);\nconst black = mat('NearBlackRubberAndTrim', 0x11151a, 0.9, 0);\nconst cyan = mat('NeonCyanAnodizedTrim', 0x00d9ef, 0.27, 1);\nconst magenta = mat('SignatureMagenta', 0xff00d0, 0.3, 1);\nconst steel = mat('BrushedSteel', 0x9ba6a8, 0.3, 1);\nconst red = mat('RacingSuitRed', 0xd51d24, 0.48, 0);\nconst blue = mat('RacingSuitBlue', 0x164ca5, 0.5, 0);\nconst skin = mat('WarmSkin', 0xe7ad78, 0.72, 0);\nconst white = mat('WarmWhite', 0xf2eee4, 0.55, 0);\nconst brown = mat('BootLeather', 0x573621, 0.78, 0);\nconst mustacheMat = mat('MustacheAndHair', 0x281811, 0.88, 0);\nconst eyeMat = mat('EyeDark', 0x17191a, 0.4, 0);\n\nfunction addMesh(parent, geometry, material, name, position, rotation, scale) {\n  const mesh = new THREE.Mesh(geometry, material);\n  mesh.name = name;\n  if (position) mesh.position.set(position[0], position[1], position[2]);\n  if (rotation) mesh.rotation.set(rotation[0], rotation[1], rotation[2]);\n  if (scale) mesh.scale.set(scale[0], scale[1], scale[2]);\n  parent.add(mesh);\n  return mesh;\n}\nfunction box(parent, name, material, size, position, rotation, scale) {\n  return addMesh(parent, new THREE.BoxGeometry(size[0], size[1], size[2]), material, name, position, rotation, scale);\n}\nfunction sphere(parent, name, material, position, scale, widthSegments = 16, heightSegments = 12) {\n  return addMesh(parent, new THREE.SphereGeometry(1, widthSegments, heightSegments), material, name, position, null, scale);\n}\nfunction cylinder(parent, name, material, radiusTop, radiusBottom, height, position, rotation, radialSegments = 16) {\n  return addMesh(parent, new THREE.CylinderGeometry(radiusTop, radiusBottom, height, radialSegments), material, name, position, rotation);\n}\n\nconst kart = new THREE.Group();\nkart.name = 'Kart';\nkart.position.set(-1.35, 0, 0);\ngroup.add(kart);\n\nconst kartShell = new THREE.Group();\nkartShell.name = 'Kart.BodyShell';\nkart.add(kartShell);\n\nconst bodyHull = GEO.createHull({\n  length: 1.58,\n  stations: [\n    { t: 0, beam: 0.045, chine: 0.035, chineY: 0.53, keelY: 0.52, gunY: 0.57 },\n    { t: 0.08, beam: 0.28, chine: 0.22, chineY: 0.42, keelY: 0.37, gunY: 0.70 },\n    { t: 0.22, beam: 0.47, chine: 0.39, chineY: 0.36, keelY: 0.32, gunY: 0.72 },\n    { t: 0.48, beam: 0.51, chine: 0.43, chineY: 0.35, keelY: 0.31, gunY: 0.70 },\n    { t: 0.77, beam: 0.47, chine: 0.40, chineY: 0.34, keelY: 0.31, gunY: 0.68 },\n    { t: 1, beam: 0.34, chine: 0.29, chineY: 0.36, keelY: 0.34, gunY: 0.64 }\n  ],\n  chine: 'round',\n  keel: 'round',\n  samples: 28\n});\naddMesh(kartShell, bodyHull.geometry, olive, 'Kart.BodyShell.Main', [0, 0, 0], null, null);\n\nconst wheelAssembly = new THREE.Group();\nwheelAssembly.name = 'Kart.WheelAssembly';\nkart.add(wheelAssembly);\n\nfor (let side = -1; side <= 1; side += 2) {\n  for (let axle = 0; axle < 2; axle++) {\n    const z = axle === 0 ? 0.49 : -0.48;\n    const x = side * 0.59;\n    const wheelName = `Kart.Wheel.${side < 0 ? 'Left' : 'Right'}.${axle === 0 ? 'Front' : 'Rear'}`;\n    cylinder(wheelAssembly, `${wheelName}.Tire`, black, 0.235, 0.235, 0.15, [x, 0.27, z], [0, 0, Math.PI / 2], 20);\n    cylinder(wheelAssembly, `${wheelName}.Hub`, steel, 0.112, 0.112, 0.158, [x, 0.27, z], [0, 0, Math.PI / 2], 16);\n    cylinder(wheelAssembly, `${wheelName}.HubInset`, olive, 0.061, 0.061, 0.165, [x + side * 0.006, 0.27, z], [0, 0, Math.PI / 2], 12);\n    cylinder(wheelAssembly, `${wheelName}.AxleCap`, black, 0.031, 0.031, 0.18, [x + side * 0.01, 0.27, z], [0, 0, Math.PI / 2], 10);\n  }\n}\n\nconst chassis = new THREE.Group();\nchassis.name = 'Kart.ChassisAndCockpit';\nkart.add(chassis);\nbox(chassis, 'Kart.Underslung.Chassis', black, [0.77, 0.13, 1.17], [0, 0.37, 0.02]);\nbox(chassis, 'Kart.Seat.Base', black, [0.42, 0.12, 0.40], [0, 0.59, -0.18]);\nbox(chassis, 'Kart.Seat.Cushion', red, [0.36, 0.12, 0.31], [0, 0.67, -0.18], [-0.12, 0, 0]);\nbox(chassis, 'Kart.Seat.Back', black, [0.39, 0.39, 0.12], [0, 0.79, -0.38], [-0.16, 0, 0]);\nbox(chassis, 'Kart.Rear.EngineBlock', black, [0.42, 0.23, 0.29], [0, 0.55, -0.62]);\nbox(chassis, 'Kart.Rear.EngineTop', steel, [0.29, 0.045, 0.18], [0, 0.69, -0.62]);\nfor (let i = 0; i < 3; i++) {\n  box(chassis, `Kart.EngineVent.${i + 1}`, cyan, [0.27, 0.018, 0.025], [0, 0.72 + i * 0.025, -0.62]);\n}\n\nconst controls = new THREE.Group();\ncontrols.name = 'Kart.Controls';\nkart.add(controls);\ncylinder(controls, 'Kart.Steering.Column', steel, 0.025, 0.025, 0.28, [0, 0.79, 0.11], [0.35, 0, 0], 10);\naddMesh(\n  controls,\n  new THREE.TorusGeometry(0.17, 0.025, 8, 20),\n  black,\n  'Kart.SteeringWheel',\n  [0, 0.91, 0.16],\n  [Math.PI / 2 - 0.28, 0, 0],\n  [1, 0.83, 1]\n);\nbox(controls, 'Kart.Steering.Center', olive, [0.085, 0.055, 0.055], [0, 0.91, 0.16]);\n\nconst aero = new THREE.Group();\naero.name = 'Kart.AeroDetails';\nkart.add(aero);\nbox(aero, 'Kart.Front.Bumper', black, [0.94, 0.09, 0.12], [0, 0.36, 0.78]);\nbox(aero, 'Kart.Front.Bumper.CyanInlay', cyan, [0.55, 0.018, 0.014], [0, 0.411, 0.82]);\nbox(aero, 'Kart.Rear.Bumper', black, [0.86, 0.09, 0.11], [0, 0.38, -0.79]);\n\nfor (let side = -1; side <= 1; side += 2) {\n  box(aero, `Kart.SideSkirt.${side < 0 ? 'Left' : 'Right'}`, black, [0.08, 0.10, 0.82], [side * 0.48, 0.40, -0.02]);\n  box(aero, `Kart.SideSkirt.CyanEdge.${side < 0 ? 'Left' : 'Right'}`, cyan, [0.025, 0.025, 0.70], [side * 0.525, 0.39, -0.015]);\n  for (let i = 0; i < 4; i++) {\n    const z = 0.25 - i * 0.18;\n    const tooth = cylinder(aero, `Kart.SerratedEdge.${side < 0 ? 'Left' : 'Right'}.${i + 1}`, olive, 0.045, 0.045, 0.10, [side * 0.50, 0.37, z], [Math.PI / 2, 0, 0], 3);\n    tooth.rotation.set(Math.PI / 2, 0, Math.PI / 2);\n  }\n  box(aero, `Kart.RearWing.Support.${side < 0 ? 'Left' : 'Right'}`, steel, [0.045, 0.24, 0.045], [side * 0.27, 0.72, -0.67], [-0.12, 0, 0]);\n}\nbox(aero, 'Kart.RearWing', black, [0.76, 0.075, 0.20], [0, 0.84, -0.68], [-0.08, 0, 0]);\nbox(aero, 'Kart.RearWing.CyanLip', cyan, [0.63, 0.022, 0.025], [0, 0.80, -0.77]);\nfor (let side = -1; side <= 1; side += 2) {\n  sphere(aero, `Kart.FrontLamp.${side < 0 ? 'Left' : 'Right'}`, cyan, [side * 0.31, 0.56, 0.705], [0.10, 0.047, 0.035], 12, 8);\n}\nsphere(aero, 'Kart.Signature.Emblem', magenta, [0, 0.706, 0.46], [0.055, 0.025, 0.026], 12, 8);\nfor (let side = -1; side <= 1; side += 2) {\n  cylinder(aero, `Kart.Exhaust.${side < 0 ? 'Left' : 'Right'}`, steel, 0.055, 0.055, 0.15, [side * 0.28, 0.47, -0.70], [Math.PI / 2, 0, 0], 12);\n}\n\nconst rider = new THREE.Group();\nrider.name = 'Rider';\nrider.position.set(1.25, 0, 0);\ngroup.add(rider);\n\nconst outfit = new THREE.Group();\noutfit.name = 'Rider.RacingSuit';\nrider.add(outfit);\n\nsphere(outfit, 'Rider.Torso.RedSuit', red, [0, 1.07, 0], [0.28, 0.37, 0.22]);\nsphere(outfit, 'Rider.Overalls.Bib', blue, [0, 0.99, 0.173], [0.205, 0.25, 0.065]);\nbox(outfit, 'Rider.Overalls.Strap.Left', blue, [0.075, 0.29, 0.075], [-0.15, 1.19, 0.12], [0, 0, -0.14]);\nbox(outfit, 'Rider.Overalls.Strap.Right', blue, [0.075, 0.29, 0.075], [0.15, 1.19, 0.12], [0, 0, 0.14]);\nfor (let side = -1; side <= 1; side += 2) {\n  sphere(outfit, `Rider.OverallButton.${side < 0 ? 'Left' : 'Right'}`, steel, [side * 0.13, 1.23, 0.193], [0.035, 0.035, 0.022], 10, 8);\n  sphere(outfit, `Rider.Glove.${side < 0 ? 'Left' : 'Right'}`, white, [side * 0.39, 1.08, 0.32], [0.105, 0.095, 0.11]);\n  cylinder(outfit, `Rider.Arm.RedSleeve.${side < 0 ? 'Left' : 'Right'}`, red, 0.095, 0.12, 0.38, [side * 0.29, 1.13, 0.13], [0, 0, side * 0.62], 12);\n  sphere(outfit, `Rider.Elbow.${side < 0 ? 'Left' : 'Right'}`, red, [side * 0.38, 1.00, 0.24], [0.105, 0.10, 0.11]);\n  box(outfit, `Rider.Glove.Cuff.${side < 0 ? 'Left' : 'Right'}`, white, [0.13, 0.075, 0.11], [side * 0.39, 1.08, 0.25], [0, 0, side * 0.15]);\n  cylinder(outfit, `Rider.PantLeg.${side < 0 ? 'Left' : 'Right'}`, blue, 0.13, 0.16, 0.43, [side * 0.145, 0.49, 0], [0, 0, side * 0.05], 12);\n  sphere(outfit, `Rider.Boot.${side < 0 ? 'Left' : 'Right'}`, brown, [side * 0.16, 0.13, 0.12], [0.16, 0.12, 0.24]);\n  box(outfit, `Rider.BootSole.${side < 0 ? 'Left' : 'Right'}`, black, [0.29, 0.045, 0.34], [side * 0.16, 0.045, 0.13]);\n}\n\nconst head = new THREE.Group();\nhead.name = 'Rider.Head';\nhead.position.set(0, 1.52, 0.015);\nrider.add(head);\nsphere(head, 'Rider.Head.Face', skin, [0, 0, 0.01], [0.235, 0.255, 0.205]);\nsphere(head, 'Rider.Ear.Left', skin, [-0.225, -0.01, 0.0], [0.065, 0.09, 0.07], 12, 8);\nsphere(head, 'Rider.Ear.Right', skin, [0.225, -0.01, 0.0], [0.065, 0.09, 0.07], 12, 8);\nfor (let side = -1; side <= 1; side += 2) {\n  sphere(head, `Rider.Eye.White.${side < 0 ? 'Left' : 'Right'}`, white, [side * 0.082, 0.055, 0.181], [0.052, 0.072, 0.027], 12, 8);\n  sphere(head, `Rider.Eye.Pupil.${side < 0 ? 'Left' : 'Right'}`, eyeMat, [side * 0.078, 0.05, 0.205], [0.021, 0.037, 0.012], 10, 8);\n}\nsphere(head, 'Rider.Nose', skin, [0, -0.045, 0.219], [0.083, 0.075, 0.075], 14, 10);\nsphere(head, 'Rider.Mustache.Left', mustacheMat, [-0.088, -0.13, 0.205], [0.10, 0.055, 0.045], 12, 8);\nsphere(head, 'Rider.Mustache.Right', mustacheMat, [0.088, -0.13, 0.205], [0.10, 0.055, 0.045], 12, 8);\nsphere(head, 'Rider.Hair.Back', mustacheMat, [0, -0.12, -0.12], [0.21, 0.15, 0.10]);\n\nconst cap = new THREE.Group();\ncap.name = 'Rider.RacingCap';\nhead.add(cap);\nsphere(cap, 'Rider.Cap.Crown', red, [0, 0.205, -0.015], [0.25, 0.15, 0.22], 16, 10);\nbox(cap, 'Rider.Cap.Bill', red, [0.39, 0.045, 0.22], [0, 0.145, 0.16], [0.04, 0, 0]);\nsphere(cap, 'Rider.Cap.FrontBadge', white, [0, 0.218, 0.194], [0.073, 0.065, 0.018], 12, 8);\nsphere(cap, 'Rider.Cap.SignaturePin', magenta, [0.16, 0.24, 0.11], [0.026, 0.026, 0.022], 10, 8);\n\nreturn group;","thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-10-mvnf7wbx-zo41j-s1.png"}],"glbUrl":null}