We are thrilled to shine the spotlight on yet another exceptional 8th Wall developer community member: Mal Duffin. Mal is a veteran in the field of game development who skillfully melds his extensive experience to forge engaging WebAR experiences. He recently participated in the 8th Wall x Hope for Haiti challenge where he created an immersive experience showcasing the history of Haiti and the work Hope for Haiti does.
We hosted a Q&A with Mal to learn more about his journey in the XR space and how he’s using 8th Wall to build engaging experiences.
How were you introduced to 8th Wall?
I’ve been working with 8th Wall for a couple of years now - right after another developer and I wrapped up our Unity-based indie dev studio (which was a lot of fun, but it’s a tough industry to make money in - which is important when you have kids). Having worked with 3D projects helped me get started with 8th Wall as well as having a knowledge of JavaScript, TypeScript, and React from other freelance work helped!
What would you say is your area of expertise?
As a coder, I’ve enjoyed working with A-Frame (it’s a very powerful system for quickly putting together projects) and being able to drop down to the Three.JS level to get any additional advanced features implemented. In a recent project, this involved accessing the animation mixer directly to be able to stop and start a selection of different animations within a GLB file at different times.
As a 3D technical artist, a big challenge can be just getting content optimized (file sizes, heavy detail models) and into the scene, as well as issues with getting multiple animations into a GLB. I use Blender a lot, which has a great GLTF/GLB exporter - once you get used to the process of supporting exporting different features, it gets a lot easier to hit those milestones!
I’m also a GLSL shader coder if any specific visual effects are required. Shader coding involves a mix of visual design, lots of math, unforgiving coding, and a sprinkle of magic.
How do web-based capabilities help you bring AR to the real world?
The accessibility of having browser-based AR is huge - as most AR experiences tend to be measured in minutes rather than hours, installing an app might take longer (and certainly involves a lot more steps) than just launching straight into an AR webpage-based experience.
As a freelancer, having clients who also see this benefit for their customer brands means that the demand for AR goes up, as does the requirement for experienced developers to work with their creatives to bring a client brief to life.
What are your future goals with AR?
I see mobile as the gateway experience for most users to try out AR - everyone has a smartphone in their pocket, and most people are familiar with QR code scanning. As we wait for 20 (hopefully 10 or 5) years on lightweight AR glasses that we can quickly pop on and off to experience AR content, the phone is where it’s at right now.
What’s a recent project that left you feeling inspired?
I spent the weekend before the latest 8th Wall challenge putting this entry together (I didn’t realize I had any development free time until the last minute), so the focus was more on adding modularised functionality and optimization than on visuals.
A number of 8th Wall modules are used, including the very exciting InWorld AI Integration Module for chatting with the AI character! As I was working with a lot of images ( loading them, turning them into textures, and displaying them on the floating billboards), one of the optimizations was to release the texture memory immediately after the image had been replaced. Without this, I was getting crashes on iOS Safari, which is well known for reloading the webpage when it runs out of texture memory.
I used Blender to create the scene. I wanted to work with all of the animations as a single GLB file, like the buttons on the information panel for example. This required the development of a custom A-Frame component, which dropped down to the Three.JS level and was able to control the mixer to start animations at different times without affecting other currently playing animations (e.g. restarting them). I also created a custom GLSL shader for the initial tap-to-place stage but didn’t get it integrated in time.
Are you interested in connecting with developers like Mal Duffin? Join our Devlsack to build and learn from others in the 8th Wall developer community.
Tags: Community
.png?width=100&height=100&name=Untitled%20design%20(8).png)
Written by 8th Wall
Niantic's 8th Wall platform is equipping developers, agencies and brands with a complete set of tools to create web-based augmented reality. 8th Wall's WebAR works across iOS and Android devices with an estimated reach of 5 billion smartphones worldwide - all with no app required to download. 8th Wall has powered thousands of commercial experiences for top brands which have engaged millions of users around the world.