Skip to content

davex-ai/Omni

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Omni — Real-Time Collaborative Presence Engine


🧠 What is Omni?

Omni is a real-time presence + control system where users can:

  • 🖱️ See live cursors
  • 👥 Join rooms
  • 🎮 Control sessions (streamer/viewer system)
  • ✍️ Collaborate on shared state (Yjs)
  • ⚡ Experience ultra-low latency interactions (If the streamer scrolls, the 1,000+ viewers see the scroll happen in <100ms)

✨ Features

🌍 Global Lobby

  • Live cursor tracking across all users
  • Real-time user count
  • Click ripple effects

🏠 Rooms

  • Instant room creation

  • Role system:

    • 🎥 Streamer
    • 🎮 Controller
    • 👀 Viewer
  • Grant/revoke control dynamically

⚡ Real-Time Sync

  • Cursor movement (smoothed interpolation)
  • Click animations
  • Scroll synchronization
  • Shared text editing (CRDTs via Yjs)

🛠️ Tech Stack

Frontend:
- React
- Custom UI

Backend:
- Node.js
- Express
- ws (WebSocket)

Realtime:
- WebSockets
- Yjs (CRDT engine)

📦 Project Structure

omni/
├── server/
│   └── index.js
├── client/
│   ├── Home.jsx
│   └── Room.jsx
└── README.md

⚙️ Setup

1. Clone

git clone https://github.com/davex-ai/omni.git
cd omni

2. Install

npm install

3. Run server

node server/index.js

4. Run frontend

npm start

🧭 Architecture

Client → WebSocket → Server
        ↓
   Mode: Global | Room
        ↓
Global → broadcastGlobal()
Room   → broadcast(room)

🎮 Roles System

Role Power
🎥 Streamer Full control
🎮 Controller Temporary control
👀 Viewer Read-only

🧠 Core Concepts

Cursor Smoothing

x = current.x + (target.x - current.x) * 0.2

Broadcast System

  • broadcastGlobal() → lobby
  • broadcast(room) → isolated room

⚠️ Known Challenges

  • WebSocket state transitions
  • Global vs Room isolation
  • Event leakage prevention
  • Presence consistency


💡 Inspiration

Figma cursor presence

  • Twitch-style control
  • Multiplayer web engine

🧑‍💻 Author

Built by Dave and Uthman — future systems engineer


🧪 Status

+ Core system: DONE
+ Rooms: DONE
+ Realtime sync: DONE 

⭐ Support

If this project helped or inspired you:

  • ⭐ Star the repo
  • 🍴 Fork it
  • 🧠 Build something insane with it


“This isn’t just a project. It’s a real-time systems engine.”

About

The Interactive Co-Browsing Streamer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors