YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
S23DR 2026 โ Iterating on the Baseline (5th place)
Solution for the S23DR 2026 structured 3D wireframe reconstruction challenge. Private leaderboard: 0.5388 HSS, 5th place, with a single 8.85M-parameter Perceiver.
The submitted entry is the raw 8k Perceiver: a learned segment model over a fused, priority-sampled COLMAP/depth point cloud, with no hand-crafted post-processing. The repository also contains the hand-crafted pipeline and the classifier-gated hybrid that we used earlier in the competition, and the training/repro scripts behind them. See the accompanying write-up for the full account.
Run inference
pip install -r requirements.txt
python script.py
The challenge harness provides params.json, downloads the dataset, runs
script.py, and reads the resulting submission.json
({order_id, wf_vertices, wf_edges} per scene). script.py loads
checkpoint_8192.pt and runs the raw 8k model (CONF_THRESH=0.5, no seam,
no augments).
Layout
script.py raw 8k inference (the submitted entry)
Writeup.pdf method write-up (full account of the solution)
checkpoint_8192.pt 8k Perceiver weights (the 5th-place model)
checkpoint.pt organizers' 4k Perceiver (curriculum start point)
solution.py hand-crafted geometric pipeline
edge_classifier.py PointNet edge classifier (hybrid augment)
vertex_refiner.py PointNet vertex classifier (hybrid augment)
pnet_class_2026.pth edge classifier weights
vertex_refiner.pth vertex classifier weights
s23dr_2026_example/ model + training package (Perceiver, tokenizer, losses, train.py)
configs/ training config (base.json)
REPRODUCE.md recipe for the resolution curriculum (2k -> 4k -> 8k)
training/ data-generation and training scripts (see below)
experiments/ptv3/ the Point Transformer V3 encoder experiment
(negative result; trained model + logs + code)
Reproducing
The 8k model. Follow REPRODUCE.md: train the Perceiver from scratch at
2048 points, then fine-tune at 4096 and 8192 points on the organizers' released
sampled point clouds. Our contribution is the 4kโ8k stage; the released 4k
checkpoint (checkpoint.pt) is the starting point.
Classifier augments. training/gen_edge_dataset.py and
training/gen_vertex_dataset.py build the per-candidate patch datasets from the
hand-crafted pipeline's predictions; training/train_edge_classifier_2026.py
and training/train_vertex_refiner_2026.py train the PointNet classifiers.
Router (negative result). training/train_routing_gbt.py with
training/oracle_sources_{train,validation}.json reproduces the gradient-boosted
per-scene router; it recovered only 4.5% of the per-scene oracle ceiling.
Some scripts under training/ contain absolute paths from the original training
environment and expect the repository root on PYTHONPATH
(e.g. PYTHONPATH=. python training/train_edge_classifier_2026.py); adapt the
paths to your setup.