The web app12 of 12
The wardrobe
On this page
A Live2D model is made of parts — hair, clothes, a hat, a prop, whatever the artist drew and named. The wardrobe lets you switch individual parts off while looking at her.
Screenshot placeholder: the face step's receipt card with the wardrobe open to its right — a dark "WHAT SHE WEARS" band, a search box reading "Search 94 parts…", a list of rows each with an eye icon, and a footer reading "2 taken off · put it all back".
Where it is
The wardrobe lives on the face step of the setup wizard, beside the receipt card that draws her
(components/FaceReceipt.tsx:186-196). It is the only place it appears — it is not in Settings and it
is not on the main screen.
To reach it on a configured install: Settings → Brain → Give her a face, which opens the face step
directly (components/panels/SettingsPanel.tsx:724-727).
The wardrobe control appears under her portrait only when three things are true: the model
reported its parts, there is at least one, and she actually drew (FaceReceipt.tsx:150-158). A model
that could not be drawn gets no wardrobe, because there would be nothing to look at while you toggled.
What it does
The list is the model's own parts, in the order the model declares them
(lib/live2d-controller.ts:340-346). Each row shows the part's human name with its id underneath, or
just the id when it has no name.
Clicking a row toggles that part. Whatever is switched off floats to the top of the list, because it is
the short list and the one you came to undo (components/PartsWardrobe.tsx:37-45). The search box
filters by name or id.
The footer counts what is off and offers put it all back, which clears every toggle at once
(PartsWardrobe.tsx:100-106).
Why it works this way
The alternative — hiding a hat automatically by recognising its name — only ever works for the
languages somebody thought to list. A halo, a pet or a prop nobody can name stays on, and no word list
will ever fix that (PartsWardrobe.tsx:1-9).
Toggling against her live portrait is the answer that works for any model, whoever made it and in whatever language they named its pieces.
What it does not do
The toggles are not saved.
setHiddencalls straight into the running renderer and sets the live model's part opacity; nothing is written to the backend and nothing is written to disk (components/Live2DCanvas.tsx:148-154,lib/live2d-controller.ts:327-338). Leave the step, reload the page, or start a call, and every part is back on.
A permanent hide is a hideParts entry in the model's profile, which is a code-level configuration
and not something the browser writes (lib/avatar-config.ts:25-27).
Choosing which model she wears
That is a different control, in Settings → Personality → Avatar model. It lists the models
installed in the models folder and applies on reload — which its own label says
(SettingsPanel.tsx:329-332). With none installed it names the folder to unpack one into rather than
drawing an empty select.
Installing a model is the face step's job, not Settings': see First run in the browser.
