Agent-authored pixel animation with a preview studio, local MCP, SQLite revisions, and PNG, GIF, JSON, and MP4 exports.
Agent-authored pixel animation with a preview studio, local MCP, SQLite revisions, and PNG, GIF, JSON, and MP4 exports.
git clone https://github.com/qentrah/qh-pixels.git
cd qh-pixels
npm ci
npm run devRead the original README for the complete repository reference.
Agent-authored pixel animation, with a preview-only studio.
A Qentrah project. Characters are numeric palette cells, authored through local MCP. The browser plays and inspects them; clicking the artwork never paints it.
Watch the 30-second walkthrough · Original recording
The pack contains native 256 × 256 artwork with articulated fingers, rounded eyes and catchlights, clothing details, body/head turns, and smooth scene timing. These frames are rendered at their target resolution—not enlarged copies of the earlier sprites.
| Motion | Preview | Frames | Playback | Pixel document |
|---|---|---|---|---|
| Walk | 32 | 1.33-second loop | JSON | |
| Turn | 48 | 2-second loop | JSON | |
| Car journey | 72 | 6-second sequence, stops in the studio | JSON | |
| Balloon | 48 | 4-second loop | JSON |
GIF previews repeat for viewing. The JSON preserves the car's single-shot playback flag. PNGs, JSON, GIFs and a timing manifest are included. The earlier pose collection is no longer part of the active presets; previous local edits remain recoverable in SQLite revisions.
Requires Node 24+. Install FFmpeg for GIF and MP4 export.
npm install
npm run devStudio: http://127.0.0.1:8094 · API: http://127.0.0.1:8095.
For the production bundle, run npm run build, then npm start and open port8095.
Space plays/pauses and left/right arrows step frames when the preview is focused. The GitHub icon opens this repository.
Use a standard local stdio MCP configuration:
{
"mcpServers": {
"qh-pixels": {
"command": "node",
"args": ["/absolute/path/qh-pixels/server/mcp.mjs"]
}
}
}The server and UI share local SQLite storage. Read qh://protocol before editing.
list_workspaces / create_workspace establish a workspace.list_models / create_project with modelId and workspaceId create a character. Built-ins: fox, fox-car, fox-balloon, blank.read_project, read_region, preview_frame and read_3d_model inspect the current artwork and numeric geometry.apply_operations batches grid or pixel changes with an expected revision; conflicts do not silently overwrite another agent.render_3d_pose, inspect_animation, candidate comparison and revision restore support corrections.export_project produces PNG, sprite sheets, JSON, GIF or MP4. register_model saves a reusable custom pixel model.The app records an external model preference; inference runs in the external agent, not in the browser. No image-generation service is required.
Install the reusable qh-pixels skill by copying its folder into your agent's skills directory. The custom QH harness adapter remains a draft integration task; standard MCP works now.
Integer cell (x,y) maps to y*width+x; cell centers are (x+.5,y+.5). Pixel0 is transparent. Canvas coordinates remain independent of viewport zoom/pan.
Sizes are configurable through 1,024 × 1,024. Doubling both sides multiplies pixel count by four. Large cels use compact non-overlapping color runs; every cell remains individually addressable through rectangular reads and patches.
The detailed fox renderer casts orthographic rays into authored ellipsoid, box and cone surfaces. A depth buffer resolves visibility; head, sleeves, fingers and shoes follow their joint transforms. This gives new contours and detail at256/512/1024 instead of magnifying a64-pixel image. Agent-painted frames retain their pixels on resize. The car and balloon are authored layered scene presets, not a general physics simulator.
Frame holds control time. Video24/30/60 FPS repeats held poses without inventing intermediate frames. GIF quantizes timing to centiseconds; MP4 is lossy. Numeric diagnostics can detect specific defects but cannot prove artistic or emotional quality.
See protocol, rendering mathematics, interface references and validation.
npm test
npm run build
npm run test:ui
node scripts/build-motion-pack.mjs
npx playwright install ffmpeg
node scripts/record-studio.mjsBrowser tests require an installed Chrome at the documented path or CHROME_PATH. UI tests use temporary workspaces and clean up their fixtures. Runtime databases, revision history and local exports are excluded from Git.
The source and algorithm-generated motion pack are shared under the MIT license. Third-party packages retain their own licenses. The supplied Qentrah logo remains a Qentrah brand mark.