Shared memory and context tools for agentic work.
Code Rooms
import { Component, ReactNode } from "react";
interface Props {
fallback?: ReactNode;
children: ReactNode;
}
interface State {
hasError: boolean;
export class WebGLBoundary extends Component<Props, State> {
constructor(props: Props) {
super(props);
this.state = { hasError: false };
static getDerivedStateFromError(): State {
return { hasError: true };
render() {
if (this.state.hasError) {
return this.props.fallback ?? null;
return this.props.children;
export function canUseWebGL(): boolean {
try {
const canvas = document.createElement("canvas");
return !!(
window.WebGLRenderingContext &&
(canvas.getContext("webgl") || canvas.getContext("experimental-webgl"))
);
} catch {
return false;