Skip to content

a-saed/orb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

46 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

๐ŸŒŒ Orb

A spatial 3D browser with a game-like UI. Tabs are floating circles in space, not rows in a bar.

Orb Browser

โœจ Features

  • 3D Spatial UI: Tabs represented as floating circles in a beautiful 3D space
  • Lightweight: Built with Go and system WebView engines (no Electron!)
  • Modern UX: Smooth transitions, interactive animations, and intuitive controls
  • Cross-platform: Windows, macOS, and Linux support

๐Ÿš€ Quick Start

Prerequisites

Linux

The webview library uses CGO and requires GTK3 and WebKit2GTK:

# Ubuntu/Debian
sudo apt-get install libgtk-3-dev libwebkit2gtk-4.0-dev pkg-config

# Fedora
sudo dnf install gtk3-devel webkit2gtk3-devel

# Arch
sudo pacman -S gtk3 webkit2gtk

macOS

WebKit is built-in. Just install Go.

Windows

WebView2 Runtime is usually pre-installed on Windows 11. For Windows 10:

Build & Run

# Install dependencies
go mod download

# Run in development mode
go run cmd/orb/main.go

# Or build and run
make build
./orb

๐ŸŽฎ Usage

Keyboard Shortcuts

  • Escape - Return to 3D space from a tab
  • Ctrl+Shift+Space - Also returns to space
  • Mouse Drag - Rotate camera around the scene
  • Mouse Wheel - Zoom in/out

Interface

  • New Tab Button (bottom-right) - Create a new tab
  • Click a Circle - Open that tab's webpage
  • Hover a Circle - See tab title tooltip
  • Return Button (top-right when viewing a tab) - Go back to space

๐Ÿ“ Project Structure

orb/
โ”œโ”€โ”€ cmd/orb/              # Main application entry point
โ”œโ”€โ”€ internal/
โ”‚   โ”œโ”€โ”€ app/              # Core application logic
โ”‚   โ”‚   โ”œโ”€โ”€ state.go      # Thread-safe state management
โ”‚   โ”‚   โ”œโ”€โ”€ tabs.go       # Tab lifecycle
โ”‚   โ”‚   โ”œโ”€โ”€ transitions.go # Mode transitions
โ”‚   โ”‚   โ””โ”€โ”€ types.go      # Data types
โ”‚   โ”œโ”€โ”€ ui/               # UI bridge (Go โ†” JavaScript)
โ”‚   โ”‚   โ””โ”€โ”€ bindings.go   # IPC layer
โ”‚   โ””โ”€โ”€ webview/          # WebView management
โ”‚       โ””โ”€โ”€ manager.go    # WebView lifecycle
โ”œโ”€โ”€ ui/                   # Three.js frontend
โ”‚   โ”œโ”€โ”€ index.html        # Main HTML
โ”‚   โ”œโ”€โ”€ main.js           # App coordinator
โ”‚   โ”œโ”€โ”€ scene.js          # Three.js scene
โ”‚   โ”œโ”€โ”€ interactions.js   # Mouse/touch interactions
โ”‚   โ”œโ”€โ”€ transitions.js    # Smooth animations
โ”‚   โ””โ”€โ”€ styles.css        # Styling
โ””โ”€โ”€ docs/                 # Documentation

๐Ÿ—๏ธ Architecture

  • Backend: Go handles system-level concerns and tab lifecycle
  • Frontend: Three.js handles visualization and interaction
  • WebView: System WebView engines render actual web pages
  • IPC: Go โ†” JavaScript communication via bindings and Eval

See docs/ARCHITECTURE.md for detailed architecture.

๐ŸŽฏ Roadmap

Phase 1 (MVP) โœ…

  • 3D space with tab circles
  • Create/close tabs
  • Click to view tab content
  • Return to space
  • Smooth transitions

Phase 2 (Polish) ๐Ÿšง

  • Tab title updates
  • Favicon display
  • Enhanced animations
  • Keyboard navigation

Phase 3 (Groups)

  • Drag to create groups
  • Visual group containers
  • Group management

Phase 4 (Persistence)

  • Save/restore tabs on restart
  • Session snapshots

๐Ÿ› ๏ธ Development

Build Commands

# Development build (with debug mode)
make dev

# Production build
make build

# Clean build artifacts
make clean

# Run tests
make test

# Install dependencies
make deps

Debug Mode

Set debug = true in cmd/orb/main.go to enable:

  • WebView developer tools
  • Verbose logging
  • Live reload from ui/ directory

๐Ÿ› Troubleshooting

Linux: "could not import github.com/webview/webview_go" or "gtk+-3.0 / webkit2gtk-4.0 not found"

The webview package uses CGO and needs GTK3 and WebKit2GTK. Install dev packages (see Prerequisites), then run go build ./... again:

# Ubuntu/Debian
sudo apt-get install libgtk-3-dev libwebkit2gtk-4.0-dev pkg-config

Windows: "WebView2 not found"

Install the WebView2 Runtime from Microsoft.

macOS: "Operation not permitted"

Grant the app permission in System Preferences > Security & Privacy.

UI not loading

Make sure you're running from the project root, or the ui/ directory is accessible.

๐Ÿ“ License

MIT License - See LICENSE for details.

๐Ÿค Contributing

Contributions are welcome! Please read CONTRIBUTING.md before submitting PRs.

๐Ÿ’ก Inspiration

Orb reimagines browser UI as a spatial experience, inspired by:

  • Arc Browser's spatial thinking
  • Three.js creative coding
  • Calm, minimal design philosophy

๐ŸŒŸ Credits

Built with:

  • Go - Backend language
  • webview_go - Native WebView bindings
  • Three.js - 3D rendering
  • Love for spatial interfaces โค๏ธ

Made with โœจ by the Orb team

๐Ÿ†• Updated Architecture (React + Go)

Orb now uses a modern React frontend with Go backend:

orb/
โ”œโ”€โ”€ web/                   # React frontend (TypeScript)
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/   # React components
โ”‚   โ”‚   โ”œโ”€โ”€ types/        # TypeScript types
โ”‚   โ”‚   โ””โ”€โ”€ App.tsx       # Main app
โ”‚   โ”œโ”€โ”€ dist/             # Built files (served by Go)
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ cmd/orb/              # Go backend
โ””โ”€โ”€ internal/             # Go packages

Build Commands

# Build everything (frontend + backend)
make build

# Run in development mode
make dev

# Build only frontend
make build-web

# Run frontend dev server (for UI development)
make dev-web

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors