The COG Factory / Level Design Projects

Lathe Loops

Four stacked ring galleries
DOWNLOAD ZIP · 600 KBBUILD 12026-09-05
Lathe Loops

Q. Can a grid-rotation loop — a profile lathed around the origin, braced at every joint and cut on the brace's own lines — be built four times over by four different orders of operation, and do the four come out the same shape? And what does each order cost?

Three of the four are identical to 5e-9 and to the surface; the fourth is honestly different in one respect its construction chose for it. A lathe is planar for ANY profile — the scatter determinant of a swept edge's four corners is identically zero — so a module is an intersection of half-spaces and CleaveSector can build it. Timed: clone-rotate 9.3 s, 1217 calls, 26 sector cleaves; the owner's own recipe and a CAD-style finish-then-join both 10.6 s and indistinguishable in output; pure construction 27.9 s, 552 cleaves. The expensive lesson belongs to all four at once: carving the coffer and the niche puts three vertices on core's end face, SED pushes them one hop across an adjoin, and the portal is two hops away — 64 of 352 adjoins congruent on one side only, consistency 0, T0.adjpair red. Four different build orders, the identical defect: that is what says it is geometry and not order. And the pure-construction pass found sixteen doorways that were solid rock while the file reported 336 adjoins and zero errors. Textured by walking the section's own boundary — nineteen faces across five sectors, inner trim to floor to outer trim, across every facet of the vault, round both ceiling beams and back to the inner wall — so SED does the hard math at every turn. Two things that cost a pass: SED's stitch COPIES THE MATERIAL, so a chain walked after the materials painted the trim over all 1768 visible faces with every check still green; and arrange_texture_by negates vn on a flipped face, so 1100 of 1136 walls shipped upside down while every read-back said otherwise. Measured off the texels, off the FILE: 0 of 1136 now.
archetypeFour stacked ring galleries
projectp45-lathe-loops
date2026-08-30
built224 sectors · 3120 surfaces · 352 adjoins · 4 loops · 8 switches · 128 lights
packageP45.GOB, readme.txt, screenshot.jpg
build1 — 2026-09-05
sha256df3855f4ddaca7a71b23a1189fb0d7741d068ccbfb57a8a0264b22d8ce545d5c

Installing it

  1. Unzip it.
  2. Drop the .GOB into the episode folder of a Jedi Knight install — the one that already has JK1.GOB in it.
  3. Pick it from the episode list. On a libretro frontend, load the .GOB itself as content.

The GOB carries its own level, cogs, materials and sounds and reads the stock resource/ for everything else. There is no retail game data in the zip.

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.

Screenshots

Textures generated for this project

p45wal0p45flr0p45cel0p45brc0p45vlt0p45pnl0p45wal1p45flr1p45cel1p45brc1p45vlt1p45pnl1p45wal2p45flr2p45cel2p45brc2p45vlt2p45pnl2p45wal3p45flr3p45cel3p45brc3p45vlt3p45pnl3

The readme that ships with it

========================================================================
 Jedi Knight Level

 P45.GOB

 Four vaulted ring galleries stacked one above another, each one a
 single cross-section lathed eight times around the origin, braced at
 every joint by a rib that is exactly as deep as it is wide, and cut on
 that rib's own lines so the ceiling gets its coffers and the inner
 wall its recesses for free. There are no stairs. The only way between
 the four is a pair of switches set into the wall of one bay: one takes
 you up the stack, one takes you down, and the fourth loop's UP brings
 you back to the first.

 [cogfactory / p45-lathe-loops]

 BUILD 1  --  2026-09-05
 sha256 df3855f4ddaca7a71b23a1189fb0d774

 This level is not made or distributed by LucasArts
 Entertainment Co.
========================================================================

THIS PACKAGE
------------------------------------------------------------------------
  P45.GOB          the level
  readme.txt       this file
  screenshot.jpg   what it looks like

INSTALLATION
------------------------------------------------------------------------
Drop P45.GOB into the `episode` folder of a Jedi Knight install (the one
that already has JK1.GOB in it) and pick it from the episode list.
Nothing else needs to change: the GOB carries its own level, cogs,
materials and sounds, and reads the stock resource/ for everything else.

