Collab Canvas
Skills Used
Python
PyGame
Project Description
This collaborative project from my Network Programming class is a real-time whiteboard application that allows users to draw together on a shared canvas with different colors, stroke sizes, and other features. A central server is set up to receive point stroke data from clients and update it for other connected users. This project strengthened my understanding of computer networking and user interface design.
An image of a blank canvas at full screen.
An image of users drawing on the shared canvas to solve for Earth’s gravitational constant using Newton’s Universal Law of Gravitation.
Technical Highlights
Computer Networking
Client-server architecture enabling real-time canvas usage across multiple devices. Compact point-based stroke representation was used to keep all devices up to date with drawings made by other users.
Rendering
Smooth stroke interpolation for continuous, natural drawing. Many features are provided to the user—such as a color palette, different stroke sizes, and options to erase and wipe the canvas.
Synchronization
Consistent shared canvas across multiple users, ensuring everyone sees each other’s drawings. Drawing data shared across devices are relative, so the canvas and drawings will look the same across different screen sizes.