Tilejam is a compact browser-based tile and scene editor for turning rough or AI-generated tilesheets into clean, grid-aligned game assets.
Live app on GitHub Pages
This project was developed with Codex.
Steering docs:
- AGENTS.md: repo-level Codex and review guidance
- docs/ONBOARDING.md: start a new Codex session
- docs/PRODUCT.md: product intent, workflow, and scope
- docs/TECH_WORKFLOW.md: architecture, ticket structure, and prompt template
- docs/FORMATS.md: project, export, and file format rules
- docs/ITERATIONS.md: roadmap and current tickets
Tilesheet editor
- load a source image or working tilesheet
- place source regions into an editable output tilesheet
- crop, repair, transform, and export PNG / TSJ
Scene editor
- use the current tilesheet as the scene palette
- place and edit tiles across layers
- support TMJ scene files and image layers
Tilejam runs in the browser, but it is designed for desktop-style local file workflows.
Chrome or Edge is the preferred browser because Tilejam relies on the File System Access API for the best open/save experience and there is no backend server. Other browsers can still run the app, but some project and file flows are more limited.
Requirements:
- Node.js 20+
- npm
npm install
npm run devOpen the local URL printed by Vite, usually http://localhost:5174.
npm run build
npm run previewFor a Pages-like local test, you can also serve frontend/dist with a static server after npm run build.
Tilejam runs on GitHub Pages as a static site.
Use the hosted app for:
Open Demoto try the bundled example setup- local source / tilesheet / scene / project files from your own machine
- local exports and saves back to your own disk
For the best hosted file workflow, use Chrome or Edge.
GitHub Pages serves the app, but your project files, scene files, and exports still stay on your own disk.
Use the toolbar Help button in the app for the same shortcuts and mouse controls.
Mouse
- source panel: drag to select source tiles
- tilesheet / scene: click to select one cell
- tilesheet / scene: drag to build a rectangular selection
- tilesheet / scene:
Cmd-dragon Mac orCtrl-dragon PC to move the selected group - source / output: wheel to zoom
- source / output:
Option-dragon Mac,Alt-dragon PC, or middle-mouse drag to pan
Keyboard
- copy:
Cmd+Con Mac,Ctrl+Con PC - paste:
Cmd+Von Mac,Ctrl+Von PC - undo:
Cmd+Zon Mac,Ctrl+Zon PC - redo:
Shift+Cmd+Zon Mac,Ctrl+YorShift+Ctrl+Zon PC - delete selection:
DeleteorBackspace - move selected tiles or scene cells:
Shift+Arrow keys - pan hovered view:
Option+Arrow keyson Mac,Alt+Arrow keyson PC - reset hovered view:
0
A compact folder layout like docs/examples works best for linked project files:
your-project/
level1.json
level1.tmj
level1.tsj
source-textures/
mountain-sheet.png
textures/
mountain-sheet.png
clouds-bg.png
Use the project JSON, scene file, tileset files, and related source/image assets in the same project folder tree so Tilejam can resolve linked files correctly.
You can generate input source sheets in ChatGPT and then clean them up in Tilejam.
These source sheets are often useful but not perfectly aligned. Tilejam helps crop, place, adjust, and repair them into a clean working tilesheet.
Prompt template:
Create a 1024x1024 pixel art tileset in a 32x32 grid (32x32px tiles).
Style: polished cartoon pixel art with soft shading, subtle gradients, rounded forms, and vibrant colors, similar to modern mobile games.
Theme: [INSERT THEME]
Requirements:
- Tiles strictly aligned to grid, no overlap between tiles
- Uniform removable background (transparent-style or flat color)
- Group similar assets per horizontal row (no mixed categories)
- Terrain/background rows must tile seamlessly horizontally
- Consistent lighting, scale, and color harmony across all tiles
Why Tilejam helps after generation
AI-generated source sheets are often close, but not clean enough to use directly. Tilejam is there to crop, align, place, repair seams, and rebuild a usable working tilesheet.
Typical feature workflow:
- discuss the feature and desired behavior with Codex
- ask Codex to create a ticket in docs/ITERATIONS.md using the ticket structure from docs/TECH_WORKFLOW.md
- ask Codex to implement that ticket
- ask Codex to validate architecture and design against
TECH_WORKFLOW.md
Use the Codex Prompt Template in docs/TECH_WORKFLOW.md when you want a compact implementation prompt.
Common Codex tasks:
- create or update the next ticket in
docs/ITERATIONS.md - implement a specific ticket from
docs/ITERATIONS.md - validate architecture against
docs/TECH_WORKFLOW.md - use
.codex/agents/architecture-reviewer.tomlfor a focused architecture review - validate UX/design against the same rules
- review UX, grouping, and editor layout before coding
- update product, workflow, format, or iteration docs when rules change
- check browser and static-host behavior for Chrome, Edge, Safari, and GitHub Pages
Use docs/ONBOARDING.md to initialize a new session.
Suggested start:
- ask Codex to use
docs/ONBOARDING.md - review the current ticket and steering docs
- discuss the next change
- create or refine the next ticket before implementation

