EDGEMAT / DOCS

Progress log

What has been done on EDGEmat, what was decided and why, and what is open. Newest first within each section. Read this to catch up without asking. The design and the behavior spec hold the full detail.

Last updated 2026-10-17.

At a glance

   
Phase M2 Read in progress: the surface page and the setup editor are done; Find is built, hand test pending
Extension 0.1.0 plus M2 so far: the EDGEmat icon in the activity bar; a Library of every surface and microblend in your game, with thumbnails and search; a page for each surface with its colors as named swatches
MCP server mat_library, mat_templates, mat_microblends, mat_colors, mat_describe, mat_find
Spec Behavior spec draft 0.2, checked against the game and in-game tests, agreed 2026-10-16
Next up Your hand test of Find; then M2’s own test and M3 Edit

Your to-dos

To-do Why Since
Hand-test the Find view: F5, then Find in EDGEmat’s container, below Library (Tests) M2’s last part; tell me what looks wrong or awkward 2026-10-17
Report back when the other sessions finish the requests below EDGEmat’s design and EDGEfab’s brief get updated to the shapes that shipped; then the EDGEfab session starts 2026-10-16
Test the packaged VSIX from the CLI: code --install-extension dist\edgemat-<version>.vsix (Tests) F5 runs the source; only the CLI install tests what a user gets. Planned for your next session at the PC 2026-10-16
Record Neurolinked’s reply, if one comes Design, “Prior art” 2026-10-16
Try RED Hot Tools on the dev PC Tells us whether hot-loading archives works today (design, “Hot-loading archives”), and tests REDcode’s Pack and Try hot path. Planned for your next session at the PC 2026-10-16

Waiting on other repos

Request What Status
REDbridge #4 tweakdb.records: from an item ID to its appearance Shipped in REDbridge 0.8.0, 2026-10-15. Used in M0 to find the sneakers’ items
REDcode #6 REDcode’s mesh viewer asks EDGEmat for rendered materials; appearance switching; a GLB’s own textures Shipped in REDcode 0.10.0, 2026-10-16. Appearance switching and GLB textures hand-tested. The renderMaterials hook waits for EDGEmat to provide it (M4)
REDcode #7 “Pack and try” (hot load) and “Edit in Blender” Shipped in REDcode 0.10.0, 2026-10-16, hand-tested. Without Red Hot Tools, Pack and Try falls back to Pack and Install; the hot path is untested
REDbridge #5 Mesh import for a new asset, from a GLB Shipped in REDbridge 0.9.0, 2026-10-16. A GLB is imported over a template mesh (WolvenKit cannot make one from a GLB alone). The result names the GLB’s materials per submesh but does not apply them: assigning materials is EDGEmat’s Looks editor (M5). Not yet loaded in the game
EDGEbuilder #1 Index the user’s mod archives, so custom objects can be placed Open. EDGEbuilder’s session is on it
REDnode #12 Hot-load archives into the running game Open. After REDnode’s current task

Log

2026-10-17

What Detail
Find built A new Find view under the Library: type an item’s in-game name (“punk jeans”) or part of a mesh path. An item opens into its looks per body, then meshes, then materials; clicking a multilayered material opens its setup with the exact mask set its material names, no guessing. On the jeans it shows the feminine body wearing other pants (l1_066) than the masculine (l1_062). Assistants get the same through MCP mat_find
Setup editor hand test passed All 13 checks, including a setup opened from REDcode’s Game Assets. Buttons got a clearer outline along the way, and the test steps now say where each control is
Setup editor built (read-only) Open any setup: from the game by name, a file, a project, a mod archive, or REDcode’s Game Assets. Each layer in plain words, and a color map of where each layer goes on the garment’s texture; click a spot to find its layer, and the selected layer’s area lights up. It flags what looks wrong: on our M0 test setup it points at layer 4’s unknown color (“shows white”) and layer 9’s all-None presets. Assistants get the same through MCP mat_describe
Surface page hand test passed Your run through F5: all 13 checks, and the Library view checks again (including the new log line naming the bridge)
Surface page built Click a surface in the Library: a larger image tinted with the color you pick, every color as a swatch with a plain name, a filter (“red”) and “closest to” a typed or picked color, roughness, metal and bumps in plain words, the textures, raw values one click away. Microblends get a page too. One tab is reused until you press Keep open. Assistants get the same through MCP mat_colors (“the closest dark red on this leather”)
Open question found Preset colors may be linear rather than screen colors; if so, swatches should be brighter. Checked in M4 (design, “Open questions”)
EDGEfab’s social preview Uploaded by you
Three requests shipped REDcode #6 and #7 in REDcode 0.10.0, REDbridge #5 in REDbridge 0.9.0 (latest is 0.10.0). REDnode #12 and EDGEbuilder #1 still open. EDGEmat’s design and EDGEfab’s brief get updated to the shipped shapes once you report all done

