› Accessory Editor › Manual
Open editor Gallery

Accessory Editor — Manual

Chatty's redesigned avatars are more 3D-like, so every accessory needs to be re-positioned. This editor lets you do it visually, save your changes automatically, and propagate one good placement to many similar accessories or many avatars in one click.

On this page

1. Quick start

Accessory Editor — overview
The editor at a glance: avatars on the left, the stage in the middle with the OLD 2D reference next to it, accessory list on the right, and the action toolbar at the bottom.

Workflow:

  1. Open the editor, sign in (admin / www.antiland.com).
  2. Pick an avatar in the left rail. Pick an accessory in the right rail (Hats / Eyes / Mouths tabs).
  3. Position the first hat (or eye, or mouth) so it looks as close to the 2D original — shown in the small reference panel beside the stage — as you can. Drag the bbox to translate, the corner / edge handles to resize, the green dot above the box to rotate, the yellow squares to skew.
    Manipulation handles around an accessory
    Blue corner circles = resize · grey edge squares = resize one axis · green dot = rotate · yellow squares = skew · drag the dashed bbox itself to move.
  4. Press the Propagate button Propagate button and pick All hats (or All accessories):
    Propagate modal
    Within-this-avatar scope copies the relative offsets between accessories on the OLD 2D map onto your new anchor.
    The relative offsets between accessories on the OLD 2D avatar are preserved and shifted onto your new placement. Most accessories land correctly automatically. Then click through them quickly to spot-check and tweak the few that look off.
Auto-save. Every change is written to Firestore ~800ms after you stop editing. The save status indicator in the header shows idle / editing… / saving… / saved ✓. You can also press 💾 Save now to flush immediately, or ⤓ Export to download a JSON backup.

2. The layout

Avatar list with edited badge
Left rail · the green dot means this avatar has saved edits.
Old 2D reference panel
Reference panel · the OLD 2D combo at its baked position — your visual target.

3. Manipulating the accessory

The dashed bounding box shows the accessory's rectangle. Around it are several handles, each with its own job:

HandleWhat it does
blue circles in the corners Resize. Drag both width & height. The off-axis dimension auto-locks once the drag clearly favors one direction. Hold Shift to lock the original aspect ratio.
grey squares on the edges Resize one dimension only — top/bottom changes only height, left/right changes only width. Anchors the opposite edge.
green dot above the box Rotate. Hold Shift to snap to 15° steps.
yellow square (right side) Skew X. Drag horizontally → top & bottom edges slide left/right relative to each other. Now uses object-local coordinates so it's predictable when the accessory is rotated.
yellow square (below) Skew Y. Drag vertically → left & right edges slide up/down relative to each other.
Drag the body of the bbox Translate — move the accessory anywhere on the stage.

Numeric inputs at the bottom (X / Y / W / H / Rotation / Skew X / Skew Y / Z) let you type exact values. Enter commits. Each numeric edit becomes a single undo entry, even if you typed multiple keystrokes.

4. Toolbar — every button explained

The action toolbar lives in the header, grouped by function. Every icon has a tooltip on hover (including its hotkey, when there is one). Press ? to open the cheatsheet popover that lists every icon's meaning at a glance.

ButtonWhat it does
/ · Ctrl+Z / Ctrl+Y Undo (Ctrl+Z) / Redo (Ctrl+Y or Ctrl+Shift+Z) the last edit. One drag gesture or one field-typing session = one undo entry. The stack works across avatars and accessories — undo navigates you back to whatever you edited.
💾 · S Save now. Force-flushes any pending edits to Firestore immediately, bypassing the 800ms debounce.
Export. Downloads coords_3d_{timestamp}.json — the full coord map for every avatar in 384-px space. Use as a backup or to hand off to the iOS team.
· W Warp toggle. While active (button turns yellow), the four corner handles drag corners independently — turning the rectangle into any quadrilateral. See §7.
× Reset warp. Removes the warp on the current accessory only — back to a plain rectangle.
· R Reset current accessory to its draft seed position. Saved override is removed; Ctrl+Z brings it back.
Reset more — scoped. Opens a modal where you pick the scope: All Hats, All Eyes, All Mouths, or Entire avatar. Each option shows how many overrides it would clear; disabled if there's nothing to reset.
🧙 Wizard. Opens a scope picker — All, Hats only, Eyes only, or Mouths only. A "Wipe before starting" checkbox optionally clears the chosen scope first. The wizard then walks you through placing the anchors and propagating. The full sequence has 4 steps; scoped runs short-circuit to "Done" after their category finishes.
· D Mark this avatar complete (toggles). Once marked, the wizard stops auto-starting for it. When every wizard anchor is placed but the avatar isn't yet marked done, the button gets a green ring and a small "✓ ready · click to mark done" pill appears in the header.
Copy from avatar…. Replaces all accessory positions on the current avatar with another avatar's. Useful when two avatars have the same head shape.
· A Propagate…. The big timesaver. Apply the current accessory's placement to other accessories on the same avatar, or the same accessory across all other avatars. Full details in §6.
Quick preview. Opens a scrollable grid of every accessory composited on the current avatar at 72×72. Tabs filter All / Hats / Eyes / Mouths. The currently-edited tile has an accent ring; tiles with saved overrides have a green dot. Click any tile to jump straight to editing that accessory.
/ · Prev / next accessory within the current category. Skips entries that have no draft position on this avatar. Use / to move between avatars while keeping the same accessory selected.
Session is remembered. The editor saves the last avatar + accessory you were editing to your browser's localStorage. When you reload (Ctrl+R or Ctrl+Shift+R), it reopens exactly where you left off — no more landing on Avatar #1 / h1 every time.

