A window belongs to a cluster job.
It reconnects to the display after its process is restarted on another node. The window returns because its identity lives above one particular machine.
windows can move
SURF · the distributed desktop
A SURF app can run anywhere in a HOP cluster while its window appears on one display. If that machine disappears, HOP restarts the app elsewhere and the window returns.
built as ordinary HopOS apps · moved by HOP
What it is
The app owns its window; it does not need to own the screen. It draws on whichever node HOP chose, then sends frames or small scene updates to the display job.
The display composites those windows, routes input back to the right app and can expose the whole screen through a browser.
What it demonstrates
It reconnects to the display after its process is restarted on another node. The window returns because its identity lives above one particular machine.
windows can move
HopOS grants one ordinary app access to the framebuffer. Windowing, compositing, the taskbar, browser and web KVM all remain replaceable apps outside the OS.
zero desktop in the kernel
A pixel app sends frames. A scene app sends a widget tree once, then tiny patches while the display handles layout, hit-testing and semantic input.
pixels or scene updates
The whole compositor is software: there is no GPU driver anywhere in this stack.
Inside the demo
The browser brings fetching, CSS and layout into a Go app. The Game Boy port brings an existing Go emulator to a SURF window. The launcher and task manager connect the desktop to the cluster.
browser · from scratch
The browser uses Go HTML parsing and selector libraries, with its own fetching, CSS, layout and rendering code. It runs inside an app’s memory partition.
Renders real pages, including this site. Web compatibility and performance are still limited.
Game Boy · third-party Go
goboy runs as a HopOS slot app and presents its screen in a SURF window. A prepare step adds two small adapters beside upstream.
No audio yet. The emulator passes blargg’s CPU instruction tests, eleven of eleven.What lives where
The GUI flavour of HopOS can grant the framebuffer to one app: display. That is the entire OS-level graphics contract. A headless HopOS image links none of it.
Current scope
Available today
Still in development
Start with a pixel or scene example, then follow the same protocol through the compositor and input path. Every desktop component is an ordinary HopOS application.