Campus Compute is a LAN distributed compute platform with one coordinator, multiple workers, and a Next.js real-time dashboard.
Note
This project is still a prototype and is actively evolving. Issues and improvement ideas are welcome, and collaborators are welcome.
- Auto-discovers the coordinator on local networks (UDP discovery).
- Lets workers register machine capabilities (CPU, RAM, GPU info).
- Accepts job submissions and routes tasks to available workers.
- Tracks task lifecycle (pending, running, completed, failed).
- Streams live updates to the dashboard over WebSocket.
- Worker starts and discovers coordinator.
- Worker connects to coordinator WebSocket and sends REGISTER.
- User submits job from API/dashboard.
- Coordinator schedules task to an idle worker.
- Worker executes task and sends TASK_RESULT.
- Coordinator updates state and broadcasts CLUSTER_STATE.
- coordinator/: FastAPI server, worker registry, scheduler, task state, discovery server.
- worker/: worker runtime, discovery client, hardware detection, task execution loop.
- frontend/dashboard/: Next.js UI for live status and job submission.
Important
Coordinator and workers must be on the same network, and the network must allow device-to-device discovery (no client/AP isolation). For the hackathon demo, we used a phone hotspot so all nodes could discover each other.
- Install Python dependencies:
pip install -r requirements.txt- Start coordinator:
uvicorn coordinator.server:app --host 0.0.0.0 --port 8000 --reload- Start worker on a different computer but the same Network:
python -m worker.worker- Start dashboard:
cd frontend/dashboard
npm install
npm run dev