Stephen Buchanan

  • Home
  • About
  • Projects

Reality, with upgrades

I learned a whole new C++ framework to generate this 3D view of the Place Vendôme in Paris, with time-travel capabilities.

vr/ar/xr, led, installations, 3d, cpp, graphics

Face filter AR for a luxury brand

I created a fun Instagram/Facebook face filter with interactive 3D graphics.

vr/ar/xr, graphics

An ArtNet lighting desk, in Rust

I couldn't find the right application for my lighting-control needs on a specific project, so I wrote my own, in Rust. It has already proven useful far beyond the original project it was made for.

led, dmx, lighting, rust

Big impact, little PC's

Sometimes a handful of Raspberry Pis' are all the "media player" you need. I tied together a webcam, some C, some NodeJS, and the built-in omxplayer to make a cheap-but-reliable container-scanning solution. The result was a fake "X-ray" display for a real conveyor belt.

raspberry-pi, installations, metrics, nodejs, c

AI Breath Detection

A project for Nike House of Innovation in Paris, featuring contactless breath detection (using thermal cameras and Machine Learning) and an interactive screens+lights+sound experience.

web-development, ai, metrics, installations, lighting, typescript, computer-vision, machine-learning, wegbl, graphics, tether

Bringing the outside inside, with 3D audio

In this project my role was essentially sound designer, but in a 3D audio context.

sound-design, audio

CP Company Archive: Website prototype

I built some prototype interfaces and WebGL transition effects for this media archive site.

graphics, webgl, web-development

Digital Twin of Objects

This research project got me into training custom ML models for computer vision, and integrating 3D tracking with embedded IMU electronics.

vr/ar/xr, python, cpp, computer-vision, machine-learning, electronics, sensors, ai

Hidden full-floor tracking

For this project, I refined our in-house LIDAR tracking solution and designed a 3D printed enclosure just big enough to hide the sensors.

installations, tether, lidar

Everybody loves photo(video) booths

Create a (branded) experience, record a video automatically and send it to the user - how hard can it be? Turns out, it gets complicated pretty quickly!

nodejs, fullstack, installations, cpp, graphics, web-development

For BMW South Africa, a gamified mobile app

BMW has a significant manufacturing hub based in South Africa, with thousands of employees. I helped develop a multimedia mobile web app to make their staff induction process fun and informative.

web-development, game-dev, fullstack, nodejs

Generative AI and all that Jazz

A chance to experiment with Generative AI services in a playful context. This also turned out to be an exercise in leading three very junior developers into their first experience of web application development.

ai, svelte, typescript, nodejs, fullstack, web-development

Generative music and lights: the Wishing Tree

An installation for a flagship Boucheron store in Tokyo. An interactive "shrine" turned users' messages and scribbles into a unique generative music piece.

led, installations, typescript, rust, lighting, audio, music, ableton, tether

Generative visuals for a Light Sculpture

I built a shareable browser-based prototype for designers, artists - and the client - to pre-visualise the light show for this interactive sculpture.

lighting, graphics, visual-programming

Infrared spraycan

An interactive spray can powered by some ordinary batteries and no motion sensors or wireless data. How?

electronics, cpp, computer-vision

Interactive floor basketball game

On this project I played solo game developer and I built a fun "interactive floor" game with simple rules and spectacular graphics.

game-dev, installations, web-development, pixijs, graphics, audio

Body Controlled game in-store

Apart from designing much of the system architecture for this Nike Paris installation, I also programmed WebGL graphics for the game and wrote a custom multi-channel web audio library.

metrics, graphics, led, installations, sound, lighting, game-dev, webgl

Pi's on rails, lots of lasers: CP Company Exhibitions

My main focus was building the sensor technology behind the custom screens-on-rails exhibition pieces. A highly mechanical user interface blended seamlessly with digital graphics and sound.

metrics, cpp, raspberry-pi, electronics, sensors, installations

Search queries with your body

This fun interactive "mirror" installation won us an award for the best installation at CineKid in 2019. Featuring browser-based ML computer vision and handling tons of data.

web-development, machine-learning, installations

Sometimes no screen is the best screen

I helped to set up this installation for New Balance in Shanghai, and added some fun interactive audio weirdness. It's all about light and sound - no screen in sight.

installations, audio

Streetview-ish online campaign

On this project, I used A-Frame (a web VR/AR framework) in an unusual context: a fashion catalogue presented in a custom-built "streetview"-like website.

vr/ar/xr, webgl, graphics, web-development

Technology with a soft touch

This high profile product launch for Glossier "You Fleur" perfume featured a sophisticated interactive installation that I carefully crafted to make the technology almost disappear from sight.

Tether: an in-house system to make interactive installations easier

We stopped searching for the One True Creative Coding Framework To Rule Them All; instead we built a comprehensive set of tooling and standards that made our work significantly easier and faster.

cpp, distributed-computing, typescript, python, rust, installations, tether

The XR Stage Experiment

I contributed some high speed (90fps) head tracking on this prototype "mixed reality" display system.

vr/ar/xr, computer-vision, cpp

Transforming a space with the colours of your outfit

This project for online fashion outlet Farfetch was beautifully simple in its concept but required some serious technology (including TensorflowJS) to make it work.

web-development, metrics, led, lighting, graphics, webgl, pixijs, react, typescript, computer-vision, machine-learning

Various campaigns, games and gadgets

Before joining Random Studio in Amsterdam, I spent years developing all kinds of high-tech installations, games and interactive displays in Johannesburg, South Africa.

graphics, installations, cpp

Virtual Car Dealership

This was a custom-built showroom installation, featuring an interactive table display with a tangible-object interface, an iPad and a video wall.

fullstack, installations

With the Jambox, everyone is a VJ

Proposing a tool I don't particularly like (TouchDesigner) nevertheless allowed me to collaborate with a team of non-coders to produce this seriously fun audiovisual plaything.

visual-programming, touchdesigner, graphics, audio

Fragrance and Fashion

My contribution to this project was twofold: LIDAR User Tracking and 3D Spatial Audio Programming

metrics, ableton, music, lidar, nodejs, installations
This custom site built with: TinaCMS, React+TypeScript, NextJS, GitHub Pages CI/CD and Cables.GL