# Net Forge and Babylon.js: when to use each

> Babylon.js is an open game and rendering engine for the web with WebGPU support and a large Playground. Net Forge is a TypeScript engine with one simulation shared by client and server and ten finished multiplayer games.

Net Forge, the open-source multiplayer browser game engine built for AI coding agents, is published on npm under `@netforge` with source at https://github.com/netnetdev/net-forge.

Source: https://forge.netnet.capital/docs/compare/babylonjs  
Last updated: 2026-10-24. Checked against @netforge/engine 0.2.0.

Pick Babylon.js when you want a full-featured 3D rendering and game engine for the web, backed by a large Playground of samples and a long history of WebGPU support. Pick Net Forge when you want an online game that starts from a finished multiplayer template, with the server and the browser running the same simulation, and that your coding agent can change safely.

```sh
npm create netforge@latest my-game -- --template arena --yes
```

## At a glance

| | Babylon.js | Net Forge |
|---|---|---|
| What it is | "A powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework" ([GitHub](https://github.com/BabylonJS/Babylon.js)) | A browser game engine plus ten multiplayer templates |
| Language | JavaScript or TypeScript | TypeScript |
| Rendering | WebGL and WebGPU (`WebGPUEngine`, available since 5.0 in May 2022, per [the docs](https://doc.babylonjs.com/setup/support/webGPU)) | three.js, WebGPU with a WebGL2 fallback |
| Multiplayer model | Your choice of networking library | Authoritative room host stepping the shared simulation |
| License | Apache-2.0 ([npm](https://www.npmjs.com/package/@babylonjs/core)) | MIT |
| Latest version (checked 2026-10-23) | `@babylonjs/core` 9.32.0, released 2026-10-22 | `@netforge/engine` 0.2.0 |
| Best for | Rich 3D scenes, games and apps on the web, and native apps through Babylon Native | Online games in ten genres, built in code |

## When to pick Babylon.js

- **You want one engine for rendering and game features.** Babylon.js calls itself a game and rendering engine, with a [Playground](https://playground.babylonjs.com/) where you "play directly with the Babylon.js API" and learn from its samples ([GitHub](https://github.com/BabylonJS/Babylon.js)).
- **You want WebGPU with a long track record.** WebGPU support has been available since Babylon.js 5.0 ([WebGPU support](https://doc.babylonjs.com/setup/support/webGPU)).
- **You want to reach native apps.** The docs cover building native apps with Babylon.js under cross-platform ([Babylon.js docs](https://doc.babylonjs.com/)).
- **Your project is a 3D app as much as a game**, such as a visualization or a configurator.

## When to pick Net Forge

- **The game is online.** `@netforge/engine-sim` steps the world on the room host and predicts it in each browser with the same code. See [Simulation and ECS](https://forge.netnet.capital/docs/concepts/simulation-ecs.md).
- **You want to start from a finished game.** Ten templates ship with netcode, bots, touch controls and a playtest. See [Templates](https://forge.netnet.capital/docs/templates.md).
- **Your coding agent writes the rules.** `src/game.ts` is declarative, validated with one actionable line per mistake, and checked by `npm run check`. See [The typed game API](https://forge.netnet.capital/docs/concepts/game-api.md).

## Honest limits of Net Forge

Net Forge is young (0.2.0), browser only and built for ten game genres rather than general 3D apps. Game code may import only `@netforge/engine`. The public repository's room host is for play on your own computer and network; the production room server is the hosted Net Forge service.

## Moving from Babylon.js

| Babylon.js | Net Forge |
|---|---|
| `Engine` and `Scene` setup | Done by the template; you declare `game({ template, style, ... })` |
| Meshes loaded with `SceneLoader` | Prefabs with library asset ids such as `"style.lowpoly.bat"` |
| `scene.onBeforeRenderObservable` game logic | `system()` callbacks on the 30 Hz simulation tick |
| Physics plugin bodies | Rapier bodies and the character motor in `@netforge/engine-sim` |
| Post-processing pipelines | `game({ look: { preset, bloom, fog, vignette } })` |
| Your networking layer | The template's authoritative room |

A first step: start the template nearest your game and port one mechanic at a time.

```sh
npm create netforge@latest my-game -- --template arena --yes
cd my-game
npm run play
```


For a side-by-side table of the 3D options, see [3D multiplayer browser game engines compared](https://forge.netnet.capital/docs/compare/3d-multiplayer-engines.md).

## FAQ

### Is Babylon.js free?

Yes. Babylon.js is open source under the Apache-2.0 license ([npm](https://www.npmjs.com/package/@babylonjs/core)). Net Forge is MIT licensed.

### Does Babylon.js support WebGPU?

Yes, through `WebGPUEngine`, since version 5.0 ([WebGPU support](https://doc.babylonjs.com/setup/support/webGPU)).

### Can I use Babylon.js with Net Forge?

Not inside a Net Forge template, which draws with three.js. You can still use Net Forge's simulation package, `@netforge/engine-sim`, which has no rendering dependency, under your own renderer.

### Which one is better for a multiplayer game?

Babylon.js leaves networking to you. If you want multiplayer already working in a finished game, start from a Net Forge template.
