The COG Factory / Level Design Projects

Sim Deck Seven

A TRAINING SIMULATOR THAT KNOWS IT IS ONE — the holodeck style experiment, with a verdict
DOWNLOAD ZIP · 255 KBBUILD 12026-09-05
Sim Deck Seven

Q. Is a TRAINING-SIMULATOR aesthetic — grid-true geometry, hard right angles, emissive trim, exposed projector housings, scenery that materialises and de-materialises in front of you — a style this toolchain does PARTICULARLY WELL, composed on a 0.40 voxel lattice but shipped as the fewest sectors that hold the shape?

Yes, and more clearly than any style before it: eleven sectors, 225 surfaces, fourteen materials drawn by arithmetic, three cogs, 36 s in the editor, every checker green at the first save including uvlib (0 flipped, 0 mirrored), gate 4/4 with a control that goes red on exactly its assertion, and a GOB that boots from dist/. No image was generated. And the house's first proper DOUBLE DOOR: two leaves each half the doorway, butted at the centre in one plane, each sliding into a pocket its own size; pockets and threshold are ONE slab sector whose adjoins the cog turns off while the door is shut, exactly as stock 00_door.cog does — the first version had both leaves centred and staggered, one narrow panel in the middle of the opening. The reason is arithmetic: at 320 texels per unit one 128×128 material is exactly one 0.40 cell, so composing on a 0.40 lattice makes every panel of art land 1:1 with no scaling and no seam — the grid drawn in the texture IS the grid the room was designed on. The box pipeline already builds grid-aligned rooms that are not grid-shaped (the 8×6×4-cell hall is ONE sector, and every boundary in the level does a job); a surface's own EXTRA LIGHT is a free emissive channel that makes the self-lit look the correct look rather than a workaround for one-quad ceilings and unplaceable per-vertex pools; and a two-cel material plus a SetWallCel sweep walked from a timer builds the hall in front of the player and unbuilds it when the program completes, in forty lines of COG, creating nothing. Where it fought: a cleave_surface after the surface pass makes SED re-arrange every face it touched v UPWARD — three lettered reliefs cut last shipped exactly five faces upside down in each of three sectors, green on every other checker — so reliefs are cut BEFORE the pass; a per-sector sweep hits every surface, and set the booth's status panel to RUNNING at standby, caught only by reading its cel back off the engine; a 3DO box's UVs need the wall rule per face or the crate and door lettering ship upside down and mirrored; and the trim rule bands the widest faces, so a wall split by two openings gets no conduit line. Pursue it as a house style for anything diegetically artificial — training rooms, holo-projections, data spaces, unfinished shells; it fails only where the fiction needs mud. Then the level grew a SECOND CHAMBER: every chamber is its own SED save in its own frame, merged offline by jklmerge.py and joined by a teleport, so one chamber rebuilds in 20 s without touching the other; program 08 is three console panels to arm by hand, and an unlock LIGHTS a door instead of opening it. It also found that retail's own objective idiom — SetParam then SendMessage — carries nothing in this engine (the target's params are zeroed; only SendMessageEx writes them), which means p53's later objectives never ticked. Then FIVE MORE CHAMBERS the same afternoon, each one mechanic no other uses -- a gauntlet of plate sectors that void behind you, a blackout with a breaker, a turret hung from the deckhead with a kill switch, a rider-carrying lift and a bridge that drops, a final exam in the order a panel shows -- every one asserted on an effect read back off the engine, and two more traps found on the way: a repeated warp with an identical spec was a silent no-op in the harness (the option channel fires on change; warp and cam now carry a sequence like probe), and probe surface's mat= is the engine's index among LOADED materials, not the JKL row. Then the owner found the one no checker could: every Use panel was OUT OF REACH (0.60 up against a 0.165 ray from a 0.157 eye), and the probe had pressed them through user messages; the panels are indicators now and the real switches are stock button-plate things at hand height, pressed with a real SPACE in the test.
archetypeA TRAINING SIMULATOR THAT KNOWS IT IS ONE — the holodeck style experiment, with a verdict
projectp54-holodeck
date2026-09-05
built1 level, 7 chambers (7 SED saves, merged offline) · 56 sectors · 1,152 surfaces · 103 things · 31 materials, 0 generated · 12 hostiles incl. a hung turret · 1 secret · 8 objectives · 8 double doors · 2 movers · 5 gate rows, 2 controls · 20-36 s per chamber in SED
packageP54.GOB, readme.txt, screenshot.jpg
build1 — 2026-09-05
sha256da4de5141ce11ffc41f647575b71345164a076dda147234a81df3fc7cdd893c6

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

p54flr0p54florp54wallp54wallip54trimp54calp54gflrp54examp54seq

