This program lets you host a shared canvas that synchronizes its content over the network. Once someone starts a server, users can use the IP address to join it. Every stroke someone draws is visible to everyone in realtime. Connected clients can also see the user list and chat with each other using integrated tools.
Developed in C#/WPF/MVVM. Whenever someone draws a stroke, it gets serialized as an array of points into a ProtoBuf packet, along with color and thickness information. That packet is then passed to the server via TCP or UDP, which then adds it to the global collection of strokes and notifies other users about it.