2026-10-16

What Detail
Tests page Tests: every test so far, with steps to rerun it, expected results and the test project’s contents. The log now names REDcode’s bridge when EDGEmat uses it
M1 done Smoke test passes, and your hand test through F5 passed: the icon, the Library with thumbnails and hover cards, search, rebuild
Surface page planned for M2 Clicking a surface opens a read-only page: big image, every color as a named swatch, presets in plain words, texture paths. Game surfaces are never edited in place, because every item using one would change. “Use on this layer” (M3) and “Make a custom copy” (M5) come later
CLI install test noted In M6’s test and in Your to-dos
M1 built The extension, the library built from the game (386 surfaces, 131 microblends, 155,099 color presets, 343 thumbnails, about 22 s, 4 s with thumbnails cached), the MCP server, npm run smoke. Thumbnails: near-grey textures shown grey to avoid speckle; flat ones shown as relief from the normal map
EDGEfab created The EDGE asset maker: “make it a game thing” for new items and objects. You created the repo; this session scaffolded it with branding and its cube activity icon. Its own session starts after the requests above
Custom-asset goals added Import a textured model (GLB first), view it with its looks, the whole asset workflow, hot-loading archives. Requests filed to REDcode, REDbridge, REDnode and EDGEbuilder
M0 done You agreed the behavior spec draft 0.2
Neurolinked contacted You sent the memo by Discord DM

2026-10-15

What Detail
In-game tests done On the “Sunny Ammo synthetic high-tops”. See what we learned
The override mystery solved The first round showed no change. After ruling out the appearance, archive mounting, hashes, load order and modlist.txt, WolvenKit’s own warning named the cause: a replaced game .mlsetup needs the Material Texture Override mod. REDdeck’s modlist.txt bug, found along the way, was fixed by its session
Preview split agreed REDcode shows meshes; EDGEmat renders materials and hands them to REDcode’s viewer. A shared viewer component is for later
Runtime materials Changing materials in the running game through REDagent is a key long-term goal (design, “Later ideas”)
Game folder and bridge EDGEmat takes the game folder and the running bridge from REDcode, so a REDcode user configures nothing
Activity bar and Open any file EDGEmat gets its own icon. Opening a file from anywhere, then Save to Project, is a supported workflow

2026-10-14

What Detail
Spec checked against the game Through REDcode’s MCP server: the chain from an item to its layers, every .mlsetup field, templates, masks. Rows marked confirmed or corrected
Test set chosen The Arasaka samurai jacket, the s1_055 sneakers, the l1_062 jeans
Spec draft 0.1 Written in a cloud session from a study of MlsetupBuilder’s behavior (never its code)
Design 0.2 agreed A standalone extension, .mlsetup first, an MCP server with every feature, the library built from your game and never shipped
Scaffold README, license, docs site, brand

Decisions

Decision Why Date
Game surfaces are read-only; custom colors come from a custom copy A surface is shared by every item that uses it 2026-10-16
The bridge client is copied from REDcode for now A shared npm package for the EDGE tools stays the goal 2026-10-16
The library is built from the user’s game, never shipped The EDGE repos never ship data extracted from the game; it also stays current after patches 2026-10-14
REDcode shows meshes, EDGEmat renders materials No second mesh viewer; loose coupling through an API 2026-10-15
EDGEfab owns new assets; EDGEmat owns materials and looks Keeps each tool to one job 2026-10-16
MlsetupBuilder is studied, never copied It is GPL-3.0; EDGEmat is MIT 2026-10-14

Still open: how a recolor is saved, in place (needs MTO for every player) or at a new path (needs nothing extra; how most recolor mods ship). Leaning new path by default; settled in M3. Other open questions are in the design.

What we learned about the game

The facts that shape the editor. Each is in the behavior spec with its evidence.

Finding What it means for EDGEmat
A replaced game .mlsetup only shows with the Material Texture Override mod Saving in place must check for MTO; a new path avoids it
Mask i drives layer i Clicking a mask region selects the right layer
A color name the surface does not have renders white EDGEmat only offers the surface’s own colors, and warns on unknown ones
All preset names None hides the layer A way to switch a layer off
ratio changes how the microblend maps onto the item Shown as a setting with a plain description
Level presets are pairs: out = scale × in + bias Shown in plain words, raw values one click away
The running game shows a setup’s ratio to scripts, not its layers Runtime recoloring needs another route than the script API
An item reaches its layers through TweakDB, the .ent, the .app, the mesh appearance and its materials M2’s “find an item’s materials” follows this chain

Try it

What How
Run the extension from source Open this repo in VS Code, npm run build, then F5 (“Run EDGEmat”)
Check the library against the game npm run smoke
Use the MCP tools from Claude Code Dev setup, section 4