jaccen/awesome-gaussian-skills/3dgs-visualizer

Claude Code and agent skill by jaccen/awesome-gaussian-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

'Generate publication-quality visualizations for 3DGS research: radar charts, comparison tables, method

Install

npx vskill@latest install jaccen/awesome-gaussian-skills/3dgs-visualizer

SKILL.md

3DGS Visualizer — Publication-Quality Research Visualizations

Generate publication-quality charts for 3DGS method landscape comparison and evolution tracking.

Capabilities

  • Radar Charts: Multi-dimensional method capability comparison
  • Comparison Tables: Visual performance/efficiency tables with highlighting
  • Method Timelines: Chronological evolution showing trends and paradigm shifts
  • Dual Output: Static (PDF/PNG via matplotlib) and interactive HTML (via plotly)

Data Sources

FileContent
../../references/3dgs-methods-overview.mdMaster index, metrics summary
../../references/methods-core.mdFoundation, Geometry, CAD, Generation, Feed-Forward, Compression, Dynamic
../../references/methods-semantic-editing.mdSemantic, Editing, Avatar, Material methods
../../references/methods-systems-apps.mdRobustness, Driving, SLAM, Simulation, Cross-Domain
../../references/baselines.mdStandard baselines with core metrics
../../references/experiments.mdDataset configs, efficiency reference values

Visualization 1: Radar Charts (Method Capability Comparison)

When to use: Comparing 3–8 methods across multiple dimensions; showing quality/speed/memory trade-offs; use-case recommendation.

Dimensions
DimensionScoring Criteria (0–10)
Render Quality10=SOTA, 7=competitive, 5=acceptable, 3=below baseline
Render Speed10=200+ FPS, 7=60–100, 5=30–60, 3=<30
Memory Efficiency10=<50MB, 7=100–500MB, 5=0.5–2GB, 3=>2GB
Geometry Quality10=mesh-ready (2DGS/SuGaR), 7=decent depth, 5=approx, 3=poor
Scalability10=city-scale, 7=building, 5=room, 3=object-only
Ease of Use10=single script, 7=standard pipeline, 5=multi-stage, 3=complex setup
Novelty10=paradigm shift, 7=significant extension, 5=incremental, 3=minor tweak

Adjust dimensions by context (compression: add "Compression Ratio"; avatar: add "Expression Fidelity"; SLAM: add "Tracking Accuracy").

API
python
OKABE_ITO = ['#E69F00', '#56B4E9', '#009E73', '#F0E442',
'#0072B2', '#D55E00', '#CC79A7', '#000000']
# Static (matplotlib)
def plot_radar(methods_data, dimensions, title="3DGS Method Comparison",
output_path="radar_comparison.pdf", figsize=(8, 8)):
"""methods_data: {name: [score1, ...]}, dimensions: [label, ...]"""
N = len(dimensions)
angles = np.linspace(0, 2*np.pi, N, endpoint=False).tolist()
angles += angles[:1]
fig, ax = plt.subplots(figsize=figsize, subplot_kw=dict(polar=True))
for i, (name, values) in enumerate(methods_data.items()):
values = values + values[:1]
ax.plot(angles, values, 'o-', linewidth=2, label=name, color=OKABE_ITO[i%8])
ax.fill(angles, values, alpha=0.1, color=OKABE_ITO[i%8])
ax.set_xticks(angles[:-1]); ax.set_xticklabels(dimensions, fontsize=10)
ax.set_ylim(0, 10); ax.set_yticks([2,4,6,8,10])
ax.legend(loc='upper right', bbox_to_anchor=(1.3, 1.1), fontsize=9)
ax.grid(color='grey', linewidth=0.3, alpha=0.5)
plt.tight_layout()
plt.savefig(output_path, dpi=300, bbox_inches='tight', facecolor='white')
plt.savefig(output_path.replace('.pdf','.png'), dpi=300, bbox_inches='tight', facecolor='white')
plt.close()
# Interactive (plotly)
def plot_radar_interactive(methods_data, dimensions, title="3DGS Method Comparison",
output_path="radar_comparison.html"):
fig = go.Figure()
for i, (name, values) in enumerate(methods_data.items()):
fig.add_trace(go.Scatterpolar(
r=values+values[:1], theta=dimensions+dimensions[:1],
fill='toself', name=name, line_color=OKABE_ITO[i%8], opacity=0.8))
fig.update_layout(polar=dict(radialaxis=dict(visible=True, range=[0,10])),
showlegend=True, title=dict(text=title), width=900, height=700)
fig.write_html(output_path)

