neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
3D Gaussian Splatting을 위한 자율 연구 시스템
An autonomous research system for 3D Gaussian Splatting: reproduce → ideate → train → ablate → write. 16 manuscripts, +0.18 to +3.78 dB over reproduced targets, real peer reviews.
개발 도구Python · TeXGitHub @seemandhar온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기[NeurIPS 2026] SplatLab: Autonomous Scientific Discovery for 3DGS Research. From a one-line idea to reproduced baselines, real GPU experiments, and a compiled paper, driven by Claude Code.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗🧪 Turn a one-line prompt (or nothing at all) into a reproduced baseline, a new method, real GPU experiments, and a compiled paper. 🧪
Seemandhar Jain · Manmohan Chandraker
University of California, San Diego
🚀 The research cycle (read, reproduce, extend, train, ablate, write) compressed from months of graduate-student time to days of mostly autonomous compute.
SplatLab is an autonomous research system for 3D Gaussian Splatting. You give it a research prompt, a target-paper URL, or no input at all. It reproduces a published baseline, proposes an extension, trains and ablates it across Mip-NeRF 360 and LLFF on real GPUs, writes the manuscript, and ties every reported number to a logged training run.
It runs natively on Claude Code. One /research slash command turns the main session into a lab PI that runs for 24–48 h, dispatching 32 specialised subagents and coordinating them through a crash-safe ledger.json. An optional zero-dependency web dashboard can launch, watch, stop, and resume runs from the browser.
Five design choices set it apart:
| Design choice | What it buys | |
|---|---|---|
| 🧬 | Verified-reproduction backbone | No experiment spawns until the target is reproduced within 0.2 dB on our GPUs; every candidate mutates a plugin already matched to its published baseline. |
| 🏆 | Grounded Elo tournament | A cascade-weighted Elo tournament across eight islands ranks candidates on measured ns-train PSNR — never model-judged scores — with verbal-gradient feedback to the ideator. |
| ⚔️ | In-loop falsification | Every survivor faces edge-scene, sparse-view, and load-bearing-hyperparameter attacks; each failure subtracts Elo, so robustness is a selection signal. |
| 🔗 | Claim-backed verification | A verifier matches every number in the compiled draft to a ledger measurement; the run cannot terminate while any claim is unbacked. |
| 🗺️ | Domain-aligned modification space | A seven-category 3DGS taxonomy wraps EVOLVE-BLOCK hooks that an auto-mapper places in any 3DGS repository. |
A master orchestrator (the professor) delegates to phase coordinators (PhD students) and atomic leaf agents (undergraduates):
Prompt / paper URL / GitHub repo / nothing
│
├─ [1] Grounding ────────── regime classifier · literature corpus + arXiv gap-fill
│ repo-reproducer clones + reproduces the target (±0.2 dB)
│ evolve-block-mapper places the 9 EVOLVE-BLOCK hooks
│
├─ [2] Grounded ideation ── bottleneck-analyst (empirical B-IDs) + limitation-brainstormer
│ (conceptual L-IDs) → ideator + web-idea-scout
│ idea-level Elo pre-selection, novelty check, tweak-class ideas banned
│
├─ [3] Implementation ───── implementer: parse → plan → code → review → validate → integrate → test
│ debugger / freeform-mutator on failure
│
├─ [4] Tournament ───────── smoke (500 it) → single-scene probe → multi-scene → full 30k
│ cascade-weighted Elo · falsifier · 8-island evolutionary search
│
├─ [5] Integrity audit ──── ablation-runner · failure-case-analyst · provenance / novelty / claim checks
│
└─ [6] Manuscript ───────── figure-generator · summary/body/related-work writers · latex-assembler
3 parallel reviewers → revision-agent until converged → paper.pdf
| Stage | Subagents |
|---|---|
| Grounding | regime-classifier · researcher · pdf-harvester · repo-reproducer · evolve-block-mapper · baseline-runner · benchmark-published |
| Ideation | bottleneck-analyst · limitation-brainstormer · ideator · web-idea-scout · devils-advocate |
| Implementation | implementer · debugger · freeform-mutator · smoke-trainer · trainer |
| Analysis | ablation-runner · failure-case-analyst · failure-post-mortem · visual-comparator |
| Writing | figure-generator · summary-writer · body-writer · related-work-writer · supplementary-writer · latex-assembler · paper-quality-checker |
| Review | reviewer-a · reviewer-b · revision-agent · rebuttal-writer |
Each is a Markdown file with YAML frontmatter in .claude/agents/. See CLAUDE.md for roles, model tiers, and the two execution tracks (A: reproduce + improve a SOTA repo · B: local gs_template).
Each SOTA row is the target reproduced on our GPUs under the reproduce-first contract, not copied from its paper.
| Setting | Method | Limitation attacked / fix | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
|---|---|---|---|---|---|
| Nebula (180 fr) | 3DGS | pinhole ignores OPENCV distortion; SfM yields ≈0 stars | 32.58 | 0.914 | 0.278 |
| Nebula3DGS-v2 | 3DGS-MCMC sampler + saturation-driven star seeder | 36.36 (+3.78) | 0.945 | 0.201 | |
| Bubble (200 fr) | 3DGS | SH cannot represent thin-film iridescence | 27.40 | 0.857 | 0.337 |
| BubbleGS | MCMC chassis + Snell/Fresnel two-pass shell renderer | 30.11 (+2.71) | 0.906 | 0.224 | |
| Mip-NeRF 360 (7 sc) | FastGS | {0,1}-thresholded pixel count is frequency-blind | 29.12 | 0.858 | 0.217 |
| TileFocalGS | rank-graded per-tile weights, EMA-smoothed across views | 29.69 (+0.57) | 0.869 | 0.194 | |
| Mip-NeRF 360 (9 sc, 109 s) | FastGS | opacity reset destabilises late refinement | 25.65 | 0.751 | 0.311 |
| FreezeGS | freeze geometry, disable opacity reset in phase 2 | 26.08 (+0.43) | 0.761 | 0.300 | |
| Mip-NeRF 360 (7 sc, 50 s) | splatfacto | severely under-converged at 50 s | 20.53 | 0.593 | 0.505 |
| View-Curriculum-GS | first 15 s on the 30% most pose-similar views | 23.36 (+2.83) | 0.686 | 0.412 | |
| Mip-NeRF 360 | MSAA-3DGS | multi-sample AA blurs fine contrast |
The full table (11 reproduced targets, 11 wins) is in the paper. 3 SplatLab-written papers submitted to a CVPR 2026 workshop were accepted by human reviewers. In a blind expert study, SplatLab ideas scored higher on novelty than PhD-student ideas (5.71 vs 4.92, p = 0.041).
Each first page below comes from a real compiled PDF produced by one autonomous run: the method was invented, trained, ablated, illustrated, written, and revised with no human editing. Click a page to read the paper.
All 16 papers, plus the OpenReview decisions, are on the project page.
claude on PATH) with a Claude Max plan or an API keytmux, python3 + pyyamlnerfstudio conda env (ns-train / ns-eval), mineru (PDF → Markdown), TeXLive (pdflatex, bibtex)node ≥ 18 for the web dashboard; PaperBanana for figure generation (export PAPERBANANA_DIR=/path/to/PaperBanana)git clone https://github.com/seemandhar/SplatLab.git
cd SplatLab
conda create -n nerfstudio python=3.10 -y && conda activate nerfstudio
pip install nerfstudio pyyaml
pip install -e splatify/gs_template # local nerfstudio-compatible 3DGS template (Track B)
# datasets go under data/ (paths are set in config.yaml → data_roots)
mkdir -p data && ln -s /path/to/mipnerf360 data/mipnerf360
/research (recommended)The classic way to run SplatLab, and the one used for every run in the paper. Start Claude Code in the repo root and the main session becomes the lab PI:
claude
> /research "frequency-aware adaptive densification for 3DGS" --hours 24
> /research-status # live progress: thesis, idea pipeline, best result, budget
> /research-stop # graceful halt; in-flight experiments finish
> /research-resume # pick up after a stop or crash, from the ledger checkpoint
Fully detached in tmux, so it survives ssh disconnects:
bash scripts/launch.sh "my idea" 24 # starts claude + /research in a tmux session
tmux attach -t splatlab # watch the master console
Ways to start a run:
/research "your idea here" --hours 24 # from a research prompt
/research "improve it" --paper-url https://arxiv.org/abs/2505.05587 # target a published paper
/research "improve it" --git-url https://github.com/<org>/<3dgs-repo> # clone + reproduce a repo first
/research --hours 24 # no idea given: falls back to config.yaml
Other flags: --scenes a,b,c, --max-budget-usd N, --model-preset optimized|all_opus|all_sonnet.
A zero-dependency Node dashboard on top of the same commands. It is handy for watching a run from a browser or a laptop:
bash start-ui.sh # → http://localhost:8420
+ New Run → enter an idea and a time budget → Launch. Tabs: Overview (status, thesis, ideas, best result, milestones, budget) · Experiments (smoke → probe → multi-scene cascade) · Live (event feed + read-only master console) · Paper (compiled PDF, figures, reports) · Runs (inspect or resume any past run). Stop / Resume / Kill sit in the top bar.
| UI control | Command | What happens |
|---|---|---|
| Launch Run | /research "idea" --hours N | Seeds the idea into config.yaml, starts claude in the splatlab tmux session, sends /research. |
| Overview | /research-status | Reads the ledger; shows status, thesis, ideas, best, milestones, budget. |
| Stop | /research-stop | Sets status: stopping; the master halts gracefully at its next iteration. |
| Resume | /research-resume | Starts a session and continues the most recent run from its ledger checkpoint. |
| Kill | tmux kill-session | Hard-stops the session; the ledger survives, and Resume picks it back up. |
The dashboard keeps no run state of its own. Every view is derived from workspace/run_<ts>/ledger.json, events.jsonl, and tmux, so it is refresh-safe and crash-safe, and you can switch between the terminal and the browser mid-run.
Remote access (e.g. from a laptop):
HOST=0.0.0.0 GSS_TOKEN=$(openssl rand -hex 16) bash start-ui.sh
# open http://<your-box>:8420 — the page asks for the token once
See ui/README.md for the full API and design notes.
Edit config.yaml (the dashboard's launch form writes to it too):
hours: 24 # wall-clock cap (authoritative)
max_budget_usd: null # null on Claude Max; a number for API billing
model_preset: all_opus # optimized | all_opus | all_sonnet
dataset: mipnerf360
scenes: [garden, bicycle, stump, room, counter, kitchen, bonsai]
gpu_indices: [0, 1, 2, 3]
allow_repo_reproduction: true # false → restrict to the local splatify/gs_template (Track B)
SplatLab/
├── README.md
├── CLAUDE.md # architecture, team roster, execution tracks
├── config.yaml # run configuration
├── run.sh · resume.sh · start-ui.sh
├── .claude/
│ ├── commands/ # /research, /research-status, /research-stop, /research-resume
│ ├── agents/ # 32 subagent definitions + shared protocols
│ └── skills/ # academic-voice cleanup (humanizer)
├── splatify/ # evolutionary search: Elo, cascade, falsifier, EVOLVE-BLOCKs
│ └── gs_template/ # nerfstudio-compatible 3DGS template + method plugins
├── scripts/ # launch, ledger helpers, GPU reservation, watchdog, metric extraction
├── ui/ # optional zero-dependency Node dashboard (server.js + public/)
├── latex/ · refs/ # paper template + BibTeX corpus
├── assets/ # figures used in this README
└── discoveries.txt … # reference corpora read by the ideator and writers
workspace/run_<timestamp>/
├── ledger.json # durable state: ideas, experiments, Elo, claims → measurements
├── events.jsonl # append-only event log
├── sota/ # cloned + reproduced target repo, one worktree per idea
├── figures/ # teaser, pipeline, qualitative renders, tables
├── paper/main.pdf # the compiled manuscript
└── RESEARCH_LOG.md # written when no result clears the bar
A tool that compresses months into days can flood a peer-review system built for human pace. We recommend labelling derivative submissions as machine-generated and shipping their experiment ledger, and we discourage volume submissions. SplatLab is a research instrument, not a paper-mill backend.
Runs consume real GPU time (and API spend when not on Claude Max). The master may clone repos and run pip/conda to reproduce baselines; set allow_repo_reproduction: false to keep it on the local gs_template. The dashboard binds 127.0.0.1 by default. Never bind 0.0.0.0 without setting GSS_TOKEN.
splatify/ evolutionary search and gs_template.If you find this work useful, please cite:
@misc{jain2026splatlabautonomousscientificdiscovery,
title={SplatLab: Autonomous Scientific Discovery for 3DGS Research},
author={Seemandhar Jain and Manmohan Chandraker},
year={2026},
eprint={2610.30468},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2610.30468},
}
| 25.35 |
| 0.758 |
| 0.369 |
| MSAA-Bilat | bilateral-grid contrast recovery | 26.19 (+0.84) | 0.791 | 0.293 |
| LLFF | DWTGS | wavelet basis under-constrained without high-freq supervision | 18.68 | 0.510 | 0.374 |
| DWTGS-Patch | patch structure loss + opacity/normal/depth regularisers | 21.09 (+2.41) | 0.725 | 0.281 |