ProjectSidewalk / ProjectSidewalk/RampNet

RampNet 1.0 closeout: merge queue, what to close, what moves to 2.0

Open
#162 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

documentation
Dominant language
Python
Stars
7
Forks
1
Avg merge
4d 11h
Merged PRs (30d)
7

Description

This is the checklist for calling RampNet 1.0 finished so the repo's attention can move to RampNet 2.0 (#86). It is a triage of every open PR and issue as of 2026-09-15, bucketed by what actually has to happen. The bucket for each issue was checked against its thread's last comment, not its title.

The test for "finished": every 1.0 result is merged, findable from one page, and carries its caveat beside the number. Nothing here requires a GPU except the optional seeds in F.

A. Merge queue

Seven PRs are open; five have sat since 2026-09-03 with finished work in them, some of it paid.

  • #161 — seed variance scored: s_gap 0.0114, ambiguous band, the noise is RampNet's. Closes the last open item on #51 and #135.
  • #160 — launcher docs: the REPO=… RAMPNET_ENV=… invocation that actually runs.
  • #147 — time and money accounting (#143). compute_log.jsonl is not on main until this merges; compute spend has been going into issue comments in the meantime.
  • #146 — claude-opus-5 on nine splits (#139). $70.41 of scored detections.
  • #137 — Vistas at resolution parity (#126). The issue has been treated as closed since 2026-08-18; the PR never merged.
  • #136 — the two collapsed Vistas runbook snippets.
  • #157 — Claude Fable 5/5.1 legs (#156). Decision needed: a roster refresh is not a 1.0 result. Recommend closing the PR and #156 and refreshing the roster when 2.0 has a model to compare.

B. Real work still open for 1.0 — bounded

  • #148 — the #140 seam wrap moved three committed YOLO baseline cells and benchmark_eval/ holds the pre-fix values. Re-scores committed detections; no GPU, no cluster. The numbers the paper would quote are currently wrong in one place.
  • #127 — carry the review notes and Bend's train-overlap flag into the published rampnet-benchmark. records-only rebuild plus a card push; the residual of #21.
  • #72 — the YOLO instability caveat, retitled per its last comment: all five configs collapsed at the epoch-3 warmup peak, not YOLO11-pano specifically. One paragraph in scripts/model_comparison/yolo_baseline/README.md or docs/model_comparison.md.
  • #131 — replicate #46 Phase 1 on a second machine. silent_activation.json has one provenance and §0c of curb_ramp_data_sourcing.md rests on it. Cheap (makelab2, committed caches); do it or state in the doc that it was produced once.
  • #145 — split the runbooks out of model_comparison.md and curb_ramp_data_sourcing.md. Optional for closeout, but the paper is written from these files and neither can be read whole.
  • #74 — Budapest second rater. Blocked on a human. Either schedule a rater or close with the caveat that Budapest is single-rater, LOW confidence, and carries the benchmark's only ranking inversion.
  • Seam residual from #132: the published Stage 1 dataset double-labels 8,361 seam ramps and drops ~71% of seam ramps. The detection-deficit claim was retracted; the dataset defect stands. Decide whether it is fixed in the HF dataset now (a rampnet-dataset revision) or carried as a known defect into #150.

C. Close as done — the finding is recorded, the issue just never got closed

Each of these has its result in a merged doc or PR. Closing comment should point at the doc.

  • #51 — after #161. Final read: gap of replicate means 0.0115 ± 0.0065, published 0.039 was a favourable-vs-unfavourable draw; manual_gold YOLO 0.912 > RampNet 0.905 at matched thresholds.
  • #135 — after #161. Run B decided not-run 2026-09-03; A1.2 bounds every unpaired single-seed comparison at 0.011.
  • #126 — after #137. Transfers but does not compete; naive union dead; cascade ceiling ~19 ramps, FP cost unmeasured.
  • #139 — after #146. The annapolis edge reversed on the other eight splits.
  • #143 — after #147.
  • #144 — the recommendation not to run claude-opus-5 on manual_gold alone is the answer; recorded in the issue body.
  • #58 — manual_gold is a live split, full roster, RampNet 0.908 vs gemini-pro 0.568. Its own last comment recommends closing.
  • #44 — clovis landed and the diversity ask was overshot (11 splits). Its last comment recommends closing.
  • #49 — clovis is in the published benchmark (9 splits shipped in #21).
  • #39 — OWLv2, Grounding DINO, Molmo all on every split. Its last comment recommends closing.
  • #46 — Phases 0+1 merged (#94, #99); residuals spun out to #130/#131; the second-rater pass has no rater.
  • #43 / #130 — the seam scoring defect is fixed in #140 (matcher wraps; 10 manual_gold pairs adjudicated and merged, seam_verdicts__jon.json). Close both; the dataset-side residual is the B item above.
  • #132 — same. The "RampNet is blind at the seam" result was retracted (skimage exclude_border); the scorer fix and GT adjudication are merged.
  • #59 — answered in curb_ramp_data_sourcing.md (#93): 500k is not reachable on assessed data; composition beats volume. The follow-on work is #96, which is 2.0.
  • #20 — the harness exists (scripts/model_comparison/, rampnet/roster.py); everything it asked for was built under other issues.

