agentsclimarketplace

Skill

Skill murphy977/3d-eyes/skill

👁️ Give your coding agent eyes for 3D — MCP server that renders, inspects, and diagnoses meshes & Gaussian splats. Zero GPU/OpenGL dependency.

Install
npx -y skills add murphy977/3d-eyes --skill skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 22 days oldThe repository was created 22 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when the user reports a 3D model or scene looking wrong (black/invisible/gigantic/untextured model, holes, weird shading), asks to check or QA a 3D file (GLB, GLTF, OBJ, PLY, STL, .splat), works with Gaussian splats, or generates 3D assets with AI and wants them verified. Requires the 3d-eyes MCP server.

SKILL.md

3.7 KB, 864 tokens by cl100k_base, as published. Nobody here has run it

Debugging 3D files with 3d-eyes

You have eyes for 3D. The 3d-eyes MCP server renders any mesh or Gaussian splat file so you can look at it instead of guessing from code. Trust what you see in the render plus the JSON report over any assumption.

Workflow

  1. Always start with inspect_scene(path). Look at the contact sheet (6 orthographic views + perspective) and read the findings before theorizing.
  2. Need a closer look? render_views(path, cameras=[{"azimuth": ..., "elevation": ..., "distance": 1.2}]) - small distance zooms in, ortho: true for exact silhouettes.
  3. Fix the problem by editing the user's file or code (trimesh one-liners below).
  4. Verify with diff_renders(before, after) and show the user the comparison image. Never claim a fix worked without looking at it.

Symptom → cause table

What you see (or the user reports)Likely causeFirst checkTypical fix
Model renders black / dark in their engineFlipped normalsRed faces in contact sheet (highlight_backfaces)mesh.invert() or trimesh.repair.fix_normals(mesh)
Red patches on some sides onlyPartially flipped facesflipped_normals finding says "inconsistent winding"trimesh.repair.fix_normals(mesh)
Model invisible or microscopicScale unit mismatch (mm vs m)scale_anomaly finding; extents in statsScale by 1000 or 0.001 on export
Model gigantic, camera inside itSame, opposite directionextents > 1000Scale by 0.001
Gray/white/magenta untextured surfaceBroken texture pathsmissing_textures finding lists the filesFix relative paths or re-export as GLB (embeds textures)
Seams, shading artifacts along an edgeNon-manifold finsnonmanifold findingDelete/split extra faces on the offending edges
Raycasts/physics/boolean ops fail on a fine-looking modelDegenerate facesdegenerate_faces findingmesh.update_faces(mesh.nondegenerate_faces())
Splat scene has blobs floating in mid-air / hazeTraining floatersfloaters in the splat report + white specks in rendersCrop by bounding box, prune by opacity, or retrain
File "won't load" anywhereCorrupt/mislabeled fileinspect_scene returns a parse error reportFollow the error's fix field

Interpreting the contact sheet

  • Red triangles (default highlight_backfaces=true) = faces whose winding normal points away from the camera. A closed, correct mesh shows almost no red. Red everywhere = fully inverted; red patches = inconsistent winding.
  • Views that look empty at standard distance while stats show geometry = scale or offset problem; check bounds in the report.
  • For splats: isolated bright specks away from the subject are floaters; the report's floaters.examples gives their world coordinates for cropping.

Rules of thumb

  • Inspect before and after every fix; attach the diff image in your reply.
  • The report's symptom fields are written to match what renders show - use them to connect findings to pixels.
  • AI-generated assets (Meshy, Tripo, Hunyuan3D, TRELLIS outputs): run inspect_scene as QA before the user ships them - flipped normals and missing textures are the two most common generator defects.
  • When the user's engine (Three.js, Unity, Blender) shows a problem that the contact sheet does NOT show, the bug is in their engine setup (lighting, camera, material assignment), not the asset - say so.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most debug triage skills give in 864 tokens

Counted across 839 of the 1,149 authors here whose files we hold, read 2026-08-07

  • Investigate root cause before proposing any fixin 102 of 839, across 67 files
  • Read error messages completelyin 89 of 839, across 49 files
  • Create a failing test case before fixingin 84 of 839, across 46 files
  • Reproduce the issue consistentlyin 82 of 839, across 41 files
  • Change one variable at a timein 82 of 839, across 42 files
  • Check recent changesin 74 of 839, across 36 files
  • Write the regression test before fixingin 74 of 839, across 40 files
  • Fix the root cause not the symptomin 60 of 839, across 45 files
  • Implement a single fix at a timein 59 of 839, across 20 files
  • Trace data flow backward to the sourcein 50 of 839, across 20 files
  • Remove all debug instrumentationin 49 of 839, across 13 files
  • Form a single hypothesisin 48 of 839, across 18 files

Said here and by no other author read

  • Inspect the 3D file before theorizing
  • Read the JSON report before theorizing
  • Trust the render and report over assumptions
  • Render specific camera views for closer inspection
  • Verify fixes using a render diff
  • Attach the diff image to your reply

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.