sillage_organ
The perfumer's organ: six tiers of six vials in a walnut case against the back wall of the atelier, and the object every camera station in *Sillage* comes back to.
sillage_organ
The perfumer's organ: six tiers of six vials in a walnut case against the back wall of the atelier, and the object every camera station in Sillage comes back to.
The tiers are ordered by volatility. Citrus stands on the top shelf and is gone in ten minutes; resins and animalics stand on the bottom and are still on the skin at midnight. So the organ is the drydown curve stood upright, and reading it top to bottom is reading the shape of a perfume in time.
What it builds
Under the slice root sil_organ, all of it generated at load:
| carcass | walnut case — side panels with a bead run, five shelf boards with lipping strips, a thick worktop, a base cabinet with two drawers, a cornice, and a through-peg where each shelf lands in a side panel |
| back | nine tongue-and-groove boards, each set a little differently in depth |
| brass | a retaining rail across every tier with its end brackets, a label holder under every slot, and the drawer pulls |
| labels | one plate per slot, carrying the material's name and its family, cut from a single rasterised sheet of pharmacy printing set in EB Garamond and PT Serif |
| vials | 36 bottles of amber and green glass, each with liquid at its own level, a ground stopper and a brass collar |
| stock | thirty smaller bottles standing in the gaps of the back row |
| worktop | a pipette rack and a brass balance |
| bounce | three short-range warm lights standing for the light coming back off the marble bench |
Geometry, surfaces and the label sheet are made at build() time —
renderer.mesh.create, renderer.material.create, a CPU pixel buffer for the
grain and a rasterised SVG for the labels. Nothing is loaded from a file, so
the organ comes up the same wherever the world is opened.
What it offers other slices
local Organ = require("game.sillage_core").slices.organ
Organ.vialEntity(slot) -- the bottle in slot 1..36
Organ.highlight(slot, on) -- hover: it steps out of the rank and warms
Every bottle stands exactly on Core.vialSlot(slot), which is the same
geometry the composition slice hit-tests, and the label under it names the
material Core.bySlot[slot] says belongs there.
Scoped to this part · feeds back into the world's score.