A real frame from the engine running examples/demo. Rust and wgpu: DS
orthographic camera, static and skeletally animated glTF, UV-scroll water, tilted
billboards with 2.5D sorting, character shadows, screen effects and OGG/WAV audio.
A native engine and a desktop editor for 2.5D Pokémon games. Paint tiles on a grid, sculpt elevation into plateaus and cliffs, drop glTF models and character sprites, wire up RMXP-style events — and script the rest in JavaScript.
The editor draws with the same renderer the game runs on. What you build is what you play.
Both routes are genuinely good at things this project is not, and neither is a modern, 3D, Pokémon-specific tool you fully own. That is the one we are building.
| RPG Maker XPPokémon Essentials | ROM hackingBinary tools & decomps | TallgrassThis project | |
|---|---|---|---|
| Foundation | RPG Maker XP with Ruby/RGSS | A retail ROM, or a decompilation of one | An engine you compile yourself |
| World | ~Mature editor, but 2D tilemaps only | ~Authentic maps, locked to the original format | ✓3D grid with elevation, cliffs and ramps |
| Pokémon systems | ✓Comprehensive and community-maintained | ✓The real thing, exactly as shipped | ~Reimplemented in JS; battle still in progress |
| Changing behaviour | ✓Ruby scripts you can edit | ✕C or assembly against a fixed binary | ✓Plain JavaScript in your project folder |
| Shipping it | ~Windows-first player | ✕A patch — players must supply the ROM | ✓Native builds for macOS, Windows, Linux |
Scroll the table sideways →
Everything the editor does, shown next to the screen that does it — no round trip to another tool.

Map editor. One WebGL viewport that both edits and previews the real look — pencil, rectangle, fill and eraser with a ghost preview, a Ground/Overlay layer toggle, orbit / pan / zoom-to-cursor, and a start point you set with a right-click. Raise and lower tiles into plateaus with vertical cliffs; the Ramp tool makes walkable slopes, and level height is configurable per tileset.

Database. Schema-driven editors for species, moves, items, abilities, natures and berries, plus a clickable type-effectiveness chart and a trainers editor, all with sprite and icon previews. New projects arrive seeded with the full Pokédex.

Scripts. RMXP-style events with pages, conditions, graphics, autonomous movement, triggers and a rich command list, plus map-independent common events. All of it is editable JavaScript in an in-app CodeMirror editor over scripts/*.js, right next to the map you are building.

Tilesets. Tag passage, the cliff-face texture and terrain behaviour per tile — ledge, water, waterfall, grass, ice, sand. Per-level collision then falls out of the elevation you paint: cliffs block, ramps connect, and the player follows height.
Movement, encounters, evolution, weather and battle all live in a QuickJS layer that ships as plain source in your project. Here is how the real player controller decides what a single step costs — every constant is yours to change.
Paint maps and place events visually. A basic game needs no programming at all.
Every system is an overridable JS module. Open it, change it, reload.
Behaviour modelled on the real Platinum systems — camera, grid, timings and feel.
A default resource pack — data, sprites, models, audio — so you start with something playable.
// Terrains that make you slide: keep momentum until you exit or bump. const SLIDE = { ice: true }; // Step-duration multiplier by destination terrain (>1 = slower). const SPEED = { sand: 1.4, deepsand: 1.7, marsh: 1.6 }; // Terrains that leave a fading ground decal. const FOOTPRINT = { snow: true, sand: true }; export class Player { tryStep(dir) { const next = this.cellAhead(dir); if (this.map.isLedge(next, dir)) return this.hop(next); if (!this.map.passable(next)) return this.bump(); const terrain = this.map.terrainAt(next); this.sliding = !!SLIDE[terrain]; this.beginStep(next, (SPEED[terrain] ?? 1) * this.stepDuration); if (FOOTPRINT[terrain]) engine.addDecal("footprint", next); } }
The overworld, the editor and the Pokémon data layer are in. What remains is the battle stack and the polish tools.
Shipped: the Rust + wgpu engine and DS camera, glTF models and audio, elevation with cliffs and ramps, the map / script / tileset editors, events and common events, the database and type chart, the overworld systems, the Pokémon data layer, and the default resource pack.
New projects are scaffolded with a full playable script tree and the default database. Audio plays in the windowed engine; headless render modes are silent.
$ cd editor $ npm install $ npm run tauri dev # hot reload $ npm run tauri build # bundle
$ cd engine $ cargo build --release $ cargo run -- --window \ ../examples/demo
Full contracts live in docs/:
FORMAT (project format),
SCRIPTING (JS API and runtime), and
ARCHITECTURE.
The editor, the engine and the content are all here. Bring the region.