A Month of Babylon JS

Throughout the month of March, I’m going to learn everything I can about Babylon JS. Over the last year I’ve spent a bit of time with A-Frame, Three JS, and Babylon JS. I explained my reasoning for settling on Babylon JS in the most recent episodes of Project Update.

I have a history of spending too much time on courses and educational content, and not enough time building something with the tools I’m learning. This month I’m going to try to break that cycle by planning how I work on this project.

  1. I’m going to stop work an hour early each day (Monday through Thursday) to spend time working through the Babylon JS Getting Started guide and documentation.
  2. I’m going to take each Friday in March as a day to spend building small projects, with an emphasis on what I’ve learned over the previous days.

My hope is that this approach will place some limits on the project while giving me plenty of time to spend on it. While this is clearly in the “side project” column of work, I still consider this actual work and will treat it as such. I’ll be tracking my time, taking lots of notes, and reporting my progress during Project Update recordings with Dave.

One of my goals for this project is to learn to think in the way that Babylon JS and other similar JavaScript frameworks want me to think. These environments all approach problems in ways than I’m not accustomed to. I’m just not used to thinking in in the JS way yet. With a background in FileMaker development, lots of work in PHP, Swift, and C#–I’m used to solving problems in ways that don’t always make sense in the JS context.

I got started on this project yesterday, March 1, 2021, with the Babylon JS Getting Started Guide. I worked my way through chapters one and two. While most of this was just a refresher of things I already knew, I did pick up a few things.

  • I don’t always need to pass a reference to a scene when creating an object. When I leave this null the value will default to the current scene.
  • I can save/export Babylon JS scenes to a .babylon file format that can be viewed or imported elsewhere.
  • I can import entire scenes or portions of scenes from these saved files. This seems like an interesting way of making something like Prefabs in Unity.
  • Babylon JS has some interesting ways of making copies and instances of objects. I want to learn more about instances and what they inherit from their base objects.