Owen Campbell

Vancouver, BC Senior Software Engineer, Microsoft BSc in Computing Science, Simon Fraser University

Projects

Collage of various album covers

NowListening

Now Listening monitors the AT Protocol Jetstream for teal.fm records and creates continuously updating collages of the most listened to albums of the last hour. source code
Picture of NowPlaying project on e-ink screen

NowPlaying

A raspberry pi powered e-ink display showing your current playing song on Spotify.
Screenshot of the atscrobble webpage

AtScrobble

A service that translates Plex webhook events into AT Protocol teal.fm records. source code
Stylized map of Salt Spring Island with height contours

Contours

Marching squares on real-world height map data. Written in Python.
Artistic design generated with cellular automata

Cellular Automata

3 state 1 dimensional cellular automata
Picture of raytracing renderer output

Rust Raytracing Renderer

An implementation and extension of part 1 and 2 of Peter Shirley's Ray Tracing in One Weekend Series. Written in Rust and over time shifting to a more PBRT style pathtracer.
Picture of a rendered scene

DirectX11 Renderer

A simple renderer used to become familiar with DirectX 11. Simple viewport controls, phong lighting, and skybox support.
Artistic design of a ferret from thousands of lines

LineDrawer

Estimates a provided image by randomly drawing lines, resulting in a sketchy hand-drawn look. Written in Python.
Picture of GameBoy boot screen rendered by the emulator

Coroutines based GameBoy Emulator

A barebones GameBoy emulator written with preview C++20 coroutines as an experiment. The coroutines simulate individual clock ticks of the GameBoy's CPU. Accurate, but slow. Only implemented enough instructions to run the bootloader.
Artistic design of a picture with the pixels sorted horizontally by colour

Pixel Sorting

Experimenting with pixel sorting by colour, written in C++.