


Better Qr Codes
A custom Python pipeline that embeds full-color images into QR codes while maintaining scannability with standard phone cameras. The technique works by deconstructing a generated QR code into its cellular data. While preserving the critical landing markers, the pipeline reconstructs the data-carrying portions of the code as an image. It overlays this image with a pattern of fine dots, calibrated to manipulate the average luminance within each cell. This ensures that when a scanner samples the cells, it correctly reads them as light or dark, preserving the original data while making the embedded image visible to the human eye.
Related Projects
360 Visualizer
A web tool for creating immersive 360 degree panoramas with text and recorded sound for exhibitions, working in all major browsers and using device compass/gyro (or click and drag) to rotate the panorama intuitively. I developed this for the Cyprus Institute. A demo can be found here.
Unité d'Habitation Wikisurvey
A wiki survey tool implementing methods from two previous wiki survey systems (All Our Ideas and POLIS) with new innovations. I developed this web application as part of the MetaFraming research. See the MetaFraming paper for more details.
Other Matter
An AR exhibition with Valerie Messini and her students at the University of Applied Arts in Vienna. To support the students' creation of interactive and reactive sculptures, I extended the Wikar platform with several new features. This included more robust QR code scanning (improving reliability for inverted codes), expanded UI customization options, and a set of "interaction primitives" that students could use for proximity-based events or custom user controls. A video of the exhibition can be seen here.
Earth Vis
An experiment in converting NASA climate data into a real-time VFX graph visualization. For this project, I built a system in Unity where particles sweep over a globe, using a flowmap to determine wind speed and direction, while their trails change color based on temperature.