Foundation Models
Foundation-model nodesets expose generic, domain-agnostic primitives (score_tokens / generate / embed). Method nodesets consume them over wires and own all task-specific glue — see TODO #56 (method vs foundation-model boundary).
The map below groups every wrapped model by capability (lane colour matches the group label). Dashed chips are common foundation models we have not wrapped yet — the current coverage gaps.
| NodeSet | File | Env | Description |
|---|---|---|---|
| AIMv2 | workspace/nodesets/model/model_aimv2.py | ac-fm | Autoregressive ViT features (Apple AIMv2) — RGB → mean-pooled per-image embedding; a second self-supervised backbone alongside DINOv2; extract_features |
| BLIP-2 | workspace/nodesets/model/model_blip2.py | ac-fm | Per-view captioning (FlanT5-XL) — extracted from navgpt_mp3d_tools (2026-07-04) |
| CLIP | workspace/nodesets/model/model_clip.py | ac-fm | Language-aligned image/text embeddings — encode_image / encode_text / zero-shot classify; shared image–text space for open-vocab maps & retrieval |
| CoTracker | workspace/nodesets/model/model_cotracker.py | ac-cotracker | Point tracking (CoTracker3) — dense point tracking through a video / frame sequence with occlusion handling; track_grid / track_points |
| Depth Anything | workspace/nodesets/model/model_depth_anything.py | ac-fm | Monocular depth (Depth Anything V2) — RGB → dense per-pixel depth; relative / metric checkpoints as config |
| DepthPro | workspace/nodesets/model/model_depthpro.py | ac-fm | Zero-shot metric depth (Apple DepthPro) — RGB → dense depth in metres + recovered field of view; the absolute-scale companion to Depth Anything |
| DetAny3D | workspace/nodesets/model/model_detany3d/ | ac-detany3d | Promptable 3D detection — image + box prompts → 3D bboxes (ToolEQA perception backbone; text→box via Grounding DINO composition) |
| DINOv2 / v3 | workspace/nodesets/model/model_dinov2.py | ac-fm | Per-image pooled features — hub backend (byte-exact SmartWay ViT-S/14-reg) + hf backend for DINOv3 / HF DINOv2 (2026-07-08) |
| Florence-2 | workspace/nodesets/model/model_florence2.py | ac-fm | Unified vision (Florence-2) — one seq2seq model for caption / object detection / phrase grounding / open-vocab detection / referring segmentation / OCR via a task token; run |
| Grounding DINO | workspace/nodesets/model/model_grounding_dino.py | ac-detany3d (native) · ac-fm (hf_tiny) | Open-vocab text→box detection — variant as config (native Swin-T/Swin-B or hf_tiny); serves AO-Planner + ToolEQA |
| InstructBLIP | workspace/nodesets/model/model_instructblip.py | ac-fm | Per-view scene captioning (FlanT5-XL, DiscussNav prompt) |
| Matching (SuperPoint + LightGlue) | workspace/nodesets/model/model_matching.py | ac-fm | Sparse keypoint detection + matching (SuperPoint · LightGlue/SuperGlue/LoFTR via transformers) — detect_keypoints / match; the SLAM / relocalization front-end |
| Optical Flow (RAFT) | workspace/nodesets/model/model_opticalflow.py | ac-fm | Dense optical flow (torchvision RAFT) — two frames → per-pixel motion field; raft_large / raft_small, no external weights download |
| OWLv2 | workspace/nodesets/model/model_owlv2.py | ac-fm | Open-vocabulary detection over a label set — CLIP-style per-label scoring; GroundingDINO-compatible result schema; detect |
| Pointmap (Sapiens) | workspace/nodesets/model/model_pointmap.py | ac-fm | Single-image 3D pointmap (Sapiens) — RGB → dense per-pixel (X,Y,Z) in canonical camera space + per-image scale; the monocular counterpart to VGGT's multi-view pointmap |
| RAM / RAM++ | workspace/nodesets/model/model_ram.py | ac-ram | Swin-L tagging; variant-keyed engines (ram/ram_plus × image_size), ordered-list + keyed-dict tools |
| SAM | workspace/nodesets/model/model_sam.py | ac-fm | Segment Anything full series (SAM 1 / 2.1 / 3) — point/box/auto/text segmentation + image embedding; variant as config, stateless server, embedding/logits dataflow ports |
| SAM Video | workspace/nodesets/model/model_sam_video.py | ac-fm | SAM 2 video object tracking — prompt one object on frame 0 (point/box) and propagate its mask across the clip; call-local session keeps the server stateless; track |
| Segmentation (Mask2Former) | workspace/nodesets/model/model_segmentation.py | ac-fm | Universal segmentation (Mask2Former) — per-pixel semantic class-id maps + instance-aware panoptic maps; semantic / panoptic (SAM answers "where", this answers "what") |
| SigLIP2 | workspace/nodesets/model/model_siglip2.py | ac-fm | SigLIP 2 image–text embeddings — the CLIP sibling with a sigmoid zero-shot head (per-label, multi-label); encode_image / encode_text / classify |
| Surface Normals (Sapiens) | workspace/nodesets/model/model_normal.py | ac-fm | Surface-normal estimation (Sapiens via AutoModelForNormalEstimation) — RGB → dense per-pixel unit normals; the orientation companion to monocular depth |
| VGGT | workspace/nodesets/model/model_vggt.py | ac-vggt | Feed-forward 3D reconstruction (Visual Geometry Grounded Transformer) — N RGB views → camera poses + dense depth + world point map in one pass; reconstruct / track_points |
| VGGT-SLAM 2 | workspace/nodesets/model/model_vggt_slam2/ | ac-vggt-slam | Dense RGB-only SLAM session (MIT-SPARK VGGT-SLAM 2.0, RSS 2026) — VGGT feed-forward submaps + DINOv2-SALAD loop closure + GTSAM SL(4) optimization; session verbs (reset / track / finalize / get_trajectory / get_map), the upstream evo ATE ruler (eval_trajectory), and open-set 3D object queries (query_object — PE-CLIP + SAM 3). TUM parity: fr1_xyz bit-exact vs locally-run upstream |
| ORB-SLAM3 | workspace/nodesets/model/model_orbslam3/ | docker | Classic feature-based RGBD visual SLAM — reset / track / trajectory session nodes; first Container Launch nodeset (server_image, no conda env) |
| pySLAM | workspace/nodesets/model/model_pyslam/ | container (agentcanvas/pyslam:cpu-fixed / :cuda) | Streaming visual SLAM (Freda pySLAM, GPL-3.0) behind a rootless-Docker HTTP bridge — eleven nodes exposing pySLAM's whole surface: session (reset / track / get_trajectory / get_map / get_dense_map), stateless perception (extract_features / match_features / eval_trajectory), and neural full-surface (predict_depth / segment_semantic / reconstruct_multiview — DUSt3R/MASt3R/VGGT, GPU) |
| SpatialBot-3B | workspace/nodesets/model/vlm_spatialbot.py | ac-ram | Depth-aware VLM caption/generate — extracted from opennav_perception (2026-07-04) |
| VLM Prismatic | workspace/nodesets/model/vlm_prismatic.py | ac-hmeqa | Generic Prismatic VLM — score_tokens, generate |
| Qwen2.5-VL | workspace/nodesets/model/vlm_qwen2_5_vl.py | ac-fm | Generic VLM generate — ReAct reasoning + VQA (ToolEQA) |
| Qwen3-VL | workspace/nodesets/model/vlm_qwen3_vl.py | ac-fm | Generic VLM generate over images and video — the Qwen2.5-VL successor with a video_paths port |
| InternVL3 | workspace/nodesets/model/vlm_internvl3.py | ac-fm | Flagship open VLM generate over images and video — the InternVL3-*-hf transformers-native checkpoints |
| Gemma 3 | workspace/nodesets/model/vlm_gemma3.py | ac-fm | Google Gemma 3 multimodal generate over images (gated model — accept the licence once) |
| SmolVLM2 | workspace/nodesets/model/vlm_smolvlm2.py | ac-fm | Small/efficient VLM generate over images and video (256M–2.2B) — the lightweight member of the palette |