Live WebRTC camera streaming from an Android phone to a desktop browser. No native app required — runs entirely in the browser.
Android Chrome (sender) ──PeerJS──► peerjs-signaling-server ◄──PeerJS── Desktop Browser (viewer)
(signaling only)
WebRTC P2P stream (direct after handshake)
Deploy peerjs-signaling-server to Render.com.
Get your URL: https://YOUR-NAME.onrender.com
Edit app.js with your Render URL:
PEER_SERVER: {
host: "YOUR-NAME.onrender.com",
port: 443,
path: "/construction-cam",
secure: true,
}Push to GitHub and enable Pages:
Settings → Pages → Branch: main → Folder: / (root)
- Android: Open
sender.html→ tap ▶ Start Stream → allow camera - Desktop: Open
viewer.html→ stream appears automatically
construction-cam/
├── README.md
├── .gitignore
├── index.html # Landing page
├── sender.html # Android camera sender
├── viewer.html # Desktop viewer
├── app.js # Shared config & utilities
├── sender.js # Sender PeerJS + WebRTC logic
├── viewer.js # Viewer PeerJS + WebRTC logic
├── ice.js # ICE server stack (STUN + TURN)
├── debug.js # Real-time debug panel
├── style.css # UI theme
└── docs/
└── architecture.md
- peerjs-signaling-server — Dedicated PeerJS signaling server
- Sender: Android Chrome (or any browser with
getUserMedia) - Viewer: Any modern desktop browser
- Signaling: peerjs-signaling-server on Render.com
- ✅ M1 — Browser-to-browser streaming (current)
- ✅ M2 — GPS + compass metadata overlay
- 🔜 M3 — Visual marker anchoring (AR.js)
- 🔜 M4 — 3D overlay on viewer (Three.js)
- 🔜 M5 — Multiset WebXR VPS integration
- 🔜 M6 — Site scan import + BIM overlay
- 🔜 M7 — Full construction platform