Tool Request: 316233320 - create_file
{"file_name":"index.html","content":"<!DOCTYPE html>\n<html>\n<head>\n <title>Basic WebGL Demo</title>\n</head>\n<body>\n <canvas id=\"glCanvas\" width=\"500\" height=\"500\"></canvas>\n <script>\n const canvas = document.getElementById('glCanvas');\n const gl = canvas.getContext('webgl');\n if (!gl) {\n console.error('WebGL not supported');\n return;\n }\n\n // Vertex shader source\n const vertexShaderSource = `\n void main() {\n gl_Position = vec4(0.0, 0.0, 0.0, 1.0);\n gl_PointSize = 500.0;\n }\n `;\n\n // Fragment shader source\n const fragmentShaderSource = `\n precision mediump float;\n void main() {\n gl_FragColor = vec4(gl_FragCoord.x / 500.0, 0.0, 0.0, 1.0);\n }\n `;\n\n function createShader(gl, type, source) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n console.error('Shader error: ' + gl.getShaderInfoLog(shader));\n return null;\n }\n return shader;\n }\n\n const vShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSource);\n const fShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource);\n\n const program = gl.createProgram();\n gl.attachShader(program, vShader);\n gl.attachShader(program, fShader);\n gl.linkProgram(program);\n gl.useProgram(program);\n\n // Clear and draw\n gl.clearColor(0.0, 0.0, 0.0, 1.0);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.drawArrays(gl.POINTS, 0, 1);\n </script>\n</body>\n</html>"}