Infinite Props

Seed-based procedural 2D assets. One small file, endless props, the same pixels on every platform.

v0.7.1 · language 0.7

9.0 KBa whole sword pack in one .iprop file
2³²seeds, with additional authored inputs
≈ 5 TBif you exported every one of them as a PNG
0bitmaps: every pixel is computed from the seed

What is Infinite Props?

Infinite 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

Rolled right here, right now

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 ‹ ›.

Weapons 4 packs · 96×96

sword.iprop
Sword …
axe.iprop
Axe …
spear.iprop
Spear …
staff.iprop
Staff …

Portraits 3 packs · 64×64

portraits_rpg.iprop
Fantasy …
portraits_scifi.iprop
Sci-fi …
portraits_civilian.iprop
Civilian …

Structured outputs

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.

A little code. A lot of butterflies.

Butterfly benchmark

Three procedural parts become one butterfly. Release fifty and see what your browser can do.

…for the whole model256 × 256 px
Generated, not storedseed —
Preparing the wings…
256 × 2565 visible layers · 3 files

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.

Main features

Bit-exact determinism

The same seed renders the same pixels and outputs on every platform and backend. A committed golden corpus guards every release.

One file, endless props

An .iprop file is a recipe, not an image. Seed and authored inputs unlock a practically unlimited, reproducible family of sprites.

Safe to run anywhere

Validated bytecode, structured control flow only and a hard fuel budget: even an untrusted file cannot hang or escape its host.

A language for pixels

.ips speaks sprites: palettes, rects, distance helpers, lo to hi ranges and colour gradients, compiled with precise diagnostics.

Shaped randomness

Gaussian, triangular and beta distributions steer every roll, so proportions look designed rather than noisy.

Composable parts

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.

Structured outputs

Colliders, anchors and colours come back with the pixels: the tip of a sword, the eyes of a portrait, the colour of a hat.

Tiny binaries

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.

Runs everywhere

One reference interpreter for Linux, macOS, Windows and WebAssembly. The tiles above are running it in this page.

C API and engines

A C99 interface on a versioned ABI (C API 0.4, SONAME 0.5), with SFML and Godot GDExtension integrations built on top.

Authoring toolchain

ipc, ipgen, ipsheet, ipdis, ipval and a VS Code extension with live preview, atlas and bytecode inspector.

Ready for coding agents

A compact, machine-checked LLM reference ships with every release, so an agent can write props in .ips alongside you.

Made with Infinite Props

Games showcase

Three slots, zero games. For now. They are saved for the most creative, craziest things anyone builds on a seed. The wilder the idea, the better its chances.

Slot 01 · open

Your game here

An armoury of legendary axes, and not one of them drawn by hand.

Slot 02 · open

Your game here

A roguelike where no two swords have ever looked alike.

Slot 03 · open

Your game here

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

Weapon case guaranteed legendary

common · rare · epic · and one item at the end that is always legendary

Legendary drop

Same link, same pixels: everyone who opens it gets exactly this one.