Portfolio
My portfolio showcases some of my recent work
Dopple.io
Dopple is a platform for incorporating 3D and AR visualization and product configuration into commerce sites. In my capacity as both a technical leader and direct contributor, I was responsible for creating the initial prototype for the platform, defining the architecture and providing technical leadership for development, and supporting the integration of the platform with customer sites and commerce platforms. Click the image to go to the live demo.
Double A
Double A is a platform for creating immersive experiences for brands to connect with their customers, collaborators, and content creators. As a direct contributor, I was responsible for development of several key features, some of which are highlighted below
Click here to see Double A in action
Double A
Vibes

Vibes are a feature unique to the Double A platform. I conceived, designed, and implemented this feature which allows a user to send an emoji to another user. The system includes particles effects for the launch, projectile trail, and impact as well as animation of the emoji travelling across the screen. I also used a custom shader to create a cooldown UI to control how often a user can be sent a vibe.
Double A
Embedded Content

I implemented a system to allow embedded images (including animations), videos, and websites to be included, positioned, and resized directly in scene, allowing other objects in scene to occlude parts of the content.
Double A
Performance Improvments
I optimized the performance of BabylonJS on the platform including using instancing to reduce the number of draw calls for large numbers of avatars and freezing things that do not need to change with each render. I experimented with several different approaches to drawing on-mesh UIs to determine the most performant at scale.

Double A
Behaviors
I developed a system to allow interactive behaviors to be attached to content. These behaviors could allow a user to teleport to another room, or open content. I also included the ability to define more complex behaviors. An example is the dice roller which can determine the flat faces of any dice model, randomly picking one, and animating a roll to that face. Click the image to go to the live version.
HtmlMesh
HtmlMesh is an extension for BabylonJS that allows HTML content to be included in a scene, either as an overlay for the scene, or as an element within the scene allowing it to occlude other elements and be occluded by other elements. Read more about HTML mesh here