Browser 3D Runtime Integration
SkillWeb & browsingUse when planning, implementing, or reviewing a browser 3D/game runtime surface inside Universo published applications, especially PlayCanvas canvas widgets, Colyseus realtime clients, game HUDs, lazy-loaded engine widgets, input ownership, game loops, cleanup, or Playwright proof in `apps-template-mui`. Requires the Runtime UI UX Quality Gate for any user-facing screen, dialog, card, table, HUD, widget, or canvas surface.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Browser 3D Runtime Integration skill
What this skill tells your AI
The instructions your AI receives, as published by teknokomo/universo-platformo-react in .agents/skills/browser-3d-runtime-integration/SKILL.md and read by ahel’s review.
Use this skill for the glue between PlayCanvas/Colyseus and the Universo React/MUI runtime shell.
Required Companion Skills
When implementation or QA touches runtime UI, also use:
mui-runtime-ux-patternsruntime-ux-qaplaywright-best-practices
For engine-specific decisions, use playcanvas-engine-runtime. For room/network
decisions, use colyseus-authoritative-multiplayer.
Required Output
Before implementation, state:
- the
apps-template-muiwidget zone or runtime surface that owns the canvas; - existing MUI/app-template primitives being reused;
- engine and multiplayer package imports and runtime targets;
- lazy-loading strategy if bundle cost matters;
- game loop, input, focus, pointer lock, and cleanup ownership;
- UI Contract for all screens, HUDs, dialogs, cards, tables, widgets, and canvas surfaces;
- browser evidence required by QA.
Workflow
- Mount the 3D experience inside
apps-template-mui; do not build a parallel application shell. - Reuse existing dashboard, widget, dialog, list, table, DataGrid, card, and toolbar primitives before proposing a new UI primitive.
- Lazy-load PlayCanvas and Colyseus client code when route-level bundle size or first paint matters.
- Separate platform data from realtime state: use platform/TanStack Query data for slow metadata and Colyseus for realtime room state.
- Keep HUD/dialog/list controls in MUI and world rendering in the canvas.
- Keep game loops outside React render loops; bridge summarized UI state only.
- Define input ownership for keyboard, pointer, pointer lock, focus, Escape, dialogs, and text fields.
- Handle mount/unmount, visibility changes, resize observers, network cleanup, and engine cleanup.
- Require browser evidence for implemented runtime UI.
Blocking Rules
- Do not expose raw room IDs, player IDs, session IDs, record IDs, JSON,
[object Object], protocol errors, Zod errors, or server stack details on normal user surfaces. - Do not capture keyboard or pointer input in a way that traps users in the canvas or breaks dialogs/text fields.
- Do not drive per-frame transforms through React state.
- Do not introduce document-level horizontal overflow.
- Do not add one-off page shells, cards, dialogs, or tables when existing
apps-template-muior MUI primitives fit.
References
- Read
references/react-mui-canvas-boundary.mdfor widget-shell, primitive reuse, and runtime UI rules. - Read
references/browser-game-loop-and-input.mdfor loops, input, focus, and cleanup. - Read
references/runtime-ui-contract.mdfor the required UI Contract.
Signals
- GitHub stars
- 22
- Forks
- 3
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
browser-3d-runtime-integration- Source
- github.com/teknokomo/universo-platformo-react