| deploy/relay | ||
| docs | ||
| examples | ||
| include | ||
| src/spriteforge | ||
| tests | ||
| .gitignore | ||
| CLAUDE.md | ||
| CMakeLists.txt | ||
| pyproject.toml | ||
| README.md | ||
SpriteForge
Standalone reusable 2D sprite asset pipeline. Games own YAML manifests and
source assets; SpriteForge owns generation, post-processing and the .sfa /
.sfp runtime formats. It never imports game code.
Stages 1-8 contain the binary format, Python writer/reader, dependency-free C99/C++17 loader and software blitters, an isolated raylib example, and the validated YAML manifest/CLI foundation, the deterministic procedural backend, text-first generated-library introspection, parallel incremental builds, and a headless Blender animation backend with Z-derived layer ordering, local PNG import/compositing, code generation and watch-mode hot reload signaling.
python -m venv .venv
.venv\Scripts\pip install -e ".[test]"
.venv\Scripts\pytest
Include include/sfa.h from C99 or C++17. C++17 users can include
include/sfa.hpp for an RAII wrapper. See docs/format-v1.md.
Contact sheets are for humans only. Agents must never open generated PNGs;
use textual sf validate and sf ascii instead.
Manifest usage is documented in docs/manifest-v1.md.
Procedural generators are documented in docs/procedural.md.
Local PNG import and composition are documented in docs/import-composite.md.
Agent-safe introspection is documented in docs/introspection.md.
Incremental builds are documented in docs/incremental-builds.md.
The Blender protocol is documented in docs/blender-backend.md.
Code generation and hot reload are documented in docs/codegen-watch.md.
The human-facing asset authoring application is documented in
docs/studio.md. Remote rendering setup is in docs/external-gpu.md, and the
runtime handoff is in docs/game-integration.md.
For a GPU computer behind NAT without VPN or incoming ports, use the asynchronous
pull architecture in docs/pull-relay.md.