D. Won't-do for 1.0 — close with a one-line reason

  • #90, #70 — YOLO-pano LR tuning / stabilized rerun. Superseded: the tiles arm is the reported baseline and it is stable (s_A 0.0023).
  • #95 — attributing the RampNet-vs-YOLO gap across backbone / representation / budget. The gap to attribute is ~0.01 F1, inside one s_B; there is nothing to decompose.
  • #52 — YOLOE. Another zero-shot entrant will not change a ranking RampNet leads by 0.12–0.34.
  • #45 — VLM prompt study. Same reason.
  • #47 — nadir/hood mask in the reprojection rig. A VLM-cost optimisation for a leg we are not extending.

E. RampNet 2.0 — move, don't close

Live proposals with data behind them. Recommend a RampNet 2.0 milestone (the repo has none) and moving these onto it untouched.

  • #86 (roadmap), #48, #83, #107, #113, #111, #112, #101, #102, #158, #159, #149, #151
  • #35 — hybrid/cascade; #126's cascade-gate run says the ceiling is ~19 ramps and an arbiter-on-crop is the load-bearing piece.
  • #25 — input resolution; forecast-backed by the depth analysis.
  • #38 — per-ramp deployment recall / sampling density.
  • #82 — augmentation as a transfer lever.
  • #85, #96, #103 — the 500k data-sourcing track (aerial as source, precision gate, street-level review instrument; #105 merged, Denver sheet awaiting review).

Separate tracks, not 1.0 and not 2.0: #150 (FAIROS release, grant deliverable) and #114 (crop-window scoring for sidewalk-auto-labeler; lives here only because the gold boxes do).

F. The page that makes "closed out" true

  • docs/rampnet1_findings.md — one line per headline result, with the doc/PR that holds it and its caveat. At minimum:
    • RampNet vs supervised YOLO on the same data: ~0.01 F1 at matched operating points, not 0.039 (seed_variance_51_135.md, operating_point_parity_51.md)
    • Seed variance bounds every unpaired single-seed comparison at 0.011 F1 (A1.2)
    • RampNet vs 8 VLMs / open detectors: leads by 0.12–0.34 on all 11 splits (model_comparison.md)
    • manual_gold: YOLO 0.912 > RampNet 0.905 at matched thresholds; RampNet 0.908 vs best VLM 0.568
    • Operating point 0.55 → 0.30 uniform (operating_point.md)
    • Stage 2 recipe: 1 epoch is the plateau start, no resolvable peak, Run B not run (stage2_epoch_curve_84.md, stage2_cosine_rung_135.md)
    • Vistas transfers but does not compete; naive union dead (vistas_parity_126.md or wherever #137 lands it)
    • The seam: scorer defect fixed, detection-deficit claim retracted, dataset defect open
    • Laurens: the deficit is the rig, not the town (#151)
    • Data scaling: composition beats volume; 500k not reachable on assessed data (curb_ramp_data_sourcing.md)
    • Miss taxonomy: σ/calibration, not vocabulary; sourcing prize 0.013 recall pts (#46)
    • Budapest: single-rater, LOW confidence, only ranking inversion
  • Optional, free: RampNet seeds 4–6 on klone ckpt-all to tighten s_B (n=3 → n=6 moves the mean-gap read from ~1.8σ to ~2.4σ if the mean holds). Not blocking; the staged dataset on /gscratch/scrubbed has a purge clock at ~2026-09-29, so it is now or never. Cancel if not started within a week.

🤖 Generated with Claude Code — Opus 5 (1M context), claude-opus-5[1m]

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the checklist in this issue and read the referenced findings documents, especially docs/rampnet1_findings.md, curb_ramp_data_sourcing.md, and model_comparison.md. Trace each 1.0 item to its referenced issue or PR; done means the required merges, closures, decisions, and caveats are recorded on one findable findings page, with unresolved dataset and rater decisions explicitly handled.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
documentation, release
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.