Agent skill

3dgs Training Debugger

by jaccen in jaccen/Awesome-Gaussian-Skills

Diagnose and fix 3DGS training-time failures: NaN losses, OOM crashes, divergent optimization, floater artifacts, densification failures, hyperparameter sensitivity.

Apache-2.0Auto-check passedDevelopment

Install 3dgs Training Debugger

skills CLI
$ npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-training-debugger -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jaccen/Awesome-Gaussian-Skills 3dgs-training-debugger --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jaccen/Awesome-Gaussian-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/3dgs-training-debugger .claude/skills/3dgs-training-debugger && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
3dgs-training-debugger
GitHub stars
161
Token cost
~7k tokens
SKILL.md length
2,522 words
Files
4 (incl. references)
Skills in repo
13
Repo updated
First seen
Licence
Apache-2.0

At a glance

Diagnose and fix 3DGS training-time failures: NaN losses, OOM crashes, divergent optimization, floater artifacts, densification failures, hyperparameter sensitivity.

  • Works in 6 steps: Isolate the new component: Train vanilla… → Gradient flow check: Add… → Forward pass inspection: Insert… → …
  • : 3DGS training crashes
  • SKILL.md covers Capabilities, Relationship to Other Skills, Section 1: Training Monitoring… and Section 2: Failure Diagnosis…, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

3dgs Training Debugger is an agent skill from jaccen/Awesome-Gaussian-Skills. Diagnose and fix 3DGS training-time failures: NaN losses, OOM crashes, divergent optimization, floater artifacts, densification failures, hyperparameter sensitivity. Covers runtime debugging for vanilla 3DGS and 50+ novel methods (deformable, MoE, physics-based, feed-forward). Detects 60 runtime failure patterns. Use when: 3DGS training crashes or produces poor results, loss is NaN/Inf, VRAM exhaustion, Gaussians explode or vanish, densification not working, convergence stalls, 训练调试/显存溢出/训练发散/浮点伪影.

