tahamajs/RR / Docs /visualizer /inspect_webgl.py
tahamajs's picture
download
raw
2.02 kB
import asyncio
from playwright.async_api import async_playwright
async def main():
brave_path = "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
async with async_playwright() as p:
browser = await p.chromium.launch(
executable_path=brave_path,
headless=True,
args=[
"--enable-webgl",
"--ignore-gpu-blocklist",
"--use-gl=angle",
"--use-angle=metal"
]
)
page = await browser.new_page(viewport={"width": 1440, "height": 900})
page.on("console", lambda msg: print(f"CONSOLE [{msg.type}]: {msg.text}"))
await page.goto("http://localhost:8000/index.html", wait_until="networkidle")
await asyncio.sleep(2)
info = await page.evaluate("""() => {
const gl = window.__SCENE__;
const cam = window.__CAMERA__;
const ctrl = window.__CONTROLS__;
const granular = window.__GRANULAR__;
const canvas = document.getElementById('webgl-canvas');
const webgl = canvas.getContext('webgl2') || canvas.getContext('webgl');
return {
sceneChildrenCount: gl ? gl.children.length : 0,
granularChildrenCount: granular ? granular.children.length : 0,
camPos: cam ? { x: cam.position.x, y: cam.position.y, z: cam.position.z } : null,
target: ctrl ? { x: ctrl.target.x, y: ctrl.target.y, z: ctrl.target.z } : null,
camNear: cam ? cam.near : null,
camFar: cam ? cam.far : null,
hasWebGL: !!webgl,
webglError: webgl ? webgl.getError() : 'no webgl',
canvasRect: canvas ? canvas.getBoundingClientRect() : null
};
}""")
print("DIAGNOSTIC INFO:", info)
await page.screenshot(path="Docs/visualizer/screenshot_diag.png")
await browser.close()
if __name__ == "__main__":
asyncio.run(main())

Xet Storage Details

Size:
2.02 kB
·
Xet hash:
95c16ba0e2bce6ee5c67280139dc762968e15e89da49824049078d2ed800d9ef

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.