Visualization 2: Comparison Tables (Visual Performance Tables)

When to use: Summarizing quantitative results across methods/datasets; paper-ready tables with visual emphasis; efficiency vs quality trade-off.

Table Types
TypeDescriptionBest For
A: Quantitative PerformanceColor-coded cells (green=best, blue=second)Multi-dataset metric comparison
B: Efficiency-Quality ScatterFPS vs PSNR scatter with category coloringSpeed/quality trade-off analysis
API — Type A: Performance Table
python
def plot_comparison_table(data, methods, datasets, metric="PSNR (dB)",
higher_is_better=True, output_path="perf_table.pdf"):
"""data: 2D array [method][dataset]"""
fig, ax = plt.subplots(figsize=(len(datasets)*1.8+2, len(methods)*0.6+1))
ax.axis('off')
cell_text, cell_colors = [], []
for i in range(len(datasets)):
row, row_colors = [], []
col_vals = [data[k][i] for k in range(len(methods))]
for j in range(len(methods)):
val = data[j][i]; row.append(f"{val:.2f}")
is_best = abs(val - (max if higher_is_better else min)(col_vals)) < 0.01
is_second = abs(val - sorted(col_vals, reverse=higher_is_better)[1]) < 0.01 if len(col_vals)>1 else False
row_colors.append('#C6EFCE' if is_best else '#BDD7EE' if is_second else '#FFFFFF')
cell_text.append(row); cell_colors.append(row_colors)
table = ax.table(cellText=cell_text, rowLabels=datasets, colLabels=methods,
cellColours=cell_colors, loc='center', cellLoc='center')
table.auto_set_font_size(False); table.set_fontsize(10); table.scale(1, 1.8)
for j in range(len(methods)):
table[0,j].set_facecolor('#4472C4'); table[0,j].set_text_props(color='white', fontweight='bold')
ax.set_title(f"{metric} Comparison", fontsize=14, fontweight='bold', pad=20)
plt.tight_layout(); plt.savefig(output_path, dpi=300, bbox_inches='tight', facecolor='white')
plt.close()
API — Type B: Efficiency Scatter
python
CATEGORY_COLORS = {
'Foundation': '#0072B2', 'Compression': '#E69F00', 'Feed-Forward': '#009E73',
'Geometry': '#D55E00', 'Dynamic': '#CC79A7', 'Other': '#56B4E9',
'Surface/Geometry': '#D55E00', 'Editing': '#56B4E9', 'Semantic/Language': '#F0E442',
'Avatar/Human': '#994F00', 'SLAM': '#661100', 'Cross-Domain': '#5B5B5B',
'Robustness': '#984EA3', 'Generation': '#4daf4a', 'System/Acceleration': '#377eb8', 'CAD/Mesh': '#ff7f00',
}
def plot_efficiency_scatter(methods_info, output_path="efficiency_scatter.pdf"):
"""methods_info: [{name, psnr, fps, category, size}]"""
fig, ax = plt.subplots(figsize=(8, 6))
for info in methods_info:
color = CATEGORY_COLORS.get(info.get('category','Other'), '#56B4E9')
ax.scatter(info['fps'], info['psnr'], s=info.get('size',100),
c=color, alpha=0.8, edgecolors='black', linewidth=0.5)
ax.annotate(info['name'], (info['fps'], info['psnr']),
textcoords="offset points", xytext=(5,5), fontsize=8)
ax.set_xlabel('Rendering Speed (FPS)'); ax.set_ylabel('PSNR (dB)')
ax.axhline(y=27, color='grey', linestyle='--', alpha=0.3)
ax.axvline(x=60, color='grey', linestyle='--', alpha=0.3)
ax.spines['top'].set_visible(False); ax.spines['right'].set_visible(False)
plt.tight_layout(); plt.savefig(output_path, dpi=300, bbox_inches='tight', facecolor='white')
plt.close()
# Interactive table (plotly)
def plot_interactive_table(data, methods, datasets, metric="PSNR (dB)",
output_path="perf_table.html"):
fig = go.Figure(data=[go.Table(
header=dict(values=[metric]+methods, fill_color='#4472C4', font=dict(color='white', size=12)),
cells=dict(values=[[f"{v:.2f}" for v in col] for col in zip(*data)], fill_color='white'))])
fig.update_layout(width=800, title=metric); fig.write_html(output_path)

