Professional vertex weight painting for 3D skeletal meshes
Getting Started
What You'll Need
A modern web browser (Chrome, Firefox, Edge, or Safari)
A 3D model in GLB or GLTF format with a skeleton/armature
Mouse or trackpad (recommended: mouse for precision)
Basic understanding of 3D concepts (optional but helpful)
First Time User?
BlackBox Skinner is designed to be intuitive even if you've never done weight painting before. Start with our interactive lab to learn the basics through hands-on experimentation!
What is Weight Painting?
The Basics
Weight painting is the process of assigning influence values (weights) to vertices in a 3D mesh, determining how much each bone in a skeleton affects each vertex when the bone moves.
Think of it like puppet strings:
Bones are like the wooden control bars of a marionette
Vertices are points on the puppet's fabric
Weights are like strings connecting the bars to the fabric
Stronger weights = tighter strings = more movement
Weaker weights = looser strings = less movement
The Magic Rule: Normalization
For each vertex, all bone weights must add up to exactly 100% (or 1.0). This ensures the vertex doesn't stretch, compress, or behave strangely:
Example: Elbow Vertex
Upper Arm Bone: 70% influence
Lower Arm Bone: 30% influence
Total: 100% - Perfect!
Common Mistakes
Over 100%: Vertex will stretch unnaturally
Under 100%: Vertex will appear "floppy" or lag behind
0% (no weights): Vertex won't move at all
Understanding the Interface
Main Areas
1. Top Header Bar
File Controls: Load Model, Export GLB, Save Weights
Mode Selector: Switch between Paint and Pose modes
View Options: Toggle wireframe, skeleton, grid
2. Left Panel - Bone Hierarchy
Shows all bones in your skeleton
Click to select a bone for painting
Hierarchical tree structure (expandable)
Currently selected bone highlighted in blue
3. Center Viewport
Main 3D view of your model
Heat map visualization shows weight distribution
Camera controls: Rotate (left-drag), Pan (right-drag), Zoom (scroll)
Paint directly on the model surface
4. Right Panel - Tools & Properties
Brush Settings: Type, Size, Strength
Bone Info: Current bone details
Vertex Info: Weight values for selected vertex
Tools: Normalize, Mirror, Validate
5. Bottom Status Bar
Current mode indicator
Selected bone name
Vertex count and performance stats
Tips and hints
Loading Models
Supported Formats
GLB - Binary glTF (recommended, single file)
GLTF - Text-based glTF with external files
Requirements
Your model must have:
A skeleton/armature with named bones
Skin modifier or skinning data
At least one mesh bound to the skeleton
How to Load
Click "Load Model" button in the top-left
Select your GLB/GLTF file from your computer
Wait for the model to load (progress indicator shows status)
Model appears in viewport with default T-pose
Bone hierarchy populates in left panel
First-Time Load
If your model has no existing weights, BlackBox Skinner will attempt to auto-assign basic weights based on bone proximity. You can then refine these weights using the painting tools.
Painting Modes
Paint Mode (Default)
The primary mode for painting vertex weights.
Select a bone to paint for
Choose your brush tool
Paint directly on the model
See real-time heat map feedback
Shortcut:Space to toggle between Paint and Pose modes
Pose Mode
Test your weight painting by posing the character.
Select a bone to rotate/move
Use transform gizmos to pose
See how weights affect deformation
Identify problem areas
Shortcut:Space to toggle back to Paint mode
Brush Tools
Brush
Purpose
Usage
Add Brush
Increase weight values
Add influence of current bone to vertices. Each stroke increases weight based on brush strength.
Subtract Brush
Decrease weight values
Remove influence of current bone from vertices. Each stroke decreases weight based on brush strength.
Smooth Brush
Blend weights
Averages weights with neighboring vertices to create smooth transitions. Essential for natural joint bending.
Replace Brush
Set exact weight
Sets weight to exactly the brush strength value, replacing existing weights for the current bone.
Brush Settings
Size
Controls the radius of the brush (how many vertices are affected).
Small brush: Precise detail work
Large brush: Painting broad areas quickly
Range: 0.01 to 5.0
Strength
Controls how much the brush affects weights with each stroke.
Low strength: Gradual, controllable changes
High strength: Quick, dramatic changes
Range: 0.0 to 1.0 (0% to 100%)
Recommended Settings
General painting: Size 0.5-1.0, Strength 0.3-0.5
Detail work: Size 0.1-0.3, Strength 0.1-0.3
Smoothing: Size 0.5-1.5, Strength 0.5-0.7
Quick fills: Size 2.0-5.0, Strength 0.8-1.0
Bone Selection
How to Select Bones
Click in hierarchy: Left panel bone list
Click in viewport: Click on bone visualization (when skeleton view is enabled)
Use arrow keys: Navigate bone hierarchy with keyboard
Keyboard Navigation
Shortcut
Action
↑
Select parent bone
↓
Select first child bone
←
Select previous sibling bone
→
Select next sibling bone
Efficient Bone Selection
Use keyboard navigation to quickly move between related bones without clicking. This is especially useful when painting symmetrical characters - paint one side, then quickly jump to the mirror bone!
Visualization Modes
Heat Map (Default)
Color-coded visualization of weight values:
Red: 100% influence (maximum weight)
Orange/Yellow: 50-99% influence
Green: 25-50% influence
Blue: 1-25% influence
Black: 0% influence (no weight)
Wireframe Mode
See the mesh structure:
View vertex topology
Identify problem areas
Understand mesh density
Skeleton View
Visualize the bone structure:
See bone connections and hierarchy
Understand joint locations
Helps with bone selection
Combined Views
You can enable multiple visualization modes simultaneously:
Model + Skeleton: See bones inside the mesh
Wireframe + Skeleton: Clear view of structure
All modes: Complete visualization (can be cluttered)
Advanced Tools
Normalize Tool
Ensures all vertex weights add up to 100%.
Auto-Normalize: Automatically normalizes as you paint (recommended for beginners)
Manual Normalize: Click button to normalize all weights
Normalize Selected: Only normalize currently visible/selected vertices
When to Normalize
Normalize after major painting sessions, before testing poses, and definitely before exporting your model!
Mirror Tool
Copy weights from one side to the other.
X-Axis Mirror: Left ↔ Right (most common)
Y-Axis Mirror: Top ↔ Bottom
Z-Axis Mirror: Front ↔ Back
Requirements:
Bones must follow naming convention (Left/Right, L/R, .L/.R)
Mesh must be reasonably symmetrical
Validate Tool
Checks for common weight painting problems:
Unnormalized vertices: Weights don't add to 100%
Zero-weight vertices: No bone influence
Over-influenced vertices: Too many bones affecting one vertex
Isolated weights: Single vertex with different weights than neighbors
Problem vertices are highlighted in the viewport in pink/magenta.
Auto-Fix Tool
Automatically attempts to fix common problems:
Normalizes all unnormalized vertices
Assigns nearest bone to zero-weight vertices
Smooths isolated weight anomalies
Use Carefully!
Auto-fix is convenient but may not always produce the desired results. Review changes and use Undo if needed.
Keyboard Shortcuts
Action
Shortcut
Mode Switching
Toggle Paint/Pose Mode
Space
Bone Navigation
Select parent bone
↑
Select first child bone
↓
Previous sibling bone
←
Next sibling bone
→
Brush Selection (Coming in v1.5)
Add Brush
Alt+A
Subtract Brush
Alt+S
Smooth Brush
Alt+D
Replace Brush
Alt+R
View Controls
Toggle Wireframe
W
Toggle Skeleton
K
Toggle Grid
G
Frame Selected Bone
F
Tools
Normalize Weights
N
Validate Weights
V
Mirror Weights
M
Workflow Guide
Basic Workflow
Load your model - Import GLB with skeleton
Inspect existing weights - See what you're starting with
Select a bone - Choose which bone to paint for
Choose brush tool - Add, Subtract, Smooth, or Replace
Adjust brush settings - Size and strength
Paint on the mesh - Click and drag to paint
Test in Pose Mode - See how it deforms
Refine weights - Adjust problem areas
Normalize - Ensure all weights sum to 100%
Export - Save your painted model
Character Rigging Workflow
Recommended Order
Core/Spine: Start with torso and spine bones
Limbs: Paint arms and legs (one side first)
Joints: Refine elbow, knee, shoulder, hip joints with smooth brush
Mirror: Copy weights to other side
Extremities: Hands, feet, fingers, toes
Head/Neck: Paint head and neck area
Fine Details: Smooth transitions, fix problem areas
Test: Pose extensively to find issues
Polish: Final smoothing and normalization
Joint Painting Technique
Creating Natural Joint Bends
For elbows, knees, and other hinge joints:
Paint upper bone: Full influence (100%) on upper portion
Paint lower bone: Full influence (100%) on lower portion
Create transition: Use Smooth brush at the joint
Test bend: Rotate bone 90 degrees
Adjust gradient: Move transition zone until bend looks natural
Tip: The transition zone should be about 10-20% of the limb length for natural bending.
Tips & Best Practices
For Beginners
Start simple: Practice on basic models before tackling complex characters
Use low strength: Easier to build up weights gradually than to fix overshooting
Test frequently: Switch to Pose Mode often to check your work
Save versions: Export backups at different stages
Learn from errors: Mistakes are the best teacher in weight painting!
Performance Optimization
Close other browser tabs for better performance
Disable other visualization modes when not needed
Use smaller brush sizes on high-poly models
Consider simplifying very dense meshes before weight painting
Symmetrical Characters
Paint one side completely before mirroring
Check bone naming conventions before using Mirror tool
After mirroring, test both sides independently
Some asymmetry is natural - don't over-mirror!
Professional Techniques
Gradient painting: Create smooth transitions between bones
Envelope method: Paint large areas first, then refine details
Test poses: Use extreme poses to reveal problems
Reference anatomy: Real anatomy guides natural weight distribution
Smooth liberally: Most problems can be fixed with smoothing
Troubleshooting
Model won't load
Possible causes:
File is corrupted or not a valid GLB/GLTF
Model has no skeleton/armature
File is too large (over 100MB)
Solutions:
Re-export from your 3D software
Verify skeleton exists and is properly rigged
Reduce texture sizes or mesh complexity
Painting isn't working
Check these:
Are you in Paint Mode? (not Pose Mode)
Is a bone selected?
Is brush strength above 0?
Is brush size appropriate for the model?
Mesh deforms strangely
Common issues:
Unnormalized weights: Run Normalize tool
Zero-weight vertices: Run Validate to find them
Wrong bone painted: Check which bone is selected
Too many influences: Simplify weight distribution
Mirror tool not working
Requirements:
Bones must follow naming convention: Left/Right, L/R, .L/.R, _L/_R
Mesh must be symmetrical (or close to it)
Both sides must have corresponding bones
Fix: Rename bones in your 3D software to match convention
Performance is slow
Try these solutions:
Close other applications and browser tabs
Disable extra visualization modes
Use hardware acceleration in browser settings
Consider using a lower-poly version of your model for weight painting