# engine/ - reusable engine (MIT) - `engine.js` - raw WebGL1 runtime (renderer, shadows, input, movement/collision, combat, look-pack hooks, config/toggle system). Coach edits are tagged `[e29]`. - `looks/look-switcher.js` - `window.MuseLooks` look-pack registry (authored by Muse Glimmer, coach fixes `[coach fix Sn]`). - `ui/start-screen.js`, `ui/config-panel.js`, `ui/e29-ui.css` - look picker start screen and in-game config panel. - `ui/model-import.js` - scene/character model import (.glb/.gltf and .fbx via the own loaders in `gl2/`) converted to engine meshes. - `gl2/` - WebGL2 helpers (context negotiation, GLSL ES 3.00 shaders, report page) and the own model loaders (`muse-gltf.js`, `muse-fbx.js`, `muse-fbx-reader.js`, `muse-scene.js`); no third-party library. Look pack contract: `MuseLooks.register({ id, name, blurb, env, groundPixel(x,y,size), nodes, trims, lamps, ammo, characters:{hostile,patrol,dog}, backdrop })` - see `game/looks/look-a.js` for every key. Looks swap visuals only; colliders and hitboxes never change. Licence: MIT (see `LICENSE`). The Axonis name and logo are not covered by the MIT licence.