Its SKILL.md is about 7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/convergence-trajectories.md`, `references/runtime-bug-patterns.md` and `references/vram-gpu-table.md`).

It sits in Development, covering Creative writing and fiction. The repository describes itself as: 图形学与3DGS、空间智能持续更新论文;AI Agent Skills for 3D Gaussian Splatting, NeRF & Computer Graphics Research. 800+ methods, 25categories, 12skills. OpenClaw / Claude Code compatible. The licence is Apache-2.0.

When your agent uses it

  • : 3DGS training crashes
  • Produces poor results
  • Loss is NaN/Inf
  • VRAM exhaustion

Example prompts

  • “/3dgs-training-debugger”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Isolate the new component: Train vanilla 3DGS on the same data. If vanilla works, the issue is in the novel component.
  2. Gradient flow check: Add torch.autograd.gradcheck or manual gradient norm logging for the novel module.
  3. Forward pass inspection: Insert intermediate tensor logging before and after the novel module. Check for NaN/Inf.
  4. Disable novelty during training: Train the novel module as identity (pass-through), then gradually enable.
  5. Compare loss landscape: Plot loss curves of vanilla vs novel. Divergence point indicates when novelty breaks.
  6. Check method-specific constraints: Each novel method has mathematical constraints (e.g., deformation smoothness, MoE expert capacity)…

What it can do on your machine

Read from SKILL.md and the folder at commit 437c820. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

3dgs Training Debugger loads about 7k tokens when it runs, and up to ~19k if it reads all its reference files. Until then it costs about 132 tokens; SKILL.md has 2,522 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~132
When it runs · the whole SKILL.md, loaded when a task matches
~7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~19k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jaccen/Awesome-Gaussian-Skills at commit 437c820, republished under its Apache-2.0 licence (© jaccen). 2,522 words, ~7,003 tokens.

Download SKILL.mdSave it as .claude/skills/3dgs-training-debugger/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
3dgs-training-debugger
description
Diagnose and fix 3DGS training-time failures: NaN losses, OOM crashes, divergent optimization, floater artifacts, densification failures, hyperparameter sensitivity. Covers runtime debugging for vanilla 3DGS and 50+ novel methods (deformable, MoE, physics-based, feed-forward). Detects 60 runtime failure patterns. Use when: 3DGS training crashes or produces poor results, loss is NaN/Inf, VRAM exhaustion, Gaussians explode or vanish, densification not working, convergence stalls, 训练调试/显存溢出/训练发散/浮点伪影.
license
Apache-2.0
user-invocable
true
metadata.version
1.0.0
metadata.author
jaccen
metadata.tags
3dgs, gaussian-splatting, training, debugging, oom, convergence, hyperparameters, distributed
metadata.when_to_use
3DGS training crashes with OOM or CUDA error, Training loss becomes NaN or Inf, Gaussian count explodes or vanishes during training, Densification is not…

3DGS Training Debugger

You are a senior 3DGS engineer who has trained hundreds of Gaussian Splatting models across vanilla 3DGS, deformable GS, feed-forward GS, SLAM-GS, and physics-based GS pipelines. Diagnose and fix training-time failures systematically.

Capabilities

  • Diagnose training crashes (OOM, NaN/Inf loss, CUDA errors) with root-cause analysis
  • Identify convergence failures (stalls, divergence, premature plateau)
  • Debug densification failures (over/under-triggering, positional gradient issues)
  • Diagnose visual artifacts from training logs (floaters, blur, ghosting, holes)
  • Recommend hyperparameter adjustments with expected impact
  • Guide distributed/multi-GPU training setup and debugging
  • Troubleshoot checkpoint save/resume issues
  • Address novel method stability (deformable GS, MoE-GS, physics-based GS, feed-forward GS)
  • Detect 60 runtime failure patterns (see references/runtime-bug-patterns.md)

Relationship to Other Skills

This skill covers the runtime training phase — what happens AFTER code is written and BEFORE evaluation. It complements:

  • 3dgs-code-reviewer: Static code analysis (pre-training). Use code-reviewer first to catch implementation bugs, then use this skill to debug runtime issues.
  • 3dgs-experiment-planner: Experiment design (pre-training). Design experiments, then use this skill when training fails.
  • 3dgs-engineering-guide: Production deployment (post-training). This skill handles getting training TO completion.

Section 1: Training Monitoring Checklist

1.1 What to Monitor During Training
MetricExpected BehaviorAlert ThresholdLog Frequency
L1 lossDecreasing, minor oscillationIncrease > 20% over 500 itersEvery 50 iters
SSIM lossDecreasing smoothlyStagnant for 1000+ itersEvery 100 iters
Total lossDecreasing, plateau ~70-80% of trainingNaN, Inf, or sudden spikeEvery 50 iters
PSNR (eval)Increasing, plateau near endDrop > 2dB between evalsEvery 1000 iters
Gaussian countGrowth phase (0-15k), then stableExplosive growth (>10x) or vanishingEvery 500 iters
VRAM usageStable with minor fluctuation during ADC> 90% of total VRAMEvery 100 iters
Gradient normsStable, < 1.0 typically> 10.0 or exactly 0.0Every 100 iters
Learning rateFollowing schedule (warmup → cosine decay)Unexpected reset or spikeEvery 500 iters
Active GaussiansGrowth then pruning equilibriumAll pruned (count → 0)Every ADC cycle
ADC trigger countPeriodic (every ~100 iters)Never triggers or triggers every iterEvery ADC cycle
1.2 Healthy Training Signature (Mip-NeRF 360, RTX 4090)

Reference trajectory for vanilla 3DGS on a typical Mip-NeRF 360 scene:

Iter     Loss    PSNR    Gaussians   VRAM     Notes
0        0.45    16.2    1(x SfM)    4.2 GB   Init from SfM points
500      0.22    20.1    12,000      5.1 GB   First ADC cycle
1000     0.15    23.5    45,000      7.8 GB   Rapid growth phase
2000     0.09    26.8    180,000     12.4 GB  Growth slowing
5000     0.05    29.2    350,000     14.2 GB  Near convergence
7000     0.04    30.1    380,000     14.5 GB  Fine-tuning
10000    0.03    30.4    390,000     14.6 GB  Final (shutting densif)
15000    0.03    30.5    395,000     14.6 GB  Densif frozen, opacity fine-tune
30000    0.025   30.6    395,000     14.6 GB  Final model

Key signals: Gaussian count should plateau around iter 10k-15k (when densification freezes), PSNR should still improve slightly afterward via opacity/SH refinement.

See references/convergence-trajectories.md for expected trajectories across datasets, scene types, and method variants.

Section 2: Failure Diagnosis Decision Tree

Start from the observed symptom and follow the branches.

SYMPTOM: Training crashed or NaN
│
├── NaN/Inf in loss?
│   ├── Check gradient norms → extremely large?
│   │   └── Possible: learning rate too high, gradient explosion
│   │       → Reduce lr to 1/10, add gradient clipping (max_norm=1.0)
│   ├── Check after ADC cycle → NaN appears right after densification?
│   │   └── Possible: NaN from clone/split, new Gaussian has bad scale/opacity
│   │       → Check scale clamping, opacity init values
│   ├── NaN from iteration 0?
│   │   └── Possible: bad initialization (zero covariance, SfM failure)
│   │       → Check point cloud, add covariance regularization
│   └── NaN in novel method (deformable/MoE)?
│       └── See Section 9: Novel Method Stability
│
├── CUDA OOM?
│   ├── During training (non-ADC)?
│   │   ├── Gaussian count reasonable but still OOM?
│   │   │   └── Possible: image resolution too high, batch size, SH degree
│   │   │       → Reduce image res by 2x, reduce SH to degree 1
│   │   └── Gaussian count exploding?
│   │       └── Possible: densification over-triggering
│   │           → See Section 3: OOM & Memory Management
│   └── During ADC (densification)?
│       └── Possible: temporary spike from clone/split
│           → Reduce ADC batch size, or move ADC to CPU
│
├── Training runs but quality is poor (low PSNR)?
│   ├── Gaussian count too low?
│   │   └── Possible: densification thresholds too strict, pruning too aggressive
│   │       → Lower grad_threshold, raise prune_threshold
│   ├── Gaussian count normal but artifacts?
│   │   └── See Section 4: Artifact Diagnosis
│   ├── Convergence stalled early?
│   │   └── See Section 6: Convergence Analysis
│   └── Specific views are bad?
│       └── Possible: training/test view selection issue, SfM sparse in that area
│
├── Training runs but visual artifacts?
│   ├── Floaters (small isolated Gaussians)?
│   │   └── See Pattern FP-01 in references
│   ├── Blur / over-smoothing?
│   │   └── See Pattern FP-02
│   ├── Ghosting / duplicate geometry?
│   │   └── See Pattern FP-03
│   ├── Holes / missing regions?
│   │   └── See Pattern FP-04
│   └── Color bleeding / SH artifacts?
│       └── See Pattern FP-05
│
└── Checkpoint resume gives different results?
    └── See Section 8: Checkpoint & Resume

Section 3: OOM & Memory Management

3.1 VRAM Estimation Formula

Approximate peak VRAM during training:

VRAM_peak ≈ Model_VRAM + Optimizer_VRAM + Raster_VRAM + Gradient_VRAM + ADC_spike

Where:
  Model_VRAM   = N_gaussians × bytes_per_gaussian
  Optimizer_VRAM = 2 × Model_VRAM (Adam: momentum + variance)
  Raster_VRAM  = H × W × n_channels × num_images_in_batch × 4 bytes
  Gradient_VRAM = Model_VRAM (gradients for all params)
  ADC_spike    = 1.5 × Model_VRAM (temporary allocation during clone/split)

  bytes_per_gaussian ≈ 59 × 4 = 236 bytes
    (3 position + 3 scale + 4 rotation + 1 opacity + 48 SH (degree 3) = 59 floats)

See references/vram-gpu-table.md for precomputed VRAM requirements across Gaussian counts, SH degrees, and GPU types.

3.2 OOM Mitigation Strategies (Priority Order)
PriorityStrategyVRAM SavingsQuality ImpactImplementation
1Reduce image resolution (2x downsample)50-75% raster VRAMMinor PSNR drop (~0.5-1dB)--data_factor 2
2Lower SH degree (3→1)~40% model VRAMSlight view-dependent color loss--sh_degree 1
3Gradient checkpointing on rasterizer30-40% gradient VRAM~10% slower trainingCustom backward pass
4Reduce ADC frequency (100→200 iters)Reduces ADC spike frequencySlower densification--densify_interval 200
5CPU-offload optimizer states40% total VRAM~30% slower (PCIe transfer)FSDP/DeepSpeed
6Mixed precision (FP16/BF16) training30-50% total VRAMRisk of numerical instabilitytorch.cuda.amp
7Streaming image loading (not all in VRAM)Major for large datasetsNo quality impactCustom data loader
8Prune far-away Gaussians aggressivelyReduces model VRAMMay lose background detailCustom prune criterion
3.3 Common OOM Scenarios
ScenarioTypical CauseFix
OOM at iter ~500 (first ADC)Sudden Gaussian count jumpPre-allocate buffer for 5x initial count
OOM only on specific scenesHigh-detail scenes grow more GaussiansScene-adaptive resolution reduction
OOM after checkpoint resumeOptimizer state not saved/loadedSave full optimizer state in checkpoint
OOM on multi-GPUAll-reduce buffer too largeGradient bucketing, overlap comm/compute
OOM with novel methodExtra params (deformation, MLP)Profile each component separately

Section 4: Artifact Diagnosis Catalog

4.1 Visual Artifact → Training Cause Mapping
ArtifactVisual SymptomMost Likely Training CauseDiagnostic Action
FloatersSmall bright/dark blobs floating in spaceInsufficient opacity pruning; ADC cloning noiseCheck prune_opacity threshold; check if ADC ran after iter 15k
BlurOverall soft, lacks high-freq detailSH degree too low; low-resolution training imagesIncrease SH to 3; check --data_factor
Over-smoothingPSNR OK but LPIPS bad, looks "flat"L1+SSIM loss too weighted to L1; insufficient iterationsIncrease SSIM weight (λ_dssim > 0.2)
GhostingDuplicate/semi-transparent geometryClone in wrong direction; scale gradient sign errorCheck ADC clone position offset; verify gradient direction
HolesBlack/empty regions in reconstructionOver-aggressive pruning; SfM sparse in that regionRaise prune threshold; add points in sparse areas
Color bleedingColor from one surface leaks to anotherSH coefficient overflow; insufficient view coverageClamp SH values; check training camera distribution
StretchingElongated Gaussian streaksScale not clamped; bad covariance projectionVerify scale_activation clamping (max 0.1-10.0)
PoppingView-dependent flickering between viewsSH degree too high with sparse views; opacity resetReduce SH degree; increase opacity reset iterations
Z-fightingFlickering on overlapping surfacesNear-duplicate Gaussians at same depthAdd uniqueness in clone; increase prune threshold
Dark sceneOverall too dark / underexposedBackground color set to black; insufficient trainingSet background to white or random; train longer
4.2 Artifact-to-Iteration Diagnosis

Knowing WHEN the artifact was introduced narrows the cause:

Artifact present from iter 0      → Initialization issue (SfM points, scale init)
Artifact appears after first ADC  → Densification bug (clone/split logic)
Artifact appears after 50% train  → Pruning removed important Gaussians
Artifact appears near end         → Opacity reset or SH overfitting
Artifact only in eval (not train) → Overfitting / view-dependent overfit

Section 5: Hyperparameter Tuning Guide

5.1 Core Hyperparameters
ParameterDefaultRangeEffect of IncreaseEffect of Decrease
position_lr0.000161e-5 to 1e-2Faster convergence, risk of explosionSlower, more stable
feature_lr0.00251e-4 to 1e-1Faster SH convergenceSlower color
opacity_lr0.051e-3 to 0.2Faster opacity adaptationSlower prune response
scaling_lr0.0051e-4 to 0.05Faster scale adaptationMore rigid geometry
rotation_lr0.0011e-5 to 0.01Faster rotation adaptationMore rigid orientation
densify_grad_threshold0.00021e-5 to 1e-2More Gaussians (sensitive)Fewer Gaussians
densify_interval10050-500Less frequent densificationMore frequent
densify_until_iter150005000-30000Longer growth phaseEarlier freeze
prune_opacity_threshold0.0050.001-0.05More aggressive pruning (fewer floaters)More Gaussians (risk floaters)
opacity_reset_interval30001000-10000More frequent resets (less view-dep overfit)More stable opacities
sh_degree30-4Better view-dependent colorLess VRAM
lambda_dssim0.20-1More structural similarityMore pixel-level accuracy
5.2 Tuning Decision Matrix
ProblemFirst AdjustmentSecond AdjustmentLast Resort
Low PSNRLower densify_grad_threshold (more Gaussians)Increase training iterationsLower image resolution
OOMLower sh_degreeReduce image resolutionDecrease densify_until_iter
FloatersRaise prune_opacity_thresholdIncrease opacity_reset_intervalPost-train prune
BlurIncrease sh_degreeIncrease lambda_dssimHigher resolution images
Slow convergenceIncrease position_lrIncrease densify_intervalFewer total iters (accept lower quality)
DivergenceDecrease all LRs by 10xAdd gradient clippingReduce batch complexity
Too many GaussiansRaise densify_grad_thresholdLower densify_until_iterAggressive pruning

Section 6: Convergence Analysis

6.1 Expected Convergence Phases
Phase 1: Rapid Growth (iter 0 - 2,000)
  - Loss drops fast, PSNR jumps from ~16 to ~24
  - Gaussian count grows from SfM initial to ~50k-100k
  - Risk: ADC over-triggering → OOM

Phase 2: Refinement (iter 2,000 - 15,000)
  - Loss decreases more slowly, PSNR 24 → 28
  - Gaussian growth slows, pruning starts balancing
  - Risk: Premature densification freeze

Phase 3: Fine-tuning (iter 15,000 - 30,000)
  - Loss near plateau, PSNR 28 → 30+
  - Densification frozen, opacity and SH refine
  - Risk: Overfitting to training views

Phase 4: Final Polish (iter 30,000+)
  - Minimal change, diminishing returns
  - Risk: Continued training may degrade test views
6.2 Convergence Failure Modes
Failure ModeSymptomRoot CauseFix
Premature plateauPSNR stops improving by iter 5,000Densification frozen too early; lr too lowIncrease densify_until_iter; raise lr
Never convergesLoss oscillates, PSNR ~20 at iter 30kLearning rate too high; bad initializationReduce lr 10x; check SfM point cloud
Train-good/test-badHigh train PSNR, low test PSNROverfitting; insufficient camera coverageMore cameras; early stopping; regularization
Sudden regressionPSNR drops dramatically mid-trainingGradient explosion; bad ADC clone; data corruptionCheck gradient norms; add clipping; verify data
Asymmetric convergenceSome views perfect, others terribleSfM sparse in some regions; uneven camera distributionAdd cameras; increase densification in sparse areas
Late-stage degradationPSNR peaks then declinesOverfitting SH; opacity over-adaptationEarly stopping at peak; reduce opacity_lr

See references/convergence-trajectories.md for method-specific expected trajectories (deformable, feed-forward, SLAM, etc.).

Section 7: Distributed & Multi-GPU Training

7.1 Multi-GPU Strategies for 3DGS
StrategyDescriptionWhen to UsePitfalls
Data Parallel (DDP)Each GPU trains full model on different image batchStandard for large datasetsAll-reduce bottleneck with high Gaussian count; requires gradient sync
Model ParallelSplit Gaussians across GPUsWhen single GPU VRAM insufficientLoad imbalance; complex rasterization coordination
Pipeline ParallelSplit training stages across GPUsRare for 3DGSNot well-supported by rasterization kernels
FSDPShard optimizer states + gradientsVery large Gaussian countsOverhead for moderate counts; CPU offload needed
7.2 Common Distributed Training Bugs
Bug IDSymptomCauseFix
DT-01Loss diverges on rank 0 onlyGradient sync issue; non-deterministic ADCUse torch.distributed.barrier() before ADC
DT-02Different Gaussians on different ranksDensification not synchronizedBroadcast Gaussian count/positions after ADC
DT-03Dead worker (hangs at all-reduce)One GPU OOM; NCCL timeoutMonitor per-GPU VRAM; add NCCL timeout config
DT-04Slower than single-GPUAll-reduce dominates computeUse gradient bucketing; overlap comm/compute
DT-05Checkpoint loads on 1 GPU, fails on multiState dict has single-device tensorsUse map_location + DDP-aware state dict unwrap
DT-06Non-reproducible results across runsNon-deterministic cuDNL; random ADC orderingSet seeds; use torch.use_deterministic_algorithms(True)
7.3 Multi-GPU Setup Checklist
  • All GPUs have same CUDA capability and driver version
  • NCCL version is compatible across all nodes
  • Gaussian count is synchronized after each ADC cycle
  • Gradient all-reduce is overlapped with backward computation
  • Learning rate scale is correct for the effective batch size
  • Random seeds are set per-rank consistently (or deliberately varied for ensemble)
  • Checkpoint save/load handles DDP wrapper state dict correctly
  • Eval is only run on rank 0 (avoid duplicate computation)
  • Image dataset is properly partitioned (no duplicates across ranks)

Section 8: Checkpoint & Resume

8.1 What to Save in a Checkpoint
python
checkpoint = {
    # Model state
    'gaussian_params': {
        '_xyz':      gaussians._xyz.data,        # [N, 3]
        '_features': gaussians._features.data,   # [N, sh_dim]
        '_opacity':  gaussians._opacity.data,    # [N, 1]
        '_scaling':  gaussians._scaling.data,    # [N, 3]
        '_rotation': gaussians._rotation.data,   # [N, 4]
    },
    # Optimizer state (CRITICAL — without this, resume will diverge)
    'optimizer_state_dict': optimizer.state_dict(),
    # Training state
    'iteration': current_iteration,
    'gaussians_count': gaussians._xyz.shape[0],
    # ADC state
    'densify_until_iter': densify_until_iter,
    'densify_interval': densify_interval,
    'size_threshold': size_threshold,
    # Hyperparameters at this point (for reproducibility)
    'hyperparameters': {
        'lr': optimizer.param_groups[0]['lr'],
        'sh_degree': active_sh_degree,
        'opacity_reset_interval': opacity_reset_interval,
    },
    # For novel methods: extra state (deformable MLP, etc.)
    'extra_state': extra_module.state_dict() if extra_module else None,
}
Show full SKILL.md (1,021 more words)Show less
8.2 Common Checkpoint Issues
IssueSymptomCauseFix
Resume divergesLoss jumps or NaN after resumeOptimizer state not saved/loadedAlways save + restore optimizer state_dict
Wrong Gaussian countGaussians mismatch on resumeADC ran between save and resumeSave AFTER ADC cycle, not during
Shape mismatchTensor size error on loadPruning changed Gaussian countSave count explicitly; handle add/remove
SH degree mismatchFeature dim errorSH degree auto-incremented during trainingSave active_sh_degree; restore it
Scale/rotation mismatchBad rendering after resumeActivation functions applied during saveSave pre-activation values (_scaling, _rotation)
Novel method state lostDeformation MLP reset on resumeExtra module state not in checkpointInclude all module state_dicts in checkpoint

Section 9: Novel Method Training Stability

9.1 Method-Specific Stability Issues
Method FamilyCommon Stability IssueRoot CauseMitigation
Deformable GS (4DGS, Deformable-3DGS)Deformation MLP outputs NaNUnconstrained MLP output; large gradients through timeAdd tanh activation on output; gradient clip; warmup with frozen base
Feed-forward GS (pixelSplat, LRM-based)Instability with few training imagesModel predicts Gaussians from sparse viewsMore training iterations; 2D feature regularization
MoE-GSExpert collapse (all routing to 1 expert)Router imbalance; load balancing loss weight too lowIncrease load-balancing loss; add router z-loss
Physics-based GS (PhysGaussian, Springs)Physics simulation divergesLarge time step; unstable integratorReduce dt; use semi-implicit Euler; add damping
SLAM-GSDrift accumulation over timeIncremental map update without global optimizationPeriodic global BA; keyframe-based adjustment
Compression GSQuality collapse after pruningPruned critical GaussiansImportance-aware pruning; fine-tune after prune
GaussianGrasper / EmbodiedGrasp success drops during trainingSim-to-real gap amplifiesDomain randomization; curriculum learning
PBR / Material GSMaterial decomposition unstableJoint optimization of geometry + material under-determinedStage training: geometry first, then material
City-scale / Large-sceneOOM or spatial discontinuityToo many Gaussians in one sceneBlock-wise training; LOD hierarchy
GaussTrace / ProvenanceProvenance tags mismatch after ADCClone/split not propagating tagsCustom ADC that preserves provenance metadata
9.2 General Novel Method Debugging Protocol
  1. Isolate the new component: Train vanilla 3DGS on the same data. If vanilla works, the issue is in the novel component.
  2. Gradient flow check: Add torch.autograd.gradcheck or manual gradient norm logging for the novel module.
  3. Forward pass inspection: Insert intermediate tensor logging before and after the novel module. Check for NaN/Inf.
  4. Disable novelty during training: Train the novel module as identity (pass-through), then gradually enable.
  5. Compare loss landscape: Plot loss curves of vanilla vs novel. Divergence point indicates when novelty breaks.
  6. Check method-specific constraints: Each novel method has mathematical constraints (e.g., deformation smoothness, MoE expert capacity). Verify they are enforced.

Section 10: Training Runtime Bug Patterns

This skill detects 60 runtime failure patterns (as opposed to the code-reviewer's 104 static code bugs). These are failures that manifest DURING training execution, not visible from static code analysis alone.

Pattern Categories
CategoryCountExamples
Initialization failures (IF)6SfM sparse init, zero covariance, scale explosion
Densification failures (DF)8Over/under-triggering, clone direction error, split scale error
Optimization failures (OF)7LR explosion, gradient vanishing, loss masking error
Memory failures (MF)6OOM at ADC, VRAM fragmentation, optimizer state bloat
Convergence failures (CF)7Premature plateau, oscillation, test regression, asymmetry
Artisanal artifacts (AF)8Floaters, blur, ghosting, holes, color bleed
Multi-GPU failures (MF2)6Gradient sync, dead worker, desync ADC, NCCL timeout
Novel method failures (NF)12+Deformable NaN, MoE collapse, physics divergence, SLAM drift
Total60+See references/runtime-bug-patterns.md

For the full pattern database with symptoms, root causes, diagnostics, and fixes, see references/runtime-bug-patterns.md.

Self-Check Loop

Before presenting any diagnosis, verify:

SC-1: Symptom Verification
  • The reported symptom is specific (e.g., "NaN at iter 500" not "training broke")
  • The training environment is identified (GPU type, VRAM, CUDA version, PyTorch version)
  • The method variant is identified (vanilla / deformable / feed-forward / SLAM / etc.)
SC-2: Diagnostic Completeness
  • All relevant sections of this skill were consulted based on the symptom
  • Runtime bug patterns were cross-referenced against the reported symptom
  • If a novel method is involved, Section 9 was consulted
  • Convergence trajectory was compared against expected values from references
SC-3: Fix Verification
  • The suggested fix targets the root cause, not just the symptom
  • The fix does not introduce new risks (e.g., reducing LR to fix NaN may cause underfitting)
  • If multiple fixes are suggested, they are prioritized by impact and safety
  • Expected outcome after applying the fix is stated (e.g., "PSNR should recover within 1000 iters")

If any SC check fails: Do NOT present the diagnosis. Re-examine the failed check and re-run from SC-1.

Red Lines

The following are categorical prohibitions. Violating any of these invalidates the output:

  • No invented data: Never fabricate VRAM numbers, convergence trajectories, or hyperparameter effects not documented in the reference files. If a value is not found, write "data not available" or "N/A".
  • No hallucinated citations: Never invent paper titles, authors, DOIs, arXiv IDs, or venue names. Only reference works explicitly present in the skill's knowledge base or provided by the user.
  • No silent speculation: If uncertain about a technical detail, explicitly flag it with "[UNCERTAIN]" rather than presenting it as fact.
  • No method misattribution: Do not assign stability issues from one method to another. Each method's training characteristics are specific to that method.
  • No one-size-fits-all fixes: Never recommend a single fix without considering the specific training setup (GPU, dataset, method variant).
  • 3dgs-code-reviewer — Static code analysis (use first to catch implementation bugs before training)
  • 3dgs-experiment-planner — Experiment design (use to plan training runs before debugging)
  • 3dgs-engineering-guide — Production deployment (use when training issues affect deployment)
  • 3dgs-method-compare — Method comparison (use to understand expected behavior of different methods)
  • 3dgs-visualizer — Result visualization (use to visualize training artifacts for diagnosis)

Guardrail: Do Not Apply From Memory

Do NOT try to apply the logic, bug patterns, convergence data, or technical details described in this skill from memory. Always read the SKILL.md and referenced files from disk before producing any output. The knowledge base is updated frequently; stale memory may produce outdated, inaccurate, or fabricated results.

If you cannot find a pattern, data point, or fix in the loaded files, say so explicitly. Never invent VRAM numbers, convergence trajectories, or runtime bug patterns not present in the source data.

If you like it, please star this repo https://github.com/jaccen/Awesome-Gaussian-Skills

© jaccen, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/3dgs-training-debugger of jaccen/Awesome-Gaussian-Skills.

  • SKILL.md
  • references/convergence-trajectories.md
  • references/runtime-bug-patterns.md
  • references/vram-gpu-table.md

Open the folder on GitHubat commit 437c820

Compare with similar skills

3dgs Training Debugger next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

3dgs Training Debugger compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
3dgs Training Debugger this skilljaccen/Awesome-Gaussian-Skills161—~7kAutomated safety check: PassApache-2.0
AristotleK-Dense-AI/mimeographs129—~1.6kAutomated safety check: PassMIT
Codd Fable Consultyohey-w/codd-dev115—~3.8kAutomated safety check: PassMIT
Swarm Migrateyonatangross/orchestkit289—~3.7kAutomated safety check: NotesMIT
Revision WorkflowBingHanOfUESTC/open_agent_team106—~264Automated safety check: PassMIT
Python Pypi Package Buildergithub/awesome-copilot40k1 repos~4.6kAutomated safety check: PassMIT

Similar skills

  • Aristotle

    K-Dense-AI/mimeographs

    Applies the frameworks of Aristotle (ancient Greek philosopher, logic, ethics, metaphysics, 384-322 BCE) to decision-making, ethics, and analysis.

    129 GitHub stars~1.6k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Codd Fable Consult

    yohey-w/codd-dev

    Consult Claude Fable 5 (Anthropic's most capable model for deep, long-horizon reasoning — or whichever model currently holds that role) for a genuinely hard, novel CoDD architectural design…

    115 GitHub stars~3.8k tokensUpdated 24 days ago
    DevelopmentAuto-check passed
  • Swarm Migrate

    yonatangross/orchestkit

    Cross-repo migration swarm — one coordinator + N parallel subagents (one per target repo) that apply the same transformation, open PRs, wait for CI, and report back to a shared JSON ledger.

    289 GitHub stars~3.7k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Revision Workflow

    BingHanOfUESTC/open_agent_team

    Versioned fiction revision workflow. An agent skill from BingHanOfUESTC/open_agent_team.

    106 GitHub stars~264 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Python Pypi Package Builder

    github/awesome-copilot

    Official

    End-to-end skill for building, testing, linting, versioning, and publishing a production-grade Python library to PyPI.

    40k GitHub starsUsed in 1 repo~4.6k tokens
    DevelopmentAuto-check passed
  • Mastering Python Skill

    SpillwaveSolutions/agent-brain

    Modern Python coaching covering language foundations through advanced production patterns.

    119 GitHub stars~1.4k tokensUpdated 19 days ago
    DevelopmentAuto-check: notes

More from jaccen/Awesome-Gaussian-Skills

All 13 skills in this repo
  • 3dgs Code Reviewer

    jaccen/Awesome-Gaussian-Skills

    Review 3DGS implementation code for correctness, performance bugs, and best practices.

    161 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Patent Software Ip

    jaccen/Awesome-Gaussian-Skills

    Generate CN patent docs (claims, specification, abstract) and software copyright materials from AI/big-data project code or docs.

    161 GitHub stars~4.3k tokensUpdated today
    Auto-check passed
  • 3dgs Articulated Reasoner

    jaccen/Awesome-Gaussian-Skills

    3DGS Articulated Object Reasoning & Digital Twin Agent. An agent skill from jaccen/Awesome-Gaussian-Skills.

    161 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • 3dgs Compression Deploy

    jaccen/Awesome-Gaussian-Skills

    3DGS compression-to-deployment pipeline: quantization (scalar/VQ/mixed-precision), pruning (coreset/adaptive/variational/merge/Bayesian), progressive streaming & LoD, Web/WebGPU/mobile deployment…

    161 GitHub stars~5.5k tokensUpdated today
    Auto-check passed
  • 3dgs MCP Renderer

    jaccen/Awesome-Gaussian-Skills

    MCP protocol integration with 3DGS rendering pipeline: Agent-controlled Three.js/WebGPU rendering, voice-driven scene reconstruction, real-time parameter manipulation, light tracing backend.

    161 GitHub stars~6.9k tokensUpdated today
    Auto-check passed
  • 3dgs Paper Reader

    jaccen/Awesome-Gaussian-Skills

    Read and summarize 3DGS research papers. An agent skill from jaccen/Awesome-Gaussian-Skills.

    161 GitHub stars~2.7k tokensUpdated today
    Auto-check passed

Questions about 3dgs Training Debugger

What does 3dgs Training Debugger do?

Diagnose and fix 3DGS training-time failures: NaN losses, OOM crashes, divergent optimization, floater artifacts, densification failures, hyperparameter sensitivity. 3dgs Training Debugger is an agent skill from jaccen/Awesome-Gaussian-Skills. Diagnose and fix 3DGS training-time failures: NaN losses, OOM crashes, divergent optimization, floater artifacts, densification failures, hyperparameter sensitivity.

When should I use 3dgs Training Debugger?

3dgs Training Debugger fits situations like: : 3DGS training crashes; produces poor results; loss is NaN/Inf; VRAM exhaustion.

How do I install 3dgs Training Debugger in Claude Code?

Run `npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-training-debugger -a claude-code`. Or copy the skill folder (skills/3dgs-training-debugger in jaccen/Awesome-Gaussian-Skills) into .claude/skills/3dgs-training-debugger in your project. Claude Code loads it when a task matches its description.

How do I install 3dgs Training Debugger in Codex?

Run `npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-training-debugger -a codex`. Or copy the skill folder (skills/3dgs-training-debugger in jaccen/Awesome-Gaussian-Skills) into .agents/skills/3dgs-training-debugger in your project. Codex loads it when a task matches its description.

Can I use 3dgs Training Debugger in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-training-debugger -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/3dgs-training-debugger, .gemini/skills/3dgs-training-debugger, .github/skills/3dgs-training-debugger and .opencode/skills/3dgs-training-debugger in your project.

What does 3dgs Training Debugger need to run?

SKILL.md names no scripts, command-line tools or credentials: 3dgs Training Debugger is instructions for the agent only.

Does 3dgs Training Debugger access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is 3dgs Training Debugger safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does 3dgs Training Debugger use?

3dgs Training Debugger is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does 3dgs Training Debugger use?

About 7k tokens (SKILL.md is roughly 28k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.

What are the alternatives to 3dgs Training Debugger?

Skills that share tags, products or a category with 3dgs Training Debugger: Aristotle (K-Dense-AI/mimeographs, 129 stars), Codd Fable Consult (yohey-w/codd-dev, 115 stars), Swarm Migrate (yonatangross/orchestkit, 289 stars) and Revision Workflow (BingHanOfUESTC/open_agent_team, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains 3dgs Training Debugger?

jaccen (a GitHub user) maintains it in jaccen/Awesome-Gaussian-Skills, which has 161 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 8, 2026.

Source: jaccen/Awesome-Gaussian-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.