{"id":"34b5ff5f-a065-41b3-a1a2-56940655e504","entityType":"agent","slug":"clawhub-jaccen-3dgs-code-reviewer","name":"3dgs Code Reviewer","canonicalUrl":"https://www.xpersona.co/agent/clawhub-jaccen-3dgs-code-reviewer","canonicalPath":"/agent/clawhub-jaccen-3dgs-code-reviewer","generatedAt":"2026-10-11T16:01:09.513Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T13:20:41.343Z","emptyReason":null},"description":"Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions... Skill: 3dgs Code Reviewer Owner: jaccen Summary: Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions... Tags: latest:1.1.7 Version history: v1.1.7 | 2026-05-19T07:37:15.060Z | auto - Increased known bug patterns detection from 60+ to 63+ and updated all relevant text. - Version number updated from 1.1.4 to 1.1.7","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s172m233k07zcmx035knhdv0nh85v0ts:3dgs-code-reviewer","sourceUrl":"https://clawhub.ai/jaccen/3dgs-code-reviewer","homepage":"https://clawhub.ai/jaccen/skills/3dgs-code-reviewer","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/jaccen/3dgs-code-reviewer","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/jaccen/skills/3dgs-code-reviewer","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T13:20:41.343Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T13:20:41.343Z","emptyReason":null},"stars":null,"forks":null,"downloads":1058,"packageName":null,"latestVersion":"1.1.7","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T13:20:41.329Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T13:20:41.343Z","lastCrawledAt":"2026-10-11T13:20:41.329Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T13:20:41.329Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.7","createdAt":"2026-05-19T07:37:15.060Z","changelog":"- Increased known bug patterns detection from 60+ to 63+ and updated all relevant text. - Version number updated from 1.1.4 to 1.1.7 in metadata. - No other changes made to functionality, checklist, or content.","fileCount":3,"zipByteSize":11403},{"version":"1.1.4","createdAt":"2026-05-16T10:59:28.513Z","changelog":"- Expanded the known bug patterns detected from 52+ to 60+. - Updated the description to reflect broader bug coverage. - Reformatted tags to an array format. - Removed the detailed checklist and review instructions from the SKILL.md, focusing on a concise summary and metadata improvements.","fileCount":2,"zipByteSize":9649},{"version":"0.1.2","createdAt":"2026-05-06T01:07:48.289Z","changelog":"- Increased the number of known bug patterns referenced from 42+ to 52+ throughout the documentation. - Updated checklist and capability descriptions to reflect the expanded bug detection scope.","fileCount":2,"zipByteSize":8225},{"version":"0.1.1","createdAt":"2026-04-30T10:45:18.046Z","changelog":"- No functional or behavioral changes in this version. - Documentation or metadata edits only: SKILL.md was updated, but its actual content remains unchanged.","fileCount":2,"zipByteSize":6350},{"version":"0.1.0","createdAt":"2026-04-30T07:55:46.835Z","changelog":"- Initial release with a comprehensive review checklist for 3D Gaussian Splatting (3DGS) implementation. - Supports code review for CUDA kernels, rendering pipeline, training loop, loss functions, and common pitfalls. - Detects 42+ known bug and performance anti-patterns specific to 3DGS. - Offers best practices and optimization suggestions for correctness and performance. - Provides targeted triggers for both English and Chinese code review queries.","fileCount":2,"zipByteSize":6299}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s172m233k07zcmx035knhdv0nh85v0ts:3dgs-code-reviewer","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T16:01:09.510Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jaccen-3dgs-code-reviewer/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T13:20:41.343Z","emptyReason":null},"readme":"Skill: 3dgs Code Reviewer\n\nOwner: jaccen\n\nSummary: Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions...\n\nTags: latest:1.1.7\n\nVersion history:\n\nv1.1.7 | 2026-05-19T07:37:15.060Z | auto\n\n- Increased known bug patterns detection from 60+ to 63+ and updated all relevant text.\n- Version number updated from 1.1.4 to 1.1.7 in metadata.\n- No other changes made to functionality, checklist, or content.\n\nv1.1.4 | 2026-05-16T10:59:28.513Z | auto\n\n- Expanded the known bug patterns detected from 52+ to 60+.\n- Updated the description to reflect broader bug coverage.\n- Reformatted tags to an array format.\n- Removed the detailed checklist and review instructions from the SKILL.md, focusing on a concise summary and metadata improvements.\n\nv0.1.2 | 2026-05-06T01:07:48.289Z | auto\n\n- Increased the number of known bug patterns referenced from 42+ to 52+ throughout the documentation.\n- Updated checklist and capability descriptions to reflect the expanded bug detection scope.\n\nv0.1.1 | 2026-04-30T10:45:18.046Z | auto\n\n- No functional or behavioral changes in this version.\n- Documentation or metadata edits only: SKILL.md was updated, but its actual content remains unchanged.\n\nv0.1.0 | 2026-04-30T07:55:46.835Z | auto\n\n- Initial release with a comprehensive review checklist for 3D Gaussian Splatting (3DGS) implementation.\n- Supports code review for CUDA kernels, rendering pipeline, training loop, loss functions, and common pitfalls.\n- Detects 42+ known bug and performance anti-patterns specific to 3DGS.\n- Offers best practices and optimization suggestions for correctness and performance.\n- Provides targeted triggers for both English and Chinese code review queries.\n\nArchive index:\n\nArchive v1.1.7: 3 files, 11403 bytes\n\nFiles: skill-card.md (1754b), SKILL.md (26017b), _meta.json (137b)\n\nFile v1.1.7:SKILL.md\n\n---\r\nname: 3dgs-code-reviewer\r\ndescription: \"Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions. Detects 63+ known bug patterns.\"\r\nversion: 1.1.7\r\nauthor: jaccen\r\ntags: [\"3dgs\", \"gaussian-splatting\", \"code-review\", \"cuda\", \"debugging\", \"performance\"]\r\n---\r\n\r\n# 3DGS Code Reviewer\r\n\r\nYou are a senior graphics engineer and 3DGS implementation expert. Review code for correctness, performance, and adherence to best practices in 3D Gaussian Splatting implementations.\r\n\r\n## Capabilities\r\n\r\n- Review CUDA rendering kernels for correctness and performance\r\n- Identify common 3DGS implementation pitfalls (63+ known patterns)\r\n- Validate loss function implementations\r\n- Check training pipeline correctness\r\n- Suggest performance optimizations\r\n- Debug rendering artifacts by analyzing code\r\n\r\n## Review Checklist\r\n\r\n### 1. Rendering Pipeline\r\n\r\n#### Alpha Compositing\r\n- [ ] **Front-to-back order**: Verify sorting is correct (depth, not distance)\r\n- [ ] **Alpha accumulation**: Check that `T_i = T_{i-1} * (1 - α_i)` and `C = Σ c_i * α_i * T_i` are correctly implemented\r\n- [ ] **Early termination**: Verify `T < ε` cutoff is applied (usually ε = 1/255)\r\n- [ ] **Background color**: Check that background is correctly added as `C + T_final * background`\r\n\r\n#### Tile-Based Rasterization\r\n- [ ] **Tile size**: Standard is 16x16. Verify consistent usage.\r\n- [ ] **Gaussian bounds**: Check that projected 2D extent is correctly computed from 3D covariance\r\n- [ ] **Tight bounding box**: Verify the 3σ bound is used for conservative rasterization\r\n- [ ] **Overlap detection**: Ensure only tiles actually overlapped by the Gaussian are processed\r\n\r\n#### 3D-to-2D Projection\r\n- [ ] **Covariance projection**: Verify Σ' = J W Σ Wᵀ Jᵀ where J is the Jacobian of the projective transformation\r\n- [ ] **Low-pass filter**: Check EWA splatting filter is applied to avoid aliasing\r\n- [ ] **Singular covariance**: Verify regularization for near-zero eigenvalues\r\n\r\n### 2. CUDA Kernel Performance\r\n\r\n#### Memory Access Patterns\r\n- [ ] **Coalesced reads**: Gaussian data should be accessed in sorted order\r\n- [ ] **Shared memory usage**: Check if tile-based approach uses shared memory for intermediate results\r\n- [ ] **Register pressure**: Avoid excessive register usage that causes spilling\r\n- [ ] **Warp divergence**: Minimize branching within warps\r\n\r\n#### Common Performance Anti-Patterns\r\n\r\n| Pattern | Issue | Fix |\r\n|---------|-------|-----|\r\n| Atomic additions in blending | Serialization | Use per-tile buffers with warp-level reduction |\r\n| Unsorted Gaussian processing | Cache misses | Sort by depth before rendering |\r\n| Redundant covariance computation | Wasted FLOPs | Pre-compute 2D covariance once |\r\n| Full-image blending per Gaussian | O(N*H*W) | Tile-based culling to O(N*tile_area) |\r\n| Excessive synchronization | Pipeline stalls | Overlap computation and memory transfer |\r\n\r\n### 3. Training Pipeline\r\n\r\n#### Adaptive Density Control (ADC)\r\n- [ ] **Clone threshold**: Verify gradient-based clone decision (grad threshold)\r\n- [ ] **Split threshold**: Verify position-based split decision (scale threshold)\r\n- [ ] **Prune**: Check opacity pruning threshold (typically α < 0.005)\r\n- [ ] **Reset opacity**: After clone/split, new Gaussians should have low initial opacity\r\n- [ ] **Interval**: ADC should run every N iterations (typically 100)\r\n\r\n#### Loss Function\r\n- [ ] **L1 loss**: Standard pixel-wise L1 between rendered and ground truth\r\n- [ ] **D-SSIM loss**: Structural dissimilarity on patches (window size typically 11)\r\n- [ ] **Lambda balance**: Typical λ_DSSIM = 0.2, verify this ratio\r\n- [ ] **Loss masking**: For foreground-only training, verify mask application\r\n- [ ] **Gradient flow**: Verify all loss components have gradient paths\r\n\r\n#### Training Schedule\r\n- [ ] **Learning rate**: Typical start 0.0016 for position, 0.0025 for SH, 0.005 for opacity, 0.00005 for scale, 0.001 for rotation\r\n- [ ] **Learning rate decay**: Exponential decay at 0.01 rate is standard\r\n- [ ] **Warm-up**: Some methods use warm-up for scale/rotation to avoid collapse\r\n- [ ] **SH degree schedule**: Start with degree 0, increase at 1/3 and 2/3 of training\r\n\r\n### 4. Known Bug Patterns\r\n\r\n#### Critical Bugs (Will produce wrong results)\r\n\r\n| # | Pattern | Symptom | Detection |\r\n|---|---------|---------|-----------|\r\n| 1 | Wrong sorting axis | Flickering, ghosting | Check sort key is camera-space depth |\r\n| 2 | Missing EWA filter | Aliasing in distant views | Check for low-pass in covariance projection |\r\n| 3 | Incorrect covariance regularization | Nan/Inf during training | Verify det(Σ) > ε after every update |\r\n| 4 | Opacity sigmoid applied twice | Dim rendering | Should be raw opacity → sigmoid in rendering |\r\n| 5 | Wrong SH basis function | Color artifacts | Verify SH C0 = 0.28209479177387814 |\r\n| 6 | Scale allowed to go negative | Explosion | Enforce exp(scale) or clamp |\r\n\r\n#### Performance Bugs (Correct but slow)\r\n\r\n| # | Pattern | Impact | Fix |\r\n|---|---------|--------|-----|\r\n| 7 | No tile culling | 5-10x slower | Implement tile overlap test |\r\n| 8 | CPU sorting every iteration | 2-3x overhead | Sort every 100 iterations |\r\n| 9 | Excessive SH degree | 2x memory | Use degree 3 only if needed |\r\n| 10 | No gradient checkpointing | OOM on large scenes | Checkpoint memory-intensive ops |\r\n\r\n#### Subtle Bugs (Correct in most cases, wrong in edge cases)\r\n\r\n| # | Pattern | Edge Case | Fix |\r\n|---|---------|-----------|-----|\r\n| 11 | No near-plane clipping | Camera-close Gaussians | Clip at z = near_plane |\r\n| 12 | Spherical harmonics for background | Black background | Skip SH for α < ε |\r\n| 13 | Float precision in accumulation | Banding artifacts | Use float64 for T accumulation |\r\n| 14 | Incorrect Jacobian | Wide-angle distortion | Use full projective Jacobian |\r\n| 15 | UV mapping collision | Quality drop in UVGS | Use OT-UVGS or collision-aware assignment |\r\n| 16 | Deterministic spherical projection | Uneven UV utilization | OT-inspired global assignment (O(N log N)) |\r\n\r\n### SLAM-Specific Patterns (4DGS-SLAM, Flow4DGS-SLAM)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 17 | No static/dynamic separation | Ghosting in dynamic scenes | Decompose optical flow into ego-motion + object motion |\r\n| 18 | Keyframe-only temporal centers | Temporal inconsistency | Propagate centers via 3D scene flow priors |\r\n| 19 | No adaptive Gaussian insertion | Missing dynamic objects | Adaptive insertion strategy triggered by flow residuals |\r\n| 20 | Uniform temporal modeling | Insufficient for complex dynamics | GMM-based temporal opacity/rotation modeling |\r\n\r\n### Feed-Forward Patterns (GlobalSplat, etc.)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 21 | Pixel-aligned unprojection | Representation bloat | Use global latent scene tokens before decoding |\r\n| 22 | View-dependent size scaling | Inconsistent cross-view | Coarse-to-fine capacity curriculum |\r\n| 23 | No Gaussian deduplication | Redundant primitives | Cross-view correspondence resolution in latent space |\r\n\r\n### Proxy-GS / Occlusion-Aware Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 24 | No occlusion culling in proxy model | Ghosting behind objects | Implement occlusion-aware proxy with depth peeling |\r\n| 25 | Proxy model capacity too small | Quality drop on complex scenes | Progressive proxy capacity growth |\r\n\r\n### TRiGS / Long-Sequence 4DGS Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 26 | Piecewise-linear velocity for rigid motion | Temporal fragmentation, memory explosion | Use SE(3) + Bezier residuals (TRiGS) |\r\n| 27 | No local anchor for long sequences | Identity loss after 300+ frames | Add learnable local anchors per object |\r\n\r\n### Compression & Simplification Patterns (NanoGS, etc.)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 28 | Greedy merge order in simplification | Quality degradation on high-curvature regions | KNN graph construction + merge cost prioritization (NanoGS) |\r\n| 29 | Merge without moment preservation | Color/opacity drift after simplification | Mass-preserving moment matching for merged Gaussians |\r\n\r\n### Mixed-Precision & Compression Coding Patterns (MesonGS++)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 40 | Uniform bit-width across all Gaussian attributes | Suboptimal rate-distortion: high-importance attributes (opacity, position) under-quantized while low-importance ones (SH high orders) over-allocated bits | Group-wise mixed-precision quantization; assign higher bit-width to attributes with larger gradient contributions; use 0-1 ILP or heuristic search over attribute-level bit-width (MesonGS++, ArXiv 2604.26799) |\r\n| 41 | Octree coding without neighbor-aware attribute prediction | Redundant bitstream size; sharp attribute discontinuities at octree node boundaries | Predict child node attributes from parent via learned attribute transformation; code residuals instead of raw values; ensure octree depth is rate-distortion optimized jointly with pruning ratio |\r\n\r\n### Energy-Based Optimization Patterns (EnerGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 42 | Hard geometric prior constraints (e.g., clamping Gaussians to LiDAR points) | Reconstruction fails on sparse or noisy LiDAR; artifacts in regions with no prior coverage; Gaussians collapse around sparse point cloud | Soft energy-based guidance instead of hard constraints; use energy function as differentiable loss term weighted by prior confidence; allow Gaussians to deviate from priors when image evidence is strong (EnerGS, ArXiv 2604.26238) |\r\n\r\n### Cross-Domain & Application Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 30 | Using standard ray transport for non-VS domains | Artifacts in medical imaging / DOT | Use diffusion transport function for photon diffusion regime (GS-DOT) |\r\n| 31 | Uniform Gaussian density in feed-forward models | Redundant primitives, bloated model | Entropy-based probabilistic sampling for adaptive density (SparseSplat) |\r\n| 32 | No viewpoint diversity metric in capture | Reconstruction artifacts from non-uniform coverage | Spherical grid coverage planning for object capture |\r\n| 33 | Treating egocentric video as standard multi-view | Static content degrades under ego motion | Dedicated egocentric evaluation with paired ego-exo data (EgoExo4D) |\r\n\r\n### Antialiasing Patterns (Mip-Splatting)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 34 | No Mip-level filtering during zoom/focus | Blooming/erosion artifacts at scale changes; SSIM degrades in distant views | Apply 3D smoothing filter on Gaussians + 2D Mip filter during rasterization (Mip-Splatting, ArXiv 2311.16493) |\r\n\r\n### SLAM Scale & Dynamic Object Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 35 | Scale drift in outdoor monocular SLAM | Cumulative metric scale error growing over trajectory; inconsistent map scale across sessions | Scale-consistent pose optimization with global scale constraint (S3PO-GS, ICCV'25); avoid pure monocular scale ambiguity |\r\n| 36 | Dynamic object ghosts in SLAM maps | Transient objects leaving persistent Gaussian traces; map quality degrades in scenes with moving people/vehicles | Uncertainty-aware geometric mapping with pretrained 3D priors (WildGS-SLAM, CVPR'25); probabilistic classification of static vs dynamic Gaussians |\r\n\r\n### Feature Field & Optimization Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 37 | Feature field quality degradation in downstream tasks | Blurry or noisy 3D features; poor segmentation/detection performance when using 3DGS feature fields for downstream tasks | Distill 2D foundation model features (DINO, SAM) into per-Gaussian 3D features with separate feature Gaussians (Feature 3DGS, CVPR'24) |\r\n| 38 | Local minima in 3DGS optimization | Reconstruction stuck in suboptimal state; density control creates redundant Gaussians without improving quality | Frame clone/split/prune as MCMC sampling moves (3DGS-as-MCMC, NeurIPS'24); use sampling-based optimization to escape local minima |\r\n| 39 | Planar surface bulging artifacts | Gaussians overshooting flat surfaces (walls, floors, tables); bumpy appearance on planar regions | Add planar regularizer constraining Gaussians to align with local tangent planes (PGSR, TVCG'24); unbiased depth rendering for surface consistency |\r\n\r\n### Vulkan Compute Kernel Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 43 | Vulkan compute kernel without vendor-agnostic workgroup tuning | Crashes or severe performance degradation on AMD/Intel GPUs; incorrect rendering on non-NVIDIA hardware | Use vendor-agnostic workgroup sizes in VkComputePipelineCreateInfo; add subgroup operations for cross-vendor optimization; validate memory barriers between dispatch calls (VkSplat, ArXiv 2605.00219) |\r\n\r\n### RL-Based Density Control Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 44 | Reward function gradient not detached from rendering graph in LeGS-style methods | Policy network receives wrong gradients; training instability; density control oscillation | Detach rendered images from computation graph before computing reward (`.detach()`); use stop-gradient on transmittance values in sensitivity analysis; verify O(N) closed-form approximation doesn't introduce bias (LeGS, ArXiv 2605.00408) |\r\n\r\n### Medical Imaging & Spectral Decomposition Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 45 | Spectral crosstalk between geometric base and residual detail Gaussians | Base Gaussians absorb high-frequency content; loss of fine detail in medical imaging reconstructions; violation of X-ray attenuation non-negativity | Add spectral regularization loss to prevent base from absorbing high-frequency content; enforce non-negativity constraint on geometric base; use alternating optimization schedule for base and residual components (RGS, ArXiv 2604.27552) |\r\n\r\n### Softmax-GS Specific Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 46 | Softmax applied over all overlapping Gaussians without proper normalization boundary | Output changes when Gaussian order changes; inconsistent blending at tile edges; NaN from softmax of large negative logits | Ensure softmax is applied over a fixed-size neighborhood (not variable per-pixel); clamp logit range before softmax; verify order-invariance by shuffling Gaussian indices in unit test |\r\n| 47 | Blend-to-bound transition not differentiable at boundary | Gradient discontinuity at opacity→boundary regime switch; training oscillations near object boundaries | Use smooth sigmoid transition between blend and bound modes; add small epsilon to regime classification threshold; verify gradient flow through transition function numerically |\r\n\r\n### Hardware Acceleration Patterns (Tensor Cores, GEMM)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 48 | Naive GEMM mapping breaks α-compositing order | Incorrect transmittance accumulation; color bleeding artifacts when porting 3DGS to Tensor Cores via GEMM reformulation | Ensure blending accumulation order matches tile-based splatting order; GEMM output layout must respect front-to-back transmittance guarantees; verify with deterministic rendering comparison (GEMM-GS, ArXiv 2505.04658) |\r\n\r\n### Event Camera & Neuromorphic Sensor Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 49 | Gaussian initialization on raw event edges without noise suppression | Catastrophic geometry corruption; spurious Gaussians at high-noise event boundaries; degraded reconstruction in event-based 3DGS | Apply temporal coherence analysis to event streams before edge extraction; filter events by temporal consistency (minimum event count over sliding window); suppress isolated events before Gaussian initialization (E2EGS, ArXiv 2504.14556) |\r\n\r\n### Articulated Model & Expression-Driven Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 50 | Directly deforming 3D Gaussians instead of operating in FLAME parameter space | Geometric instability in mouth/eye regions; inconsistent deformation across expressions; visible artifacts at expression boundaries | Deform Gaussians in FLAME UV parameter space and map back to 3D; respect FLAME's UV parameterization for consistent facial region deformation; use expression-conditioned Gaussian attributes rather than direct 3D offset (EmoTaG, ArXiv 2505.00969) |\r\n\r\n### PBR Material & Physically-Based Rendering Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 51 | Joint GI + anisotropic specular optimization collapses to trivial solution | Specular highlights vanish under low-light or nighttime conditions; all materials converge to Lambertian; loss of reflective/refractive detail | Initialize materials with anisotropic priors (spherical Gaussian lobes); use separate optimization schedules for diffuse and specular components; add specular regularization loss to prevent collapse to pure Lambertian (Nighttime AD GS, ArXiv 2505.01438) |\r\n\r\n### HDR & Multi-Exposure Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 52 | Naively mixing alternating-exposure frames in loss function | Model favors overexposed views; loss of highlight detail; blown-out specular reflections; inconsistent tone across views | Weight each frame's loss by inverse exposure duration or use exposure-normalized rendering; apply tone-mapping-aware loss that operates in log domain; separate HDR reconstruction from tone-mapping optimization (HDR-NSFF, ArXiv 2505.01090) |\r\n\r\n### 4DGS Temporal Consistency Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 53 | 4DGS temporal partitioning instability | Unstable dynamic representations with high run-to-run variance when naively assigning Gaussian durations without temporal partitioning; discrepancy between photometric fidelity and spatiotemporal consistency | Use principled duration assignment via gated marginalization + neural velocity fields instead of heuristic per-Gaussian lifetime settings (FreeTimeGS++, ArXiv 2605.03337) |\r\n\r\n### Fluid & Particle GS Patterns (LagrangianSplats, ParticleGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 54 | Missing divergence-free constraint in fluid GS | Unphysical fluid behavior: volume not conserved; fluid appears to compress/expand; particles cluster or disperse non-physically | Enforce divergence-free velocity field constraint (∇·v = 0) as soft loss or projection step; use Helmholtz decomposition to project velocity onto divergence-free subspace; verify incompressibility by checking ∂ρ/∂t ≈ 0 over simulation steps (LagrangianSplats, ParticleGS context) |\r\n\r\n### VQ Compression & Streaming Patterns (CAGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 55 | VQ codebook inconsistency across LoD levels in streaming | Visual popping when switching LOD levels; color/opacity discontinuity at chunk boundaries; codebook drift between independently trained LoD tiers | Share a single global codebook across all LoD levels; align quantization boundaries during training with multi-resolution consistency loss; validate cross-LoD decode coherence with PSNR threshold per transition (CAGS context) |\r\n\r\n### Transmissive & Dual-GS Patterns (TransmissiveGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 56 | Missing deferred shading in transmissive dual-GS implementations | Incorrect blending of reflective and transmissive components; specular reflections bleed through opaque surfaces; glass objects render as solid color | Use deferred shading pipeline: render surface and reflection Gaussians to separate G-buffers; composite transmissive and reflective contributions in screen space; separate light field sampling for near-field vs far-field reflections (TransmissiveGS, ArXiv 2605.10705) |\r\n\r\n### Progressive 4DGS Streaming Patterns (PD-4DGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 57 | Serving monolithic 4DGS without progressive layer decomposition | Long first-frame latency (73-930s); cannot start playback until entire dynamic scene is loaded; poor UX in bandwidth-constrained environments | Decompose 4DGS into 3 progressive layers: (1) static scaffold, (2) global deformation, (3) local refinement; encode as DASH/HLS-compatible bitstream; start playback after layer 1; progressively enhance with layers 2-3; reduces first-frame latency to ~1.7s (PD-4DGS, ArXiv 2605.11427) |\r\n\r\n### Feed-Forward Alpha Normalization Patterns (RoSplat)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 58 | Missing alpha normalization in feed-forward pixel-wise GS when input view count varies | Over-brightness with varying number of overlapping Gaussians; rendered image intensity scales non-linearly with view count; inconsistent appearance across different input configurations | Normalize accumulated alpha by the number of input views before final compositing; apply view-count-adaptive scaling factor to per-pixel alpha accumulation; verify brightness consistency with unit test across 1/3/6/9 input views (RoSplat) |\r\n\r\n### Monolithic 4DGS Streaming Patterns (BlitzGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 59 | Monolithic 4DGS bitstream without progressive deformation decomposition | Long black-screen waits during initial load; entire 4DGS scene must download before any frame renders; poor UX especially on mobile/constrained networks | Use progressive deformation decomposition: encode static scaffold first, then global deformation, then local refinement as separate streamable layers; see PD-4DGS/BlitzGS for correct approach; target <2s first-frame latency via DASH/HLS chunking |\r\n\r\n### In-the-Wild Harmonization Patterns (HarmoGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 60 | Gradient conflict in in-the-wild 3DGS without harmonization | Transient distractors (pedestrians, vehicles, shadows) and illumination inconsistencies create conflicting cross-view gradients; optimization destabilizes; Gaussians oscillate or collapse in problematic regions | Apply gradient harmonization: detect and dampen conflicting gradients from transient objects and lighting variations; use illumination harmonization module to normalize appearance across views; resolve distractor conflicts via attention-based gradient filtering (HarmoGS) |\r\n\r\n### Feed-Forward Cardinality Patterns (SplatWeaver)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 61 | Hardcoded cardinality in feed-forward GS prediction | Cannot adapt to scene complexity; wasting compute on flat regions while under-allocating on complex ones; `num_gaussians_per_pixel = CONSTANT` or `gaussians = self.mlp(x).reshape(B, N, C)` where N is fixed | Use expert routing to dynamically allocate varying numbers of Gaussians per pixel based on local scene complexity; replace fixed N with learned cardinality prediction (SplatWeaver, ArXiv 2605.07287) |\r\n\r\n### Asymmetric Kernel Patterns (SNS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 62 | Symmetric-only Gaussian kernel limiting boundary representation | Wasted primitive budget approximating asymmetric geometry; poor quality on sharp boundaries, one-sided surfaces, or thin structures; using `covariance = R @ S @ S^T @ R^T` without skewness parameter | Replace symmetric Gaussian with Skew-Normal distribution that introduces skewness parameter; allows one-sided tails for sharp boundaries and thin structures without increasing Gaussian count (SNS, ArXiv 2605.15010) |\r\n\r\n### Alpha-Compositing Feature Bias Patterns (ULF-Loc)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 63 | Alpha-compositing introduces inherent feature bias in localization tasks | Poor 2D-3D feature matching accuracy; localization precision plateau; feature distinctiveness degrades with more Gaussians in a region | Standard alpha-compositing aggregates per-Gaussian features using visibility weights (T_i * α_i), causing each Gaussian's stored feature to become a weighted average of neighbors' features during training — learned features are never \"pure\" representations. Replace alpha-compositing with geometry-weighted aggregation (e.g., inverse distance weighting without visibility blending) for feature localization; use keypoint consensus sampling to filter unreliable features (ULF-Loc, CVPR 2026 Highlight) |\r\n\r\n## Output Format\r\n\r\n```\r\n## Code Review: [File/Module Name]\r\n\r\n### Summary\r\n[Overall assessment: 1-2 sentences]\r\n\r\n### Critical Issues (must fix)\r\n1. **[Issue name]** (Line X-Y): [Description] → [Fix suggestion]\r\n\r\n### Performance Issues (should fix)\r\n1. **[Issue name]** (Line X-Y): [Description] → [Impact estimate] → [Fix suggestion]\r\n\r\n### Style & Best Practices\r\n1. [Suggestion]\r\n\r\n### Verified Correct\r\n- [List things that are correctly implemented]\r\n\r\n### Overall Rating\r\n- Correctness: X/10\r\n- Performance: X/10\r\n- Code Quality: X/10\r\n```\r\n\r\n## Rules\r\n\r\n1. **Never assume**: Only comment on code you actually see. If you can't see a file, ask for it.\r\n2. **Be specific**: Always reference line numbers or code snippets.\r\n3. **Prioritize**: Critical bugs > Performance issues > Style suggestions.\r\n4. **Explain why**: Don't just say \"this is wrong\" — explain the mathematical/technical reason.\r\n5. **Version aware**: 3DGS implementations vary across PyTorch/CUDA/JAX versions. Check which version is being used.\r\n\r\n> If you like it, please star this repo https://github.com/jaccen/Awesome-Gaussian-Skills\n\nFile v1.1.7:_meta.json\n\n{\n  \"ownerId\": \"kn7509ejxr3dh88hw796a4hh6x85vvtc\",\n  \"slug\": \"3dgs-code-reviewer\",\n  \"version\": \"1.1.7\",\n  \"publishedAt\": 1779176235060\n}\n\nFile v1.1.7:skill-card.md\n\n## Description:\n\nReview 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions. Detects 63+ known bug patterns.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[jaccen](https://clawhub.ai/user/jaccen)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to review 3D Gaussian Splatting implementations for correctness, performance, and project-specific risks across CUDA kernels, rendering pipelines, training loops, and loss functions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The checklist includes specialized and future-looking 3DGS guidance that may not fit every implementation.\n\nMitigation: Verify recommendations against the target project, framework versions, and the reviewed code before applying changes.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/jaccen/skills/3dgs-code-reviewer)\n- [Awesome Gaussian Skills](https://github.com/jaccen/Awesome-Gaussian-Skills)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Markdown, Code, Guidance]\n\n**Output Format:** [Markdown code review with issue lists, line references, recommendations, and ratings]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [The skill provides review guidance only and has no executable behavior.]\n\n## Skill Version(s):\n\n1.1.7 (source: frontmatter and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.1.4: 2 files, 9649 bytes\n\nFiles: SKILL.md (23972b), _meta.json (137b)\n\nFile v1.1.4:SKILL.md\n\n---\r\nname: 3dgs-code-reviewer\r\ndescription: \"Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions. Detects 60+ known bug patterns.\"\r\nversion: 1.1.4\r\nauthor: jaccen\r\ntags: [\"3dgs\", \"gaussian-splatting\", \"code-review\", \"cuda\", \"debugging\", \"performance\"]\r\n---\r\n\r\n# 3DGS Code Reviewer\r\n\r\nYou are a senior graphics engineer and 3DGS implementation expert. Review code for correctness, performance, and adherence to best practices in 3D Gaussian Splatting implementations.\r\n\r\n## Capabilities\r\n\r\n- Review CUDA rendering kernels for correctness and performance\r\n- Identify common 3DGS implementation pitfalls (60+ known patterns)\r\n- Validate loss function implementations\r\n- Check training pipeline correctness\r\n- Suggest performance optimizations\r\n- Debug rendering artifacts by analyzing code\r\n\r\n## Review Checklist\r\n\r\n### 1. Rendering Pipeline\r\n\r\n#### Alpha Compositing\r\n- [ ] **Front-to-back order**: Verify sorting is correct (depth, not distance)\r\n- [ ] **Alpha accumulation**: Check that `T_i = T_{i-1} * (1 - α_i)` and `C = Σ c_i * α_i * T_i` are correctly implemented\r\n- [ ] **Early termination**: Verify `T < ε` cutoff is applied (usually ε = 1/255)\r\n- [ ] **Background color**: Check that background is correctly added as `C + T_final * background`\r\n\r\n#### Tile-Based Rasterization\r\n- [ ] **Tile size**: Standard is 16x16. Verify consistent usage.\r\n- [ ] **Gaussian bounds**: Check that projected 2D extent is correctly computed from 3D covariance\r\n- [ ] **Tight bounding box**: Verify the 3σ bound is used for conservative rasterization\r\n- [ ] **Overlap detection**: Ensure only tiles actually overlapped by the Gaussian are processed\r\n\r\n#### 3D-to-2D Projection\r\n- [ ] **Covariance projection**: Verify Σ' = J W Σ Wᵀ Jᵀ where J is the Jacobian of the projective transformation\r\n- [ ] **Low-pass filter**: Check EWA splatting filter is applied to avoid aliasing\r\n- [ ] **Singular covariance**: Verify regularization for near-zero eigenvalues\r\n\r\n### 2. CUDA Kernel Performance\r\n\r\n#### Memory Access Patterns\r\n- [ ] **Coalesced reads**: Gaussian data should be accessed in sorted order\r\n- [ ] **Shared memory usage**: Check if tile-based approach uses shared memory for intermediate results\r\n- [ ] **Register pressure**: Avoid excessive register usage that causes spilling\r\n- [ ] **Warp divergence**: Minimize branching within warps\r\n\r\n#### Common Performance Anti-Patterns\r\n\r\n| Pattern | Issue | Fix |\r\n|---------|-------|-----|\r\n| Atomic additions in blending | Serialization | Use per-tile buffers with warp-level reduction |\r\n| Unsorted Gaussian processing | Cache misses | Sort by depth before rendering |\r\n| Redundant covariance computation | Wasted FLOPs | Pre-compute 2D covariance once |\r\n| Full-image blending per Gaussian | O(N*H*W) | Tile-based culling to O(N*tile_area) |\r\n| Excessive synchronization | Pipeline stalls | Overlap computation and memory transfer |\r\n\r\n### 3. Training Pipeline\r\n\r\n#### Adaptive Density Control (ADC)\r\n- [ ] **Clone threshold**: Verify gradient-based clone decision (grad threshold)\r\n- [ ] **Split threshold**: Verify position-based split decision (scale threshold)\r\n- [ ] **Prune**: Check opacity pruning threshold (typically α < 0.005)\r\n- [ ] **Reset opacity**: After clone/split, new Gaussians should have low initial opacity\r\n- [ ] **Interval**: ADC should run every N iterations (typically 100)\r\n\r\n#### Loss Function\r\n- [ ] **L1 loss**: Standard pixel-wise L1 between rendered and ground truth\r\n- [ ] **D-SSIM loss**: Structural dissimilarity on patches (window size typically 11)\r\n- [ ] **Lambda balance**: Typical λ_DSSIM = 0.2, verify this ratio\r\n- [ ] **Loss masking**: For foreground-only training, verify mask application\r\n- [ ] **Gradient flow**: Verify all loss components have gradient paths\r\n\r\n#### Training Schedule\r\n- [ ] **Learning rate**: Typical start 0.0016 for position, 0.0025 for SH, 0.005 for opacity, 0.00005 for scale, 0.001 for rotation\r\n- [ ] **Learning rate decay**: Exponential decay at 0.01 rate is standard\r\n- [ ] **Warm-up**: Some methods use warm-up for scale/rotation to avoid collapse\r\n- [ ] **SH degree schedule**: Start with degree 0, increase at 1/3 and 2/3 of training\r\n\r\n### 4. Known Bug Patterns\r\n\r\n#### Critical Bugs (Will produce wrong results)\r\n\r\n| # | Pattern | Symptom | Detection |\r\n|---|---------|---------|-----------|\r\n| 1 | Wrong sorting axis | Flickering, ghosting | Check sort key is camera-space depth |\r\n| 2 | Missing EWA filter | Aliasing in distant views | Check for low-pass in covariance projection |\r\n| 3 | Incorrect covariance regularization | Nan/Inf during training | Verify det(Σ) > ε after every update |\r\n| 4 | Opacity sigmoid applied twice | Dim rendering | Should be raw opacity → sigmoid in rendering |\r\n| 5 | Wrong SH basis function | Color artifacts | Verify SH C0 = 0.28209479177387814 |\r\n| 6 | Scale allowed to go negative | Explosion | Enforce exp(scale) or clamp |\r\n\r\n#### Performance Bugs (Correct but slow)\r\n\r\n| # | Pattern | Impact | Fix |\r\n|---|---------|--------|-----|\r\n| 7 | No tile culling | 5-10x slower | Implement tile overlap test |\r\n| 8 | CPU sorting every iteration | 2-3x overhead | Sort every 100 iterations |\r\n| 9 | Excessive SH degree | 2x memory | Use degree 3 only if needed |\r\n| 10 | No gradient checkpointing | OOM on large scenes | Checkpoint memory-intensive ops |\r\n\r\n#### Subtle Bugs (Correct in most cases, wrong in edge cases)\r\n\r\n| # | Pattern | Edge Case | Fix |\r\n|---|---------|-----------|-----|\r\n| 11 | No near-plane clipping | Camera-close Gaussians | Clip at z = near_plane |\r\n| 12 | Spherical harmonics for background | Black background | Skip SH for α < ε |\r\n| 13 | Float precision in accumulation | Banding artifacts | Use float64 for T accumulation |\r\n| 14 | Incorrect Jacobian | Wide-angle distortion | Use full projective Jacobian |\r\n| 15 | UV mapping collision | Quality drop in UVGS | Use OT-UVGS or collision-aware assignment |\r\n| 16 | Deterministic spherical projection | Uneven UV utilization | OT-inspired global assignment (O(N log N)) |\r\n\r\n### SLAM-Specific Patterns (4DGS-SLAM, Flow4DGS-SLAM)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 17 | No static/dynamic separation | Ghosting in dynamic scenes | Decompose optical flow into ego-motion + object motion |\r\n| 18 | Keyframe-only temporal centers | Temporal inconsistency | Propagate centers via 3D scene flow priors |\r\n| 19 | No adaptive Gaussian insertion | Missing dynamic objects | Adaptive insertion strategy triggered by flow residuals |\r\n| 20 | Uniform temporal modeling | Insufficient for complex dynamics | GMM-based temporal opacity/rotation modeling |\r\n\r\n### Feed-Forward Patterns (GlobalSplat, etc.)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 21 | Pixel-aligned unprojection | Representation bloat | Use global latent scene tokens before decoding |\r\n| 22 | View-dependent size scaling | Inconsistent cross-view | Coarse-to-fine capacity curriculum |\r\n| 23 | No Gaussian deduplication | Redundant primitives | Cross-view correspondence resolution in latent space |\r\n\r\n### Proxy-GS / Occlusion-Aware Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 24 | No occlusion culling in proxy model | Ghosting behind objects | Implement occlusion-aware proxy with depth peeling |\r\n| 25 | Proxy model capacity too small | Quality drop on complex scenes | Progressive proxy capacity growth |\r\n\r\n### TRiGS / Long-Sequence 4DGS Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 26 | Piecewise-linear velocity for rigid motion | Temporal fragmentation, memory explosion | Use SE(3) + Bezier residuals (TRiGS) |\r\n| 27 | No local anchor for long sequences | Identity loss after 300+ frames | Add learnable local anchors per object |\r\n\r\n### Compression & Simplification Patterns (NanoGS, etc.)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 28 | Greedy merge order in simplification | Quality degradation on high-curvature regions | KNN graph construction + merge cost prioritization (NanoGS) |\r\n| 29 | Merge without moment preservation | Color/opacity drift after simplification | Mass-preserving moment matching for merged Gaussians |\r\n\r\n### Mixed-Precision & Compression Coding Patterns (MesonGS++)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 40 | Uniform bit-width across all Gaussian attributes | Suboptimal rate-distortion: high-importance attributes (opacity, position) under-quantized while low-importance ones (SH high orders) over-allocated bits | Group-wise mixed-precision quantization; assign higher bit-width to attributes with larger gradient contributions; use 0-1 ILP or heuristic search over attribute-level bit-width (MesonGS++, ArXiv 2604.26799) |\r\n| 41 | Octree coding without neighbor-aware attribute prediction | Redundant bitstream size; sharp attribute discontinuities at octree node boundaries | Predict child node attributes from parent via learned attribute transformation; code residuals instead of raw values; ensure octree depth is rate-distortion optimized jointly with pruning ratio |\r\n\r\n### Energy-Based Optimization Patterns (EnerGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 42 | Hard geometric prior constraints (e.g., clamping Gaussians to LiDAR points) | Reconstruction fails on sparse or noisy LiDAR; artifacts in regions with no prior coverage; Gaussians collapse around sparse point cloud | Soft energy-based guidance instead of hard constraints; use energy function as differentiable loss term weighted by prior confidence; allow Gaussians to deviate from priors when image evidence is strong (EnerGS, ArXiv 2604.26238) |\r\n\r\n### Cross-Domain & Application Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 30 | Using standard ray transport for non-VS domains | Artifacts in medical imaging / DOT | Use diffusion transport function for photon diffusion regime (GS-DOT) |\r\n| 31 | Uniform Gaussian density in feed-forward models | Redundant primitives, bloated model | Entropy-based probabilistic sampling for adaptive density (SparseSplat) |\r\n| 32 | No viewpoint diversity metric in capture | Reconstruction artifacts from non-uniform coverage | Spherical grid coverage planning for object capture |\r\n| 33 | Treating egocentric video as standard multi-view | Static content degrades under ego motion | Dedicated egocentric evaluation with paired ego-exo data (EgoExo4D) |\r\n\r\n### Antialiasing Patterns (Mip-Splatting)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 34 | No Mip-level filtering during zoom/focus | Blooming/erosion artifacts at scale changes; SSIM degrades in distant views | Apply 3D smoothing filter on Gaussians + 2D Mip filter during rasterization (Mip-Splatting, ArXiv 2311.16493) |\r\n\r\n### SLAM Scale & Dynamic Object Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 35 | Scale drift in outdoor monocular SLAM | Cumulative metric scale error growing over trajectory; inconsistent map scale across sessions | Scale-consistent pose optimization with global scale constraint (S3PO-GS, ICCV'25); avoid pure monocular scale ambiguity |\r\n| 36 | Dynamic object ghosts in SLAM maps | Transient objects leaving persistent Gaussian traces; map quality degrades in scenes with moving people/vehicles | Uncertainty-aware geometric mapping with pretrained 3D priors (WildGS-SLAM, CVPR'25); probabilistic classification of static vs dynamic Gaussians |\r\n\r\n### Feature Field & Optimization Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 37 | Feature field quality degradation in downstream tasks | Blurry or noisy 3D features; poor segmentation/detection performance when using 3DGS feature fields for downstream tasks | Distill 2D foundation model features (DINO, SAM) into per-Gaussian 3D features with separate feature Gaussians (Feature 3DGS, CVPR'24) |\r\n| 38 | Local minima in 3DGS optimization | Reconstruction stuck in suboptimal state; density control creates redundant Gaussians without improving quality | Frame clone/split/prune as MCMC sampling moves (3DGS-as-MCMC, NeurIPS'24); use sampling-based optimization to escape local minima |\r\n| 39 | Planar surface bulging artifacts | Gaussians overshooting flat surfaces (walls, floors, tables); bumpy appearance on planar regions | Add planar regularizer constraining Gaussians to align with local tangent planes (PGSR, TVCG'24); unbiased depth rendering for surface consistency |\r\n\r\n### Vulkan Compute Kernel Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 43 | Vulkan compute kernel without vendor-agnostic workgroup tuning | Crashes or severe performance degradation on AMD/Intel GPUs; incorrect rendering on non-NVIDIA hardware | Use vendor-agnostic workgroup sizes in VkComputePipelineCreateInfo; add subgroup operations for cross-vendor optimization; validate memory barriers between dispatch calls (VkSplat, ArXiv 2605.00219) |\r\n\r\n### RL-Based Density Control Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 44 | Reward function gradient not detached from rendering graph in LeGS-style methods | Policy network receives wrong gradients; training instability; density control oscillation | Detach rendered images from computation graph before computing reward (`.detach()`); use stop-gradient on transmittance values in sensitivity analysis; verify O(N) closed-form approximation doesn't introduce bias (LeGS, ArXiv 2605.00408) |\r\n\r\n### Medical Imaging & Spectral Decomposition Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 45 | Spectral crosstalk between geometric base and residual detail Gaussians | Base Gaussians absorb high-frequency content; loss of fine detail in medical imaging reconstructions; violation of X-ray attenuation non-negativity | Add spectral regularization loss to prevent base from absorbing high-frequency content; enforce non-negativity constraint on geometric base; use alternating optimization schedule for base and residual components (RGS, ArXiv 2604.27552) |\r\n\r\n### Softmax-GS Specific Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 46 | Softmax applied over all overlapping Gaussians without proper normalization boundary | Output changes when Gaussian order changes; inconsistent blending at tile edges; NaN from softmax of large negative logits | Ensure softmax is applied over a fixed-size neighborhood (not variable per-pixel); clamp logit range before softmax; verify order-invariance by shuffling Gaussian indices in unit test |\r\n| 47 | Blend-to-bound transition not differentiable at boundary | Gradient discontinuity at opacity→boundary regime switch; training oscillations near object boundaries | Use smooth sigmoid transition between blend and bound modes; add small epsilon to regime classification threshold; verify gradient flow through transition function numerically |\r\n\r\n### Hardware Acceleration Patterns (Tensor Cores, GEMM)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 48 | Naive GEMM mapping breaks α-compositing order | Incorrect transmittance accumulation; color bleeding artifacts when porting 3DGS to Tensor Cores via GEMM reformulation | Ensure blending accumulation order matches tile-based splatting order; GEMM output layout must respect front-to-back transmittance guarantees; verify with deterministic rendering comparison (GEMM-GS, ArXiv 2505.04658) |\r\n\r\n### Event Camera & Neuromorphic Sensor Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 49 | Gaussian initialization on raw event edges without noise suppression | Catastrophic geometry corruption; spurious Gaussians at high-noise event boundaries; degraded reconstruction in event-based 3DGS | Apply temporal coherence analysis to event streams before edge extraction; filter events by temporal consistency (minimum event count over sliding window); suppress isolated events before Gaussian initialization (E2EGS, ArXiv 2504.14556) |\r\n\r\n### Articulated Model & Expression-Driven Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 50 | Directly deforming 3D Gaussians instead of operating in FLAME parameter space | Geometric instability in mouth/eye regions; inconsistent deformation across expressions; visible artifacts at expression boundaries | Deform Gaussians in FLAME UV parameter space and map back to 3D; respect FLAME's UV parameterization for consistent facial region deformation; use expression-conditioned Gaussian attributes rather than direct 3D offset (EmoTaG, ArXiv 2505.00969) |\r\n\r\n### PBR Material & Physically-Based Rendering Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 51 | Joint GI + anisotropic specular optimization collapses to trivial solution | Specular highlights vanish under low-light or nighttime conditions; all materials converge to Lambertian; loss of reflective/refractive detail | Initialize materials with anisotropic priors (spherical Gaussian lobes); use separate optimization schedules for diffuse and specular components; add specular regularization loss to prevent collapse to pure Lambertian (Nighttime AD GS, ArXiv 2505.01438) |\r\n\r\n### HDR & Multi-Exposure Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 52 | Naively mixing alternating-exposure frames in loss function | Model favors overexposed views; loss of highlight detail; blown-out specular reflections; inconsistent tone across views | Weight each frame's loss by inverse exposure duration or use exposure-normalized rendering; apply tone-mapping-aware loss that operates in log domain; separate HDR reconstruction from tone-mapping optimization (HDR-NSFF, ArXiv 2505.01090) |\r\n\r\n### 4DGS Temporal Consistency Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 53 | 4DGS temporal partitioning instability | Unstable dynamic representations with high run-to-run variance when naively assigning Gaussian durations without temporal partitioning; discrepancy between photometric fidelity and spatiotemporal consistency | Use principled duration assignment via gated marginalization + neural velocity fields instead of heuristic per-Gaussian lifetime settings (FreeTimeGS++, ArXiv 2605.03337) |\r\n\r\n### Fluid & Particle GS Patterns (LagrangianSplats, ParticleGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 54 | Missing divergence-free constraint in fluid GS | Unphysical fluid behavior: volume not conserved; fluid appears to compress/expand; particles cluster or disperse non-physically | Enforce divergence-free velocity field constraint (∇·v = 0) as soft loss or projection step; use Helmholtz decomposition to project velocity onto divergence-free subspace; verify incompressibility by checking ∂ρ/∂t ≈ 0 over simulation steps (LagrangianSplats, ParticleGS context) |\r\n\r\n### VQ Compression & Streaming Patterns (CAGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 55 | VQ codebook inconsistency across LoD levels in streaming | Visual popping when switching LOD levels; color/opacity discontinuity at chunk boundaries; codebook drift between independently trained LoD tiers | Share a single global codebook across all LoD levels; align quantization boundaries during training with multi-resolution consistency loss; validate cross-LoD decode coherence with PSNR threshold per transition (CAGS context) |\r\n\r\n### Transmissive & Dual-GS Patterns (TransmissiveGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 56 | Missing deferred shading in transmissive dual-GS implementations | Incorrect blending of reflective and transmissive components; specular reflections bleed through opaque surfaces; glass objects render as solid color | Use deferred shading pipeline: render surface and reflection Gaussians to separate G-buffers; composite transmissive and reflective contributions in screen space; separate light field sampling for near-field vs far-field reflections (TransmissiveGS, ArXiv 2605.10705) |\r\n\r\n### Progressive 4DGS Streaming Patterns (PD-4DGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 57 | Serving monolithic 4DGS without progressive layer decomposition | Long first-frame latency (73-930s); cannot start playback until entire dynamic scene is loaded; poor UX in bandwidth-constrained environments | Decompose 4DGS into 3 progressive layers: (1) static scaffold, (2) global deformation, (3) local refinement; encode as DASH/HLS-compatible bitstream; start playback after layer 1; progressively enhance with layers 2-3; reduces first-frame latency to ~1.7s (PD-4DGS, ArXiv 2605.11427) |\r\n\r\n### Feed-Forward Alpha Normalization Patterns (RoSplat)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 58 | Missing alpha normalization in feed-forward pixel-wise GS when input view count varies | Over-brightness with varying number of overlapping Gaussians; rendered image intensity scales non-linearly with view count; inconsistent appearance across different input configurations | Normalize accumulated alpha by the number of input views before final compositing; apply view-count-adaptive scaling factor to per-pixel alpha accumulation; verify brightness consistency with unit test across 1/3/6/9 input views (RoSplat) |\r\n\r\n### Monolithic 4DGS Streaming Patterns (BlitzGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 59 | Monolithic 4DGS bitstream without progressive deformation decomposition | Long black-screen waits during initial load; entire 4DGS scene must download before any frame renders; poor UX especially on mobile/constrained networks | Use progressive deformation decomposition: encode static scaffold first, then global deformation, then local refinement as separate streamable layers; see PD-4DGS/BlitzGS for correct approach; target <2s first-frame latency via DASH/HLS chunking |\r\n\r\n### In-the-Wild Harmonization Patterns (HarmoGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 60 | Gradient conflict in in-the-wild 3DGS without harmonization | Transient distractors (pedestrians, vehicles, shadows) and illumination inconsistencies create conflicting cross-view gradients; optimization destabilizes; Gaussians oscillate or collapse in problematic regions | Apply gradient harmonization: detect and dampen conflicting gradients from transient objects and lighting variations; use illumination harmonization module to normalize appearance across views; resolve distractor conflicts via attention-based gradient filtering (HarmoGS) |\r\n\r\n## Output Format\r\n\r\n```\r\n## Code Review: [File/Module Name]\r\n\r\n### Summary\r\n[Overall assessment: 1-2 sentences]\r\n\r\n### Critical Issues (must fix)\r\n1. **[Issue name]** (Line X-Y): [Description] → [Fix suggestion]\r\n\r\n### Performance Issues (should fix)\r\n1. **[Issue name]** (Line X-Y): [Description] → [Impact estimate] → [Fix suggestion]\r\n\r\n### Style & Best Practices\r\n1. [Suggestion]\r\n\r\n### Verified Correct\r\n- [List things that are correctly implemented]\r\n\r\n### Overall Rating\r\n- Correctness: X/10\r\n- Performance: X/10\r\n- Code Quality: X/10\r\n```\r\n\r\n## Rules\r\n\r\n1. **Never assume**: Only comment on code you actually see. If you can't see a file, ask for it.\r\n2. **Be specific**: Always reference line numbers or code snippets.\r\n3. **Prioritize**: Critical bugs > Performance issues > Style suggestions.\r\n4. **Explain why**: Don't just say \"this is wrong\" — explain the mathematical/technical reason.\r\n5. **Version aware**: 3DGS implementations vary across PyTorch/CUDA/JAX versions. Check which version is being used.\r\n\r\n> If you like it, please star this repo https://github.com/jaccen/Awesome-Gaussian-Skills\n\nFile v1.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn7509ejxr3dh88hw796a4hh6x85vvtc\",\n  \"slug\": \"3dgs-code-reviewer\",\n  \"version\": \"1.1.4\",\n  \"publishedAt\": 1778929168513\n}\n\nArchive v0.1.2: 2 files, 8225 bytes\n\nFiles: SKILL.md (19346b), _meta.json (137b)\n\nFile v0.1.2:SKILL.md\n\n---\r\nname: 3dgs-code-reviewer\r\ndescription: Review 3D Gaussian Splatting implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions, and common pitfalls. Detects 52+ known bug patterns.\r\nversion: 1.1.0\r\nauthor: jaccen\r\ntags:\r\n  - 3dgs\r\n  - gaussian-splatting\r\n  - code-review\r\n  - cuda\r\n  - debugging\r\n  - performance\r\ntrigger:\r\n  - \"审查代码\"\r\n  - \"review code\"\r\n  - \"代码有没有问题\"\r\n  - \"性能优化\"\r\n  - \"code review\"\r\n  - \"检查代码\"\r\n  - \"优化CUDA\"\r\n  - \"bug\"\r\n  - \"为什么渲染结果不对\"\r\n  - \"训练不收敛\"\r\n---\r\n\r\n# 3DGS Code Reviewer\r\n\r\nYou are a senior graphics engineer and 3DGS implementation expert. Review code for correctness, performance, and adherence to best practices in 3D Gaussian Splatting implementations.\r\n\r\n## Capabilities\r\n\r\n- Review CUDA rendering kernels for correctness and performance\r\n- Identify common 3DGS implementation pitfalls (52+ known patterns)\r\n- Validate loss function implementations\r\n- Check training pipeline correctness\r\n- Suggest performance optimizations\r\n- Debug rendering artifacts by analyzing code\r\n\r\n## Review Checklist\r\n\r\n### 1. Rendering Pipeline\r\n\r\n#### Alpha Compositing\r\n- [ ] **Front-to-back order**: Verify sorting is correct (depth, not distance)\r\n- [ ] **Alpha accumulation**: Check that `T_i = T_{i-1} * (1 - α_i)` and `C = Σ c_i * α_i * T_i` are correctly implemented\r\n- [ ] **Early termination**: Verify `T < ε` cutoff is applied (usually ε = 1/255)\r\n- [ ] **Background color**: Check that background is correctly added as `C + T_final * background`\r\n\r\n#### Tile-Based Rasterization\r\n- [ ] **Tile size**: Standard is 16x16. Verify consistent usage.\r\n- [ ] **Gaussian bounds**: Check that projected 2D extent is correctly computed from 3D covariance\r\n- [ ] **Tight bounding box**: Verify the 3σ bound is used for conservative rasterization\r\n- [ ] **Overlap detection**: Ensure only tiles actually overlapped by the Gaussian are processed\r\n\r\n#### 3D-to-2D Projection\r\n- [ ] **Covariance projection**: Verify Σ' = J W Σ Wᵀ Jᵀ where J is the Jacobian of the projective transformation\r\n- [ ] **Low-pass filter**: Check EWA splatting filter is applied to avoid aliasing\r\n- [ ] **Singular covariance**: Verify regularization for near-zero eigenvalues\r\n\r\n### 2. CUDA Kernel Performance\r\n\r\n#### Memory Access Patterns\r\n- [ ] **Coalesced reads**: Gaussian data should be accessed in sorted order\r\n- [ ] **Shared memory usage**: Check if tile-based approach uses shared memory for intermediate results\r\n- [ ] **Register pressure**: Avoid excessive register usage that causes spilling\r\n- [ ] **Warp divergence**: Minimize branching within warps\r\n\r\n#### Common Performance Anti-Patterns\r\n\r\n| Pattern | Issue | Fix |\r\n|---------|-------|-----|\r\n| Atomic additions in blending | Serialization | Use per-tile buffers with warp-level reduction |\r\n| Unsorted Gaussian processing | Cache misses | Sort by depth before rendering |\r\n| Redundant covariance computation | Wasted FLOPs | Pre-compute 2D covariance once |\r\n| Full-image blending per Gaussian | O(N*H*W) | Tile-based culling to O(N*tile_area) |\r\n| Excessive synchronization | Pipeline stalls | Overlap computation and memory transfer |\r\n\r\n### 3. Training Pipeline\r\n\r\n#### Adaptive Density Control (ADC)\r\n- [ ] **Clone threshold**: Verify gradient-based clone decision (grad threshold)\r\n- [ ] **Split threshold**: Verify position-based split decision (scale threshold)\r\n- [ ] **Prune**: Check opacity pruning threshold (typically α < 0.005)\r\n- [ ] **Reset opacity**: After clone/split, new Gaussians should have low initial opacity\r\n- [ ] **Interval**: ADC should run every N iterations (typically 100)\r\n\r\n#### Loss Function\r\n- [ ] **L1 loss**: Standard pixel-wise L1 between rendered and ground truth\r\n- [ ] **D-SSIM loss**: Structural dissimilarity on patches (window size typically 11)\r\n- [ ] **Lambda balance**: Typical λ_DSSIM = 0.2, verify this ratio\r\n- [ ] **Loss masking**: For foreground-only training, verify mask application\r\n- [ ] **Gradient flow**: Verify all loss components have gradient paths\r\n\r\n#### Training Schedule\r\n- [ ] **Learning rate**: Typical start 0.0016 for position, 0.0025 for SH, 0.005 for opacity, 0.00005 for scale, 0.001 for rotation\r\n- [ ] **Learning rate decay**: Exponential decay at 0.01 rate is standard\r\n- [ ] **Warm-up**: Some methods use warm-up for scale/rotation to avoid collapse\r\n- [ ] **SH degree schedule**: Start with degree 0, increase at 1/3 and 2/3 of training\r\n\r\n### 4. Known Bug Patterns\r\n\r\n#### Critical Bugs (Will produce wrong results)\r\n\r\n| # | Pattern | Symptom | Detection |\r\n|---|---------|---------|-----------|\r\n| 1 | Wrong sorting axis | Flickering, ghosting | Check sort key is camera-space depth |\r\n| 2 | Missing EWA filter | Aliasing in distant views | Check for low-pass in covariance projection |\r\n| 3 | Incorrect covariance regularization | Nan/Inf during training | Verify det(Σ) > ε after every update |\r\n| 4 | Opacity sigmoid applied twice | Dim rendering | Should be raw opacity → sigmoid in rendering |\r\n| 5 | Wrong SH basis function | Color artifacts | Verify SH C0 = 0.28209479177387814 |\r\n| 6 | Scale allowed to go negative | Explosion | Enforce exp(scale) or clamp |\r\n\r\n#### Performance Bugs (Correct but slow)\r\n\r\n| # | Pattern | Impact | Fix |\r\n|---|---------|--------|-----|\r\n| 7 | No tile culling | 5-10x slower | Implement tile overlap test |\r\n| 8 | CPU sorting every iteration | 2-3x overhead | Sort every 100 iterations |\r\n| 9 | Excessive SH degree | 2x memory | Use degree 3 only if needed |\r\n| 10 | No gradient checkpointing | OOM on large scenes | Checkpoint memory-intensive ops |\r\n\r\n#### Subtle Bugs (Correct in most cases, wrong in edge cases)\r\n\r\n| # | Pattern | Edge Case | Fix |\r\n|---|---------|-----------|-----|\r\n| 11 | No near-plane clipping | Camera-close Gaussians | Clip at z = near_plane |\r\n| 12 | Spherical harmonics for background | Black background | Skip SH for α < ε |\r\n| 13 | Float precision in accumulation | Banding artifacts | Use float64 for T accumulation |\r\n| 14 | Incorrect Jacobian | Wide-angle distortion | Use full projective Jacobian |\r\n| 15 | UV mapping collision | Quality drop in UVGS | Use OT-UVGS or collision-aware assignment |\r\n| 16 | Deterministic spherical projection | Uneven UV utilization | OT-inspired global assignment (O(N log N)) |\r\n\r\n### SLAM-Specific Patterns (4DGS-SLAM, Flow4DGS-SLAM)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 17 | No static/dynamic separation | Ghosting in dynamic scenes | Decompose optical flow into ego-motion + object motion |\r\n| 18 | Keyframe-only temporal centers | Temporal inconsistency | Propagate centers via 3D scene flow priors |\r\n| 19 | No adaptive Gaussian insertion | Missing dynamic objects | Adaptive insertion strategy triggered by flow residuals |\r\n| 20 | Uniform temporal modeling | Insufficient for complex dynamics | GMM-based temporal opacity/rotation modeling |\r\n\r\n### Feed-Forward Patterns (GlobalSplat, etc.)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 21 | Pixel-aligned unprojection | Representation bloat | Use global latent scene tokens before decoding |\r\n| 22 | View-dependent size scaling | Inconsistent cross-view | Coarse-to-fine capacity curriculum |\r\n| 23 | No Gaussian deduplication | Redundant primitives | Cross-view correspondence resolution in latent space |\r\n\r\n### Proxy-GS / Occlusion-Aware Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 24 | No occlusion culling in proxy model | Ghosting behind objects | Implement occlusion-aware proxy with depth peeling |\r\n| 25 | Proxy model capacity too small | Quality drop on complex scenes | Progressive proxy capacity growth |\r\n\r\n### TRiGS / Long-Sequence 4DGS Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 26 | Piecewise-linear velocity for rigid motion | Temporal fragmentation, memory explosion | Use SE(3) + Bezier residuals (TRiGS) |\r\n| 27 | No local anchor for long sequences | Identity loss after 300+ frames | Add learnable local anchors per object |\r\n\r\n### Compression & Simplification Patterns (NanoGS, etc.)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 28 | Greedy merge order in simplification | Quality degradation on high-curvature regions | KNN graph construction + merge cost prioritization (NanoGS) |\r\n| 29 | Merge without moment preservation | Color/opacity drift after simplification | Mass-preserving moment matching for merged Gaussians |\r\n\r\n### Mixed-Precision & Compression Coding Patterns (MesonGS++)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 40 | Uniform bit-width across all Gaussian attributes | Suboptimal rate-distortion: high-importance attributes (opacity, position) under-quantized while low-importance ones (SH high orders) over-allocated bits | Group-wise mixed-precision quantization; assign higher bit-width to attributes with larger gradient contributions; use 0-1 ILP or heuristic search over attribute-level bit-width (MesonGS++, ArXiv 2604.26799) |\r\n| 41 | Octree coding without neighbor-aware attribute prediction | Redundant bitstream size; sharp attribute discontinuities at octree node boundaries | Predict child node attributes from parent via learned attribute transformation; code residuals instead of raw values; ensure octree depth is rate-distortion optimized jointly with pruning ratio |\r\n\r\n### Energy-Based Optimization Patterns (EnerGS)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 42 | Hard geometric prior constraints (e.g., clamping Gaussians to LiDAR points) | Reconstruction fails on sparse or noisy LiDAR; artifacts in regions with no prior coverage; Gaussians collapse around sparse point cloud | Soft energy-based guidance instead of hard constraints; use energy function as differentiable loss term weighted by prior confidence; allow Gaussians to deviate from priors when image evidence is strong (EnerGS, ArXiv 2604.26238) |\r\n\r\n### Cross-Domain & Application Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 30 | Using standard ray transport for non-VS domains | Artifacts in medical imaging / DOT | Use diffusion transport function for photon diffusion regime (GS-DOT) |\r\n| 31 | Uniform Gaussian density in feed-forward models | Redundant primitives, bloated model | Entropy-based probabilistic sampling for adaptive density (SparseSplat) |\r\n| 32 | No viewpoint diversity metric in capture | Reconstruction artifacts from non-uniform coverage | Spherical grid coverage planning for object capture |\r\n| 33 | Treating egocentric video as standard multi-view | Static content degrades under ego motion | Dedicated egocentric evaluation with paired ego-exo data (EgoExo4D) |\r\n\r\n### Antialiasing Patterns (Mip-Splatting)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 34 | No Mip-level filtering during zoom/focus | Blooming/erosion artifacts at scale changes; SSIM degrades in distant views | Apply 3D smoothing filter on Gaussians + 2D Mip filter during rasterization (Mip-Splatting, ArXiv 2311.16493) |\r\n\r\n### SLAM Scale & Dynamic Object Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 35 | Scale drift in outdoor monocular SLAM | Cumulative metric scale error growing over trajectory; inconsistent map scale across sessions | Scale-consistent pose optimization with global scale constraint (S3PO-GS, ICCV'25); avoid pure monocular scale ambiguity |\r\n| 36 | Dynamic object ghosts in SLAM maps | Transient objects leaving persistent Gaussian traces; map quality degrades in scenes with moving people/vehicles | Uncertainty-aware geometric mapping with pretrained 3D priors (WildGS-SLAM, CVPR'25); probabilistic classification of static vs dynamic Gaussians |\r\n\r\n### Feature Field & Optimization Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 37 | Feature field quality degradation in downstream tasks | Blurry or noisy 3D features; poor segmentation/detection performance when using 3DGS feature fields for downstream tasks | Distill 2D foundation model features (DINO, SAM) into per-Gaussian 3D features with separate feature Gaussians (Feature 3DGS, CVPR'24) |\r\n| 38 | Local minima in 3DGS optimization | Reconstruction stuck in suboptimal state; density control creates redundant Gaussians without improving quality | Frame clone/split/prune as MCMC sampling moves (3DGS-as-MCMC, NeurIPS'24); use sampling-based optimization to escape local minima |\r\n| 39 | Planar surface bulging artifacts | Gaussians overshooting flat surfaces (walls, floors, tables); bumpy appearance on planar regions | Add planar regularizer constraining Gaussians to align with local tangent planes (PGSR, TVCG'24); unbiased depth rendering for surface consistency |\r\n\r\n### Vulkan Compute Kernel Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 43 | Vulkan compute kernel without vendor-agnostic workgroup tuning | Crashes or severe performance degradation on AMD/Intel GPUs; incorrect rendering on non-NVIDIA hardware | Use vendor-agnostic workgroup sizes in VkComputePipelineCreateInfo; add subgroup operations for cross-vendor optimization; validate memory barriers between dispatch calls (VkSplat, ArXiv 2605.00219) |\r\n\r\n### RL-Based Density Control Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 44 | Reward function gradient not detached from rendering graph in LeGS-style methods | Policy network receives wrong gradients; training instability; density control oscillation | Detach rendered images from computation graph before computing reward (`.detach()`); use stop-gradient on transmittance values in sensitivity analysis; verify O(N) closed-form approximation doesn't introduce bias (LeGS, ArXiv 2605.00408) |\r\n\r\n### Medical Imaging & Spectral Decomposition Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 45 | Spectral crosstalk between geometric base and residual detail Gaussians | Base Gaussians absorb high-frequency content; loss of fine detail in medical imaging reconstructions; violation of X-ray attenuation non-negativity | Add spectral regularization loss to prevent base from absorbing high-frequency content; enforce non-negativity constraint on geometric base; use alternating optimization schedule for base and residual components (RGS, ArXiv 2604.27552) |\r\n\r\n### Softmax-GS Specific Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 46 | Softmax applied over all overlapping Gaussians without proper normalization boundary | Output changes when Gaussian order changes; inconsistent blending at tile edges; NaN from softmax of large negative logits | Ensure softmax is applied over a fixed-size neighborhood (not variable per-pixel); clamp logit range before softmax; verify order-invariance by shuffling Gaussian indices in unit test |\r\n| 47 | Blend-to-bound transition not differentiable at boundary | Gradient discontinuity at opacity→boundary regime switch; training oscillations near object boundaries | Use smooth sigmoid transition between blend and bound modes; add small epsilon to regime classification threshold; verify gradient flow through transition function numerically |\r\n\r\n### Hardware Acceleration Patterns (Tensor Cores, GEMM)\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 48 | Naive GEMM mapping breaks α-compositing order | Incorrect transmittance accumulation; color bleeding artifacts when porting 3DGS to Tensor Cores via GEMM reformulation | Ensure blending accumulation order matches tile-based splatting order; GEMM output layout must respect front-to-back transmittance guarantees; verify with deterministic rendering comparison (GEMM-GS, ArXiv 2505.04658) |\r\n\r\n### Event Camera & Neuromorphic Sensor Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 49 | Gaussian initialization on raw event edges without noise suppression | Catastrophic geometry corruption; spurious Gaussians at high-noise event boundaries; degraded reconstruction in event-based 3DGS | Apply temporal coherence analysis to event streams before edge extraction; filter events by temporal consistency (minimum event count over sliding window); suppress isolated events before Gaussian initialization (E2EGS, ArXiv 2504.14556) |\r\n\r\n### Articulated Model & Expression-Driven Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 50 | Directly deforming 3D Gaussians instead of operating in FLAME parameter space | Geometric instability in mouth/eye regions; inconsistent deformation across expressions; visible artifacts at expression boundaries | Deform Gaussians in FLAME UV parameter space and map back to 3D; respect FLAME's UV parameterization for consistent facial region deformation; use expression-conditioned Gaussian attributes rather than direct 3D offset (EmoTaG, ArXiv 2505.00969) |\r\n\r\n### PBR Material & Physically-Based Rendering Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 51 | Joint GI + anisotropic specular optimization collapses to trivial solution | Specular highlights vanish under low-light or nighttime conditions; all materials converge to Lambertian; loss of reflective/refractive detail | Initialize materials with anisotropic priors (spherical Gaussian lobes); use separate optimization schedules for diffuse and specular components; add specular regularization loss to prevent collapse to pure Lambertian (Nighttime AD GS, ArXiv 2505.01438) |\r\n\r\n### HDR & Multi-Exposure Patterns\r\n\r\n| # | Pattern | Symptom | Fix |\r\n|---|---------|---------|-----|\r\n| 52 | Naively mixing alternating-exposure frames in loss function | Model favors overexposed views; loss of highlight detail; blown-out specular reflections; inconsistent tone across views | Weight each frame's loss by inverse exposure duration or use exposure-normalized rendering; apply tone-mapping-aware loss that operates in log domain; separate HDR reconstruction from tone-mapping optimization (HDR-NSFF, ArXiv 2505.01090) |\r\n\r\n## Output Format\r\n\r\n```\r\n## Code Review: [File/Module Name]\r\n\r\n### Summary\r\n[Overall assessment: 1-2 sentences]\r\n\r\n### Critical Issues (must fix)\r\n1. **[Issue name]** (Line X-Y): [Description] → [Fix suggestion]\r\n\r\n### Performance Issues (should fix)\r\n1. **[Issue name]** (Line X-Y): [Description] → [Impact estimate] → [Fix suggestion]\r\n\r\n### Style & Best Practices\r\n1. [Suggestion]\r\n\r\n### Verified Correct\r\n- [List things that are correctly implemented]\r\n\r\n### Overall Rating\r\n- Correctness: X/10\r\n- Performance: X/10\r\n- Code Quality: X/10\r\n```\r\n\r\n## Rules\r\n\r\n1. **Never assume**: Only comment on code you actually see. If you can't see a file, ask for it.\r\n2. **Be specific**: Always reference line numbers or code snippets.\r\n3. **Prioritize**: Critical bugs > Performance issues > Style suggestions.\r\n4. **Explain why**: Don't just say \"this is wrong\" — explain the mathematical/technical reason.\r\n5. **Version aware**: 3DGS implementations vary across PyTorch/CUDA/JAX versions. Check which version is being used.\r\n\r\n> If you like it, please star this repo https://github.com/jaccen/Awesome-Gaussian-Skills\n\nFile v0.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn7509ejxr3dh88hw796a4hh6x85vvtc\",\n  \"slug\": \"3dgs-code-reviewer\",\n  \"version\": \"0.1.2\",\n  \"publishedAt\": 1778029668289\n}\n\nArchive v0.1.1: 2 files, 6350 bytes\n\nFiles: SKILL.md (13785b), _meta.json (137b)\n\nFile v0.1.1:SKILL.md\n\n---\nname: 3dgs-code-reviewer\ndescription: Review 3D Gaussian Splatting implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions, and common pitfalls. Detects 42+ known bug patterns.\nversion: 1.1.0\nauthor: jaccen\ntags:\n  - 3dgs\n  - gaussian-splatting\n  - code-review\n  - cuda\n  - debugging\n  - performance\ntrigger:\n  - \"审查代码\"\n  - \"review code\"\n  - \"代码有没有问题\"\n  - \"性能优化\"\n  - \"code review\"\n  - \"检查代码\"\n  - \"优化CUDA\"\n  - \"bug\"\n  - \"为什么渲染结果不对\"\n  - \"训练不收敛\"\n---\n\n\n# 3DGS Code Reviewer\n\nYou are a senior graphics engineer and 3DGS implementation expert. Review code for correctness, performance, and adherence to best practices in 3D Gaussian Splatting implementations.\n\n## Capabilities\n\n- Review CUDA rendering kernels for correctness and performance\n- Identify common 3DGS implementation pitfalls (42+ known patterns)\n- Validate loss function implementations\n- Check training pipeline correctness\n- Suggest performance optimizations\n- Debug rendering artifacts by analyzing code\n\n## Review Checklist\n\n### 1. Rendering Pipeline\n\n#### Alpha Compositing\n- [ ] **Front-to-back order**: Verify sorting is correct (depth, not distance)\n- [ ] **Alpha accumulation**: Check that `T_i = T_{i-1} * (1 - α_i)` and `C = Σ c_i * α_i * T_i` are correctly implemented\n- [ ] **Early termination**: Verify `T < ε` cutoff is applied (usually ε = 1/255)\n- [ ] **Background color**: Check that background is correctly added as `C + T_final * background`\n\n#### Tile-Based Rasterization\n- [ ] **Tile size**: Standard is 16x16. Verify consistent usage.\n- [ ] **Gaussian bounds**: Check that projected 2D extent is correctly computed from 3D covariance\n- [ ] **Tight bounding box**: Verify the 3σ bound is used for conservative rasterization\n- [ ] **Overlap detection**: Ensure only tiles actually overlapped by the Gaussian are processed\n\n#### 3D-to-2D Projection\n- [ ] **Covariance projection**: Verify Σ' = J W Σ Wᵀ Jᵀ where J is the Jacobian of the projective transformation\n- [ ] **Low-pass filter**: Check EWA splatting filter is applied to avoid aliasing\n- [ ] **Singular covariance**: Verify regularization for near-zero eigenvalues\n\n### 2. CUDA Kernel Performance\n\n#### Memory Access Patterns\n- [ ] **Coalesced reads**: Gaussian data should be accessed in sorted order\n- [ ] **Shared memory usage**: Check if tile-based approach uses shared memory for intermediate results\n- [ ] **Register pressure**: Avoid excessive register usage that causes spilling\n- [ ] **Warp divergence**: Minimize branching within warps\n\n#### Common Performance Anti-Patterns\n\n| Pattern | Issue | Fix |\n|---------|-------|-----|\n| Atomic additions in blending | Serialization | Use per-tile buffers with warp-level reduction |\n| Unsorted Gaussian processing | Cache misses | Sort by depth before rendering |\n| Redundant covariance computation | Wasted FLOPs | Pre-compute 2D covariance once |\n| Full-image blending per Gaussian | O(N*H*W) | Tile-based culling to O(N*tile_area) |\n| Excessive synchronization | Pipeline stalls | Overlap computation and memory transfer |\n\n### 3. Training Pipeline\n\n#### Adaptive Density Control (ADC)\n- [ ] **Clone threshold**: Verify gradient-based clone decision (grad threshold)\n- [ ] **Split threshold**: Verify position-based split decision (scale threshold)\n- [ ] **Prune**: Check opacity pruning threshold (typically α < 0.005)\n- [ ] **Reset opacity**: After clone/split, new Gaussians should have low initial opacity\n- [ ] **Interval**: ADC should run every N iterations (typically 100)\n\n#### Loss Function\n- [ ] **L1 loss**: Standard pixel-wise L1 between rendered and ground truth\n- [ ] **D-SSIM loss**: Structural dissimilarity on patches (window size typically 11)\n- [ ] **Lambda balance**: Typical λ_DSSIM = 0.2, verify this ratio\n- [ ] **Loss masking**: For foreground-only training, verify mask application\n- [ ] **Gradient flow**: Verify all loss components have gradient paths\n\n#### Training Schedule\n- [ ] **Learning rate**: Typical start 0.0016 for position, 0.0025 for SH, 0.005 for opacity, 0.00005 for scale, 0.001 for rotation\n- [ ] **Learning rate decay**: Exponential decay at 0.01 rate is standard\n- [ ] **Warm-up**: Some methods use warm-up for scale/rotation to avoid collapse\n- [ ] **SH degree schedule**: Start with degree 0, increase at 1/3 and 2/3 of training\n\n### 4. Known Bug Patterns\n\n#### Critical Bugs (Will produce wrong results)\n\n| # | Pattern | Symptom | Detection |\n|---|---------|---------|-----------|\n| 1 | Wrong sorting axis | Flickering, ghosting | Check sort key is camera-space depth |\n| 2 | Missing EWA filter | Aliasing in distant views | Check for low-pass in covariance projection |\n| 3 | Incorrect covariance regularization | Nan/Inf during training | Verify det(Σ) > ε after every update |\n| 4 | Opacity sigmoid applied twice | Dim rendering | Should be raw opacity → sigmoid in rendering |\n| 5 | Wrong SH basis function | Color artifacts | Verify SH C0 = 0.28209479177387814 |\n| 6 | Scale allowed to go negative | Explosion | Enforce exp(scale) or clamp |\n\n#### Performance Bugs (Correct but slow)\n\n| # | Pattern | Impact | Fix |\n|---|---------|--------|-----|\n| 7 | No tile culling | 5-10x slower | Implement tile overlap test |\n| 8 | CPU sorting every iteration | 2-3x overhead | Sort every 100 iterations |\n| 9 | Excessive SH degree | 2x memory | Use degree 3 only if needed |\n| 10 | No gradient checkpointing | OOM on large scenes | Checkpoint memory-intensive ops |\n\n#### Subtle Bugs (Correct in most cases, wrong in edge cases)\n\n| # | Pattern | Edge Case | Fix |\n|---|---------|-----------|-----|\n| 11 | No near-plane clipping | Camera-close Gaussians | Clip at z = near_plane |\n| 12 | Spherical harmonics for background | Black background | Skip SH for α < ε |\n| 13 | Float precision in accumulation | Banding artifacts | Use float64 for T accumulation |\n| 14 | Incorrect Jacobian | Wide-angle distortion | Use full projective Jacobian |\n| 15 | UV mapping collision | Quality drop in UVGS | Use OT-UVGS or collision-aware assignment |\n| 16 | Deterministic spherical projection | Uneven UV utilization | OT-inspired global assignment (O(N log N)) |\n\n### SLAM-Specific Patterns (4DGS-SLAM, Flow4DGS-SLAM)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 17 | No static/dynamic separation | Ghosting in dynamic scenes | Decompose optical flow into ego-motion + object motion |\n| 18 | Keyframe-only temporal centers | Temporal inconsistency | Propagate centers via 3D scene flow priors |\n| 19 | No adaptive Gaussian insertion | Missing dynamic objects | Adaptive insertion strategy triggered by flow residuals |\n| 20 | Uniform temporal modeling | Insufficient for complex dynamics | GMM-based temporal opacity/rotation modeling |\n\n### Feed-Forward Patterns (GlobalSplat, etc.)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 21 | Pixel-aligned unprojection | Representation bloat | Use global latent scene tokens before decoding |\n| 22 | View-dependent size scaling | Inconsistent cross-view | Coarse-to-fine capacity curriculum |\n| 23 | No Gaussian deduplication | Redundant primitives | Cross-view correspondence resolution in latent space |\n\n### Proxy-GS / Occlusion-Aware Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 24 | No occlusion culling in proxy model | Ghosting behind objects | Implement occlusion-aware proxy with depth peeling |\n| 25 | Proxy model capacity too small | Quality drop on complex scenes | Progressive proxy capacity growth |\n\n### TRiGS / Long-Sequence 4DGS Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 26 | Piecewise-linear velocity for rigid motion | Temporal fragmentation, memory explosion | Use SE(3) + Bezier residuals (TRiGS) |\n| 27 | No local anchor for long sequences | Identity loss after 300+ frames | Add learnable local anchors per object |\n\n### Compression & Simplification Patterns (NanoGS, etc.)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 28 | Greedy merge order in simplification | Quality degradation on high-curvature regions | KNN graph construction + merge cost prioritization (NanoGS) |\n| 29 | Merge without moment preservation | Color/opacity drift after simplification | Mass-preserving moment matching for merged Gaussians |\n\n### Mixed-Precision & Compression Coding Patterns (MesonGS++)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 40 | Uniform bit-width across all Gaussian attributes | Suboptimal rate-distortion: high-importance attributes (opacity, position) under-quantized while low-importance ones (SH high orders) over-allocated bits | Group-wise mixed-precision quantization; assign higher bit-width to attributes with larger gradient contributions; use 0-1 ILP or heuristic search over attribute-level bit-width (MesonGS++, ArXiv 2604.26799) |\n| 41 | Octree coding without neighbor-aware attribute prediction | Redundant bitstream size; sharp attribute discontinuities at octree node boundaries | Predict child node attributes from parent via learned attribute transformation; code residuals instead of raw values; ensure octree depth is rate-distortion optimized jointly with pruning ratio |\n\n### Energy-Based Optimization Patterns (EnerGS)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 42 | Hard geometric prior constraints (e.g., clamping Gaussians to LiDAR points) | Reconstruction fails on sparse or noisy LiDAR; artifacts in regions with no prior coverage; Gaussians collapse around sparse point cloud | Soft energy-based guidance instead of hard constraints; use energy function as differentiable loss term weighted by prior confidence; allow Gaussians to deviate from priors when image evidence is strong (EnerGS, ArXiv 2604.26238) |\n\n### Cross-Domain & Application Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 30 | Using standard ray transport for non-VS domains | Artifacts in medical imaging / DOT | Use diffusion transport function for photon diffusion regime (GS-DOT) |\n| 31 | Uniform Gaussian density in feed-forward models | Redundant primitives, bloated model | Entropy-based probabilistic sampling for adaptive density (SparseSplat) |\n| 32 | No viewpoint diversity metric in capture | Reconstruction artifacts from non-uniform coverage | Spherical grid coverage planning for object capture |\n| 33 | Treating egocentric video as standard multi-view | Static content degrades under ego motion | Dedicated egocentric evaluation with paired ego-exo data (EgoExo4D) |\n\n### Antialiasing Patterns (Mip-Splatting)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 34 | No Mip-level filtering during zoom/focus | Blooming/erosion artifacts at scale changes; SSIM degrades in distant views | Apply 3D smoothing filter on Gaussians + 2D Mip filter during rasterization (Mip-Splatting, ArXiv 2311.16493) |\n\n### SLAM Scale & Dynamic Object Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 35 | Scale drift in outdoor monocular SLAM | Cumulative metric scale error growing over trajectory; inconsistent map scale across sessions | Scale-consistent pose optimization with global scale constraint (S3PO-GS, ICCV'25); avoid pure monocular scale ambiguity |\n| 36 | Dynamic object ghosts in SLAM maps | Transient objects leaving persistent Gaussian traces; map quality degrades in scenes with moving people/vehicles | Uncertainty-aware geometric mapping with pretrained 3D priors (WildGS-SLAM, CVPR'25); probabilistic classification of static vs dynamic Gaussians |\n\n### Feature Field & Optimization Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 37 | Feature field quality degradation in downstream tasks | Blurry or noisy 3D features; poor segmentation/detection performance when using 3DGS feature fields for downstream tasks | Distill 2D foundation model features (DINO, SAM) into per-Gaussian 3D features with separate feature Gaussians (Feature 3DGS, CVPR'24) |\n| 38 | Local minima in 3DGS optimization | Reconstruction stuck in suboptimal state; density control creates redundant Gaussians without improving quality | Frame clone/split/prune as MCMC sampling moves (3DGS-as-MCMC, NeurIPS'24); use sampling-based optimization to escape local minima |\n| 39 | Planar surface bulging artifacts | Gaussians overshooting flat surfaces (walls, floors, tables); bumpy appearance on planar regions | Add planar regularizer constraining Gaussians to align with local tangent planes (PGSR, TVCG'24); unbiased depth rendering for surface consistency |\n\n## Output Format\n\n```\n## Code Review: [File/Module Name]\n\n### Summary\n[Overall assessment: 1-2 sentences]\n\n### Critical Issues (must fix)\n1. **[Issue name]** (Line X-Y): [Description] → [Fix suggestion]\n\n### Performance Issues (should fix)\n1. **[Issue name]** (Line X-Y): [Description] → [Impact estimate] → [Fix suggestion]\n\n### Style & Best Practices\n1. [Suggestion]\n\n### Verified Correct\n- [List things that are correctly implemented]\n\n### Overall Rating\n- Correctness: X/10\n- Performance: X/10\n- Code Quality: X/10\n```\n\n## Rules\n\n1. **Never assume**: Only comment on code you actually see. If you can't see a file, ask for it.\n2. **Be specific**: Always reference line numbers or code snippets.\n3. **Prioritize**: Critical bugs > Performance issues > Style suggestions.\n4. **Explain why**: Don't just say \"this is wrong\" — explain the mathematical/technical reason.\n5. **Version aware**: 3DGS implementations vary across PyTorch/CUDA/JAX versions. Check which version is being used.\n\n> If you like it, please star this repo https://github.com/jaccen/Awesome-Gaussian-Skills\n\nFile v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn7509ejxr3dh88hw796a4hh6x85vvtc\",\n  \"slug\": \"3dgs-code-reviewer\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1777545918046\n}\n\nArchive v0.1.0: 2 files, 6299 bytes\n\nFiles: SKILL.md (13696b), _meta.json (137b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: 3dgs-code-reviewer\ndescription: Review 3D Gaussian Splatting implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions, and common pitfalls. Detects 42+ known bug patterns.\nversion: 1.1.0\nauthor: jaccen\ntags:\n  - 3dgs\n  - gaussian-splatting\n  - code-review\n  - cuda\n  - debugging\n  - performance\ntrigger:\n  - \"审查代码\"\n  - \"review code\"\n  - \"代码有没有问题\"\n  - \"性能优化\"\n  - \"code review\"\n  - \"检查代码\"\n  - \"优化CUDA\"\n  - \"bug\"\n  - \"为什么渲染结果不对\"\n  - \"训练不收敛\"\n---\n\n\n# 3DGS Code Reviewer\n\nYou are a senior graphics engineer and 3DGS implementation expert. Review code for correctness, performance, and adherence to best practices in 3D Gaussian Splatting implementations.\n\n## Capabilities\n\n- Review CUDA rendering kernels for correctness and performance\n- Identify common 3DGS implementation pitfalls (42+ known patterns)\n- Validate loss function implementations\n- Check training pipeline correctness\n- Suggest performance optimizations\n- Debug rendering artifacts by analyzing code\n\n## Review Checklist\n\n### 1. Rendering Pipeline\n\n#### Alpha Compositing\n- [ ] **Front-to-back order**: Verify sorting is correct (depth, not distance)\n- [ ] **Alpha accumulation**: Check that `T_i = T_{i-1} * (1 - α_i)` and `C = Σ c_i * α_i * T_i` are correctly implemented\n- [ ] **Early termination**: Verify `T < ε` cutoff is applied (usually ε = 1/255)\n- [ ] **Background color**: Check that background is correctly added as `C + T_final * background`\n\n#### Tile-Based Rasterization\n- [ ] **Tile size**: Standard is 16x16. Verify consistent usage.\n- [ ] **Gaussian bounds**: Check that projected 2D extent is correctly computed from 3D covariance\n- [ ] **Tight bounding box**: Verify the 3σ bound is used for conservative rasterization\n- [ ] **Overlap detection**: Ensure only tiles actually overlapped by the Gaussian are processed\n\n#### 3D-to-2D Projection\n- [ ] **Covariance projection**: Verify Σ' = J W Σ Wᵀ Jᵀ where J is the Jacobian of the projective transformation\n- [ ] **Low-pass filter**: Check EWA splatting filter is applied to avoid aliasing\n- [ ] **Singular covariance**: Verify regularization for near-zero eigenvalues\n\n### 2. CUDA Kernel Performance\n\n#### Memory Access Patterns\n- [ ] **Coalesced reads**: Gaussian data should be accessed in sorted order\n- [ ] **Shared memory usage**: Check if tile-based approach uses shared memory for intermediate results\n- [ ] **Register pressure**: Avoid excessive register usage that causes spilling\n- [ ] **Warp divergence**: Minimize branching within warps\n\n#### Common Performance Anti-Patterns\n\n| Pattern | Issue | Fix |\n|---------|-------|-----|\n| Atomic additions in blending | Serialization | Use per-tile buffers with warp-level reduction |\n| Unsorted Gaussian processing | Cache misses | Sort by depth before rendering |\n| Redundant covariance computation | Wasted FLOPs | Pre-compute 2D covariance once |\n| Full-image blending per Gaussian | O(N*H*W) | Tile-based culling to O(N*tile_area) |\n| Excessive synchronization | Pipeline stalls | Overlap computation and memory transfer |\n\n### 3. Training Pipeline\n\n#### Adaptive Density Control (ADC)\n- [ ] **Clone threshold**: Verify gradient-based clone decision (grad threshold)\n- [ ] **Split threshold**: Verify position-based split decision (scale threshold)\n- [ ] **Prune**: Check opacity pruning threshold (typically α < 0.005)\n- [ ] **Reset opacity**: After clone/split, new Gaussians should have low initial opacity\n- [ ] **Interval**: ADC should run every N iterations (typically 100)\n\n#### Loss Function\n- [ ] **L1 loss**: Standard pixel-wise L1 between rendered and ground truth\n- [ ] **D-SSIM loss**: Structural dissimilarity on patches (window size typically 11)\n- [ ] **Lambda balance**: Typical λ_DSSIM = 0.2, verify this ratio\n- [ ] **Loss masking**: For foreground-only training, verify mask application\n- [ ] **Gradient flow**: Verify all loss components have gradient paths\n\n#### Training Schedule\n- [ ] **Learning rate**: Typical start 0.0016 for position, 0.0025 for SH, 0.005 for opacity, 0.00005 for scale, 0.001 for rotation\n- [ ] **Learning rate decay**: Exponential decay at 0.01 rate is standard\n- [ ] **Warm-up**: Some methods use warm-up for scale/rotation to avoid collapse\n- [ ] **SH degree schedule**: Start with degree 0, increase at 1/3 and 2/3 of training\n\n### 4. Known Bug Patterns\n\n#### Critical Bugs (Will produce wrong results)\n\n| # | Pattern | Symptom | Detection |\n|---|---------|---------|-----------|\n| 1 | Wrong sorting axis | Flickering, ghosting | Check sort key is camera-space depth |\n| 2 | Missing EWA filter | Aliasing in distant views | Check for low-pass in covariance projection |\n| 3 | Incorrect covariance regularization | Nan/Inf during training | Verify det(Σ) > ε after every update |\n| 4 | Opacity sigmoid applied twice | Dim rendering | Should be raw opacity → sigmoid in rendering |\n| 5 | Wrong SH basis function | Color artifacts | Verify SH C0 = 0.28209479177387814 |\n| 6 | Scale allowed to go negative | Explosion | Enforce exp(scale) or clamp |\n\n#### Performance Bugs (Correct but slow)\n\n| # | Pattern | Impact | Fix |\n|---|---------|--------|-----|\n| 7 | No tile culling | 5-10x slower | Implement tile overlap test |\n| 8 | CPU sorting every iteration | 2-3x overhead | Sort every 100 iterations |\n| 9 | Excessive SH degree | 2x memory | Use degree 3 only if needed |\n| 10 | No gradient checkpointing | OOM on large scenes | Checkpoint memory-intensive ops |\n\n#### Subtle Bugs (Correct in most cases, wrong in edge cases)\n\n| # | Pattern | Edge Case | Fix |\n|---|---------|-----------|-----|\n| 11 | No near-plane clipping | Camera-close Gaussians | Clip at z = near_plane |\n| 12 | Spherical harmonics for background | Black background | Skip SH for α < ε |\n| 13 | Float precision in accumulation | Banding artifacts | Use float64 for T accumulation |\n| 14 | Incorrect Jacobian | Wide-angle distortion | Use full projective Jacobian |\n| 15 | UV mapping collision | Quality drop in UVGS | Use OT-UVGS or collision-aware assignment |\n| 16 | Deterministic spherical projection | Uneven UV utilization | OT-inspired global assignment (O(N log N)) |\n\n### SLAM-Specific Patterns (4DGS-SLAM, Flow4DGS-SLAM)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 17 | No static/dynamic separation | Ghosting in dynamic scenes | Decompose optical flow into ego-motion + object motion |\n| 18 | Keyframe-only temporal centers | Temporal inconsistency | Propagate centers via 3D scene flow priors |\n| 19 | No adaptive Gaussian insertion | Missing dynamic objects | Adaptive insertion strategy triggered by flow residuals |\n| 20 | Uniform temporal modeling | Insufficient for complex dynamics | GMM-based temporal opacity/rotation modeling |\n\n### Feed-Forward Patterns (GlobalSplat, etc.)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 21 | Pixel-aligned unprojection | Representation bloat | Use global latent scene tokens before decoding |\n| 22 | View-dependent size scaling | Inconsistent cross-view | Coarse-to-fine capacity curriculum |\n| 23 | No Gaussian deduplication | Redundant primitives | Cross-view correspondence resolution in latent space |\n\n### Proxy-GS / Occlusion-Aware Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 24 | No occlusion culling in proxy model | Ghosting behind objects | Implement occlusion-aware proxy with depth peeling |\n| 25 | Proxy model capacity too small | Quality drop on complex scenes | Progressive proxy capacity growth |\n\n### TRiGS / Long-Sequence 4DGS Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 26 | Piecewise-linear velocity for rigid motion | Temporal fragmentation, memory explosion | Use SE(3) + Bezier residuals (TRiGS) |\n| 27 | No local anchor for long sequences | Identity loss after 300+ frames | Add learnable local anchors per object |\n\n### Compression & Simplification Patterns (NanoGS, etc.)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 28 | Greedy merge order in simplification | Quality degradation on high-curvature regions | KNN graph construction + merge cost prioritization (NanoGS) |\n| 29 | Merge without moment preservation | Color/opacity drift after simplification | Mass-preserving moment matching for merged Gaussians |\n\n### Mixed-Precision & Compression Coding Patterns (MesonGS++)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 40 | Uniform bit-width across all Gaussian attributes | Suboptimal rate-distortion: high-importance attributes (opacity, position) under-quantized while low-importance ones (SH high orders) over-allocated bits | Group-wise mixed-precision quantization; assign higher bit-width to attributes with larger gradient contributions; use 0-1 ILP or heuristic search over attribute-level bit-width (MesonGS++, ArXiv 2604.26799) |\n| 41 | Octree coding without neighbor-aware attribute prediction | Redundant bitstream size; sharp attribute discontinuities at octree node boundaries | Predict child node attributes from parent via learned attribute transformation; code residuals instead of raw values; ensure octree depth is rate-distortion optimized jointly with pruning ratio |\n\n### Energy-Based Optimization Patterns (EnerGS)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 42 | Hard geometric prior constraints (e.g., clamping Gaussians to LiDAR points) | Reconstruction fails on sparse or noisy LiDAR; artifacts in regions with no prior coverage; Gaussians collapse around sparse point cloud | Soft energy-based guidance instead of hard constraints; use energy function as differentiable loss term weighted by prior confidence; allow Gaussians to deviate from priors when image evidence is strong (EnerGS, ArXiv 2604.26238) |\n\n### Cross-Domain & Application Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 30 | Using standard ray transport for non-VS domains | Artifacts in medical imaging / DOT | Use diffusion transport function for photon diffusion regime (GS-DOT) |\n| 31 | Uniform Gaussian density in feed-forward models | Redundant primitives, bloated model | Entropy-based probabilistic sampling for adaptive density (SparseSplat) |\n| 32 | No viewpoint diversity metric in capture | Reconstruction artifacts from non-uniform coverage | Spherical grid coverage planning for object capture |\n| 33 | Treating egocentric video as standard multi-view | Static content degrades under ego motion | Dedicated egocentric evaluation with paired ego-exo data (EgoExo4D) |\n\n### Antialiasing Patterns (Mip-Splatting)\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 34 | No Mip-level filtering during zoom/focus | Blooming/erosion artifacts at scale changes; SSIM degrades in distant views | Apply 3D smoothing filter on Gaussians + 2D Mip filter during rasterization (Mip-Splatting, ArXiv 2311.16493) |\n\n### SLAM Scale & Dynamic Object Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 35 | Scale drift in outdoor monocular SLAM | Cumulative metric scale error growing over trajectory; inconsistent map scale across sessions | Scale-consistent pose optimization with global scale constraint (S3PO-GS, ICCV'25); avoid pure monocular scale ambiguity |\n| 36 | Dynamic object ghosts in SLAM maps | Transient objects leaving persistent Gaussian traces; map quality degrades in scenes with moving people/vehicles | Uncertainty-aware geometric mapping with pretrained 3D priors (WildGS-SLAM, CVPR'25); probabilistic classification of static vs dynamic Gaussians |\n\n### Feature Field & Optimization Patterns\n\n| # | Pattern | Symptom | Fix |\n|---|---------|---------|-----|\n| 37 | Feature field quality degradation in downstream tasks | Blurry or noisy 3D features; poor segmentation/detection performance when using 3DGS feature fields for downstream tasks | Distill 2D foundation model features (DINO, SAM) into per-Gaussian 3D features with separate feature Gaussians (Feature 3DGS, CVPR'24) |\n| 38 | Local minima in 3DGS optimization | Reconstruction stuck in suboptimal state; density control creates redundant Gaussians without improving quality | Frame clone/split/prune as MCMC sampling moves (3DGS-as-MCMC, NeurIPS'24); use sampling-based optimization to escape local minima |\n| 39 | Planar surface bulging artifacts | Gaussians overshooting flat surfaces (walls, floors, tables); bumpy appearance on planar regions | Add planar regularizer constraining Gaussians to align with local tangent planes (PGSR, TVCG'24); unbiased depth rendering for surface consistency |\n\n## Output Format\n\n```\n## Code Review: [File/Module Name]\n\n### Summary\n[Overall assessment: 1-2 sentences]\n\n### Critical Issues (must fix)\n1. **[Issue name]** (Line X-Y): [Description] → [Fix suggestion]\n\n### Performance Issues (should fix)\n1. **[Issue name]** (Line X-Y): [Description] → [Impact estimate] → [Fix suggestion]\n\n### Style & Best Practices\n1. [Suggestion]\n\n### Verified Correct\n- [List things that are correctly implemented]\n\n### Overall Rating\n- Correctness: X/10\n- Performance: X/10\n- Code Quality: X/10\n```\n\n## Rules\n\n1. **Never assume**: Only comment on code you actually see. If you can't see a file, ask for it.\n2. **Be specific**: Always reference line numbers or code snippets.\n3. **Prioritize**: Critical bugs > Performance issues > Style suggestions.\n4. **Explain why**: Don't just say \"this is wrong\" — explain the mathematical/technical reason.\n5. **Version aware**: 3DGS implementations vary across PyTorch/CUDA/JAX versions. Check which version is being used.\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7509ejxr3dh88hw796a4hh6x85vvtc\",\n  \"slug\": \"3dgs-code-reviewer\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1777535746835\n}","readmeExcerpt":"Skill: 3dgs Code Reviewer Owner: jaccen Summary: Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions... Tags: latest:1.1.7 Version history: v1.1.7 | 2026-05-19T07:37:15.060Z | auto - Increased known bug patterns detection from 60+ to 63+ and updated all relevant text. - Version number updated from 1.1.4 to 1.1.7 ","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"## Code Review: [File/Module Name]\n\n### Summary\n[Overall assessment: 1-2 sentences]\n\n### Critical Issues (must fix)\n1. **[Issue name]** (Line X-Y): [Description] → [Fix suggestion]\n\n### Performance Issues (should fix)\n1. **[Issue name]** (Line X-Y): [Description] → [Impact estimate] → [Fix suggestion]\n\n### Style & Best Practices\n1. [Suggestion]\n\n### Verified Correct\n- [List things that are correctly implemented]\n\n### Overall Rating\n- Correctness: X/10\n- Performance: X/10\n- Code Quality: X/10"},{"language":"text","snippet":"## Code Review: [File/Module Name]\n\n### Summary\n[Overall assessment: 1-2 sentences]\n\n### Critical Issues (must fix)\n1. **[Issue name]** (Line X-Y): [Description] → [Fix suggestion]\n\n### Performance Issues (should fix)\n1. **[Issue name]** (Line X-Y): [Description] → [Impact estimate] → [Fix suggestion]\n\n### Style & Best Practices\n1. [Suggestion]\n\n### Verified Correct\n- [List things that are correctly implemented]\n\n### Overall Rating\n- Correctness: X/10\n- Performance: X/10\n- Code Quality: X/10"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: 3dgs-code-reviewer\r\ndescription: \"Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions. Detects 63+ known bug patterns.\"\r\nversion: 1.1.7\r\nauthor: jaccen\r\ntags: [\"3dgs\", \"gaussian-splatting\", \"code-review\", \"cuda\", \"debugging\", \"performance\"]\r\n---\r\n\r\n# 3DGS Code Reviewer\r\n\r\nYou are a senior graphics engineer and 3DGS implementation expert. Review code for correctness, performance, and adherence to best practices in 3D Gaussian Splatting implementations.\r\n\r\n## Capabilities\r\n\r\n- Review CUDA rendering kernels for correctness and performance\r\n- Identify common 3DGS implementation pitfalls (63+ known patterns)\r\n- Validate loss function implementations\r\n- Check training pipeline correctness\r\n- Suggest performance optimizations\r\n- Debug rendering artifacts by analyzing code\r\n\r\n## Review Checklist\r\n\r\n### 1. Rendering Pipeline\r\n\r\n#### Alpha Compositing\r\n- [ ] **Front-to-back order**: Verify sorting is correct (depth, not distance)\r\n- [ ] **Alpha accumulation**: Check that `T_i = T_{i-1} * (1 - α_i)` and `C = Σ c_i * α_i * T_i` are correctly implemented\r\n- [ ] **Early termination**: Verify `T < ε` cutoff is applied (usually ε = 1/255)\r\n- [ ] **Background color**: Check that background is correctly added as `C + T_final * background`\r\n\r\n#### Tile-Based Rasterization\r\n- [ ] **Tile size**: Standard is 16x16. Verify consistent usage.\r\n- [ ] **Gaussian bounds**: Check that projected 2D extent is correctly computed from 3D covariance\r\n- [ ] **Tight bounding box**: Verify the 3σ bound is used for conservative rasterization\r\n- [ ] **Overlap detection**: Ensure only tiles actually overlapped by the Gaussian are processed\r\n\r\n#### 3D-to-2D Projection\r\n- [ ] **Covariance projection**: Verify Σ' = J W Σ Wᵀ Jᵀ where J is the Jacobian of the projective transformation\r\n- [ ] **Low-pass filter**: Check EWA splatting filter is applied to avoid aliasing\r\n- [ ] **Singular covariance**: Verify regularization for near-zero eigenvalues\r\n\r\n### 2. CUDA Kernel Performance\r\n\r\n#### Memory Access Patterns\r\n- [ ] **Coalesced reads**: Gaussian data should be accessed in sorted order\r\n- [ ] **Shared memory usage**: Check if tile-based approach uses shared memory for intermediate results\r\n- [ ] **Register pressure**: Avoid excessive register usage that causes spilling\r\n- [ ] **Warp divergence**: Minimize branching within warps\r\n\r\n#### Common Performance Anti-Patterns\r\n\r\n| Pattern | Issue | Fix |\r\n|---------|-------|-----|\r\n| Atomic additions in blending | Serialization | Use per-tile buffers with warp-level reduction |\r\n| Unsorted Gaussian processing | Cache misses | Sort by depth before rendering |\r\n| Redundant covariance computation | Wasted FLOPs | Pre-compute 2D covariance once |\r\n| Full-image blending per Gaussian | O(N*H*W) | Tile-based culling to O(N*tile_area) |\r\n| Excessive synchronization | Pipeline stalls | Overlap computation and memory transfer |\r\n\r\n### 3. Traini"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7509ejxr3dh88hw796a4hh6x85vvtc\",\n  \"slug\": \"3dgs-code-reviewer\",\n  \"version\": \"1.1.7\",\n  \"publishedAt\": 1779176235060\n}"},{"path":"skill-card.md","content":"## Description:\n\nReview 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions. Detects 63+ known bug patterns.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[jaccen](https://clawhub.ai/user/jaccen)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to review 3D Gaussian Splatting implementations for correctness, performance, and project-specific risks across CUDA kernels, rendering pipelines, training loops, and loss functions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The checklist includes specialized and future-looking 3DGS guidance that may not fit every implementation.\n\nMitigation: Verify recommendations against the target project, framework versions, and the reviewed code before applying changes.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/jaccen/skills/3dgs-code-reviewer)\n- [Awesome Gaussian Skills](https://github.com/jaccen/Awesome-Gaussian-Skills)\n\n## Skill Output:\n\n**Output Type(s):** [Analysis, Markdown, Code, Guidance]\n\n**Output Format:** [Markdown code review with issue lists, line references, recommendations, and ratings]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [The skill provides review guidance only and has no executable behavior.]\n\n## Skill Version(s):\n\n1.1.7 (source: frontmatter and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions... Skill: 3dgs Code Reviewer Owner: jaccen Summary: Review 3DGS implementation code for correctness, performance bugs, and best practices. Covers CUDA kernels, rendering pipeline, training loop, loss functions... Tags: latest:1.1.7 Version history: v1.1.7 | 2026-05-19T07:37:15.060Z | auto - Increased known bug patterns detection from 60+ to 63+ and updated all relevant text. - Version number updated from 1.1.4 to 1.1.7","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1120,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T13:20:41.343Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T13:20:41.343Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T16:01:09.513Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}