Projects

dubscape

Twenty-one kilometres of Dublin rebuilt from public map data and made walkable and drivable in the browser. The ground is LiDAR, so the hills are the real hills, and the Liffey, the canals and the tide are cut into it — you can drown a car in the river. OpenStreetMap gives footprints and little else, so roof ridges come from a minimum-area rectangle fitted to each building and front doors from the nearest road; the Aviva, the Poolbeg stacks and the Great South Wall are built to their published dimensions instead. Traffic drives on the left, the DART and the Luas run their true alignments, and the weather is whatever Dublin's is right now. Geometry streams in regions and chunks, so load time doesn't grow with the map.

three.js · webgl · python
stagedelight

Peer-to-peer video app for practising public speaking with strangers. No accounts, no sign-up — a speaker queue rotates through whoever is waiting. Built the signalling server and the whole WebRTC layer directly against RTCPeerConnection: the entire dependency list is Express and Socket.IO, with no video SDK anywhere.

node.js · socket.io · webrtc
bitbattle

Real-time competitive coding platform. Two to four players join a room by code and race head-to-head to solve programming problems, with opponents' progress streaming live over WebSocket, ELO ratings and a global leaderboard. Rust backend on axum and tokio, and a sandboxed executor that runs untrusted submissions with no network access.

rust · react · typescript