← all demos · chapter 11

Babylon.js — batteries included

The same "scene, camera, light, mesh" language as three.js — but notice what comes free: a drag-to-orbit camera is one line, engine-wide glow is two, and 2D text floating over the 3D world (the GUI system) is built in. That's the "engine vs library" difference, live. Babylon 9.22 (Apache-2.0, free) loads from a CDN — no installs, no Node.js.

Loading Babylon.js from the CDN… the Run button wakes up when it arrives. (This page needs internet for that file.)

Try tweaking: glow.intensity 0.9 → 0 (feel how much the glow was carrying) · ship count 2 → 8 · orbit speeds 0.5 + i * 0.3 → give one ship 4.0 and watch "stately" and "frantic" share a scene · the torus knot's radialSegments 96 → 16 for low-poly chunk.

The comparison to feel: in three.js, the orbit camera, glow layer, and GUI would each be an addon you import and wire up; here they're one or two lines each because Babylon is an engine. Neither approach is better — it's control vs speed. Chapter 11 holds the whole map, and the Babylon Playground is the zero-setup place to keep going.

In Godot: drag-to-orbit + glow + UI-over-3D is orbit_glow_3d.gd, ready to download: a yaw node → pitch node → camera-on-a-stick rig (six honest lines of drag math where Babylon ships ArcRotateCamera), an emissive material, Environment.glow_enabled for the bloom, and a CanvasLayer for the label. In Unity: Cinemachine's Orbital Follow (or the same two-transform rig by hand), an HDR emissive material + URP Bloom, and UGUI for the label. In Unreal: a SpringArm + Camera on a Pawn — the rig, prebuilt — an emissive material (bloom is on by default), and UMG for the label.