Shikshak
HACK THIS FALL 2020 · 1STCAMERA · blackboard
STUDENT · canvas
Remote learning meant video calls burning upwards of 3GB of mobile data a day — putting class out of reach for rural and low-income students.
Shikshak ("teacher" in Hindi) rethinks the online classroom from scratch. Instead of streaming video, a teacher writes on a physical blackboard; a real-time ML pipeline detects the board, isolates its surface, and converts the content into a compact pixel array — about 85% less data than raw video. Won First Position at Hack This Fall 2020.
An ML pipeline (OpenCV, Canny edge detection) finds the board's corners and converts the surface to a pixel-mapped array — ~85% smaller than video. That array streams over Socket.IO, where the Canvas API rebuilds the board; WebRTC carries audio-only so teacher and students stay in voice contact.
DETECT
find + isolate the blackboard
OpenCV · Canny
COMPRESS
surface → pixel array, ~85% smaller
imutils
STREAM
push the array in real time
Socket.IO
REBUILD
canvas redraw + audio-only voice
Canvas API · WebRTC
I built the full frontend — the teacher calibration interface and the student canvas. The trickiest piece was WebRTC audio: constraining the peer connection to audio only while keeping it synced with the Socket.IO data channel:
board calibration
teacher sets the boundary before a session
pixel-stream canvas
student-side reconstruction of the board
audio-only WebRTC
voice without the video overhead
data-channel sync
keeping audio aligned with the pixel stream