Open PNG Rigger v2 — drop your T-pose character. A solid-color background (black, white, green…) is removed automatically; a transparent PNG works as is. If part of the background stays (brush strokes, a shadow, a second color), press Something left? Click it away and click what is left. Two figures on one sheet, or a stray object next to yours? Keep only one figure, then click the one you want
Place the 17 skeleton points automatically or by hand
Press Preview to see which part each area goes to. If something is wrong, switch to Paint mode: paint it into the right part, or erase stray pixels with "Remove". Smart select does a whole area in one click — choose Head and click the hair lying on a shoulder, and all of it moves to the head
Save Rig → a rig file you can keep or share. The browser also remembers the rig by itself: open the same image again and the skeleton, mask and face points come back
Split into Parts → 10 PNGs + a meta JSON are downloaded (Cut style: Clean, the default). The older Classic style with 9 extra joint patches is still available
(Optional) Use Batch to slice 200 different pose images with the same bones in one go (ZIP)
Switch to Cutout Animator v2 — drag the meta JSON and all PNGs onto the canvas
Select a part in the left panel; use the Transform sliders on the right, or drag / rotate / scale on the canvas
Add several variants of the same body part (Head-Neutral, Head-Smiling, Head-Surprised) → swap sprites by toggling visibility per frame
Pick a frame → press K to add a keyframe → another frame → another pose → K again
Press Space to play; export with the WebM / GIF / PNG / Frames buttons
Path 4 — PNG Rigger → Live Puppet (perform with camera or video)
Slice your character in PNG Rigger v2 (Path 3, steps 1–5). For an animated face, open Face mode before splitting: press Add face points, drag the blue ovals onto the eyes, put the red oval on the mouth and size it to the widest open mouth you want, then press Find irises
Open Live Puppet — drop the meta JSON and all PNGs onto the page (or press Load sample character to try it first)
Press Start camera and allow camera access — or choose Use a video file
Step back so your shoulders and arms are in view. Arms, torso, head tilt and legs follow you; if your body is out of view the arms rest at the sides
Look straight ahead and press Re-center head if the head sits off-center. Open Tips for best results in the side panel for framing and lighting advice
Start recording → perform → stop. The video contains only the puppet, never your camera image
3D — 3D Rigger v2 (GLB/FBX)
Open 3D Rigger v2 → drop a GLB/FBX model
If it is pre-rigged, pose it right away; if not, use Auto-Skin (source rig) or the manual 17 points + Bake
Rotate bones → add a Keyframe (or load a Mixamo clip) → Play
✂️ Clean cut — bone-based, solid parts, soft joint caps🧹 Background removal (solid color, auto + tolerance; click leftovers away)🪄 Smart select — click an area, the similar-colored pixels go to the right part17-point automatic placement📷 Illustrated guide: which picture gives the best result, with copy-and-paste prompts for AI image generatorsPicture: Drawing or Photo — a photo set opens in Live Puppet with the photo settings already onFigure: full body / waist up / head & shoulders (for images that do not show the whole body)Manual masking brush (paint / revert / remove)💾 Mask save/load (embedded in the rig JSON)🧠 Remembers your rig — open the same image again and skeleton, mask and face points come back (stored in your browser only)🩹 Mask → mesh integrationPer-part influence radius (saved)10 PNGs + meta JSON (Classic style: + 9 joint patches)📦 Multi-image batch (200 images, one bone config → ZIP)🦴 4 modes: Skeleton (rig) / Paint (mask) / Face / Pose🙂 Face mode — mark eyes and mouth for Live Puppet (irises found automatically)🎯 Pose mode — select a bone + rotate (slider/drag) → mesh deformation⊞ Adjustable mesh resolution (12–48)🎬 Keyframe animation timeline + play/stop + FPS📤 WebM / GIF / Frames (PNG sequence) / Image export🎨 Background + 🔍 auto fit (zoom)↶ Undo (Ctrl+Z)💾 Save JSON (skeleton + animation)
📷 Webcam or video file as the driverOpens PNG Rigger parts sets (meta JSON + PNGs) by drag-dropArms, torso, head and legs follow the performer🙂 Face: blink (each eye), gaze, mouth open / smile / frown, angry and sad lidsMirror mode + smoothing + head re-centeringSteady tracking: glitch rejection, hold when a limb points at the camera, joint limitsArms rest at the sides when the body is out of view🗣️ Text to speech on the device: woman, man and narrator voices + Child / Elderly / Cartoon / Documentary / Touching charactersStage directions in the text: [happy] [sad] [wave] [raise right hand] [nod] [pause 1]🎵 Play a sound file — the mouth follows the voice (best with a clear lead vocal)From the video: movement only / movement + its sound / its sound onlyMouth follows: Auto / Voice only / Performer📸 Photo portraits (beta): a head-and-shoulders photo of a person moves its own lips, eyelids and eyebrows, and shrugs its shoulders; the face is found automatically. Arms and legs of photographed people stay stillLimbs whose hands are not in the picture stay stillSoft joints (beta): shoulders, elbows, knees and neck stretch instead of opening gapsFraming: full body / waist up / close-up🎬 Record the puppet only, with its voice (MP4 / WebM)Background: black / green screen / white / blue-grey / your own picture / transparent (WebM)Frame: square / 16:9 / 9:16 / same as the picture · drag the character, change its size🎙️ Use my microphone: your voice moves the mouth and is recorded (stays on the device)Record from the start of the video; stops by itself at the endSound in the recording: on / offStop camera / video buttonBuilt-in tips for framing and lighting🔒 On-device tracking — no uploads, no external connectionsTwo sample characters to pick by their faces: Wingu (plush doll) and a rag doll
Hierarchical bone systemFixed 10 partsGIF / WebM / PNG export
To Do
🎭 Live Puppet — next steps:
✅ Cleaner parts from PNG Rigger — DONE. Background removal, solid single-owner parts, hair staying with the head, soft round joint caps (Cut style: Clean). Still open: cropping parts to their own box. The crotch is handled in the cut itself: the inner thigh belongs to the leg and a soft fan on top of the leg closes the gap when it swings out, in Cutout Animator as well as Live Puppet. (Skipped when the torso overlaps the legs like a hem.)
✅ Arm-spin fix + joint limits — DONE. A limb pointing at the camera holds its last angle, tracking glitches are rejected, angles are speed-limited, elbows and knees cannot fold completely. Still open: using depth to shorten a limb that points at the camera.
✅ Face — DONE (first version). Eye and mouth points in PNG Rigger's Face mode; blinking, gaze, eyelid moods, optional eyebrows and a mouth with speech shapes, teeth and tongue in Live Puppet. Still open: a character's own mouth and brow art, automatic eye detection.
Missing-part completion — eyelids, mouth interior, the torso area hidden behind an arm.
Write tracking to keyframes — send a live performance to Cutout Animator as an editable animation.
📖 Flipbook Player — possible next improvements (optional, deliberately postponed):
📜 Bottom UI vertical scroll fix — a bottom-shell wrapper (max-height: 50vh, overflow-y: auto) was added but no scrollbar shows on the user's screen. Likely cause: the shell's content is already under 50vh (so scrolling never triggers), or inner elements mask the shell's scroll. Directions: (1) create real overflow with min-content + flex-shrink, (2) make the shell a CSS Grid with auto-rows: minmax(0, max-content), (3) make the scrollbar always visible. ~30 lines.
🎞️ Screen-aware thumbnail strip — frame thumbnails are not shrunk to the timeline track height and can be cut off when there is a lot of content. Fix: dynamic thumbnail size based on track height + frame count, with a max-thumbs limit — or horizontal scroll inside the strip. ~80 lines.
💬 Text overlays — remaining extras:
🎨 Rich text spans — inline formatting inside one overlay (multi-segment color/bold/italic). ~120 lines.
🔊 Typewriter sound — a click every N letters during the typewriter animation (bound to an SFX). ~40 lines.
⏱️ Per-character speed curve — pause at periods and commas, speed up after "!" (natural reading rhythm). ~60 lines.
Continuous ambient camera shake — besides per-frame and SFX-bound shake: an "always slightly shaky" handheld-camera mode with a global toggle + intensity slider. For found-footage, earthquake or panic scenes. ~50 lines.
Mobile touch support — touch events for canvas drag and frame-list reorder. ~100 lines.
WebGL renderer — Canvas2D can slow down at 500+ frames or on a 4K canvas. A big port, but it buys scalability. ~600 lines.
✅ Multi-character / scene layers (large refactor) — DONE in v0.4. 2+ characters in one scene, separate timelines, parent/child puppet follow, triggered keyframes, shared SFX, cinematic camera follow, onboarding tour, debug HUD. Details in docs/multi-character-design.md.
🎯 Multi-character — possible polish and extras (Phase 6+):
👋 Audio track replace — swap the file of a loaded track while keeping its volume/trim/fade settings. ~40 lines.
🧹 Project gallery cleanup — "Delete all", "Delete older than 30 days" and "Keep only the open one" buttons in the gallery, for users whose auto-saves pile up. ~80 lines.
🎨 Per-entity lighting tint — a lighting override per character ("A in warm light, B in cool light, same scene"). ~120 lines.
🌑 Per-entity drop/ground shadow — today the shadow is global; give each entity its own (color/intensity/offset). ~80 lines.
🧅 Multi-entity onion skinning — onion skin currently works for the active entity only; add a per-entity toggle. ~60 lines.
🔲 Camera bounds / clamp — keep the camera inside the scene (clamp to the background image size) so a wide pan never runs out of background. ~40 lines.
🎯 Solo entity export — export a single character from the scene (one-click solo, others muted). ~30 lines.
📁 2-character starter template — "+ New 2-char scene" in the toolbar: an empty project with two entities side by side at different z. ~50 lines.
📐 Smart Add Character defaults — place each new character next to the previous one automatically, avoiding overlap. ~25 lines.
🎥 Trigger action: set-active-entity — when character A reaches frame X, B becomes active and the camera switches to B. ~50 lines.
♻️ SFX/trigger behavior on frame reorder — SFX and triggers are anchored to a frame index and do not follow the frame's content when frames are reordered. A frame-id-anchored alternative is worth evaluating. Design + tests.
🚀 Performance audit — profile a large project (3+ entities, 50+ frames) with the Debug HUD, find the bottleneck and optimize. ~150 lines + measurements.
🎬 Multi-entity export validation suite — systematically verify that camera follow, parent/child and triggers show up correctly in the WebM export (3–4 scenarios, frame by frame). ~100 lines.
🎬 Video / clip editor extensions — would turn Flipbook into a mini video editor:
Single video clip layer (light) — one video layer, like an audio track: drag-drop MP4/WebM, start time + trim + x/y/scale + volume, overlaid on the flipbook frames and exported. Limits: one track, not frame-accurate (±1 frame drift), no multi-track or copy-paste. ~500–700 lines.
Multi-clip on a single track — several clips in a row on the same track (drag to arrange); move, trim, copy-paste and delete clips. ~+400–500 lines on top of the above.
Cross-clip transitions — cross-fade / wipe / fade-to-black where adjacent clips overlap, with a per-transition duration. ~+200 lines.
Full NLE (a separate tool: Stitch Editor) — multi-track timeline, picture-in-picture, frame-accurate cuts (WebCodecs API), audio automation, color-correction primitives. Outside Flipbook's scope; mostly Chrome/Edge (WebCodecs is partial in Safari, experimental in Firefox). ~2000–3000+ lines, a separate application.
Cutout Animator v2 — possible next improvements:
Multiple animation clips — store "walk", "jump", "sad" and other animations for one character in the same file and pick one at playback. (Cutout is the primary animator; this also applies to the PNG Rigger timeline.)
Sprite atlas export — one image + a JSON map for game engines (Unity, Phaser, Godot). (Flipbook already has a rendered-frame atlas; in Cutout a "Spine-style" parts + skeleton/keyframe export makes sense.)
PNG Rigger v2 — possible next improvements:
Mirroring — automatically flip a left-arm animation for the right arm. Gold for walk cycles.
Bone constraints — limits such as "the elbow cannot bend past 180°", to prevent backward bending.
Inverse Kinematics(worth considering) — put the hand where you want it and have the elbow/shoulder angles computed.
Mesh deformation for facial expressions — blinking, mouth movement. (Simple needs are already covered by Cutout's sprite swap; this is for finer control.)
Shared (2D tools):
(Later) WebGL rendering — all 2D tools use Canvas2D today; WebGL would help on 4K+ canvases or with many layers. (PNG Rigger benefits most because of mesh deformation.)
Bundle the export libraries — ship gif.js, JSZip and pako with the site instead of loading them from a CDN, so every export works offline.
3D Rigger v2 — skipped / optional:
Mask brush (skipped) — hiding halos/artifacts baked into the texture. Five geometry-based attempts failed; texture painting needs a separate system (~300 lines). Joint Edit + Re-bind + Global skeleton adjust cover about 90% of the need, so this is low priority.
Topology-aware auto-skin retargeting (optional) — for winged, four-legged or otherwise atypical characters: detect the target mesh's extremities and pick a matching sub-skeleton. An edge case today.
Precision of the automatic test poses — on manually rigged characters the test poses (Sit, Jump, Wave) depend on the bone local-axis convention; if the character is oriented differently they can tilt sideways. The Rotate Model buttons are the short-term fix; bone-axis auto-detect is the long-term one.
Pose album v1 (optional) — Save/Load Pose is file-based today. v1: an in-browser IndexedDB album with a grid view (name + thumbnail + date + Apply/Delete). ~150–200 lines.
Pose album v2 (optional) — v1 + export/import the album as JSON (move between devices) + tags (walk / fight / expression groups). ~250–300 lines.
Real shadows / shadowMap (optional) — the directional lights cast no shadows today. Has a performance cost. ~50 lines + performance testing.
Per-light color picker (optional) — key is white and fill is warm orange today; a picker would allow sunset / blue hour / studio looks. ~30 lines.
✓ Multi-character scenes (DONE — Phase 0–4) — 2+ characters in one scene, late entry (sceneOffsetSec), per-character transform/keyframes/visibility, .rigz v3 save/load + auto-save. Docs: docs/3d-rigger-multi-character-design.md. Safe rollback: the 3d-rigger-pre-multichar tag.
Manual rig for multi-character scenes (optional — low priority) — the 17-point manual placement + bake flow assumes a single character throughout. Converting it is ~8–10 hours with a high regression risk; pre-rigged GLB + Auto-Skin cover most cases. For now: manual rig is single-character only.
Animation clip import for test poses — Idle/Walk are static single-frame presets today. Improvement: a "Preset Animations" menu that loads full Mixamo FBX clips onto the timeline as keyframes (breathing loop, walk cycle). ~250 lines; medium-high complexity.
Known Limitations
PNG Rigger — background removal works on solid-color backgrounds only; very dark hair on a black background (or white clothing on white) can be partly eaten — lower the tolerance or use a transparent PNG. The Clean cut assumes a T- or A-pose with the arms below the neck line, and works best when hair does not fall over the shoulders or arms — hair that does can leave specks on the torso or arms (fix them in Paint mode). Pose mode (mesh deformation) can distort the image on large pose changes. The Cutout Animator v2 path (sprite swap + posed parts) usually gives better results.
Multi-image batch expects inputs of the same size as the reference image. Images with a different resolution are skipped.
Live Puppet is a first version. The face is drawn, not photographed: eyelids are made from the surrounding skin, and the eyebrows and the mouth (with teeth and tongue) are drawn shapes, so it suits stylized characters better than realistic ones; a set without face points keeps a still face. An arm pointing straight at the camera freezes at its last angle (a flat puppet cannot show depth); the fabric between the legs is filled in as they open, so the crotch sits a little lower in a wide stance; tracking gets shaky when the performer is small in the frame. Parts sliced with the older Classic cut style leave smears at the shoulders — use Clean. It needs a browser with camera access and has been tested in Chrome only so far; it works best on a computer with a graphics card.
3D Rigger v2 — proximity weighting + manual Joint Edit give good results on most humanoid characters. Very atypical silhouettes (winged, four-legged) may need extra manual correction. A file that contains only a skeleton and no mesh loads as an empty scene.
Languages — all five tools and this page are in English. A language switcher (Turkish and others) is planned as one system for every tool. The archived v1 tools keep their original language.
Offline use — the 2D tools open and run without an internet connection, with these exceptions that load a small library from a CDN on first use: GIF export (gif.js), ZIP outputs — PNG sequence, batch slicing, Flipbook project packages (JSZip) — and compressed rig files (pako). WebM export needs no library. 3D Rigger loads three.js from a CDN and does not open offline. Live Puppet ships its tracking library and models with the site and makes no external connections at all.
About This Toolkit
Slice & Stitch is a prototype toolkit built by a user who does not code, together with Claude AI. v0.1 came out of a web chat in a few hours; v0.2 brought the flexible layer system and the animation timeline with Claude Code; v0.3 turned Flipbook Player into a mature editor; v0.4 added the multi-character scene compositor; v0.5 adds Live Puppet — performing a character live with a camera. Each tool's current features are on the cards above.
It does not replace professional tools (Spine, DragonBones, Toon Boom, Live2D), but it offers a similar workflow for free. The goal is not to compete with an industry giant — it is to animate your own characters and to lay a foundation you can come back to and build on as the technology improves.
Every tool runs in the browser with nothing to install. Most are a single HTML file; Live Puppet also ships a tracking library and two models with the site. See "Known Limitations" for what needs an internet connection.