kaichen-z/stream3d/sam3d-gso-manual-registration
Claude Code and agent skill by kaichen-z/stream3d
- community
Checking that the SKILL.md file is still in the repository.
Use when a Streaming SAM3D GSO result needs a stable manual or agent-in-the-loop global Sim(3) registration against raw GSO render_mvs_25 assets.
Install
npx vskill@latest install kaichen-z/stream3d/sam3d-gso-manual-registrationSKILL.md
SAM3D GSO Manual Registration
This skill provides a direct source-geometry global Sim(3) workflow for GSO30 cases where the result_pose.npz camera chain is not trusted enough for evaluation. It is an auxiliary diagnostic loop, not a replacement for the formal automatic benchmark.
The script is:
The constrained Sim(3) adjustment helper is:
The skill scripts are intentionally independent from other skill directories. They may use repository code under streaming/ and sam3d_objects/, but they must not import scripts from docs/skills/*.
Metric Reporting Rule
When reporting Chamfer Distance in paper tables, summaries, or user-facing comparisons, use cd_l2_mean by default. This is the unsquared symmetric nearest-neighbor L2 diagnostic and is the column used for comparing this skill's outputs with prior GSO manual-registration tables.
The final evaluator also writes cd_mean, which is PyTorch3D chamfer_distance(..., norm=2) on 4096 sampled pred/GT surface points. Treat cd_mean as squared-L2 Chamfer. Do not label it simply as CD in paper tables unless the table explicitly says squared Chamfer. If both are shown, use names such as:
The render-time summary.json field active_mesh_diagnostics.cd is also diagnostic-only and should not be used as the paper CD unless explicitly requested.
Inputs
Predicted chunk:
Ground truth scene:
result_pose.npz may exist and is recorded as provenance only. It is not used to estimate the global Sim(3).
When result.glb is missing, the official workflow allows params.npz to provide a sparse registration source:
- load
coords; - drop the batch column if present;
- reorder latent
[D,H,W]indices to local mesh-styleXYZwithcoords[:, [2, 0, 1]]; - convert to canonical local coordinates with
((xyz + 0.5) / 64) - 0.5; - fit a 24-way signed-permutation
centroid + uniform-scale + translationSim(3) fromparamspoints to downsampledresult.plyxyz; - use that locally aligned sparse cloud for global registration against
render_mvs_25/model_norm.glb.
Final rendering still uses the chunk's result.ply Gaussian with the estimated global Sim(3). The sparse params.npz source is registration-only.
State File
Each run writes:
The stable fields are:
Both auto_initial_sim3 and active_sim3 contain:
active_sim3 is the only transform used by render. Agent or human edits should change active_sim3, leaving auto_initial_sim3 intact.
Workflow
First estimate the automatic initialization and render all 25 views:
Inspect:
For vision-model diagnosis, do not concatenate all 25 comparison images into one image. Review comparison pairs one at a time. The recommended first pass is 3 representative pairs, for example:
Use the contact sheet only as a human index for choosing which individual pairs to inspect next.
If the visual overlay is not acceptable, use the constrained controller instead of raw 4x4 matrix editing. First create orientation candidates:
Render candidate comparison triples:
Inspect each candidate's individual comparisons/000_gt_pred.png, 012_gt_pred.png, and 024_gt_pred.png. Apply only a visually selected candidate:
Then rerender the canonical state:
If orientation is now correct but a small residual remains, run a micro round:
Repeat until the contact sheet and per-view comparisons are visually aligned. The final alignment_state.json is the reusable global Sim(3) record for that scene/chunk.
Configurable Initial GICP Variant
For scenes where TEASER++ chooses the wrong semantic orientation, use the pre-matched variant:
This always evaluates the 24 proper signed-permutation rotations first. When --initial-count is larger than 24, it appends a deterministic Hopf-grid SO(3) rotation set until the requested count is reached. Typical values are 24, 36, 48, and 60. The legacy method name initial24_gicp_scale is still accepted; use --initial-count to choose the actual number of initial rotations.
Each initial is centroid/scale matched, refined with Open3D Generalized ICP for rotation/translation at fixed scale, then refit with a trimmed nearest-neighbor uniform scale/translation solve. The best candidate becomes both auto_initial_sim3 and active_sim3, and all candidate final_sim3 records are saved under registration_diagnostics.candidates.
For the ablation1 GSO past-solution outputs, most chunks contain params.npz and result.ply but no result.glb. Use:
This automatically falls back from result.glb to params.npz for registration, while still rendering the transformed result.ply Gaussian.
When a scene from this variant is visually rejected, first export and render the saved registration candidates:
Inspect candidate comparison triples one candidate at a time. Prefer a candidate that fixes semantic orientation even if its metrics are not rank 0. Apply the chosen candidate, then rerender the canonical state:
Only after the best saved initial is chosen should subagents use propose --preset micro for small residual translation, rotation, or scale corrections.
Final Evaluation
After manual states and final 25-view renders are in outputs/sam3d-gso-manual-registration, run the evaluation stage:
On an 8-GPU machine, it is fine to expose all cards:
Outputs:
Metric definitions:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingdocs/skills/sam3d-gso-manual-registration/SKILL.md
Popularity
- Repository stars
- 228
- Repository forks
- 22
- 7-day trend score
- 0
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
[](https://verified-skill.com/skills/kaichen-z/stream3d/sam3d-gso-manual-registration)