00:00 / 00:00

Persona

Layers

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

ElementMeaning
GripDrag to reorder — the top row draws in front
EyeShow or hide the layer without removing it, in the scene's Show and Hide style
NameThe model or object name
PinMarks a Live2D model riding another; the tooltip says which
StarMarks the primary model
Kind iconLive2D, VRM, Image, Video, 3D Object, Webpage or Capture, named in a tooltip
Actions menuSet 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:

CategoryHolds
AllEverything below, each row carrying its kind icon
Live2D · VRMModels — bundled, or ones you opened before
Animations.vrma and Mixamo .fbx clips — the bundled idles and motion pack, plus your own
3D Objects · Images · VideosFiles you added before
AudioSound files you added before — click one to play it
Environment Maps · LUTsScene lighting and grading files
Scene EffectsBuilt-in effects over the finished frame — see Effect Layers
WebpagesAn address field rather than a list: any http(s) URL becomes a layer
PNGTuber · Screen CaptureComing 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

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:

CategoryWhat a click does
AnimationsPlays the clip on a loaded VRM, as a preview
Environment MapsSets the scene's environment map and confirms with a toast
LUTsSets 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:

CategoryAccepted 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
WebpagesAny http(s) URL, no file
Scene EffectsBuilt in, no file
PNGTuber · Screen CaptureComing soon

Three of these are settled by the file, not by its extension:

  • .glb is both a model and a prop — picking a .glb with 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
  • .vmd is 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
  • .fbx is 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 .fbx is 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:

ElementMeaning
EyeSwitches the effect on and off. It ramps over 0.4 s rather than cutting
NameThe effect's name
GripNone — the chain fixes effect order, and that order is not a setting
Kind iconScene Effect
Actions menuReset 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 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:

FieldNotes
Addresshttp(s) only; any other scheme is refused. It commits on leaving the field or pressing Enter, and reloads
Width and HeightThe 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
FPSThe 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 BackgroundOn by default, like an OBS browser source. Off, the page is white
LayerBehind 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 HiddenOn 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 CSSInjected 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

ItemPositionRotationScale range
Live2D modelX · YZ0.1× – 24×
VRM modelX · Y · ZX · Y · Z0.05× – 10×
2D objectX · YZ0.01× – 50×
3D objectX · Y · ZX · Y · Z0.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

ControlUsed byUse
Position padLive2D models, 2D objectsDrag the marker, or click anywhere on the pad to jump there. The pad takes the stage's aspect ratio
3D position controlVRM models, 3D objects, the cameraDrag 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 globeVRM models, 3D objectsDrag the globe to tilt and turn, or its outer ring to roll
Rotation ringLive2D models, 2D objectsDrag 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

GestureEffect
DragMove the selected item
ScrollZoom toward the cursor, so the point under it stays
Shift + scrollRotate

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

ControlEffect
Follow RotationThe item turns with the anchor. Off, it keeps its own upright rotation
MultiplierHow much the model's head angle turns the item, from −2 to 2
Parallax XStage px the item shifts sideways at a full head turn, −300 to 300
Parallax YThe same vertically, as the head looks up and down
SmoothingHow 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:

ControlEffect
StiffnessHow hard the spring pulls toward the anchor
DampingHow quickly it stops oscillating
Max SpeedA 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

Tech otakus destroy the world