5. Keyboard shortcuts

The hotkeys are split by hand and purpose: WASD triggers common toolbar actions, arrows handle navigation, brackets handle rotation, and R resets. The right hand stays on the mouse for positioning while the left hand drives the editor.

Action keys — WASD

WToggle Warp mode (same as the ◇ button).
AApply / Propagate — opens the propagate modal (⇅).
SSave now — flushes any pending edits (💾).
DMark Done — toggles the avatar's complete flag (✓).

Editing

Rotate clockwise / counter-clockwise ] / [
Scale up / down + / -
Reset current accessory to draft R (instant; Ctrl+Z to undo)

Pixel-precise nudging is easier through the numeric X / Y fields in the bottom toolbar — type the new value and press Enter. Each numeric edit is one undo entry.

Navigation — arrows

Previous / next accessory in this category / (also p / n)
Previous / next avatar — keeps the same accessory selected /
Wizard primary button (Done with X · Propagate · Close) Enter

The / shortcut is great for spot-checking how one accessory sits across many avatars: pick h1 on avatar 1, then hold to flip through 2, 3, 4… while keeping the same hat selected.

Other

Undo / Redo Ctrl+Z / Ctrl+Y (also Ctrl+Shift+Z)
Toggle the cheatsheet popover ? (or click ? in the header)

6. Propagation — saving hours of work

Propagation is what makes the editor practical. After you've placed one accessory carefully, you can roll that placement out to many others, preserving the differences each accessory had in the original 2D layout.

Propagate modal showing all options
Propagate modal: choose a within-avatar scope or a cross-avatar scope, with a reference dropdown for the latter.

Within this avatar

Place the first hat well. Then click ⇅ Propagate… and pick All hats on this avatar. The editor takes the relative offsets between every other hat and the anchor hat in the OLD 2D map, then applies those same offsets to your new anchor position. Result: every hat lands somewhere sensible automatically. Same for eyes and mouths.

Skew, Z, and rotation are carried as relative offsets too — so an accessory that was tilted in the old map (e.g. the rainbow scarf c54 at -30°) keeps its tilt after propagation.

Across avatars — same accessory

Place an accessory (e.g. c36 — one with no draft position) on one avatar. Then propagate across avatars: pick a reference accessory (e.g. c1) that's already positioned on every other avatar, and the editor places c36 on each one at that avatar's c1 position + the offset between c36 and c1 you set here. Effectively this teaches the editor where c36 goes by comparing to one anchor we trust.

The two checkboxes

Tip. If you propagate from c1, then later propagate from c2, the second propagation overwrites whatever the first wrote. To avoid surprises after multiple rounds, use Reset all targets to draft first + tweak only one anchor per round.

7. Warp / perspective

Some accessories need to follow the avatar's gaze or head angle — not just rotate, but perspective-distort. The Warp feature solves this.

  1. Click ◇ Warp. The button highlights. The four corner handles change behavior.
  2. Drag any corner anywhere — independently of the others. The accessory becomes a free quadrilateral.
  3. Click ◇ Warp again to leave warp mode (corners go back to resizing).
  4. Click ⌅ Reset warp to undo a warp on the current accessory.

Internally the editor solves a 4-point homography from the un-warped rectangle to your quad and emits a CSS matrix3d on the image. The result composes correctly with translate, rotate, scale and skew, so you can stack effects.

Propagation carries warp through, so one well-warped accessory's perspective copies to its targets.

8. Save, Export, recovery

Wipe guard. The API refuses to clear an avatar's whole map unless the request explicitly opts in (confirm_wipe: true). Reset avatar uses this; nothing else can accidentally blow your work away.

9. "No draft pos" — what it means

An accessory shown faded with (no draft pos) in the right rail has no production placement on any avatar — there's no entry for it in the historical 2D coord map.

Total: 14 accessories are in this state across hats and mouths (h16, h24, h26, c24, c25, c34, c36, c37, c40, c41, c62, c63, c64, c65). Their image files exist in static-data, but the team never assigned them coordinates.

No draft pos badge in the accessory list
What the badge looks like in the accessory list: the entry is dimmed and shows "(no draft pos)".
What to do? Consult with @EPILock and @YanaMurr to find out whether these accessories are still on sale. If they've been retired, you don't have to position them. If they should ship: place one manually on one avatar, then use Propagate across avatars with another accessory in the same category as the reference (see §6). The new placement will roll out to every avatar at once.

10. Tips & gotchas