Tool Request: 684009002 - create_file
{"file_name":"index.html","content":"<!DOCTYPE html>\n<html>\n<head>\n <title>Go-Kart Racing</title>\n</head>\n<body style='margin:0;'>\n <canvas id='canvas'></canvas>\n <script src='https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js'></script>\n <script>\n const canvasEl = document.getElementById('canvas');\n const scene = new THREE.Scene();\n const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 100);\n const renderer = new THREE.WebGLRenderer({canvas: canvasEl, antialias: true});\n renderer.setSize(window.innerWidth, window.innerHeight);\n\n // Lighting\n const light = new THREE.AmbientLight(0xffffff, 1);\n scene.add(light);\n\n // Track\n const trackGeometry = new THREE.PlaneGeometry(20, 20);\n const trackMaterial = new THREE.MeshBasicMaterial({color: 0x00ff00});\n const track = new THREE.Mesh(trackGeometry, trackMaterial);\n track.rotation.x = -Math.PI/2;\n scene.add(track);\n\n // Car\n const carGeometry = new THREE.BoxGeometry(1, 1, 2);\n const carMaterial = new THREE.MeshBasicMaterial({color: 0xff0000});\n const car = new THREE.Mesh(carGeometry, carMaterial);\n car.position.set(0, 1, 0);\n scene.add(car);\n\n // Camera setup\n camera.position.z = 10;\n camera.lookAt(car.position);\n\n // Movement\n let velocity = new THREE.Vector3(0, 0, 0);\n document.addEventListener('keydown', (e) => {\n switch(e.key) {\n case 'w': velocity.z -= 0.1; break;\n case 's': velocity.z += 0.1; break;\n case 'a': velocity.x -= 0.1; break;\n case 'd': velocity.x += 0.1; break;\n }\n });\n\n // Animation loop\n function animate() {\n requestAnimationFrame(animate);\n car.position.add(velocity);\n camera.lookAt(car.position);\n renderer.render(scene, camera);\n }\n animate();\n </script>\n</body>\n</html>"}