The editor · live, in your browser
A 3D scene editor, right here.
This is the real editor — not a video. It runs entirely in your browser: place spawns, sculpt terrain, scatter foliage, drop in your own .glb models, and export the scene. Nothing uploads; everything stays local to you.
Tip: 📂 Open scene loads an editor.scene.json, 🧊 Add assets pulls in your own models, and Export / Ctrl+S saves the scene back to your machine.
What's in it
A full authoring toolset, not a toy
Gizmos & selection
Click to select — markers, volumes, paths, notes. Move / rotate / scale with snapping, multi-select drags, an outliner, and a full inspector.
Terrain sculpt & paint
Raise, lower, smooth, flatten, ramp, and noise brushes on a live heightfield — then paint material layers with weighted blends. Every stroke is one undo step.
Foliage & scatter
Lasso a region and get deterministic, GPU-instanced foliage with density, species palettes, slope/height masks, and clearance zones that keep gameplay clear.
Prefabs & collections
Extract a selection into a reusable prefab, stamp fresh instances anywhere, and bookmark named selection sets with lock/color/visibility groups.
Edit · walk · play
Freeze the sim and inspect, roam in the game's own camera, or drop into the real game — the F2+E chord, session preserved across every mode switch.
Headless agent RPC
Every verb the UI has is scriptable. Agents author scenes, assert content, and screenshot — no user-launched server, no WebGL required for document edits.
Standalone
Now outside the repo — for your own projects
You don't have to be building a JGengine game to use the editor. Run it on any folder: it opens that folder's editor.scene.json, treats every .glb/.gltf under it as a placeable asset, and Ctrl+S writes the scene back. There's a desktop build too.
CLI · any folder
# opens the 3D editor in your browser on ./npx jgengine editor# or point it somewhere, with a models foldernpx jgengine editor ./world --assets ./modelsEmbed · your own app
import { StandaloneEditor } from "@jgengine/editor";// The same editor games ship, mounted over a blank world —// open a scene file, drop in a folder of .glb/.gltf models.<StandaloneEditor sceneId="my-scene" />;Author once, render generically
The scene is data — not code you hand-write
Coordinates live in one document, editable in 3D like a scene in Unreal. The render and the gameplay both read it, so there are no waypoint arrays pasted into game code and no per-segment path meshes to maintain.
- 01
Author
Place and shape everything in the editor viewport.
- 02
Save
Ctrl+S writes editor.scene.json — plain, importable JSON.
- 03
Render
<AuthoredScene> drapes paths, instances foliage, and drives collision.
- 04
Reuse
Gameplay reads the same document — one source of truth.
import { AuthoredScene } from "@jgengine/shell/scene";// Everything you placed in the editor — paths draped on terrain,// foliage instanced, gameplay spots — renders from one document.<AuthoredScene document={sceneDoc} field={ctx.world.ground} />;# headless: drive the live editor from an agent, no clicksbun run drive the-robots --mode editor \ --rpc '{"method":"set_transform","id":"boss","x":-90,"z":-650}' \ --rpc '{"method":"export_document"}'Open the editor on anything.
No install, no game required. One command and you're placing objects in 3D.
npx jgengine editorSee what you'd build it into on the capabilities page.