Backends

The same validated bytecode on the command line, in the browser and inside your engine.

Every backend executes the same file with the same reference interpreter semantics; the interpreter is authoritative, and the conformance suite checks each backend against the golden corpus: pixels and structured outputs, bit for bit.

The CLI toolchain

The prebuilt SDKs on the download list contain the tools; to build them yourself:

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel

The tools land in build/tools/: ipc (compile), ipgen (render), ipsheet (grids), ipdis (disassemble), ipval (validate) and ipa (assemble). Each prints --help.

HTML5 / WASM

The reference interpreter compiled to WebAssembly. It runs the live examples on the home page and the editor preview. Building it requires Emscripten:

emcmake cmake -S backends/html5 -B build/wasm -DCMAKE_BUILD_TYPE=Release
cmake --build build/wasm --parallel

One call renders a file: generate(fileBytes, seed, sizeX, sizeY[, uniforms]) returns { width, height, data, outputs } with RGBA pixels and the structured outputs. uniforms sets declared inputs by name, as ipgen --uniform does: numbers for u32/f32 inputs and "#RRGGBB" strings for colours. The weapons on the home page use it to render their emission maps for the bloom. backends/html5/js/api.js wraps it for pages and Node, and node backends/html5/test/run-tests.js build/wasm checks the golden seeds.

The C API

A C99 interface (backends/capi/iprop.h, C API 0.4 on ABI line 0.5) ships as shared and static libraries. It owns program and result handles, returns RGBA images and structured outputs, and reflects the declared inputs, outputs and parts, so a host can build a parameter panel without knowing the asset in advance. Every native integration links it, and so can yours: anything that can call C can render props.

SFML and Godot

cmake -B build -DCMAKE_BUILD_TYPE=Release \
  -DIPROP_SFML=ON -DIPROP_SFML_PREFIX=/path/to/sfml \
  -DIPROP_GODOT=ON -DIPROP_GODOTCPP_DIR=/path/to/godot-cpp \
  -DIPROP_GODOT_BINARY=/path/to/godot
cmake --build build --parallel
ctest --test-dir build --output-on-failure
  • SFML 3.1: a desktop sprite and atlas host with PNG exports and real sprite render tests (CMake 3.28 or later).
  • Godot 4.5.2: a GDExtension (godot-cpp at godot-4.5-stable) with IpropAsset and IpropSprite2D; the build assembles a demo project under build/godot-project/.

IPROP_SFML and IPROP_GODOT accept AUTO (skip missing dependencies), ON (require them) or OFF. The backend READMEs list the exact library, export and ownership contracts.

VS Code

cd editor
sh install.sh

Reload VS Code for syntax highlighting, compiler diagnostics, the live preview with seed controls, the atlas, the bytecode inspector and exports. The integrated terminal is the console for coding agents.