A scene holds a list of layers, and Layers in the Control Panel's left column is that list. Models and objects share it: an avatar, a chat overlay image, a looping video and a 3D prop are all rows in the same list, stacked in one z-order. Effects take rows of their own, grouped under Scene Effects above the models and objects
The list reads front-most first, the way a layer panel does. Drag the grip to restack — the row moves straight up and down, and stays within the list
Layer Controls
| Element | Meaning |
|---|---|
| Grip | Drag to reorder — the top row draws in front |
| Eye | Show or hide the layer without removing it, in the scene's Show and Hide style |
| Name | The model or object name |
| Pin | Marks a Live2D model riding another; the tooltip says which |
| Star | Marks the primary model |
| Kind icon | Live2D, VRM, Image, Video, 3D Object, Webpage or Capture, named in a tooltip |
| Actions menu | Set as Primary · Swap… · Reset Position · Show in Finder · Remove from Scene |
Show in Finder points the OS file manager at the layer's file — it reads Show in Explorer on Windows. Webpage and capture layers have no file behind them, so the item does not appear in their menus
Clicking a row selects it and opens its settings in the detail pane. Clicking the selected row again — or pressing Esc on it — folds those sections away
Adding Layers
Add to Scene… under the list opens the Inventory — one browse-and-add surface for everything a scene can hold. It is on the tray menu too, where it summons the Control Panel first if it is closed
A rail down its left side filters by kind:
| Category | Holds |
|---|---|
| All | Everything below, each row carrying its kind icon |
| Live2D · VRM | Models — bundled, or ones you opened before |
| Animations | .vrma and Mixamo .fbx clips — the bundled idles and motion pack, plus your own |
| 3D Objects · Images · Videos | Files you added before |
| Audio | Sound files you added before — click one to play it |
| Environment Maps · LUTs | Scene lighting and grading files |
| Scene Effects | Built-in effects over the finished frame — see Effect Layers |
| Webpages | An address field rather than a list: any http(s) URL becomes a layer |
| PNGTuber · Screen Capture | Coming soon |
Rows are grouped into Bundled and Recent, filtered by the search field, and show the creator's credit where the content declares one — a link to their page when it declares that too. Clicking a row adds it. A registered file that has since left the disk is marked Missing and cannot be added
The + button beside the search field opens the native file dialog for the category you are in — Open Model… under Live2D and VRM, Open File… everywhere else. What you pick is added to the scene and stays in the Inventory afterwards
Every row under Recent carries a menu of its own: Show in Finder (Show in Explorer on Windows) points at the file, and Remove from Inventory drops the row from the list. An asset row adds Delete…, which deals with the file as well
Removing only withdraws the grant — what is on disk is untouched, a pasted image included. Delete… confirms first and then moves the file to the Trash (the Recycle Bin on Windows), so a mistake is recoverable. A row whose file is already gone cannot be deleted. A model row has no Delete…: a model is a whole folder, and a loose .vrm may share one with unrelated files, so there is no single file to throw away
Removing something a scene or an automation still uses is refused, with a toast saying so. For a model that also counts an automation's Swap Model action and its Model Loaded trigger — a model added back after a removal mints a new id, so those references have to keep resolving
The same model can appear more than once in a scene. Each row is its own instance with its own placement, so two copies of one rig can stand at different sizes on opposite sides of the stage
Capture layers exist in the scene format and render on stage, but nothing in
the interface creates them yet — today they arrive through the Plugin
API
Dropping and Pasting
Files do not have to go through the Inventory — dropping them on the window works too, in every format the Inventory takes, and a 2D object lands where you dropped it. An image on the clipboard pastes straight onto the stage with ⌘/Ctrl+V — a picture copied from a browser, a screenshot tool's output. With focus in a text field, the shortcut goes back to the field
The Control Panel takes both gestures too, which saves aiming at a stage you may have sized down or pushed off to one side. Its window has no stage coordinates, so a file dropped there is placed the way a paste is rather than under the pointer
A pasted image is named by its content hash and stored in ~/.laplace/persona/assets, so pasting the same picture twice keeps one copy. From there it is like any other asset: it lands under Recent, and on stage it is an ordinary image layer. Copying a file rather than a bitmap takes the same path as a drop — registered where it sits, never duplicated
Scene Assets
Animations, Environment Maps and LUTs are not layers — a scene references them as fields. Clicking one of those rows applies it to the active scene instead of stacking it in the layer list:
| Category | What a click does |
|---|---|
| Animations | Plays the clip on a loaded VRM, as a preview |
| Environment Maps | Sets the scene's environment map and confirms with a toast |
| LUTs | Sets the scene's LUT and confirms with a toast |
They are also where the corresponding Choose… buttons lead: Choose Image… for the stage background, Choose Model… and Choose Map… for the environment, Choose LUT…, and Choose Clip… for a VRM's idle animation. Opened that way the rail narrows to the kinds that field accepts, and a click applies and closes
A clip retargets onto a humanoid rig, so Animations is disabled in a scene holding no VRM, with a line saying why
Audio
Audio holds sound files. Like the scene assets, a row adds nothing to the layer list: clicking it plays the file once at 50% volume, and while it plays the row shows its progress with Pause Audio and Stop Audio buttons, which act on every playback of that file — an automation's included. The sound comes out of the Audio Output Device
For volume, fades, repeats and lip sync, play the file from an automation's Play Audio action. A file an automation still uses cannot be removed, even while that automation is switched off
Inventory Formats
The Inventory takes files by category. The dialog behind the + button lists only the extensions the category you are in accepts:
| Category | Accepted files |
|---|---|
| Live2D | .model3.json |
| VRM | .vrm · .glb |
| Images | .png · .jpg · .jpeg · .webp · .gif · .apng · .avif · .bmp |
| Videos | .mp4 · .webm · .mov · .m4v · .ogv |
| Audio | .wav · .mp3 · .ogg · .flac · .m4a · .aac |
| 3D Objects | .glb · .gltf |
| Animations | .vrma · .fbx · .vmd |
| Camera Motions | .vmd |
| Environment Maps | .hdr · .png · .jpg · .jpeg · .webp |
| LUTs | .cube · .3dl |
| Webpages | Any http(s) URL, no file |
| Scene Effects | Built in, no file |
| PNGTuber · Screen Capture | Coming soon |
Three of these are settled by the file, not by its extension:
.glbis both a model and a prop — picking a.glbwith no VRM data under Open Model… is not refused; it registers as a 3D object instead. The file decides which category it lands in, not the tab you had open.vmdis both a dance and a camera move — the two ship under one extension, so Persona reads the model name in the header to tell them apart and registers the file as an Animation or a Camera Motion.fbxis a container format — the same extension just as readily holds a prop, a whole set, or a rigged character — so Persona takes only the ones holding a Mixamo clip. Picking any other.fbxis refused, with an Unsupported Animation dialog saying why
In the Environment Maps row, only .hdr carries real radiance; ordinary images work too, but read as fill light
In the VRM and 3D Objects rows, Draco- and Meshopt-compressed files load like any other; KTX2 textures are not supported
Effect Layers
Effects get rows too, in a Scene Effects group above Layers — only effects added to the scene appear here. With none added, the group is not shown
Add them from the Inventory's Scene Effects category. Effects already in the scene are marked Added and cannot be added again. Effects appear only on the Scene Effects tab, not under All
Effects require what the 3D stage draws, Live2D models included. In a scene of 2D objects alone, the category is disabled and explains why. See When the Chain Appears
An effect row looks like any other layer, and means slightly different things:
| Element | Meaning |
|---|---|
| Eye | Switches the effect on and off. It ramps over 0.4 s rather than cutting |
| Name | The effect's name |
| Grip | None — the chain fixes effect order, and that order is not a setting |
| Kind icon | Scene Effect |
| Actions menu | Reset to Defaults · Remove from Scene |
The order in the list is the chain's order, with the last-applied effect on top
Clicking a row opens Scene Effect · Name in the detail pane, holding every parameter that effect has. Effect selection is independent of layer selection, so selecting an effect never moves the stage gizmo or changes what a drag or a scroll acts on
Remove from Scene only takes the effect off the list — its tuning is kept, so adding it back finds it as you left it, and Reset to Defaults is the way to the factory values
A built-in can also be switched on from elsewhere — an
automation, a scene.patch. Enabling it also
adds its row to the list
A Layer's Own Effects
The rows above are scene effects, acting on the composited frame. Beyond those, a model or object can carry effects of its own — select its row and its Layer Effects section holds a separate effect list. Add Effect opens a searchable Inventory of the effects that layer can take. The rows work like scene effect rows, with Remove Effect in the actions menu, and selecting one shows its parameters below the list
A layer effect is applied before that layer joins the scene, so it changes only that one layer. This is how you blur a background while the avatar stays sharp, or grade a single prop on its own
Not every effect can be used this way — twelve of the twenty-two can, and the rest are scene-only. See Scene Effects and Layer Effects for the full list
Layer effects apply to what the 3D stage draws: Live2D and VRM avatars, and objects in 3D space — images, videos and webpages included. A 2D object has no Layer Effects section
Webpage Layers
Any http(s) page can sit in the scene as an object: a streaming overlay, a countdown, a chat box, or a page of your own HTML. Add one from Webpages in the Inventory, which is an address field rather than a list
Selecting it opens a Webpage section in the detail pane:
| Field | Notes |
|---|---|
| Address | http(s) only; any other scheme is refused. It commits on leaving the field or pressing Enter, and reloads |
| Width and Height | The page's own viewport in CSS pixels, 16 to 7680, defaulting to 1280 × 720. A change reloads the page. How large it lands on stage is placement, a separate thing |
| FPS | The paint-rate cap, 1 to 60, defaulting to 30. A page that is not moving does not repaint anyway, so this only sets a ceiling |
| Transparent Background | On by default, like an OBS browser source. Off, the page is white |
| Layer | Behind Stage or In Front, and only a 2D object has it — the whole page composites in front of or behind the stage rather than interleaving with the other layers. A 3D object has no such row: it is a surface in the scene and sorts like one |
| Shut Down When Hidden | On by default. The page closes as soon as the object is hidden and reloads when it is shown again — the same trade as the OBS browser source option of that name, so a hidden overlay costs no CPU. Off, the page stays loaded while hidden and only stops painting |
| Custom CSS | Injected into every page this object loads; empty injects nothing. The placeholder, body { background: transparent }, is the common one |
The page runs in an isolated, in-memory browser session: nothing is written to disk, camera, microphone, location, display capture and downloads are all refused, popups cannot open, and a navigation to anything but http(s) is stopped. It cannot reach the files on your disk
The page sees Chrome's User-Agent with one extra LAPLACE-Persona/<version> token, in the slot OBS uses for OBS/<version> — so an overlay keyed to its host can match on it. It carries no Electron token and nothing else about your machine
Swapping a Layer
Swap… in a row's actions menu reopens the Inventory to replace that layer rather than add to it, naming what is being replaced across the top
Browsing narrows to the layer's own family — a model layer swaps to another model, of either format, and an object layer to another object source, a webpage included. Everything else about the row carries over: its place in the stacking order, its placement, and the star if it held it
Models cross over in the scene's Show and Hide transition — see Swapping Models
The Primary Model
One model in the scene carries the star. It is the one avatar shortcuts act on, and the instance model-scoped Plugin API methods default to when they name none
Set as Primary in a row's actions menu moves it. Objects cannot be primary — only a model has parameters to drive. A non-primary model contributes no rows to the shortcut list, and its bindings do not fire until it is primary. An automation's avatar actions name their own target layer, so they work on any avatar
Face tracking is independent of the primary model setting. Each avatar binds to a tracking source of its own, so three avatars can be driven by three phones regardless of which one is primary
2D and 3D Space
The stage has one canvas: VRM avatars and 3D objects make up the three-dimensional scene, and Live2D models and 2D images and videos draw over it. Those share one stacking order, so the layer list decides which of them covers which, and they pass through the scene's effects along with the 3D scene. A 2D webpage sits wholly behind or in front of the stage instead, as its Layer row under Webpage Layers sets
An object's Space switch decides which it belongs to:
- 2D — placed in screen pixels, like a VTube Studio item
- 3D — placed in world metres, lit by the scene lights, and can cast and receive shadows
A 3D object (.glb) is a mesh, so it is 3D-only and the switch shows 2D disabled rather than hiding it. Images and video work in either space — the same overlay can sit flat on the screen or stand as a card inside the 3D scene
Placement
Every layer has a placement editor in its Position section — numeric fields beside a visual control — and the on-stage gestures write the same fields
| Item | Position | Rotation | Scale range |
|---|---|---|---|
| Live2D model | X · Y | Z | 0.1× – 24× |
| VRM model | X · Y · Z | X · Y · Z | 0.05× – 10× |
| 2D object | X · Y | Z | 0.01× – 50× |
| 3D object | X · Y · Z | X · Y · Z | 0.01× – 100× |
X and Y are pixels from the stage centre in 2D, and metres in 3D. Rotations are shown in degrees. Scale sits below them, and objects add Opacity
Visual Controls
| Control | Used by | Use |
|---|---|---|
| Position pad | Live2D models, 2D objects | Drag the marker, or click anywhere on the pad to jump there. The pad takes the stage's aspect ratio |
| 3D position control | VRM models, 3D objects, the camera | Drag to move across the floor on X and Z, or drag an axis end to move along that axis alone. Arrow keys move X and Z, Page Up and Page Down move Y |
| Rotation globe | VRM models, 3D objects | Drag the globe to tilt and turn, or its outer ring to roll |
| Rotation ring | Live2D models, 2D objects | Drag the ring to rotate |
Beside each position and rotation control sits its own reset button, Reset Position or Reset Rotation. It returns just those axes to their defaults, leaving scale and opacity alone; the item moves there on stage at once while the control animates to the new value
Gestures
| Gesture | Effect |
|---|---|
| Drag | Move the selected item |
| Scroll | Zoom toward the cursor, so the point under it stays |
| Shift + scroll | Rotate |
Dragging eases after the cursor and glides to a stop on release rather than halting abruptly. A right-drag always pans the 3D camera instead, even with an item selected — see Camera
Handles
World-space items — VRM models, 3D objects and placeable lights — also get on-stage handles. Handle Mode switches between Move, Rotate and Scale. The picker only appears when the selection offers more than one mode: a point light only moves, and an ambient light has nothing to place
Stream Mode takes the handles off the stage, which is what keeps a capture clean. It also disables Handle Mode, which stays in place with a note on how to unlock it
Pinning an Object to a Model
Pin attaches an object to a model so it rides along — glasses on a face, a prop in a hand, a nameplate over a head. The object's placement is then read as an offset from the anchor rather than from the stage. A Live2D model can ride another the same way, as a Live2D item
An object can only pin to a model in its own space: a 2D object to a Live2D model, a 3D object to a VRM. That boundary comes from the anchor and placement coordinate systems, not which renderer draws Live2D; a cross-space pin has no shared depth or transform basis
There are two routes to an anchor, the same on either kind of model: pick one from the Anchor list, or press Pick on Stage and click where the item should ride — the button reads Cancel Pick while a pick is live. Both lists carry Model Root, standing for the model's own transform, and both have a search field at the top, which is how you find one bone or one art mesh among hundreds
Hover over an Anchor row or point at the model while picking on stage to highlight the target mesh or bone. The highlight alternates between green and white to remain visible against different colours. Stream Mode hides these highlights from the capture
2D Pins
A picked anchor is a point on the model's mesh. Persona stores the art mesh and the exact triangle, so the pin deforms with the rig instead of floating over it. This is how VTube Studio pins its items. The list carries every ArtMesh the model has, which is the way to name one exactly; for where on a mesh the item should sit, clicking the stage is faster
| Control | Effect |
|---|---|
| Follow Rotation | The item turns with the anchor. Off, it keeps its own upright rotation |
| Multiplier | How much the model's head angle turns the item, from −2 to 2 |
| Parallax X | Stage px the item shifts sideways at a full head turn, −300 to 300 |
| Parallax Y | The same vertically, as the head looks up and down |
| Smoothing | How much lag that turn and shift carry |
Multiplier reads the model's ParamAngleZ — the head's tilt; Parallax X and Y read ParamAngleX and ParamAngleY — the head's turn and nod. The pixel figures are for the model at 1× and scale with it. Positive moves the item with the head, which reads as sitting in front of the mesh; negative moves it against, which reads as sitting behind. A little positive on a pair of glasses shows a hint of frame thickness as the head turns; a little negative on a nameplate keeps it planted behind
Whether a pinned image or video covers its model is still up to the layer list, as for any 2D layer; only a Live2D item goes between the model's own layers
Live2D Items
A Live2D model can ride another Live2D model as an object does — VTube Studio's Live2D Items. Select it and a Pin section sits below Position, with the rows of a 2D pin; as an item it keeps everything a model has, its own tracking, idle, expressions and effects included. Model lists every other Live2D model in the scene. One that already rides this model, directly or through another, is listed but disabled as Already rides this, since the two would ride each other in a circle
Unlike an object, an item paints inside the model it rides. Depth is a slider across that model's layers in paint order — Behind model at one end, In front at the other, and a stop above each ArtMesh in between — and the line under the label reads out the result: how many of the model's layers cover the item, and which ArtMesh it sits just above. While you drag, the model tints its layers orange where they will cover the item and blue where the item will cover them. The tint lingers about a second after the last change, then fades; it is painted on the model itself, so a capture sees it too — Stream Mode does not hide it
The pin stores the ArtMesh's id rather than a position: Cubism re-sorts a model's layers as motions play, and the item follows each frame's order. An id the model does not have — after a swap, say — puts the item in front, and the line under Depth says so
Wrap Around Model cuts the item in two and gives Depth a second handle: the lower handle places the back half, the upper the front half, and the model's layers between them paint over the back half and under the front — a scarf in front of the chest and behind the hair. Cut At is the item's own layer the cut falls at, and everything the item paints beneath it is the back half; Pick sets it by clicking the item on stage instead, and reads Cancel while it waits. Switching the wrap on cuts at an ArtMesh whose id contains split, or else at the middle of the item, and starts the back half a quarter of the model's layers below the front
With the pin deciding depth, the layer list no longer does: the item paints within its model's place in the list, so a layer above that model covers it wherever the item's own row is dragged, and the list only orders items pinned above the same ArtMesh. The item's row carries a pin marker to say so
A model drawn as one flat image — under layer effects, mid-crossfade, or a moc3 v6 model using offscreens — has no layers to go between, so the item paints in front of it whole
3D Pins
The anchor is a humanoid bone — head, leftHand, hips and so on — or Model Root. Picking on stage casts a ray at the avatar, reads the skin weights of the triangle it hits, and resolves to the bone weighing heaviest there, so clicking the face gives you head and clicking a hand gives you leftHand
Elasticity adds a spring, so the object trails its anchor and settles instead of tracking rigidly:
| Control | Effect |
|---|---|
| Stiffness | How hard the spring pulls toward the anchor |
| Damping | How quickly it stops oscillating |
| Max Speed | A ceiling on how fast the object can chase |
A pin whose parent leaves the scene, or is swapped to the other format, is cleared, and the item stays on stage standing alone rather than disappearing with it
Other Object Settings
A video layer loops and stays muted. Its loop, mute and volume are part of the scene format but have no controls yet — today only the Plugin API changes them
A 3D object carrying lights inside its own file lists them under Lighting, headed Built into the object's name. Each can be muted or dimmed there without touching the scene's own lights
Last updated on September 20, 2026