Better Design
marvkr/better-design
Build, improve, and review production interfaces with the Better Design MCP.
MCP protocol integration with 3DGS rendering pipeline: Agent-controlled Three.js/WebGPU rendering, voice-driven scene reconstruction, real-time parameter manipulation, light tracing backend.
$ npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jaccen/Awesome-Gaussian-Skills 3dgs-mcp-renderer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jaccen/Awesome-Gaussian-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/3dgs-mcp-renderer .claude/skills/3dgs-mcp-renderer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "3dgs-mcp-renderer" agent skill from https://github.com/jaccen/Awesome-Gaussian-Skills/tree/main/skills/3dgs-mcp-renderer into .claude/skills/3dgs-mcp-renderer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dgs-mcp-renderer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jaccen/Awesome-Gaussian-Skills/tree/main/skills/3dgs-mcp-rendererType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jaccen/Awesome-Gaussian-Skills 3dgs-mcp-renderer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaccen/Awesome-Gaussian-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/3dgs-mcp-renderer .agents/skills/3dgs-mcp-renderer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "3dgs-mcp-renderer" agent skill from https://github.com/jaccen/Awesome-Gaussian-Skills/tree/main/skills/3dgs-mcp-renderer into .agents/skills/3dgs-mcp-renderer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dgs-mcp-renderer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jaccen/Awesome-Gaussian-Skills 3dgs-mcp-renderer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaccen/Awesome-Gaussian-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/3dgs-mcp-renderer .cursor/skills/3dgs-mcp-renderer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "3dgs-mcp-renderer" agent skill from https://github.com/jaccen/Awesome-Gaussian-Skills/tree/main/skills/3dgs-mcp-renderer into .cursor/skills/3dgs-mcp-renderer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dgs-mcp-renderer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jaccen/Awesome-Gaussian-Skills.git --path skills/3dgs-mcp-renderer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jaccen/Awesome-Gaussian-Skills 3dgs-mcp-renderer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaccen/Awesome-Gaussian-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/3dgs-mcp-renderer .gemini/skills/3dgs-mcp-renderer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "3dgs-mcp-renderer" agent skill from https://github.com/jaccen/Awesome-Gaussian-Skills/tree/main/skills/3dgs-mcp-renderer into .gemini/skills/3dgs-mcp-renderer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dgs-mcp-renderer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jaccen/Awesome-Gaussian-Skills 3dgs-mcp-rendererInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jaccen/Awesome-Gaussian-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/3dgs-mcp-renderer .github/skills/3dgs-mcp-renderer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "3dgs-mcp-renderer" agent skill from https://github.com/jaccen/Awesome-Gaussian-Skills/tree/main/skills/3dgs-mcp-renderer into .github/skills/3dgs-mcp-renderer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dgs-mcp-renderer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jaccen/Awesome-Gaussian-Skills 3dgs-mcp-renderer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaccen/Awesome-Gaussian-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/3dgs-mcp-renderer .opencode/skills/3dgs-mcp-renderer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "3dgs-mcp-renderer" agent skill from https://github.com/jaccen/Awesome-Gaussian-Skills/tree/main/skills/3dgs-mcp-renderer into .opencode/skills/3dgs-mcp-renderer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "3dgs-mcp-renderer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
3dgs-mcp-rendererMCP protocol integration with 3DGS rendering pipeline: Agent-controlled Three.js/WebGPU rendering, voice-driven scene reconstruction, real-time parameter manipulation, light tracing backend.
3dgs MCP Renderer is an agent skill from jaccen/Awesome-Gaussian-Skills. MCP protocol integration with 3DGS rendering pipeline: Agent-controlled Three.js/WebGPU rendering, voice-driven scene reconstruction, real-time parameter manipulation, light tracing backend. Use when: MCP rendering, agent-controlled 3DGS, voice-driven reconstruction, real-time 3DGS editing, Three.js 3DGS, WebGPU Gaussian splatting, interactive rendering control, speech-to-3D, light tracing, HiGS accelerated rendering.
Its SKILL.md is about 6.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/code-first-examples.md`, `references/mcp-tools-spec.md` and `references/renderer-backends.md`).
It sits in Game Development, covering 3D graphics and WebGL and MCP servers. It works with Model Context Protocol and Three.js. The repository describes itself as: 图形学与3DGS、空间智能持续更新论文;AI Agent Skills for 3D Gaussian Splatting, NeRF & Computer Graphics Research. 800+ methods, 25categories, 12skills. OpenClaw / Claude Code compatible. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8bebae5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
3dgs MCP Renderer loads about 6.9k tokens when it runs, and up to ~15k if it reads all its reference files. Until then it costs about 110 tokens; SKILL.md has 2,791 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jaccen/Awesome-Gaussian-Skills at commit 8bebae5, republished under its Apache-2.0 licence (© jaccen). 2,791 words, ~6,939 tokens.
.claude/skills/3dgs-mcp-renderer/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Prototype specification for integrating MCP (Model Context Protocol) with 3DGS rendering pipelines, enabling AI Agents to directly manipulate Three.js/3DGS rendering parameters and achieve voice-driven 3D scene reconstruction.
┌─────────────┐ ┌─────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Voice/Text │────▶│ Agent │────▶│ MCP Server │────▶│ 3DGS Renderer │
│ (Whisper/ │ │ (Claude/ │ │ (Node.js/ │ │ (Three.js/ │
│ Prompt) │ │ TeleClaw) │ │ Python) │ │ WebGPU/HiGS/ │
│ │◀────│ │◀────│ │◀────│ DDF-GS) │
└─────────────┘ └─────────────┘ └──────────────────┘ └──────────────────┘
│ │ │
│ Tool calls │ WebSocket/HTTP │ WebGL/WebGPU/
│ (MCP protocol) │ transport │ HiGS/DDF-GSDesign inspiration: img2threejs (GitHub: img2threejs/img2threejs) — open-source AI Skill that converts a single image into an interactive Three.js 3D model via a stage-gated sculpting pipeline. We borrow two core principles: (1) spec-first — define quality criteria and component hierarchy before any rendering; (2) stage-gated sculpting — progressive refinement with acceptance checks at each stage.
The original MCP pipeline was reactive: user issues a voice command → agent maps to a tool → render → verify. This works for single-step edits but fails for complex scene construction because:
The fix: Introduce a define_scene_spec tool that runs before any sculpting/editing tools. This produces a machine-readable Object Spec that subsequent tools reference as acceptance criteria.
┌─────────────────────────────────────────────────────────────┐
│ SPEC-FIRST SCULPTING │
│ │
│ ┌──────────────┐ │
│ │ define_scene │ ← Object Spec: component hierarchy, │
│ │ _spec │ material system, quality criteria │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ Stage 1: blockout → Bounding boxes, camera framing │
│ │ gate: bbox coverage ≥ spec.target_coverage? │
│ ▼ │
│ Stage 2: structural → Part decomposition, hierarchy │
│ │ gate: part count & nesting matches spec? │
│ ▼ │
│ Stage 3: form → Gaussian density/scale/rotation │
│ │ gate: PSNR estimate ≥ spec.min_psnr? │
│ ▼ │
│ Stage 4: material → PBR/SH assignment per part │
│ │ gate: material count per part matches spec? │
│ ▼ │
│ Stage 5: surface → Normal consistency, thin structures │
│ │ gate: normal consistency score ≥ spec.threshold? │
│ ▼ │
│ Stage 6: lighting → Environment, shadows, AO │
│ gate: render quality score ≥ spec.target_score? │
└─────────────────────────────────────────────────────────────┘Each stage is an MCP tool call. The agent renders a frame after each stage, evaluates against the gate, and either advances or retries. This mirrors img2threejs's blockout → structural → form → material → surface → lighting flow.
For each stage gate, the agent follows this protocol:
1. Execute stage tool (e.g., sculpt_form with parameters)
2. Call render_frame() to get current visual state
3. Call query_scene(query_type="stats") to get quantitative metrics
4. Compare metrics against spec gate criteria
5. If pass → advance to next stage
6. If fail → adjust parameters and retry (max 3 attempts)
7. If 3 failures → report to user with diagnostic infoLoaded on demand — See mcp-tools-spec.md for the full voice-driven sculpting example (desk scene with 8-step agent pipeline).
Design inspiration: img2threejs outputs pure Three.js code (not GLB/OBJ/PLY), making every model fully editable, version-controllable, and lightweight. We adopt this philosophy for 3DGS scene export.
| Aspect | Traditional (.ply/.splat) | Code-First (.js + .splat) |
|---|---|---|
| Editability | Binary blob, hard to edit | Source code, any field adjustable |
| Version control | Binary diff, no merge | Text diff, git-friendly |
| File size | Full Gaussian set (MB-GB) | Code skeleton (KB) + compressed splat data |
| Scene composition | Single flat Gaussian cloud | Hierarchical code with part-level control |
| Interaction logic | Must be added externally | Embedded in code |
| 3DGS data | All in one file | Separate .splat file loaded by code |
| Procedural elements | Not supported | Parametric geometry in code (e.g., desk surface = PlaneGeometry) |
The key insight: not everything needs to be Gaussians. For a desk scene:
BoxGeometry in code (simple, editable, lightweight)MeshStandardMaterial (or 3DGS if view-dependent)Loaded on demand — See code-first-examples.md for hybrid export code examples.
| Scene Element | Recommendation | Why |
|---|---|---|
| Flat surfaces (walls, floors, desks) | Procedural code | Simple, editable, tiny file size |
| Parametric objects (cabinets, shelves) | Procedural code | Adjust dimensions in code |
| Organic objects (plants, food, fabric) | 3DGS splat | Can't match quality procedurally |
| View-dependent surfaces (screens, mirrors) | 3DGS splat | SH coefficients capture view dependence |
| Articulated parts (joints, hinges) | Procedural code | Joint parameters are explicit in code |
| Mixed scenes (most real cases) | Hybrid code + splat | Best of both worlds |
The code-first approach connects to SLAT (see ../../references/slat-unified-representation.md): the structured latent's voxel grid naturally maps to a procedural geometry skeleton, while the per-voxel features decode to 3DGS splatting for complex regions. SLAT encode → hierarchical decode: simple voxels → procedural code, complex voxels → 3DGS splats.
Theoretical basis: SLAT (Structured Latent Aggregation Transform) — see
../../references/slat-unified-representation.md. A scene is encoded into a compact structured latent (a voxel grid over the scene, each voxel aggregating local Gaussian features), edited in latent space, then re-decoded back to a Gaussian set. This lets the agent manipulate entire semantic regions with a single operation, independent of per-Gaussian IDs.
encode_scene_slatent voxelizes the active scene into a regular grid (voxel_size, default 1.0), assigning each Gaussian to a voxel by position. Each voxel stores an aggregated feature vector (mean position, mean scale, mean color, mean opacity, size, plus optional weighted semantic/part labels). The result is a slat_id referencing an in-memory snapshot with an encode_loss (reconstruction RMSE), letting the agent judge fidelity before editing.
edit_scene_latent applies a LatentEditOp to voxels matched by a LatentSelector (by voxel ids, a spatial box, or a part name — substring, case-insensitive). Seven operations are supported:
| Op | Fields | Effect |
|---|---|---|
translate | delta: Vec3 | Move matched voxels (and their Gaussians) by a vector |
scale | factor: number, origin: Vec3 | Scale voxel positions relative to an origin |
rotate | angleDeg: number, axis: Vec3, origin: Vec3 | Rotate voxels around an axis (degrees) |
recolor | color: Vec3, mix: number | Blend matched voxels' colors toward a target |
opacity | opacity: number, mode | Set or scale opacity (mode set/scale) |
smooth | iterations: number, strength: number | Smooth feature positions/colors by averaging neighbors |
delete | target: "voxel" | Remove all Gaussians in matched voxels |
Schema vs core naming: the MCP JSON schema uses snake_case (angle_deg); the internal LatentEditOp uses camelCase (angleDeg). Handlers convert at the boundary. Library/test callers use camelCase directly.
Safety gate: edit_scene_latent computes affected_gaussians; if this exceeds 10% of the scene, the edit is rejected unless confirm=true. This reuses the project-wide 10% safety rule.
Apply to scene: with apply_to_scene=true (default) the edit is re-decoded and broadcast to the renderer via modify_gaussians; with false it only updates the in-memory snapshot, so the agent can preview/cancel before committing.
Decoding rebuilds the Gaussian set: matched voxels are re-instantiated from edited features, untouched voxels keep their original Gaussians. delete removes the affected Gaussians entirely.
Loaded on demand — See mcp-tools-spec.md for full SLAT voice examples ("encode the scene", "move the cluster left", "scale the group up", etc.).
v1.1 extends SLAT beyond a single scene. A latent edit computed on one scene (source) can now be transferred to another scene (target), or the two scenes can be interpolated in latent space. Both operations rely on a spatial correspondence built over the voxel grids.
Both operations build a voxel grid over the source scene (cell size = match_radius) via buildVoxelGrid, then for each target voxel find the nearest source voxel within match_radius (nearestVoxel, 3×3×3 neighborhood search). The resulting pairs carry the relative changes across scenes.
transfer_scene_edit re-applies a LatentEditOp from source to target as a relative change:
| Op | Transferred As |
|---|---|
translate | Same delta applied to matched target voxels, scaled by strength |
recolor | Color offset (target − source voxel color) applied to matched target voxels, scaled by strength |
opacity | Opacity ratio (edited / original) scaled toward 1 by strength |
delete | Matched target voxels removed when source voxels were deleted |
match_radius (default 1.0) bounds the spatial correspondence.strength (0–1) controls how strongly the source change is applied; 0 applies nothing, 1 applies fully.confirm=true is required (same project-wide 10% rule).apply_to_scene (default true) re-decodes and broadcasts via modify_gaussians; false only updates the in-memory snapshot for preview.interpolate_scene_latentinterpolate_scene_latent blends the target scene toward the source in latent space:
t (0–1): 0 = target unchanged, 1 = fully source. Position, color, and opacity are all linearly interpolated per matched voxel.match_radius (default 1.0) governs the correspondence as above.apply semantics as transfer.Design note: transfer carries relative change (style), while interpolation carries absolute blend (morph). Use transfer to reuse an edit, interpolation to morph one scene into another.
transfer_scene_edit (op="recolor")transfer_scene_edit (op="translate", target_slat_id=sceneB)interpolate_scene_latent (t=0.5)interpolate_scene_latent (t=1.0)21 core MCP tools (fully implemented) + 13 experimental tools (schema-only stubs) enable agent-controlled 3DGS rendering, editing, sculpting, latent editing, cross-scene transfer, and export. Full JSON schemas are loaded on demand.
| # | Tool Name | Description |
|---|---|---|
| 1 | import_scene | Load a 3DGS scene from PLY/SPLAT file or URL |
| 2 | set_camera | Set camera position, target, and field of view |
| 3 | modify_gaussians | Modify Gaussian properties by selection criteria (IDs, region, label) |
| 4 | render_frame | Render current scene from current camera as image |
| 5 | query_scene | Query scene stats, bbox, point, segmentation, or materials |
| 6 | cast_ray | Cast ray for distance/normal via DDF-GS neural field |
| 7 | simulate_physics | Invoke external physics engine (MPM/SPH/PBD) on 3DGS scene |
| 8 | query_4d_scene | Query dynamic 3D scene at arbitrary (x,y,t) coordinates |
| 9 | deform_elastic | Apply particle-skinned eigenmode deformation to 3DGS object |
| 10 | query_spatial_context | Spatial understanding query (grounding, relation, measurement, scene graph) |
| 11 | bayesian_density_control | DP-Splat Bayesian nonparametric Gaussian density control |
| 12 | moe_deform | MoE-GS/MoDE mixture-of-experts dynamic deformation |
| 13 | surgical_tracking | Track2Map surgical instrument tracking and tissue mapping |
| 14 | query_provenance | GaussTrace provenance query and IP forgery detection |
| 15 | set_pbr_material | Set PBR material properties (MGM/InvSplat) on selected Gaussians |
| 16 | deformable_aggregate | GADA feed-forward 3DGS from multi-view images |
| 17 | set_stereoscopic | Stereoscopic dual-eye rendering (StereoGS) for VR/AR |
| 18 | define_scene_spec | Define Object Spec (hierarchy, materials, quality gates) before sculpting |
| 19 | sculpt_pipeline | Execute one stage of spec-first sculpting (6 stages, gate-evaluated) |
| 20 | export_scene_code | Export scene as Three.js code + 3DGS splat (code-first philosophy) |
| 21 | encode_scene_slatent | Encode current scene into a SLAT structured latent snapshot (voxel grid + per-voxel features) |
| 22 | edit_scene_latent | Apply a latent edit (translate/scale/rotate/recolor/opacity/smooth/delete) to a SLAT snapshot, optionally re-decode to scene |
| 23 | list_slatents | List in-memory SLAT snapshots (id, voxel count, source Gaussian count) |
| 24 | transfer_scene_edit | Transfer a latent edit computed on a source scene to a target scene (relative change, spatial correspondence) |
| 25 | interpolate_scene_latent | Interpolate the target scene toward the source in latent space (position/color/opacity blend) |
Full tool schemas loaded on demand — See mcp-tools-spec.md for complete JSON schemas, sculpting examples, and reconstruction flows.
| Voice Intent Example | Intent Type | MCP Tool Call |
|---|---|---|
| "Build a scene with a desk and monitor" | Scene spec definition | define_scene_spec (components=["desk","monitor"]) |
| "Start with the rough layout" | Sculpting: blockout | sculpt_pipeline (stage="blockout") |
| "Decompose into parts" | Sculpting: structural | sculpt_pipeline (stage="structural") |
| "Refine the geometry" | Sculpting: form | sculpt_pipeline (stage="form") |
| "Assign materials" | Sculpting: material | sculpt_pipeline (stage="material") |
| "Fix the surfaces" | Sculpting: surface | sculpt_pipeline (stage="surface") |
| "Set up lighting" | Sculpting: lighting | sculpt_pipeline (stage="lighting") |
| "Export as editable code" | Code-first export | export_scene_code (format="threejs+splat") |
| "Export scene code only" | Procedural-only export | export_scene_code (format="threejs_only") |
| "What is to the left of the chair?" | Spatial grounding query | query_spatial_context (mode="grounding") |
| "How far is the table from the door?" | Spatial measurement | query_spatial_context (mode="measurement") |
| "Where did this 3D model come from?" | Provenance query | query_provenance (query_type="lineage") |
| "Is this 3DGS model authentic?" | Forgery detection | query_provenance (query_type="forgery_detection") |
| "Make this object look metallic" | PBR material edit | set_pbr_material (metallic=1.0) |
| "Infer materials from appearance" | Inverse material estimation | set_pbr_material (infer_from_appearance=true) |
| "Reconstruct from these photos fast" | Feed-forward splatting | deformable_aggregate (input_views=[...]) |
| "Show me in VR mode" | Stereoscopic rendering | set_stereoscopic (enabled=true) |
| "Adjust the eye distance" | VR IPD control | set_stereoscopic (ipd=value) |
| "Encode the scene as a latent snapshot" | SLAT encoding | encode_scene_slatent |
| "Move the cluster to the left" | SLAT translate | edit_scene_latent (op="translate", select part="cluster") |
| "Scale the whole group up" | SLAT scale | edit_scene_latent (op="scale") |
| "Rotate the table 90 degrees" | SLAT rotate | edit_scene_latent (op="rotate", angleDeg=90) |
| "Recolor the background to blue" | SLAT recolor | edit_scene_latent (op="recolor") |
| "Fade out the distant objects" | SLAT opacity | edit_scene_latent (op="opacity") |
| "Smooth the table surface" | SLAT smooth | edit_scene_latent (op="smooth") |
| "Delete the chair voxels" | SLAT delete | edit_scene_latent (op="delete") |
| "List my latent snapshots" | SLAT listing | list_slatents |
| "Transfer the recolor to the other scene" | SLAT cross-scene transfer | transfer_scene_edit (op="recolor", match_radius=1.0) |
| "Reuse this translate on scene B" | SLAT cross-scene transfer | transfer_scene_edit (op="translate", target_slat_id=sceneB) |
| "Blend scene B toward scene A" | SLAT cross-scene interpolation | interpolate_scene_latent (t=0.5) |
| "Morph the table into the desk" | SLAT cross-scene interpolation | interpolate_scene_latent (t=1.0) |
Loaded on demand — See mcp-tools-spec.md for the full voice-driven reconstruction flow examples (camera control and transparency editing).
| Component | Technology | Status |
|---|---|---|
| MCP Server | Node.js + @modelcontextprotocol/sdk | Prototype |
| 3DGS Renderer | Three.js + gaussian-splat-3d / gsplat.js | Available |
| WebGPU backend | WebGPU + WGSL compute shaders | Experimental |
| HiGS backend | Dual-scale tile rasterization (arXiv:2606.00352) | Planned |
| DDF-GS backend | Neural distance field for ray queries (arXiv:2606.00817) | Planned |
| Transport | WebSocket (localhost) | Working |
| Voice STT | Whisper API / Web Speech API | Available |
| Agent integration | Claude Code / TeleClaw MCP client | Pending |
| Spec-first sculpting | define_scene_spec + sculpt_pipeline (6 stages) | Implemented (v0.9.0) |
| Code-first export | Three.js code generator + splat partitioner | Implemented (v0.9.0) |
| SLAT latent editing | encode/edit/decode structured latent (3 tools) | Implemented (v1.0.0) |
| SLAT cross-scene transfer | transfer_scene_edit + interpolate_scene_latent (2 tools) | Implemented (v1.1.0) |
Loaded on demand — See renderer-backends.md for renderer compatibility, DDF-GS, and HiGS details.
sculpt_pipeline must not be called without a valid spec_id. The spec defines acceptance criteria; without it, gate evaluation is impossible.export_scene_code with format="threejs+splat" over pure .ply export. Pure .ply should only be used when the user explicitly requests a binary blob.edit_scene_latent affecting >10% of Gaussians requires confirm=true. Preview with apply_to_scene=false before committing destructive latent edits.angle_deg); the core LatentEditOp uses camelCase (angleDeg). Handlers convert at the boundary; never mix cases in the core layer.transfer_scene_edit and interpolate_scene_latent affecting >10% of target Gaussians require confirm=true. Preview with apply_to_scene=false before committing cross-scene edits.Part of Awesome-Gaussian-Skills
The following are categorical prohibitions. Violating any of these invalidates the output:
../../references/slat-unified-representation.md for the shared theoretical framework underlying scene code-first export and latent editingDo NOT try to apply the logic, method data, bug patterns, or technical details described in this skill from memory. Always read the SKILL.md and referenced files from disk before producing any output. The knowledge base is updated frequently; stale memory may produce outdated, inaccurate, or fabricated results.
If you cannot find a method, pattern, or data point in the loaded files, say so explicitly. Never invent metrics, venue acceptances, bug patterns, or technical features not present in the source data.
© jaccen, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in skills/3dgs-mcp-renderer of jaccen/Awesome-Gaussian-Skills.
Open the folder on GitHubat commit 8bebae5
3dgs MCP Renderer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| 3dgs MCP Renderer this skilljaccen/Awesome-Gaussian-Skills | 161 | — | ~6.9k | Automated safety check: Pass | Apache-2.0 | |
| Better Designmarvkr/better-design | 254 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Octocode Mannequinbgauryy/octocode | 949 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Unreal Scene Buildingflopperam/unreal-engine-mcp | 1.1k | — | ~1.4k | Automated safety check: Pass | None | |
| Fal Assetsrehan-remade/universal-modder | 6.5k | — | ~2k | Automated safety check: Notes | MIT | |
| Threejs Game Directormintdotgg/mint-threejs-skills | 114 | — | ~1.4k | Automated safety check: Pass | MIT |
marvkr/better-design
Build, improve, and review production interfaces with the Better Design MCP.
bgauryy/octocode
Poses and animates a 22-bone anatomical humanoid rig with joint range-of-motion limits, using a Node CLI, a Three.js viewer and WebMCP tools an agent can drive live.
flopperam/unreal-engine-mcp
Guides scene and world building in Unreal Engine through the Flopperam MCP: placing actors, sculpting landscapes, scattering foliage, editing materials and verifying the level.
rehan-remade/universal-modder
Generate game assets with fal (fal.ai) through the fal MCP server, the um fal CLI (REST) or fal api.
mintdotgg/mint-threejs-skills
Build or upgrade complete Three.js browser games by coordinating gameplay, Mint MCP assets, graphics, UI, debugging, performance, QA, and release.
mintdotgg/mint-threejs-skills
Build, revise, debug, and verify browser-based Three.js apps, games, asset viewers, model and asset-pack deliveries, material and material-pack deliveries, animated-model viewers, and explicitly…
jaccen/Awesome-Gaussian-Skills
Review 3DGS implementation code for correctness, performance bugs, and best practices.
jaccen/Awesome-Gaussian-Skills
Generate CN patent docs (claims, specification, abstract) and software copyright materials from AI/big-data project code or docs.
jaccen/Awesome-Gaussian-Skills
3DGS Articulated Object Reasoning & Digital Twin Agent. An agent skill from jaccen/Awesome-Gaussian-Skills.
jaccen/Awesome-Gaussian-Skills
3DGS compression-to-deployment pipeline: quantization (scalar/VQ/mixed-precision), pruning (coreset/adaptive/variational/merge/Bayesian), progressive streaming & LoD, Web/WebGPU/mobile deployment…
jaccen/Awesome-Gaussian-Skills
Read and summarize 3DGS research papers. An agent skill from jaccen/Awesome-Gaussian-Skills.
jaccen/Awesome-Gaussian-Skills
3DGS/CAD/Mesh domain-specific spatial intelligence agent: scene-level reasoning, CAD-in-the-loop parametric extraction, multi-modal 3D interaction, geometry-opacity decoupling, reflective material…
Works with
Categories
MCP protocol integration with 3DGS rendering pipeline: Agent-controlled Three.js/WebGPU rendering, voice-driven scene reconstruction, real-time parameter manipulation, light tracing backend. 3dgs MCP Renderer is an agent skill from jaccen/Awesome-Gaussian-Skills.js/WebGPU rendering, voice-driven scene reconstruction, real-time parameter manipulation, light tracing backend.
3dgs MCP Renderer fits situations like: : MCP rendering; agent-controlled 3DGS; voice-driven reconstruction; real-time 3DGS editing.
Run `npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a claude-code`. Or copy the skill folder (skills/3dgs-mcp-renderer in jaccen/Awesome-Gaussian-Skills) into .claude/skills/3dgs-mcp-renderer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a codex`. Or copy the skill folder (skills/3dgs-mcp-renderer in jaccen/Awesome-Gaussian-Skills) into .agents/skills/3dgs-mcp-renderer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jaccen/Awesome-Gaussian-Skills --skill 3dgs-mcp-renderer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/3dgs-mcp-renderer, .gemini/skills/3dgs-mcp-renderer, .github/skills/3dgs-mcp-renderer and .opencode/skills/3dgs-mcp-renderer in your project.
SKILL.md names no scripts, command-line tools or credentials: 3dgs MCP Renderer is instructions for the agent only. Our summary lists: Node.js.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
3dgs MCP Renderer is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.9k tokens (SKILL.md is roughly 28k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with 3dgs MCP Renderer: Better Design (marvkr/better-design, 254 stars), Octocode Mannequin (bgauryy/octocode, 949 stars), Unreal Scene Building (flopperam/unreal-engine-mcp, 1.1k stars) and Fal Assets (rehan-remade/universal-modder, 6.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jaccen (a GitHub user) maintains it in jaccen/Awesome-Gaussian-Skills, which has 161 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 11, 2026.
Source: jaccen/Awesome-Gaussian-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.