Bit-exact determinism
The same seed renders the same pixels and outputs on every platform and backend. A committed golden corpus guards every release.
Seed-based procedural 2D assets. One small file, endless props, the same pixels on every platform.
.iprop fileInfinite Props is a portable binary format and an open-source toolchain for
seed-based procedural 2D assets. You describe a prop once in the small
.ips language, compile it to a self-contained .iprop file, and a tiny
sandboxed virtual machine turns any seed into pixels, bit for bit the same in the browser,
in your engine and on every operating system.
One file is not one image. It is a recipe for endless variations, and every result comes with the data your game needs: colliders, anchor points and colours.
Live examples
Every tile is a real .iprop file executed in your browser by the WebAssembly
interpreter. The seeds tick up on their own, or take over with ‹ ›.
waiting for a roll…
skinColor…clothesColor…hatColor…eyes…mouth…Returned with the pixels of the same call: tint the UI, match the hat, anchor the speech bubble.
Feeling lucky? Every case ends on a legendary.
A little code. A lot of butterflies.
Three procedural parts become one butterfly. Release fifty and see what your browser can do.
seed —…
Hindwings × 2Rear wings & pattern
…
Body × 1Fur, head & abdomen
…
Each wing part generates one side, then the browser mirrors it. The body sits on top. Wings flap independently around the body as every new butterfly takes flight. Each seed draws a fresh combination of shapes, colours and patterns from the same three files. The body takes its proportions and colour cues from the wings, so the parts fit together. Mirroring reuses the generated wing images, keeping both the download and the amount of generation work small. Benchmark 50x creates fifty fresh butterflies and reports their average generation time alongside the average fuel used by each part.
The same seed renders the same pixels and outputs on every platform and backend. A committed golden corpus guards every release.
An .iprop file is a recipe, not an image. Seed and authored inputs unlock a practically unlimited, reproducible family of sprites.
Validated bytecode, structured control flow only and a hard fuel budget: even an untrusted file cannot hang or escape its host.
.ips speaks sprites: palettes, rects, distance helpers, lo to hi ranges and colour gradients, compiled with precise diagnostics.
Gaussian, triangular and beta distributions steer every roll, so proportions look designed rather than noisy.
Import a blade, a hilt, a face. Parts link into one self-contained binary, paint in call order and report outputs in the caller's coordinates.
Colliders, anchors and colours come back with the pixels: the tip of a sword, the eyes of a portrait, the colour of a hat.
Each weapon pack on this page compiles to 7 to 11 KB. Files are zlib-packed whenever that is smaller and never need external resources.
One reference interpreter for Linux, macOS, Windows and WebAssembly. The tiles above are running it in this page.
A C99 interface on a versioned ABI (C API 0.4, SONAME 0.5), with SFML and Godot GDExtension integrations built on top.
ipc, ipgen, ipsheet, ipdis, ipval and a VS Code extension with live preview, atlas and bytecode inspector.
A compact, machine-checked LLM reference ships with every release, so an agent can write props in .ips alongside you.
Made with Infinite Props
Three slots, one game. The other two are saved for the most creative, craziest things anyone builds on a seed. The wilder the idea, the better its chances.

A top-down Formula One race where every car, circuit, driver, crowd and explosion is generated from a seed in your browser: 41 programs, not one image file.
Play on itch.ioA roguelike where no two swords have ever looked alike.
The legendary staff nobody has rolled yet is somewhere in your seed range.
The showcase is waiting for your game. Build something wild with Infinite Props and send a link. The boldest ideas land on this wall.
Submit your game