{"version":1,"record":{"id":"gen-agent-2-mvnf7vjt-zyaam","agentId":"agent-2","agentName":"Big Blue","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 = 'MarioStyleKartAndRider';\n\nSCENE.setLighting({\n  hemi: { sky: '#fff0d5', ground: '#302821', intensity: 0.62 },\n  sun: { color: '#ffd09a', intensity: 2.2, position: [-6, 8, 5] },\n  ambient: { color: '#ffffff', intensity: 0.28 },\n  shadows: true\n});\nSCENE.setExposure(1.05);\n\nconst mat = (name, color, roughness, metalness = 0) => {\n  const m = new THREE.MeshStandardMaterial({ color, roughness, metalness });\n  m.name = name;\n  return m;\n};\n\nconst red = mat('RacingRed', 0xf9250d, 0.34);\nconst deepTeal = mat('DeepTeal', 0x12595b, 0.4, 0);\nconst copper = mat('SoftCopper', 0xb8733d, 0.32, 1);\nconst purple = mat('VioletAccent', 0x773e72, 0.4);\nconst blue = mat('RacingBlue', 0x1676c0, 0.38);\nconst blueDark = mat('OverallBlue', 0x164f91, 0.48);\nconst tire = mat('TireRubber', 0x202326, 0.92);\nconst charcoal = mat('Charcoal', 0x252a2d, 0.55);\nconst white = mat('WarmWhite', 0xf4eee0, 0.55);\nconst gold = mat('BadgeGold', 0xffc64a, 0.38, 0);\nconst skin = mat('WarmSkin', 0xd99664, 0.68);\nconst black = mat('MustacheBlack', 0x211b1a, 0.85);\nconst brown = mat('BootBrown', 0x58331f, 0.75);\n\nfunction addMesh(parent, geometry, material, name, position, rotation = [0, 0, 0], scale = [1, 1, 1]) {\n  const mesh = new THREE.Mesh(geometry, material);\n  mesh.name = name;\n  mesh.position.set(position[0], position[1], position[2]);\n  mesh.rotation.set(rotation[0], rotation[1], rotation[2]);\n  mesh.scale.set(scale[0], scale[1], scale[2]);\n  parent.add(mesh);\n  return mesh;\n}\n\nfunction addBetween(parent, material, name, a, b, radius, radialSegments = 10) {\n  const start = new THREE.Vector3(a[0], a[1], a[2]);\n  const end = new THREE.Vector3(b[0], b[1], b[2]);\n  const direction = end.clone().sub(start);\n  const length = direction.length();\n  const mesh = new THREE.Mesh(new THREE.CylinderGeometry(radius, radius, 1, radialSegments), material);\n  mesh.name = name;\n  mesh.position.copy(start.add(end).multiplyScalar(0.5));\n  mesh.quaternion.setFromUnitVectors(new THREE.Vector3(0, 1, 0), direction.normalize());\n  mesh.scale.set(1, length, 1);\n  parent.add(mesh);\n  return mesh;\n}\n\nconst kart = new THREE.Group();\nkart.name = 'Kart';\nkart.position.set(-0.78, 0, 0.12);\ngroup.add(kart);\n\nconst shellGeometry = new THREE.SphereGeometry(1, 24, 16);\naddMesh(kart, shellGeometry, red, 'Kart.BodyShell', [0, 0.76, 0], [0, 0, 0], [0.46, 0.19, 0.74]);\n\naddMesh(\n  kart,\n  GEO.buildFilletedSolid(0.78, 0.11, 0.98, 0.045),\n  deepTeal,\n  'Kart.LowerChassis',\n  [0, 0.58, -0.02]\n);\n\naddMesh(kart, GEO.buildFilletedSolid(0.27, 0.23, 0.34, 0.045), copper, 'Kart.AsymmetricEnginePod', [-0.27, 0.91, -0.36]);\naddMesh(kart, new THREE.CylinderGeometry(0.055, 0.07, 0.17, 12), copper, 'Kart.EngineExhaust', [-0.27, 0.88, -0.57], [Math.PI / 2, 0, 0]);\naddMesh(kart, new THREE.BoxGeometry(0.40, 0.035, 0.045), purple, 'Kart.EnginePodStripe', [-0.27, 0.92, -0.33]);\n\naddMesh(kart, new THREE.BoxGeometry(0.96, 0.075, 0.10), copper, 'Kart.FrontBumper', [0, 0.57, 0.77]);\naddMesh(kart, new THREE.BoxGeometry(0.88, 0.06, 0.09), copper, 'Kart.RearBumper', [0, 0.56, -0.77]);\n\naddMesh(kart, new THREE.BoxGeometry(0.25, 0.07, 0.24), charcoal, 'Kart.SeatBase', [0, 0.88, -0.16]);\naddMesh(kart, new THREE.BoxGeometry(0.25, 0.29, 0.075), deepTeal, 'Kart.SeatBack', [0, 1.04, -0.30]);\naddMesh(kart, new THREE.BoxGeometry(0.17, 0.035, 0.018), purple, 'Kart.SeatBackInlay', [0, 1.05, -0.255]);\n\naddMesh(kart, new THREE.BoxGeometry(0.82, 0.045, 0.28), deepTeal, 'Kart.RightCantileverPod', [0.43, 0.66, -0.03]);\naddMesh(kart, new THREE.BoxGeometry(0.038, 0.06, 0.18), copper, 'Kart.RightCantileverTrim', [0.84, 0.67, -0.02]);\n\nfor (const side of [-1, 1]) {\n  for (let i = 0; i < 3; i++) {\n    const z = 0.18 - i * 0.12;\n    addMesh(kart, new THREE.BoxGeometry(0.016, 0.034, 0.075), charcoal, `Kart.SideVent.${side < 0 ? 'Left' : 'Right'}.${i + 1}`, [side * 0.444, 0.73, z]);\n  }\n}\n\nconst wheelPositions = [\n  [-0.54, 0.60, 0.47],\n  [0.54, 0.60, 0.47],\n  [-0.54, 0.60, -0.48],\n  [0.54, 0.60, -0.48]\n];\n\nwheelPositions.forEach((p, i) => {\n  const wheel = new THREE.Group();\n  wheel.name = `Kart.WheelAssembly.${i + 1}`;\n  wheel.position.set(p[0], p[1], p[2]);\n  kart.add(wheel);\n  addMesh(wheel, new THREE.CylinderGeometry(0.18, 0.18, 0.145, 18), tire, `Kart.WheelAssembly.${i + 1}.Tire`, [0, 0, 0], [0, 0, Math.PI / 2]);\n  addMesh(wheel, new THREE.TorusGeometry(0.119, 0.022, 8, 16), copper, `Kart.WheelAssembly.${i + 1}.RimRing`, [0, 0, 0], [0, Math.PI / 2, 0]);\n  addMesh(wheel, new THREE.CylinderGeometry(0.084, 0.084, 0.15, 14), deepTeal, `Kart.WheelAssembly.${i + 1}.Hub`, [0, 0, 0], [0, 0, Math.PI / 2]);\n  addMesh(wheel, new THREE.CylinderGeometry(0.035, 0.035, 0.16, 12), copper, `Kart.WheelAssembly.${i + 1}.AxleCap`, [0, 0, 0], [0, 0, Math.PI / 2]);\n  for (let bolt = 0; bolt < 4; bolt++) {\n    const angle = (bolt / 4) * Math.PI * 2;\n    addMesh(\n      wheel,\n      new THREE.SphereGeometry(0.012, 8, 6),\n      gold,\n      `Kart.WheelAssembly.${i + 1}.HubBolt.${bolt + 1}`,\n      [0.078 * Math.cos(angle), 0.078 * Math.sin(angle), 0.078]\n    );\n  }\n});\n\naddBetween(kart, copper, 'Kart.SteeringColumn', [0, 0.80, 0.24], [0, 1.00, 0.32], 0.022, 10);\naddMesh(kart, new THREE.TorusGeometry(0.13, 0.018, 8, 20), charcoal, 'Kart.SteeringWheel', [0, 1.00, 0.33]);\naddMesh(kart, new THREE.BoxGeometry(0.022, 0.15, 0.026), copper, 'Kart.SteeringSpoke', [0, 1.00, 0.33]);\n\naddMesh(kart, new THREE.SphereGeometry(0.115, 12, 8), gold, 'Kart.HoodBadge', [0, 0.925, 0.42], [Math.PI / 2, 0, 0], [1, 1, 0.18]);\nconst starShape = new THREE.Shape();\nfor (let i = 0; i < 10; i++) {\n  const a = Math.PI / 2 + (i * Math.PI) / 5;\n  const r = i % 2 === 0 ? 0.075 : 0.034;\n  const x = Math.cos(a) * r;\n  const y = Math.sin(a) * r;\n  if (i === 0) starShape.moveTo(x, y);\n  else starShape.lineTo(x, y);\n}\nstarShape.closePath();\naddMesh(kart, new THREE.ShapeGeometry(starShape), gold, 'Kart.HoodStar', [0, 0.929, 0.438]);\n\naddMesh(kart, new THREE.BoxGeometry(0.035, 0.015, 0.54), blue, 'Kart.SignatureBlueInlay', [0.29, 0.942, -0.01]);\naddMesh(kart, new THREE.BoxGeometry(0.12, 0.025, 0.07), purple, 'Kart.PurpleNoseAccent', [0, 0.90, 0.60]);\n\nconst rider = new THREE.Group();\nrider.name = 'Rider';\nrider.position.set(0.86, 0, -0.08);\ngroup.add(rider);\n\naddMesh(rider, new THREE.SphereGeometry(0.23, 16, 12), blueDark, 'Rider.Jumpsuit.Torso', [0, 1.38, 0], [0.06, 0, 0], [0.82, 1.12, 0.62]);\naddMesh(rider, new THREE.BoxGeometry(0.24, 0.24, 0.045), blue, 'Rider.Jumpsuit.FrontBib', [0, 1.38, 0.132]);\naddMesh(rider, new THREE.BoxGeometry(0.055, 0.31, 0.045), blue, 'Rider.Jumpsuit.LeftOverallStrap', [-0.105, 1.48, 0.12], [0, 0, -0.16]);\naddMesh(rider, new THREE.BoxGeometry(0.055, 0.31, 0.045), blue, 'Rider.Jumpsuit.RightOverallStrap', [0.105, 1.48, 0.12], [0, 0, 0.16]);\naddMesh(rider, new THREE.SphereGeometry(0.028, 10, 8), gold, 'Rider.Jumpsuit.LeftButton', [-0.09, 1.55, 0.151]);\naddMesh(rider, new THREE.SphereGeometry(0.028, 10, 8), gold, 'Rider.Jumpsuit.RightButton', [0.09, 1.55, 0.151]);\naddMesh(rider, new THREE.BoxGeometry(0.30, 0.055, 0.065), red, 'Rider.Jumpsuit.Collar', [0, 1.57, 0.035]);\n\naddBetween(rider, blueDark, 'Rider.Legs.LeftThigh', [-0.12, 1.14, 0], [-0.18, 0.83, 0.04], 0.105);\naddBetween(rider, blueDark, 'Rider.Legs.LeftShin', [-0.18, 0.83, 0.04], [-0.23, 0.55, 0.12], 0.085);\naddBetween(rider, blueDark, 'Rider.Legs.RightThigh', [0.12, 1.14, 0], [0.18, 0.83, 0.04], 0.105);\naddBetween(rider, blueDark, 'Rider.Legs.RightShin', [0.18, 0.83, 0.04], [0.23, 0.55, 0.12], 0.085);\naddMesh(rider, new THREE.SphereGeometry(0.12, 12, 8), brown, 'Rider.Boots.Left', [-0.23, 0.47, 0.17], [0, 0, 0.05], [1.2, 0.58, 1.5]);\naddMesh(rider, new THREE.SphereGeometry(0.12, 12, 8), brown, 'Rider.Boots.Right', [0.23, 0.47, 0.17], [0, 0, -0.05], [1.2, 0.58, 1.5]);\naddMesh(rider, new THREE.BoxGeometry(0.19, 0.025, 0.08), copper, 'Rider.Boots.LeftSole', [-0.23, 0.405, 0.19]);\naddMesh(rider, new THREE.BoxGeometry(0.19, 0.025, 0.08), copper, 'Rider.Boots.RightSole', [0.23, 0.405, 0.19]);\n\naddBetween(rider, red, 'Rider.Arms.LeftUpperSleeve', [-0.18, 1.53, 0.01], [-0.34, 1.39, 0.10], 0.09);\naddBetween(rider, red, 'Rider.Arms.LeftForeSleeve', [-0.34, 1.39, 0.10], [-0.29, 1.22, 0.23], 0.075);\naddBetween(rider, red, 'Rider.Arms.RightUpperSleeve', [0.18, 1.53, 0.01], [0.34, 1.39, 0.10], 0.09);\naddBetween(rider, red, 'Rider.Arms.RightForeSleeve', [0.34, 1.39, 0.10], [0.29, 1.22, 0.23], 0.075);\naddMesh(rider, new THREE.SphereGeometry(0.09, 12, 8), white, 'Rider.Gloves.Left', [-0.29, 1.19, 0.24], [0, 0, 0], [1.15, 0.9, 1]);\naddMesh(rider, new THREE.SphereGeometry(0.09, 12, 8), white, 'Rider.Gloves.Right', [0.29, 1.19, 0.24], [0, 0, 0], [1.15, 0.9, 1]);\n\naddMesh(rider, new THREE.CylinderGeometry(0.07, 0.09, 0.14, 12), skin, 'Rider.Neck', [0, 1.68, 0]);\naddMesh(rider, new THREE.SphereGeometry(0.25, 18, 14), skin, 'Rider.Head', [0, 1.91, 0.015], [0, 0, 0], [0.88, 1.03, 0.82]);\naddMesh(rider, new THREE.SphereGeometry(0.052, 10, 8), skin, 'Rider.Ear.Left', [-0.214, 1.91, 0.04]);\naddMesh(rider, new THREE.SphereGeometry(0.052, 10, 8), skin, 'Rider.Ear.Right', [0.214, 1.91, 0.04]);\naddMesh(rider, new THREE.SphereGeometry(0.061, 12, 8), skin, 'Rider.Nose', [0, 1.88, 0.211], [0, 0, 0], [1, 0.8, 0.9]);\n\nfor (const side of [-1, 1]) {\n  addMesh(rider, new THREE.SphereGeometry(0.035, 10, 8), white, `Rider.Face.EyeWhite.${side < 0 ? 'Left' : 'Right'}`, [side * 0.082, 1.97, 0.197], [0, 0, 0], [0.75, 1.1, 0.45]);\n  addMesh(rider, new THREE.SphereGeometry(0.018, 8, 6), charcoal, `Rider.Face.Pupil.${side < 0 ? 'Left' : 'Right'}`, [side * 0.078, 1.971, 0.214]);\n  addMesh(rider, new THREE.SphereGeometry(0.075, 12, 8), black, `Rider.Mustache.${side < 0 ? 'Left' : 'Right'}`, [side * 0.085, 1.82, 0.214], [0, 0, side * 0.18], [1.15, 0.58, 0.55]);\n}\naddMesh(rider, new THREE.SphereGeometry(0.055, 10, 8), black, 'Rider.Mustache.Center', [0, 1.82, 0.22], [0, 0, 0], [1.1, 0.5, 0.55]);\n\naddMesh(rider, new THREE.SphereGeometry(0.25, 16, 12), red, 'Rider.Cap.Crown', [0, 2.12, -0.005], [0, 0, 0], [1.08, 0.55, 0.91]);\naddMesh(rider, new THREE.SphereGeometry(0.22, 14, 10), red, 'Rider.Cap.Bill', [0, 2.045, 0.13], [0.10, 0, 0], [1.14, 0.24, 0.83]);\naddMesh(rider, new THREE.CylinderGeometry(0.074, 0.074, 0.025, 16), white, 'Rider.Cap.EmblemDisk', [0, 2.13, 0.212], [Math.PI / 2, 0, 0]);\naddMesh(rider, new THREE.BoxGeometry(0.026, 0.09, 0.012), red, 'Rider.Cap.Emblem.M.Center', [0, 2.13, 0.23]);\naddMesh(rider, new THREE.BoxGeometry(0.025, 0.085, 0.012), red, 'Rider.Cap.Emblem.M.Left', [-0.023, 2.13, 0.23], [0, 0, -0.37]);\naddMesh(rider, new THREE.BoxGeometry(0.025, 0.085, 0.012), red, 'Rider.Cap.Emblem.M.Right', [0.023, 2.13, 0.23], [0, 0, 0.37]);\n\naddMesh(rider, new THREE.BoxGeometry(0.12, 0.025, 0.016), purple, 'Rider.Jumpsuit.PurpleChestMark', [0, 1.43, 0.16]);\naddMesh(rider, new THREE.BoxGeometry(0.018, 0.10, 0.018), blue, 'Rider.Jumpsuit.SignatureBlueTab', [0.155, 1.32, 0.13]);\n\nreturn group;","tone":{"lighting":{"hemi":{"sky":"#fff0d5","ground":"#302821","intensity":0.62},"sun":{"color":"#ffd09a","intensity":2.2,"position":[-6,8,5]},"ambient":{"color":"#ffffff","intensity":0.28}},"shadows":true,"toneMapping":"aces","exposure":1.05},"animations":[],"usage":{"requests":3,"generations":0,"promptTokens":135425,"completionTokens":47192,"totalTokens":182617,"cost":0.0333628416,"activeMs":0,"ratingSum":0,"ratingCount":0,"judgeCost":0},"startedAt":1792908146297,"completedAt":1792908397018,"durationMs":250721,"report":"Parts: 98 meshes, 10764 triangles. Size: 2.71 x 1.87 x 1.64 (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-2-mvnf7vjt-zyaam-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":50245},{"scores":{"silhouette":7,"proportion":5,"detail":6,"materials":6,"assembly":6,"readability":6},"average":6,"notes":"The red kart and Mario-styled rider are immediately recognizable, with a strong color scheme and clear separation for splitting. The rider stands unusually large beside a very low kart rather than sitting in it, and the kart’s flattened body and sparse visible mechanics make the pairing feel less integrated.","model":"openai/gpt-6-luna","label":"GPT-6 Luna","usage":{"prompt_tokens":6718,"completion_tokens":402,"total_tokens":7120,"cost":0.00103026825,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"cache_write_tokens":6715,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":0.001040675,"upstream_inference_prompt_cost":0.000839675,"upstream_inference_completions_cost":0.000201},"completion_tokens_details":{"reasoning_tokens":309,"image_tokens":0,"audio_tokens":0}},"durationMs":5713},{"scores":{"silhouette":7,"proportion":6,"detail":6,"materials":6,"assembly":6,"readability":7},"average":6.333333333333333,"notes":"The rider reads clearly as a Mario-style character in red cap and blue overalls, and the red mushroom-like kart body is distinctive, though the kart reads more as a blob than a crafted racer. The kart is cramped with floating-looking pods and a dark, dim render, and the rider's head and cap sit a bit oversized relative to the body.","model":"anthropic/claude-haiku-5.5","label":"Claude Haiku 5.5","usage":{"prompt_tokens":9100,"completion_tokens":166,"total_tokens":9266,"cost":0.00098307,"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.000993,"upstream_inference_prompt_cost":0.00091,"upstream_inference_completions_cost":0.000083},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0,"audio_tokens":0}},"durationMs":1844}],"score":6.166666666666666,"cost":0.00201333825,"tokens":16386,"at":1792908447550},"thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-2-mvnf7vjt-zyaam.png"},"slices":[{"id":"gen-agent-2-mvnf7vjt-zyaam-s1","index":1,"summary":"Single shot","final":false,"code":"const group = new THREE.Group();\ngroup.name = 'MarioStyleKartAndRider';\n\nSCENE.setLighting({\n  hemi: { sky: '#fff0d5', ground: '#302821', intensity: 0.62 },\n  sun: { color: '#ffd09a', intensity: 2.2, position: [-6, 8, 5] },\n  ambient: { color: '#ffffff', intensity: 0.28 },\n  shadows: true\n});\nSCENE.setExposure(1.05);\n\nconst mat = (name, color, roughness, metalness = 0) => {\n  const m = new THREE.MeshStandardMaterial({ color, roughness, metalness });\n  m.name = name;\n  return m;\n};\n\nconst red = mat('RacingRed', 0xf9250d, 0.34);\nconst deepTeal = mat('DeepTeal', 0x12595b, 0.4, 0);\nconst copper = mat('SoftCopper', 0xb8733d, 0.32, 1);\nconst purple = mat('VioletAccent', 0x773e72, 0.4);\nconst blue = mat('RacingBlue', 0x1676c0, 0.38);\nconst blueDark = mat('OverallBlue', 0x164f91, 0.48);\nconst tire = mat('TireRubber', 0x202326, 0.92);\nconst charcoal = mat('Charcoal', 0x252a2d, 0.55);\nconst white = mat('WarmWhite', 0xf4eee0, 0.55);\nconst gold = mat('BadgeGold', 0xffc64a, 0.38, 0);\nconst skin = mat('WarmSkin', 0xd99664, 0.68);\nconst black = mat('MustacheBlack', 0x211b1a, 0.85);\nconst brown = mat('BootBrown', 0x58331f, 0.75);\n\nfunction addMesh(parent, geometry, material, name, position, rotation = [0, 0, 0], scale = [1, 1, 1]) {\n  const mesh = new THREE.Mesh(geometry, material);\n  mesh.name = name;\n  mesh.position.set(position[0], position[1], position[2]);\n  mesh.rotation.set(rotation[0], rotation[1], rotation[2]);\n  mesh.scale.set(scale[0], scale[1], scale[2]);\n  parent.add(mesh);\n  return mesh;\n}\n\nfunction addBetween(parent, material, name, a, b, radius, radialSegments = 10) {\n  const start = new THREE.Vector3(a[0], a[1], a[2]);\n  const end = new THREE.Vector3(b[0], b[1], b[2]);\n  const direction = end.clone().sub(start);\n  const length = direction.length();\n  const mesh = new THREE.Mesh(new THREE.CylinderGeometry(radius, radius, 1, radialSegments), material);\n  mesh.name = name;\n  mesh.position.copy(start.add(end).multiplyScalar(0.5));\n  mesh.quaternion.setFromUnitVectors(new THREE.Vector3(0, 1, 0), direction.normalize());\n  mesh.scale.set(1, length, 1);\n  parent.add(mesh);\n  return mesh;\n}\n\nconst kart = new THREE.Group();\nkart.name = 'Kart';\nkart.position.set(-0.78, 0, 0.12);\ngroup.add(kart);\n\nconst shellGeometry = new THREE.SphereGeometry(1, 24, 16);\naddMesh(kart, shellGeometry, red, 'Kart.BodyShell', [0, 0.76, 0], [0, 0, 0], [0.46, 0.19, 0.74]);\n\naddMesh(\n  kart,\n  GEO.buildFilletedSolid(0.78, 0.11, 0.98, 0.045),\n  deepTeal,\n  'Kart.LowerChassis',\n  [0, 0.58, -0.02]\n);\n\naddMesh(kart, GEO.buildFilletedSolid(0.27, 0.23, 0.34, 0.045), copper, 'Kart.AsymmetricEnginePod', [-0.27, 0.91, -0.36]);\naddMesh(kart, new THREE.CylinderGeometry(0.055, 0.07, 0.17, 12), copper, 'Kart.EngineExhaust', [-0.27, 0.88, -0.57], [Math.PI / 2, 0, 0]);\naddMesh(kart, new THREE.BoxGeometry(0.40, 0.035, 0.045), purple, 'Kart.EnginePodStripe', [-0.27, 0.92, -0.33]);\n\naddMesh(kart, new THREE.BoxGeometry(0.96, 0.075, 0.10), copper, 'Kart.FrontBumper', [0, 0.57, 0.77]);\naddMesh(kart, new THREE.BoxGeometry(0.88, 0.06, 0.09), copper, 'Kart.RearBumper', [0, 0.56, -0.77]);\n\naddMesh(kart, new THREE.BoxGeometry(0.25, 0.07, 0.24), charcoal, 'Kart.SeatBase', [0, 0.88, -0.16]);\naddMesh(kart, new THREE.BoxGeometry(0.25, 0.29, 0.075), deepTeal, 'Kart.SeatBack', [0, 1.04, -0.30]);\naddMesh(kart, new THREE.BoxGeometry(0.17, 0.035, 0.018), purple, 'Kart.SeatBackInlay', [0, 1.05, -0.255]);\n\naddMesh(kart, new THREE.BoxGeometry(0.82, 0.045, 0.28), deepTeal, 'Kart.RightCantileverPod', [0.43, 0.66, -0.03]);\naddMesh(kart, new THREE.BoxGeometry(0.038, 0.06, 0.18), copper, 'Kart.RightCantileverTrim', [0.84, 0.67, -0.02]);\n\nfor (const side of [-1, 1]) {\n  for (let i = 0; i < 3; i++) {\n    const z = 0.18 - i * 0.12;\n    addMesh(kart, new THREE.BoxGeometry(0.016, 0.034, 0.075), charcoal, `Kart.SideVent.${side < 0 ? 'Left' : 'Right'}.${i + 1}`, [side * 0.444, 0.73, z]);\n  }\n}\n\nconst wheelPositions = [\n  [-0.54, 0.60, 0.47],\n  [0.54, 0.60, 0.47],\n  [-0.54, 0.60, -0.48],\n  [0.54, 0.60, -0.48]\n];\n\nwheelPositions.forEach((p, i) => {\n  const wheel = new THREE.Group();\n  wheel.name = `Kart.WheelAssembly.${i + 1}`;\n  wheel.position.set(p[0], p[1], p[2]);\n  kart.add(wheel);\n  addMesh(wheel, new THREE.CylinderGeometry(0.18, 0.18, 0.145, 18), tire, `Kart.WheelAssembly.${i + 1}.Tire`, [0, 0, 0], [0, 0, Math.PI / 2]);\n  addMesh(wheel, new THREE.TorusGeometry(0.119, 0.022, 8, 16), copper, `Kart.WheelAssembly.${i + 1}.RimRing`, [0, 0, 0], [0, Math.PI / 2, 0]);\n  addMesh(wheel, new THREE.CylinderGeometry(0.084, 0.084, 0.15, 14), deepTeal, `Kart.WheelAssembly.${i + 1}.Hub`, [0, 0, 0], [0, 0, Math.PI / 2]);\n  addMesh(wheel, new THREE.CylinderGeometry(0.035, 0.035, 0.16, 12), copper, `Kart.WheelAssembly.${i + 1}.AxleCap`, [0, 0, 0], [0, 0, Math.PI / 2]);\n  for (let bolt = 0; bolt < 4; bolt++) {\n    const angle = (bolt / 4) * Math.PI * 2;\n    addMesh(\n      wheel,\n      new THREE.SphereGeometry(0.012, 8, 6),\n      gold,\n      `Kart.WheelAssembly.${i + 1}.HubBolt.${bolt + 1}`,\n      [0.078 * Math.cos(angle), 0.078 * Math.sin(angle), 0.078]\n    );\n  }\n});\n\naddBetween(kart, copper, 'Kart.SteeringColumn', [0, 0.80, 0.24], [0, 1.00, 0.32], 0.022, 10);\naddMesh(kart, new THREE.TorusGeometry(0.13, 0.018, 8, 20), charcoal, 'Kart.SteeringWheel', [0, 1.00, 0.33]);\naddMesh(kart, new THREE.BoxGeometry(0.022, 0.15, 0.026), copper, 'Kart.SteeringSpoke', [0, 1.00, 0.33]);\n\naddMesh(kart, new THREE.SphereGeometry(0.115, 12, 8), gold, 'Kart.HoodBadge', [0, 0.925, 0.42], [Math.PI / 2, 0, 0], [1, 1, 0.18]);\nconst starShape = new THREE.Shape();\nfor (let i = 0; i < 10; i++) {\n  const a = Math.PI / 2 + (i * Math.PI) / 5;\n  const r = i % 2 === 0 ? 0.075 : 0.034;\n  const x = Math.cos(a) * r;\n  const y = Math.sin(a) * r;\n  if (i === 0) starShape.moveTo(x, y);\n  else starShape.lineTo(x, y);\n}\nstarShape.closePath();\naddMesh(kart, new THREE.ShapeGeometry(starShape), gold, 'Kart.HoodStar', [0, 0.929, 0.438]);\n\naddMesh(kart, new THREE.BoxGeometry(0.035, 0.015, 0.54), blue, 'Kart.SignatureBlueInlay', [0.29, 0.942, -0.01]);\naddMesh(kart, new THREE.BoxGeometry(0.12, 0.025, 0.07), purple, 'Kart.PurpleNoseAccent', [0, 0.90, 0.60]);\n\nconst rider = new THREE.Group();\nrider.name = 'Rider';\nrider.position.set(0.86, 0, -0.08);\ngroup.add(rider);\n\naddMesh(rider, new THREE.SphereGeometry(0.23, 16, 12), blueDark, 'Rider.Jumpsuit.Torso', [0, 1.38, 0], [0.06, 0, 0], [0.82, 1.12, 0.62]);\naddMesh(rider, new THREE.BoxGeometry(0.24, 0.24, 0.045), blue, 'Rider.Jumpsuit.FrontBib', [0, 1.38, 0.132]);\naddMesh(rider, new THREE.BoxGeometry(0.055, 0.31, 0.045), blue, 'Rider.Jumpsuit.LeftOverallStrap', [-0.105, 1.48, 0.12], [0, 0, -0.16]);\naddMesh(rider, new THREE.BoxGeometry(0.055, 0.31, 0.045), blue, 'Rider.Jumpsuit.RightOverallStrap', [0.105, 1.48, 0.12], [0, 0, 0.16]);\naddMesh(rider, new THREE.SphereGeometry(0.028, 10, 8), gold, 'Rider.Jumpsuit.LeftButton', [-0.09, 1.55, 0.151]);\naddMesh(rider, new THREE.SphereGeometry(0.028, 10, 8), gold, 'Rider.Jumpsuit.RightButton', [0.09, 1.55, 0.151]);\naddMesh(rider, new THREE.BoxGeometry(0.30, 0.055, 0.065), red, 'Rider.Jumpsuit.Collar', [0, 1.57, 0.035]);\n\naddBetween(rider, blueDark, 'Rider.Legs.LeftThigh', [-0.12, 1.14, 0], [-0.18, 0.83, 0.04], 0.105);\naddBetween(rider, blueDark, 'Rider.Legs.LeftShin', [-0.18, 0.83, 0.04], [-0.23, 0.55, 0.12], 0.085);\naddBetween(rider, blueDark, 'Rider.Legs.RightThigh', [0.12, 1.14, 0], [0.18, 0.83, 0.04], 0.105);\naddBetween(rider, blueDark, 'Rider.Legs.RightShin', [0.18, 0.83, 0.04], [0.23, 0.55, 0.12], 0.085);\naddMesh(rider, new THREE.SphereGeometry(0.12, 12, 8), brown, 'Rider.Boots.Left', [-0.23, 0.47, 0.17], [0, 0, 0.05], [1.2, 0.58, 1.5]);\naddMesh(rider, new THREE.SphereGeometry(0.12, 12, 8), brown, 'Rider.Boots.Right', [0.23, 0.47, 0.17], [0, 0, -0.05], [1.2, 0.58, 1.5]);\naddMesh(rider, new THREE.BoxGeometry(0.19, 0.025, 0.08), copper, 'Rider.Boots.LeftSole', [-0.23, 0.405, 0.19]);\naddMesh(rider, new THREE.BoxGeometry(0.19, 0.025, 0.08), copper, 'Rider.Boots.RightSole', [0.23, 0.405, 0.19]);\n\naddBetween(rider, red, 'Rider.Arms.LeftUpperSleeve', [-0.18, 1.53, 0.01], [-0.34, 1.39, 0.10], 0.09);\naddBetween(rider, red, 'Rider.Arms.LeftForeSleeve', [-0.34, 1.39, 0.10], [-0.29, 1.22, 0.23], 0.075);\naddBetween(rider, red, 'Rider.Arms.RightUpperSleeve', [0.18, 1.53, 0.01], [0.34, 1.39, 0.10], 0.09);\naddBetween(rider, red, 'Rider.Arms.RightForeSleeve', [0.34, 1.39, 0.10], [0.29, 1.22, 0.23], 0.075);\naddMesh(rider, new THREE.SphereGeometry(0.09, 12, 8), white, 'Rider.Gloves.Left', [-0.29, 1.19, 0.24], [0, 0, 0], [1.15, 0.9, 1]);\naddMesh(rider, new THREE.SphereGeometry(0.09, 12, 8), white, 'Rider.Gloves.Right', [0.29, 1.19, 0.24], [0, 0, 0], [1.15, 0.9, 1]);\n\naddMesh(rider, new THREE.CylinderGeometry(0.07, 0.09, 0.14, 12), skin, 'Rider.Neck', [0, 1.68, 0]);\naddMesh(rider, new THREE.SphereGeometry(0.25, 18, 14), skin, 'Rider.Head', [0, 1.91, 0.015], [0, 0, 0], [0.88, 1.03, 0.82]);\naddMesh(rider, new THREE.SphereGeometry(0.052, 10, 8), skin, 'Rider.Ear.Left', [-0.214, 1.91, 0.04]);\naddMesh(rider, new THREE.SphereGeometry(0.052, 10, 8), skin, 'Rider.Ear.Right', [0.214, 1.91, 0.04]);\naddMesh(rider, new THREE.SphereGeometry(0.061, 12, 8), skin, 'Rider.Nose', [0, 1.88, 0.211], [0, 0, 0], [1, 0.8, 0.9]);\n\nfor (const side of [-1, 1]) {\n  addMesh(rider, new THREE.SphereGeometry(0.035, 10, 8), white, `Rider.Face.EyeWhite.${side < 0 ? 'Left' : 'Right'}`, [side * 0.082, 1.97, 0.197], [0, 0, 0], [0.75, 1.1, 0.45]);\n  addMesh(rider, new THREE.SphereGeometry(0.018, 8, 6), charcoal, `Rider.Face.Pupil.${side < 0 ? 'Left' : 'Right'}`, [side * 0.078, 1.971, 0.214]);\n  addMesh(rider, new THREE.SphereGeometry(0.075, 12, 8), black, `Rider.Mustache.${side < 0 ? 'Left' : 'Right'}`, [side * 0.085, 1.82, 0.214], [0, 0, side * 0.18], [1.15, 0.58, 0.55]);\n}\naddMesh(rider, new THREE.SphereGeometry(0.055, 10, 8), black, 'Rider.Mustache.Center', [0, 1.82, 0.22], [0, 0, 0], [1.1, 0.5, 0.55]);\n\naddMesh(rider, new THREE.SphereGeometry(0.25, 16, 12), red, 'Rider.Cap.Crown', [0, 2.12, -0.005], [0, 0, 0], [1.08, 0.55, 0.91]);\naddMesh(rider, new THREE.SphereGeometry(0.22, 14, 10), red, 'Rider.Cap.Bill', [0, 2.045, 0.13], [0.10, 0, 0], [1.14, 0.24, 0.83]);\naddMesh(rider, new THREE.CylinderGeometry(0.074, 0.074, 0.025, 16), white, 'Rider.Cap.EmblemDisk', [0, 2.13, 0.212], [Math.PI / 2, 0, 0]);\naddMesh(rider, new THREE.BoxGeometry(0.026, 0.09, 0.012), red, 'Rider.Cap.Emblem.M.Center', [0, 2.13, 0.23]);\naddMesh(rider, new THREE.BoxGeometry(0.025, 0.085, 0.012), red, 'Rider.Cap.Emblem.M.Left', [-0.023, 2.13, 0.23], [0, 0, -0.37]);\naddMesh(rider, new THREE.BoxGeometry(0.025, 0.085, 0.012), red, 'Rider.Cap.Emblem.M.Right', [0.023, 2.13, 0.23], [0, 0, 0.37]);\n\naddMesh(rider, new THREE.BoxGeometry(0.12, 0.025, 0.016), purple, 'Rider.Jumpsuit.PurpleChestMark', [0, 1.43, 0.16]);\naddMesh(rider, new THREE.BoxGeometry(0.018, 0.10, 0.018), blue, 'Rider.Jumpsuit.SignatureBlueTab', [0.155, 1.32, 0.13]);\n\nreturn group;","thumbUrl":"https://futurelabs.now/apps/images/u2/gen-agent-2-mvnf7vjt-zyaam-s1.png"}],"glbUrl":null}