A list of projects I worked on in the past, either on my own or as part of a team/company.

Globale - Large-Scale Google Tiles ThreeJS app

I developed a ThreeJS and Google Tiles-based large-scale application that allows you to create guided tours in real-time across the globe, both in AR (in-person) or remotely via the browser.
Google featured it on their official blog and on their official social media channels.
See a demo video

Slide AR

Slide AR is the first Augmented Reality iOS app for 2D artists.
The initial prototype I built attracted enough users that I decided to turn it into a full app, and we now have tens of thousands of users.
Our Instagram account gained followers quickly, and many people have created tutorials for Slide AR independently from us. It also uses AppClips to show AR content, being one of the only iOS apps on the market to do so.

Mosaico - AR Interior Design

One of the things that make AR exciting to me is the concept of editing 3D virtual content remotely. I imagined what it would mean to create a 3D replica of the real world that one could use to add virtual content in it, without having to physically be there.
So I built Mosaico, an end-to-end system (iOS app + 3D processing pipeline in the cloud) that allows capturing a room in your house and then do interior design on it.
How useful would it be if you then shared your room with an interior designer on the other side of the world, and collaborated on it in real time? The video does it more justice than words so I encourage you to watch it.

gs-max - WebGPU shaders

Workbench website I built to practice/learn WebGPU's shading language, WGSL. It mostly contains a collection of Shadertoy shaders which I found pretty, and which I ported to WGSL. Repo here.

SCNHighlight - Scale-invariant highlight effect in SceneKit

This project shows how to achieve a scale-invariant highlight effect on your SCNNodes in a SceneKit app using Metal shaders.
'Scale-invariant' means that the highlight border maintains the same thickness no matter how far from the camera the SCNNode is.
SCNHighlight can be particularly useful to show a highlight around SCNNodes in an ARKit app, where selected objects might be far from the camera.

Large-Scale Computer Vision-Based ARKit app

SceneKit & ARKit app developed for Scape Technologies using their vision-based geolocation system. Combines AR with multiplayer, persistent and real-time updates for multiple users at large scale.
I gave a technical presentation about it at the ARLondon meetup, and published detailed an article on Scape's official blog.

XRAD - Large-Scale Vision-Based ARKit remote positioning

Co-developed with Danilo Pasquariello, we used a detailed 3D map of London with WebVR & ARKit to allow accurate remote positioning of content.
Our project won the Scape Technologies' Geo-Based Hackaton and was featured on Week Of A-Frame twice.

geepeetto

Uses ChatGPT to automatically translate an iOS app's localization files from English to as many languages as you want.
I needed localizations for my app Slide AR but hiring translators for every language would have taken too long, so I built this.
It's a command-line tool that I hope it will be useful to others too.

invisibile

Converts GIFs to MOVs in Swift and shows them as transparent animated layers in ARKit!
Since there weren't any libraries that converted GIFs to video on iOS, I implemented it and as an added bonus, used it with SceneKit. I did this for my app Slide AR.
It uses all the bells and whistles to make it run fast.

Among The Stones

Among The Stones is a 3D platforming videogame we developed at Bluedoor Games. It was inspired by our team's love of PS1-era platformers and of the cell-shaded graphics stlye of games such as Jet-Set Radio and Ōkami.
We developed it with Unreal Engine 4 and targeted the Playstation 4.
The game won a BAFTA award, and also the DARE Academy prize at Abertay Dundee in the UK.

Klash

Klash is a 2D platforming game written in ActionScript 3 which is inspired by the 2D scrolling games on GameBoy Color I played as a kid. I developed it as coursework during my time at Abertay Dundee. I wrote a tile-based 2D engine with collisions, inputs, etc, and drew some of the sprites, like the animated ones.
I remember having lots of fun working on it, especially when picking the background music, the sound effects, and making sure they fit the aesthetics of the game.
The repository is here.

Vulkan Visibility Buffer Renderer

Implementation of a Visibility Buffer 3D renderer in Vulkan and C++, which I researched and developed in partnership with AMD.
The implementation uses the GCN hardware extension for Barycentric Coordinates to perform the shading pass.
This technique has now been adopted more broadly compared to 2017, with Apple discussing it at WWDC19.
The paper can be downloaded here.

More soon. WIP