When I started this series two months ago, I had two main objectives. Learn how to integrate 3D content into my Vue development workflow and decide which 3D library I’ll use for future projects. I have achieved both of those goals!
Initially I set out to compare A-Frame, Babylon JS, and Three JS, but after working with Babylon JS for the last few weeks I’ve made up my mind. For the type of apps and experiences that I want to build, Babylon JS has the most to offer. I’m thinking particularly of the 3D and 2D GUI.
Most of the projects that I want to build can be described as client interfaces on top of existing apps or databases. I want to explore spatial and 3D UI and interaction patterns that help me think and work better. I want to find new ways to free myself from a mouse and keyboard and even replace some of the workflows that I use on touch screen devices. Babylon JS offers a ton of functionality that can get me started on that path. Their abstraction layer for VR headsets and controller input is top-notch. The spatial 3D GUI features help me rapidly prototype layouts in 3D space. The Advanced Dynamic Texture lets me create small interactive UIs that I can attach to 3D objects.
The combination of these features means that I can focus my time and energy on making things, instead of making tools to make things. I’ve always been the kind of developer who is better at using tools than making tools. Most of my development career has been working in systems like FileMaker Pro and WordPress as a creator using those tools to build databases, applications, and websites. That is where I feel I can have the best impact for my customers and for the larger immersive community.
So, what about this series? I completed Chapter 1: A-Frame and Chapter 2: Babylon JS but I never made it to Three JS or any of the other tools I was planning to look at (Play Canvas, 8Th Wall, etc.). For now, I’m going to wrap up this series and call it a win for me with Babylon JS. I’ll have a lot more to say on Babylon JS over the next few months. I’m already starting the discovery and prototype phase for my next project, so stay tuned for that.
Lastly, I want to emphasize that I don’t think Babylon JS is the “best” 3D library, it’s just the one that best suits my way of thinking for the type of projects that I want to build. There are several personal projects that I’d like to build with Three JS, but those projects wouldn’t be served much by using Vue. I also plan to keep using A-Frame as a rapid prototyping tool and for small projects. Someday, I may even write Chapter 3 of this series, but today I want to throw myself into interface design using Babylon JS.