The readme that ships with it

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

 P54.GOB

 A combat training simulator that knows it is one. Step out of a dark
 Imperial vestibule into a hall drawn as a bare cyan lattice, and watch
 it build itself around you, surface by surface, into a place: temple
 stone on one side, deck plate on the other, an emissive conduit line
 all the way round at knee height, four projector housings staring down
 from the corners. Step onto the floor and program 07 runs -- four
 stormtroopers wake -- while the simulator glitches a panel back to
 wireframe every couple of seconds. Finish the program and the scenery
 dissolves back to the grid, the booth over the north wall flips its
 panel from RUNNING to COMPLETE, and the locked door out finally opens.

 [cogfactory / p54-holodeck]

 BUILD 1  --  2026-09-05
 sha256 da4de5141ce11ffc41f647575b713451

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

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

INSTALLATION
------------------------------------------------------------------------
Drop P54.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
------------------------------------------------------------------------
  PLAY IT: New Game, and pick COG Factory p54 Sim Deck Seven.
  You start with fists, the bryar and a stormtrooper rifle.
  THE DOOR AHEAD opens as you approach. The hall beyond is a bare grid
    until the simulator finishes booting; wait for the sweep to finish.
  STEP ONTO THE HALL FLOOR to start program 07. Four troopers wake.
    The crates are cover, and only half of each one is real.
  KILL ALL FOUR to complete the program. The scenery dissolves, the
    panel in the booth reads COMPLETE, and the door on the east wall
    unlocks. Walk through it to finish.
  ONE SECRET AREA: a maintenance crawl under the hall's east wall.
  OBJECTIVES: press ESC and open the Field Log.

NOTES
------------------------------------------------------------------------
  ONE CELL IS ONE TILE. The level was composed on a 0.40-unit cube
  lattice and at the engine's 320 texels per unit a 128x128 material
  is exactly one cell, so every panel of art lands 1:1 on a lattice
  face and the grid you see drawn on the walls is the grid the room
  was designed on.

  GRID-ALIGNED, NOT GRID-SHAPED. The hall is 8 x 6 x 4 cells and it is
  ONE sector. Thirteen sectors hold the whole level, and every
  boundary does a job: a door jamb, the observation booth, the secret
  crawl, or a change of light and sound.

  THE SCENERY IS A CEL. Every simulator material carries two images --
  the bare lattice and the built scenery -- and the master script
  walks each sector's surfaces by index, three a tick, switching them
  from one to the other. Boot builds the hall in about two seconds;
  completing the program unbuilds it the same way.

  THE LINES ARE SELF-LIT. The conduit strip, the lattice floor and the
  emitter ceiling carry their own extra light, independent of any
  lamp, so the hall is dark between its lines the way a simulator
  should be. Every texture in the level was drawn by arithmetic; no
  image was generated for it.

  A ROOM YOU CAN SEE INTO AND NEVER ENTER. The observation booth is
  0.80 up over the north wall with a window into the hall and no way
  in. Its status panel is what tells you the state of the program.

WHAT IS IN THE GOB
------------------------------------------------------------------------
        99  episode.jk
    311766  jkl\p54holo.jkl
      5143  jkl\p54holo.manifest.json
      5218  cog\p54door.cog
      9847  cog\p54sim.cog
      7578  cog\p54sim2.cog
      8014  cog\p54sim3.cog
      6684  cog\p54sim4.cog
      5730  cog\p54sim5.cog
      8194  cog\p54sim6.cog
      8191  cog\p54sim7.cog
      2267  3do\p54brdg.3do
      2290  3do\p54crat.3do
      2259  3do\p54leaf.3do
      2272  3do\p54pad.3do
      2275  3do\p54proj.3do
      2278  3do\p54swtch.3do
     98572  mat\p54bcei.mat
     98572  mat\p54bflr.mat
     32908  mat\p54brdg.mat
     65740  mat\p54brkr.mat
    164236  mat\p54bwal.mat
     32908  mat\p54cal.mat
     65740  mat\p54ceil.mat
     65740  mat\p54cons.mat
     32908  mat\p54crat.mat
    197068  mat\p54exam.mat
     65740  mat\p54flor.mat
     65676  mat\p54gate.mat
    131404  mat\p54gflr.mat
     65740  mat\p54kill.mat
     32908  mat\p54lat.mat
     32908  mat\p54pad.mat
     32908  mat\p54proj.mat
     32908  mat\p54rceil.mat
     32908  mat\p54rflor.mat
     32908  mat\p54rwall.mat
     65868  mat\p54seq.mat
     16524  mat\p54sg09.mat
     16524  mat\p54sg10.mat
     16524  mat\p54sg11.mat
     16524  mat\p54sg12.mat
     16524  mat\p54sg13.mat
     16524  mat\p54sign.mat
     49420  mat\p54stat.mat
     32908  mat\p54trim.mat
     65740  mat\p54wall.mat
     65740  mat\p54walli.mat
       808  misc\cogstrings.uni

   2150133  bytes in 49 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.

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