On a libretro frontend, point the core at the GOB itself. It needs a
folder beside it holding `resource/` from a real install -- that is
where the retail data lives and none of it is in here.

CONTROLS
------------------------------------------------------------------------
  You start in loop 0, facing the switch panels.
  Two panels are set into the recess of the inner wall, at eye height.
  LEFT panel = NEXT loop. RIGHT panel = PREVIOUS loop. Press Use.
  Four presses of NEXT brings you back where you started.
  Each loop is a closed ring -- walk either way round and you return.

NOTES
------------------------------------------------------------------------
  ONE SECTION, LATHED. Every loop is one drawn cross-section swept
  through eight forty-five-degree modules. Revolving a profile between
  two radial half-planes gives FLAT faces whatever the profile does --
  the four corners of every swept quad are coplanar exactly -- so the
  whole thing is an intersection of half-planes and the editor can
  cleave it. That is why a curve like this is buildable at all.

  THE BRACE IS THE ARCHITECTURE. At every joint the module stops 0.05
  short, the opening is cut back another 0.05 all round, and the
  middle is pushed out to meet its neighbour: two modules each give
  half, and the result is a square-section rib framing every doorway.
  The same 0.05 band, carried along the module instead of across it,
  leaves the corner gussets, the two ceiling beams and the two base
  blocks -- and cutting the room on the band's own lines is what gives
  the ceiling its coffer and the inner wall its recess.

  FOUR LOOPS, FOUR DEVELOPERS. The same shape was built four times by
  four different orders of operation -- brace-then-join-then-cut,
  finish-each-module-then-join, build-every-piece-and-weld, and build-
  one-and-clone-it-seven-times. All four came out the same shape:
  every one of the 224 planned sectors is within 5e-9 of where the
  plan puts it and all 352 planned adjoins are present. Loop 2's brace
  returns are coned rather than extruded, which is the one visible
  difference and it was the construction that chose it.

  TOLD APART BY COLOUR, NOT BY SHAPE. Per-vertex light in this engine
  is intensity only, so four identical rings are told apart by SECTOR
  TINT: neutral, warm, cold and violet from the bottom up. It costs
  one property per sector over geometry that is otherwise the same in
  all four.

  NO STAIRS ANYWHERE. The loops are stacked with 0.218 of solid rock
  between them and there is no geometric connection at all. The
  teleport cog is the whole transport system, and its arrival points
  are ghost things that carry a yaw, so you always come out facing the
  panels.

WHAT IS IN THE GOB
------------------------------------------------------------------------
        97  episode.jk
    633169  jkl\p45lathe.jkl
     15090  jkl\p45lathe.manifest.json
      2411  cog\p45tele.cog
     32908  mat\p45brc0.mat
     32908  mat\p45brc1.mat
     32908  mat\p45brc2.mat
     32908  mat\p45brc3.mat
     32908  mat\p45cel0.mat
     32908  mat\p45cel1.mat
     32908  mat\p45cel2.mat
     32908  mat\p45cel3.mat
     32908  mat\p45flr0.mat
     32908  mat\p45flr1.mat
     32908  mat\p45flr2.mat
     32908  mat\p45flr3.mat
     32908  mat\p45pnl0.mat
     32908  mat\p45pnl1.mat
     32908  mat\p45pnl2.mat
     32908  mat\p45pnl3.mat
     32908  mat\p45vlt0.mat
     32908  mat\p45vlt1.mat
     32908  mat\p45vlt2.mat
     32908  mat\p45vlt3.mat
     32908  mat\p45wal0.mat
     32908  mat\p45wal1.mat
     32908  mat\p45wal2.mat
     32908  mat\p45wal3.mat

   1440559  bytes in 28 entries

CREDITS
------------------------------------------------------------------------
  Generated by tools/cogfactory in the openjkdf2_libretro tree.
  Geometry authored through SED (github.com/smlu/SED) over the
  cogfactory bridge.
  LucasArts did not make this. Jedi Knight is theirs; this is a fan-
  made level.

  The readme format is styled after SM Sith Lord's cog headers,
  because his are the ones everybody read.

========================================================================