Source profileQuality 95/100

jaccen/Awesome-Gaussian-Skills/skills/3dgs-training-debugger/SKILL.md

3dgs-training-debugger

Use it for design and operations tasks; the detail page covers purpose, installation, and practical steps.

Source repository stars
144
Declared platforms
0
Static risk flags
0
Last source update
2026-08-23
Source checked
2026-08-25

Decision brief

What it does: where it fits

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.

Best for

  • Use when: 3DGS training crashes or produces poor results, loss is NaN/Inf, VRAM exhaustion, Gaussians explode or vanish, densification not working, convergence stalls, 训练调试/显存溢出/训练发散/浮点

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/jaccen/Awesome-Gaussian-Skills --skill "skills/3dgs-training-debugger"
Safe inspection promptEditorial

Inspect the Agent Skill "3dgs-training-debugger" from https://github.com/jaccen/Awesome-Gaussian-Skills/blob/8b0f40d4378e2152936765ec6d7873119e69ed42/skills/3dgs-training-debugger/SKILL.md at commit 8b0f40d4378e2152936765ec6d7873119e69ed42. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    7.3 Multi-GPU Setup Checklist

    [ ] All GPUs have same CUDA capability and driver version

    [ ] All GPUs have same CUDA capability and driver version[ ] NCCL version is compatible across all nodes[ ] Gaussian count is synchronized after each ADC cycle
  2. 02

    SC-1: Symptom Verification

    [ ] The reported symptom is specific (e.g., "NaN at iter 500" not "training broke")

    [ ] 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.)
  3. 03

    SC-3: Fix Verification

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

    [ ] 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
  4. 04

    Capabilities

    Diagnose training crashes (OOM, NaN/Inf loss, CUDA errors) with root-cause analysis

    Diagnose training crashes (OOM, NaN/Inf loss, CUDA errors) with root-cause analysisIdentify convergence failures (stalls, divergence, premature plateau)Debug densification failures (over/under-triggering, positional gradient issues)
  5. 05

    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.

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score95/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars144SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
jaccen/Awesome-Gaussian-Skills
Skill path
skills/3dgs-training-debugger/SKILL.md
Commit
8b0f40d4378e2152936765ec6d7873119e69ed42
License
Apache-2.0
Collected
2026-08-25
Default branch
main
View the original SKILL.md

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 50+ 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

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,
}

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 50+ runtime failure patterns (as opposed to the code-reviewer's 108+ 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).

Related Skills

  • 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

Frequently asked questions

What to verify before installation and use

What does the 3dgs-training-debugger source document cover?

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.

How do I install 3dgs-training-debugger?

The source record exposes this install command: npx skills add https://github.com/jaccen/Awesome-Gaussian-Skills --skill "skills/3dgs-training-debugger". Inspect the command and pinned source before running it.

Alternatives

Compare before choosing

Computed 10014,671

prowler-cloud/prowler

postgresql-indexing

PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance

Computed 9965

brucesongs/kali-claw

insecure-design

Insecure Design (OWASP A06:2025) focuses on security flaws in system architecture and design phases, rather than code implementation-level bugs.

Computed 9916

NintendaDev/unikit-ai

unikit-docs

Generate and maintain the project's TECHNICAL documentation from its codebase — scans the project structure, tech stack, and module boundaries, then writes a lean README landing page plus detailed topic pages (architecture, modules, setup, build, APIs), only the docs that are relevant. Use whenever the user wants to create, update, or validate documentation of the CODE or the project itself, e.g. "generate documentation", "create docs", "write the README", "update the project docs", "document th

Computed 98269

Aperivue/medsci-skills

make-figures

Generate publication-ready figures and visual abstracts for medical research papers. Supports ROC curves, forest plots, CONSORT/STARD/PRISMA flow diagrams, calibration plots, Kaplan-Meier curves, Bland-Altman plots, confusion matrices, pipeline diagrams, and journal-specific visual/graphical abstracts (python-pptx template-based).