Instructions to use m1sc/reach-down-vit-release with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- DepthAnythingV2
How to use m1sc/reach-down-vit-release with DepthAnythingV2:
# Install from https://github.com/DepthAnything/Depth-Anything-V2 # Load the model and infer depth from an image import cv2 import torch from huggingface_hub import hf_hub_download from depth_anything_v2.dpt import DepthAnythingV2 # instantiate the model model = DepthAnythingV2(encoder="<ENCODER>", features=<NUMBER_OF_FEATURES>, out_channels=<OUT_CHANNELS>) # load the weights filepath = hf_hub_download(repo_id="m1sc/reach-down-vit-release", filename="depth_anything_v2_<ENCODER>.pth", repo_type="model") state_dict = torch.load(filepath, map_location="cpu") model.load_state_dict(state_dict) model.eval() raw_img = cv2.imread("your/image/path") depth = model.infer_image(raw_img) # HxW raw depth map in numpy - Notebooks
- Google Colab
- Kaggle
Reach-down fixed-wing ViT release
Complete model weights and the original training/evaluation artifacts for the released fixed-wing landing-value model. The exact training dataset is m1sc/reach-down-tiles-v2. The source repository is ckwolfe/reach-down; release.json records the source snapshot commit.
Run artifacts
| path | contents |
|---|---|
runs/vit_release/best.pt |
released full model state, including encoder, decoder, and seven-channel input projection |
runs/vit_release/history.csv |
24 original training epochs and validation metrics |
runs/vit_release/args.json |
reconstructed training configuration with an explicit provenance note |
runs/vit_release_s0/, runs/vit_release_s1/, runs/vit_release_s2/ |
seed runs, each with full checkpoint, history, and arguments; the released run matches seed 0 |
split.csv |
original 2,500-tile training/validation assignment and per-tile metadata |
results/*.csv |
all 60 repository evaluation CSVs, including release evaluations, controls, ablations, and later experiments |
runs/eval_release_w0.csv, runs/eval_release_w6.csv |
persisted released-model episode results at 0 and 6 m/s wind |
metrics.json |
selected metrics recomputed directly from the saved histories and CSVs, with source paths and denominators |
docs/, scripts/, reachdown/ |
method documentation and selected original training, evaluation, model, and normalization code |
SHA256SUMS |
checksums of the uploaded artifacts |
The checkpoints contain 287 state entries and 25,086,145 parameters each; they are complete model states rather than adapters. No weights were retrained for this upload.
Training and provenance
The dataset consists of 500 synthetic terrains × five states, with 512 × 512 arrays at 10 m/pixel. Terrain seeds 0–399 are training (2,000 tiles) and 400–499 are validation (500 tiles). Splitting by terrain keeps all states of one terrain together.
Commands recorded in the repository release documentation:
python scripts/make_dataset.py --n-terrains 500 --states 5 --out data/tiles_v2
python scripts/train.py --data data/tiles_v2 --epochs 24 --safety-buffer 40 --false-safe-weight 8 --seed 0 --out runs/vit_release
The seed experiments use seeds 0, 1, and 2 and their respective run directories. The original training argument files were reconstructed after training; each args.json documents the evidence. The checkpoints, histories, tiles, split manifest, and evaluation CSVs are original saved artifacts.
The model uses a Depth Anything V2 Small encoder/decoder with a seven-channel input projection. Four final encoder blocks and the dense decoder are trained. Inputs encode observed elevation, slope and roughness relative to aircraft limits, avoid mask, analytic reach margin, run length, and wind. The network input is 364 × 364. Training recomposes the stored HJ margin and landability into a target with a 40 m safety buffer and weights false-safe predictions by 8. See docs/datagen.md, docs/architecture.md, and the uploaded source.
Evaluation
The training history evaluates on the 500 tiles from held-out terrain seeds 400–499. scripts/evaluate.py evaluates separately generated synthetic terrain and aircraft states, constructs oracle labels and a wind-aware analytic baseline, and tests selected sites using a 5 × 5 neighborhood. Real-DEM evaluation uses independent real terrain; unseen-archetype evaluation uses four additional never-touched map types. Other CSVs archive their named ablations and experiments and should be interpreted with their matching scripts and documentation.
| metric | result | source |
|---|---|---|
| validation AUROC at best epoch | 0.997941 | runs/vit_release/history.csv, epoch 20 |
| validation MAE at best epoch | 0.017957 | same epoch |
| mean real-DEM MAE, 16 sites | 0.076850 | results/real_dem_eval.csv |
| mean unseen-archetype MAE, 4 sites | 0.085825 | results/unseen_map_eval.csv |
metrics.json includes strict site-safety rates for both the ViT and analytic baseline, with all-episode and feasible-episode denominators. Raw CSVs preserve failures as well as successful cases. The predicted map is an approximation to the offline oracle, and these experimental results do not establish formal safety guarantees.
Download
Clone the source repository and install its training dependencies, then restore the preserved directory layout:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id="m1sc/reach-down-vit-release",
allow_patterns=["runs/*/*", "runs/eval_release_*.csv", "results/*", "split.csv"],
local_dir=".",
)
snapshot_download(
repo_id="m1sc/reach-down-tiles-v2",
repo_type="dataset",
local_dir="data/tiles_v2",
)
Loading the released full state from the source checkout:
import torch
from huggingface_hub import hf_hub_download
from reachdown.model import LandingValueViT
path = hf_hub_download("m1sc/reach-down-vit-release", "runs/vit_release/best.pt")
checkpoint = torch.load(path, map_location="cpu", weights_only=True)
model = LandingValueViT(pretrained=False, unfreeze_last_blocks=checkpoint["unfreeze_blocks"])
model.load_state_dict(checkpoint["state_dict"])
model.eval()
pretrained=False avoids downloading another copy of the base weights; the architecture configuration is still fetched from the base model repository. Input preparation is defined in reachdown/data.py; outputs are logits and sigmoid gives the predicted value map.
- Downloads last month
- -