CEF in-world browser
Summary
Chromium Embedded Framework integration for rendering web content onto arbitrary 3D surfaces. Browser instances are managed as world-surface textures that can be mapped to any mesh/material.
Motivation
Spatial computing benefits from in-world web content — reference documentation, live dashboards, web apps rendered on 3D surfaces. Rather than a flat overlay, web content should be a first-class world object.
Design
- CEF integration: Linux-only; CMake manages CEF download/version pinning
- Surface API:
app.engine.browser:create-surfacewith id, url, texture-name, width, height, max-fps - Texture binding:
:texture-namebinds the rendered page to any mesh/material texture slot - Input routing:
send-mouse-move,send-mouse-click,send-mouse-wheel,set-focusfor world-space interaction - Opt-in cube demo: 6-face browser cube via
SPACE_BROWSER_CUBE_DEMO=1
Tasks
- [x] CEF library download and CMake integration
- [x] Browser surface creation and GL texture output
- [x] Mouse/keyboard input routing
- [x] Multi-surface support
- [x] Opt-in cube demo
Related
- Goal: Core Platform
- Depends on: Layout Widget Engine — CEF surfaces use the layout engine
- See: Building space (CEF build setup)
- See: Cef In World Browsing, Cef Icu Fd Crash
