The COG Factory

Jedi Knight content generated from source — levels, COG scripts, 3DO models, MAT textures, whole GOBs — and tested by an engine running headless, which walks the level, presses the switch and asserts on what the engine says happened rather than on what the generator meant.

These are living projects, not finished releases. A level is rebuilt whenever something is learned — a lighting rule, a texture orientation, a whole detail pass — and it keeps its filename through all of it. The build number is how to tell which one you have: it is printed in the readme inside every zip, and it only moves when the level's bytes actually change.

25 levels · 42 experiments · 35 downloadable · 316 captured frames · 214 generated textures

subsection

Level Design Projects

Playable levels, most of them built through the real SED editor by script and checked after every structural step. Each one asks a question about what the engine will do and answers it.

25 levels
subsection

COG Factory Experiments

The numbered experiments the pipeline was built out of: one question each, one finding each — cog limits, light bakes, true-colour materials, a working Tetris cabinet inside the game.

42 experiments
subsection

The Toolchain

The generator, the headless libretro frontend, the SED bridge and its MCP server, the merged authoring spec, the COG archive. Not released yet — the repositories need slimming down first.

coming soon

Latest levels

All 25 level design projects →

How a level gets made

  1. Generate. A Python generator writes the JKL, the COG scripts, the 3DO models and the MAT textures. Geometry that wants a real editor is authored through SED over a bridge, by script.
  2. Pack. Everything becomes one GOB — level, cogs, materials, sounds — that reads the stock resource/ for the rest and carries none of it.
  3. Run it headless. A minimal libretro frontend loads the core with no window, walks the level on a fixed timestep, takes screenshots, probes sectors and surfaces, and fails the run when the engine disagrees with the generator.
  4. Check what shipped, not what was meant. Every claim on this site that sounds like a measurement is one.