The COG Factory / Level Design Projects
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?
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.| archetype | A TRAINING SIMULATOR THAT KNOWS IT IS ONE — the holodeck style experiment, with a verdict |
|---|---|
| project | p54-holodeck |
| date | 2026-09-05 |
| built | 1 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 |
| package | P54.GOB, readme.txt, screenshot.jpg |
| build | 1 — 2026-09-05 |
| sha256 | da4de5141ce11ffc41f647575b71345164a076dda147234a81df3fc7cdd893c6 |
Installing it
- Unzip it.
- Drop the
.GOBinto theepisodefolder of a Jedi Knight install — the one that already hasJK1.GOBin it. - Pick it from the episode list. On a libretro frontend, load the
.GOBitself 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
the hall before the boot sweep: the bare lattice the level was composed on, one 128-texel material per 0.40 cell, projectors in the corners and STANDBY in the booth
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engine
in engineTextures generated for this project
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.
========================================================================








