IGAH: Isometric Game Asset Harness
Blueprints in, engine-ready 2:1 isometric pixel-art sprites out.
Describe an object once as JSON primitives (or an imported GLB model) on a tile footprint. The harness renders all four rotations on an exact pixel grid, with pixel-scale textures, a shared 32-colour palette, a 1 px outline and a dithered shadow. It packs a sprite sheet with a manifest (pivots, footprints, occupancy, door anchors) and depth and picking maps, then runs eight quality gates. Characters get their own format: 8 facing directions with an idle frame and a walk cycle, all customizable. Everything runs in the browser and in Node through the same code, with no dependencies.

Try it
- Sandbox: edit a blueprint and watch every rotation, map and gate update live.
- Character creator: pick build, hair, clothes and colours, watch all 8 directions walk, and export the sprite sheet.
- Specification: projection maths, the blueprint and character formats, manifests, maps and gates.
Run it locally
npm run serve # http://localhost:8080: home, sandbox, characters
npm test # unit tests
npm run gallery # every prop into gallery/ (fails if any gate fails)
npm run gallery:48 # the same at native 48×24 tiles
npm run characters # every character sheet
npm run scenes # scene mock-ups
npm run build:site # the public website into dist/
Node 20 or newer. Nothing to install.
Pipeline
- Blueprint: JSON primitives (
box,pyramid,cylinder,cone,gable,wedge,stairs,arch,model) with patterns, groups, repeats, hinged parts and anchors. - Render: 2:1 orthographic, fixed top-left light, hard shadows, posterized shading, 4 × 4 edge sampling, four rotations.
- Clean: the IGAH-32 palette, shadow dither, outline, crop around the base diamond.
- Pack: sprite sheet,
igah.sprite/1manifest, ground-depth map, part map. - Gate: calibration, tile seam, views, pivot, hard alpha, palette, shadow direction, maps.
Characters follow the same path into igah.character/1 sheets, with a foot-contact gate.