Visualization 3: Method Timelines (3DGS Evolution)

When to use: Chronological development; identifying research trends; literature review figures; conference slides.

Design Principles
  • Horizontal axis: Time (year/quarter)
  • Vertical lanes: Research categories
  • Node size: Significance (citation count)
  • Node color: Category (use CATEGORY_COLORS, consistent with other charts)
  • Connections: Show lineage (e.g., 3DGS → Scaffold-GS, 3DGS → 2DGS)
  • Award markers: Add ★ for best paper (D4RT, CVPR 2026) and ☆ for best student paper (TRELLIS.2, CVPR 2026) when annotating timeline nodes
CVPR 2026 Key Methods for Timeline Annotation

When generating timelines that include 2026 methods, highlight these as landmark entries:

MethodVenueSignificanceTimeline Annotation
D4RTCVPR 2026 Best Paper4D dynamic reconstructionBest Paper marker
TRELLIS.2CVPR 2026 Best Student PaperStructured 3D generationBest Student Paper marker
SAM 3DCVPR 20263D segmentation foundationHighlighted method

Knowledge base: 1050 methods across 26 categories (updated for v0.9.13 cycle).

API — Static Timeline
python
def plot_timeline(events, output_path="3dgs_timeline.pdf", figsize=(16, 10)):
"""events: [{name, date(YYYY-MM), category, venue, citation_count}]"""
fig, ax = plt.subplots(figsize=figsize)
y_positions = {cat: i for i, cat in enumerate(sorted(set(e['category'] for e in events)))}
for event in events:
y = y_positions[event['category']]
dt = datetime.strptime(event['date'][:7], '%Y-%m')
x = mdates.date2num(dt)
color = CATEGORY_COLORS.get(event['category'], '#666666')
size = min(200, 50 + event.get('citation_count', 20) * 0.5)
ax.scatter(x, y, s=size, c=color, alpha=0.8, edgecolors='black', linewidth=0.5, zorder=5)
venue = event.get('venue', '')
label = f"{event['name']}\n({venue})" if venue else event['name']
ax.annotate(label, (x, y), textcoords="offset points",
xytext=(0, -size**0.5/2 - 8), ha='center', fontsize=6,
bbox=dict(boxstyle='round,pad=0.2', facecolor='white', alpha=0.8,
edgecolor=color, linewidth=0.5))
ax.set_yticks(range(len(y_positions)))
ax.set_yticklabels(sorted(y_positions.keys()), fontsize=10)
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=3))
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
plt.xticks(rotation=45, fontsize=9)
ax.set_title('3DGS Method Evolution Timeline', fontsize=16, fontweight='bold')
ax.spines['top'].set_visible(False); ax.spines['right'].set_visible(False)
plt.tight_layout(); plt.savefig(output_path, dpi=300, bbox_inches='tight', facecolor='white')
plt.close()
API — Interactive Timeline

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
114
Repository forks
9
7-day trend score
24

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/jaccen/awesome-gaussian-skills/3dgs-visualizer/badge)](https://verified-skill.com/skills/jaccen/awesome-gaussian-skills/3dgs-visualizer)

Something wrong with this skill or its page? Tell us.