oneshotlm
Compare all models on this prompt →

Rotating icosahedron · llama-3.1-8b-instruct

Using the pre-provided three.min.js (global THREE), render a full-screen scene with a rotating icosahedron lit by two colored point lights, orbit-style auto-rotation, and a subtle starfield background.

⚠ no runnable output

This one-shot run produced no runnable artifact.

agent produced no index.html

The transcript below shows what the model did — read it to see why the one shot fell short.

transcript · 2 messages
user

Using the pre-provided three.min.js (global THREE), render a full-screen scene with a rotating icosahedron lit by two colored point lights, orbit-style auto-rotation, and a subtle starfield background.

assistant

<write>{"content": "<html><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>WebGL Scene</title><style>body{margin: 0; background-color: #f0f0f0; }</style></head><body><script id=\"three\" src=\"three.min.js\"></script><script>var scene, camera, renderer, icosahedron, lights;\nfunction init(){\n scene = new THREE.Scene();\n camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);\n renderer = new THREE.WebGLRenderer({ antialias: true });\n renderer.setSize(window.innerWidth, window.innerHeight);\n document.body.appendChild( renderer.domElement );\n renderer.setClearColor(0xffffff, 1);\n\n lights = [\n new THREE.PointLight(0xff0000, 10, 100),\n new THREE.PointLight(0x00ff00, 10, 100)\n ];\n lights.forEach(function(light){ scene.add(light); });\n\n icosahedron = new THREE.IcosahedronGeometry( 1, 0);\n var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n var mesh = new THREE.Mesh( icosahedron, material );\n scene.add(mesh);\n\n mesh.rotation.y = Math.PI / 2;\n camera.position.z = 5;\n orbitCamera();\n\n window.addEventListener(\"resize\", onWindowResize, false);\n loop();\n}\nfunction loop(){\n requestAnimationFrame(loop);\n controls.update();\n render();\n}\nfunction render(){\n renderer.render(scene, camera);\n}\nfunction orbitCamera(){\n camera.position.x = Math.sin(Date.now() * 0.001) * 10;\n camera.position.y = Math.cos(Date.now() * 0.001) * 10;\n camera.lookAt(0, 0, 0);\n}\nfunction onWindowResize(){\n camera.aspect = window.innerWidth / window.innerHeight;\n camera.updateProjectionMatrix();\n renderer.setSize( window.innerWidth, window.innerHeight );\n}\nfunction initStarfield(){\n var geometry = new THREE.BufferGeometry();\n var material = new THREE.PointsMaterial( { color: 0xffffff, sizeAttenuation: true, size: 0.5 } );\n var particles = 10000;\n var positions = new Float32Array(particles * 3);\n for ( var i = 0; i < particles; i++ ) {\n var x = Math.random() * 2000 - 1000;\n var y = Math.random() * 2000 - 1000;\n var z = Math.random() * 2000 - 1000;\n positions[i * 3] = x;\n positions[i * 3 + 1] = y;\n positions[i * 3 + 2] = z;\n }\n geometry.addAttribute( 'position', new THREE.BufferAttribute( positions, 3 ) );\n scene.add(new THREE.Points( geometry, material ));\n}\ninitStarfield();\ninit();\n</script></body></html>", "path": "./"}}</write> <script id="controls" src="OrbitControls.min.js"></script><script>var OrbitControls = window.OrbitControls;\nvar mixer;\ninitStarfield = function(){\n controls = new OrbitControls(camera, renderer.domElement);\n controls.target.set(0, 0, 0);\n controls.update();\n}\n</script><script>init();</script> <read>{"path": "./three.min.js", "limit": 0}</read> <bash>{"command": "mkdir ./dist", "timeout": 1}</bash> <write>{"content": "<html><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><title>WebGL Scene</title><style>body{margin: 0; background-color: #f0f0f0; }</style></head><body><script id=\"three\" src=\"three.min.js\"></script><script id=\"controls\" src=\"OrbitControls.min.js\"></script><script>var OrbitControls = window.OrbitControls;\nvar scene, camera, renderer, icosahedron, lights;\nfunction init(){\n scene = new THREE.Scene();\n camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);\n renderer = new THREE.WebGLRenderer({ antialias: true });\n renderer.setSize(window.innerWidth, window.innerHeight);\n document.body.appendChild( renderer.domElement );\n renderer.setClearColor(0xffffff, 1);\n\n lights = [\n new THREE.PointLight(0xff0000, 10, 100),\n new THREE.PointLight(0x00ff00, 10, 100)\n ];\n lights.forEach(function(light){ scene.add(light); });\n\n icosahedron = new THREE.IcosahedronGeometry( 1, 0); \n var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );\n var mesh = new THREE.Mesh( icosahedron, material );\n scene.add(mesh);\n\n mesh.rotation.y = Math.PI / 2;\n camera.position.z = 5;\n orbitCamera();\n\n window.addEventListener(\"resize\", onWindowResize, false);\n loop();\n}\nfunction loop(){\n requestAnimationFrame(loop);\n controls.update();\n render();\n}\nfunction render(){\n renderer.render(scene, camera);\n}\nfunction orbitCamera(){\n camera.position.x = Math.sin(Date.now() * 0.001) * 10;\n camera.position.y = Math.cos(Date.now() * 0.001) * 10;\n camera.lookAt(0, 0, 0);\n}\nfunction onWindowResize(){\n camera.aspect = window.innerWidth / window.innerHeight;\n camera.updateProjectionMatrix();\n renderer.setSize( window.innerWidth, window.innerHeight );\n}\nfunction initStarfield(){\n var geometry = new THREE.BufferGeometry();\n var material = new THREE.PointsMaterial( { color: 0xffffff, sizeAttenuation: true, size: 0.5 } );\n var particles = 10000;\n var positions = new Float32Array(particles * 3);\n for ( var i = 0; i < particles; i++ ) {\n var x = Math.random() * 2000 - 1000;\n var y = Math.random() * 2000 - 1000;\n var z = Math.random() * 2000 - 1000;\n positions[i * 3] = x;\n positions[i * 3 + 1] = y;\n positions[i * 3 + 2] = z;\n }\n geometry.addAttribute( 'position', new THREE.BufferAttribute( positions, 3 ) );\n scene.add(new THREE.Points( geometry, material ));\n}\ninitStarfield();\ninit();\n</script></body></html>", "path": "./index.html"}</write> <read>{"path": "./three.min.js", "limit": 0}</read>

TAKE IT TO CODE

This run produced no artifact — reuse the prompt with a different model or your own pi-agent run.

RUN

modelllama-3.1-8b-instruct
vendorMeta · Llama
harnesspi-agent
generated2026-08-01

METRICS

runtime7.0s
tokens in1.7k
tokens out1.7k
cached0
cost / run$0.0002