--- tags: - robotics - anima - slam - gaussian-splatting - semantic-slam - robot-flow-labs library_name: pytorch pipeline_tag: robotics license: apache-2.0 --- # GS3LAM — Gaussian Semantic Splatting SLAM Part of the [ANIMA Intelligence Compiler Suite](https://robotflowlabs.com) by Robot Flow Labs. **Wave 7 | Domain: SLAM | Module: slam-gs3lam** ## Paper **GS3LAM: Gaussian Semantic Splatting SLAM** Linfei Li, Lin Zhang, Zhong Wang, Ying Shen ACM MM 2024 | [arXiv 2603.27781](https://arxiv.org/abs/2603.27781) | [DOI](https://doi.org/10.1145/3664647.3680739) ## Architecture Dense semantic RGB-D SLAM using a Semantic Gaussian Field (SG-Field). Each Gaussian stores position, covariance, opacity, RGB color, and a 16-dimensional semantic feature vector. A lightweight 1x1 Conv2d decoder maps semantic features to per-pixel class logits. Core components: - **SG-Field**: 3D Gaussian representation with semantic features - **Differentiable Splatting**: CUDA-accelerated rendering via gaussian-semantic-rasterization - **Tracking**: Frame-to-model pose optimization (rotation + translation) - **Mapping**: Joint optimization of Gaussians + semantic decoder - **DSR**: Depth-adaptive Scale Regularization - **RSKM**: Random Sampling-based Keyframe Mapping ## Exported Formats | Format | File | Use Case | |--------|------|----------| | SafeTensors (field) | `pytorch/gs3lam_office2_v1_field.safetensors` | Gaussian field parameters | | SafeTensors (decoder) | `pytorch/gs3lam_office2_v1_decoder.safetensors` | Semantic decoder weights | | ONNX (decoder) | `onnx/gs3lam_office2_v1_decoder.onnx` | Cross-platform decoder inference | | Poses (npy) | `pytorch/gs3lam_office2_v1_poses.npy` | Estimated camera trajectory [N,4,4] | | Checkpoint | `checkpoints/best.pt` | Full checkpoint for resuming | **Note**: TensorRT engines must be generated on target hardware due to architecture-specific compilation. ## Training Details - **Scene**: Replica office2 (2000 frames, 1200x680 rendered at 600x340) - **Hardware**: NVIDIA L4 23GB - **Config**: 20 tracking iterations, 15 mapping iterations (L4-tuned) - **Gaussians**: 21K (capped at 80K with periodic pruning) - **Duration**: ~5.5 hours - **CUDA Extension**: gaussian-semantic-rasterization (sm_89) ### Current Metrics (L4 baseline, reduced resolution) | Metric | Value | Paper Target | |--------|-------|-------------| | PSNR | 3.39 dB | >= 35.0 dB | | ATE | 178 cm | <= 0.50 cm | > **Note**: These metrics reflect an L4-constrained run at half resolution with aggressive Gaussian capping (21K vs paper's ~775K). Paper-quality reproduction requires full resolution on A100/H100 hardware. ## Usage ```python import torch from anima_slam_gs3lam.export import load_checkpoint, reconstruct_field, reconstruct_decoder ckpt = load_checkpoint("checkpoints/best.pt") field = reconstruct_field(ckpt, device="cuda") decoder = reconstruct_decoder(ckpt, device="cuda") ``` ## API ```bash # Start service python -m anima_slam_gs3lam # Health check curl http://localhost:8080/health curl http://localhost:8080/ready curl http://localhost:8080/info ``` ## Docker ```bash docker compose -f docker-compose.serve.yml --profile api up -d ``` ## CUDA Extension The gaussian-semantic-rasterization CUDA kernel is shared at: `/mnt/forge-data/shared_infra/cuda_extensions/gaussian_semantic_rasterization/` ## License Apache 2.0 — Robot Flow Labs / AIFLOW LABS LIMITED