{"id":32527648,"url":"https://github.com/commonroad/sandra","last_synced_at":"2025-10-28T10:48:41.172Z","repository":{"id":317878275,"uuid":"984892839","full_name":"CommonRoad/SanDRA","owner":"CommonRoad","description":"Safe LLM-Based Decision Making for Automated Vehicles Using Reachability Analysis","archived":false,"fork":false,"pushed_at":"2025-10-03T15:06:33.000Z","size":9927,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-10-03T17:30:41.178Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://commonroad.github.io/SanDRA/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CommonRoad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-16T17:29:25.000Z","updated_at":"2025-10-03T15:06:36.000Z","dependencies_parsed_at":"2025-10-03T17:41:08.466Z","dependency_job_id":null,"html_url":"https://github.com/CommonRoad/SanDRA","commit_stats":null,"previous_names":["commonroad/sandra"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/CommonRoad/SanDRA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommonRoad%2FSanDRA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommonRoad%2FSanDRA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommonRoad%2FSanDRA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommonRoad%2FSanDRA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CommonRoad","download_url":"https://codeload.github.com/CommonRoad/SanDRA/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CommonRoad%2FSanDRA/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281425542,"owners_count":26499031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-28T10:48:23.195Z","updated_at":"2025-10-28T10:48:41.163Z","avatar_url":"https://github.com/CommonRoad.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"docs/static/images/sandra_logo_cut.png\" width=\"180\"\u003e\n  \u003ch1 style=\"\n    font-size: 2.5em;\n    font-weight: bold;\n    background: linear-gradient(90deg, rgb(0,101,189), rgb(254,215,2));\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n    background-clip: text;\n    color: transparent;\"\u003e\n    SanDRA\n  \u003c/h1\u003e\n\u003ch3\u003eSafe LLM-based Decision-making for Automated Vehicles\u003c/h3\u003e\n\n[Yuanfei Lin](https://yuanfei-lin.github.io/)\u003csup\u003e\\*, ✉\u003c/sup\u003e, [Sebastian Illing](https://www.linkedin.com/in/sebastian-illing-6099a4336/)\u003csup\u003e\\*\u003c/sup\u003e, [Matthias Althoff](https://www.ce.cit.tum.de/cps/members/prof-dr-ing-matthias-althoff/)\n\nTechnical University of Munich\n\n(\\*) Equal contribution. (✉) Corresponding author.  \n\n\u003ca href=\"https://commonroad.github.io/SanDRA/\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Project_Page-SanDRA-blue\" alt=\"Project Page\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.python.org/\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3776AB?logo=python\u0026logoColor=white\" alt=\"Python\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://isocpp.org/\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/C++-00599C?logo=cplusplus\u0026logoColor=white\" alt=\"C++\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://arxiv.org/abs/2510.06717\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/arXiv-2510.06717-orange\" alt=\"arXiv Paper\"\u003e\n\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/static/videos/sandra_animation.gif\" alt=\"SanDRA GIF\" /\u003e\n\u003c/p\u003e\n \u003c/div\u003e\n\n\n## ⚙️ Setup\nFor using **SanDRA** with OpenAI models, you need an OpenAI API-key. Make sure to export it as environment variable named **OPENAI_API_KEY**.\nIf you'd rather use local models, you can follow the instructions in section [Run with local LLMs](#run-with-local-llms).\n\n## 📦 Dependencies for Reachability Analysis  \nFor leveraging reachability analysis you need to install\n* [commonroad-reach-semantic](https://github.com/CommonRoad/commonroad-reach-semantic/tree/feature/sandra): branch `feature/sandra` \n(use `export CXX=/usr/bin/g++-10` before installation to use the correct compiler, the whole installation process might take **more than 10 minutes**.)\n\u003e **Note:** After installation, please go to `~/SanDRA/sandra/config.py` and update `COMMONROAD_REACH_SEMANTIC_ROOT` to the directory where you installed `commonroad-reach-semantic`.\n\n##  📦 Dependencies for Set-based Predictions\nFor set-based predictions, you need to install\n* [sonia (spot)](https://github.com/CommonRoad/spot-sonia): branch `master` (`python setup.py install`)\n\n## 🔄 Roadmap  \n\n- [x] 📄 Release Paper  \n- [x] 📦 Release Code\n- [x] 🌐 Release Project Page\n- [ ] 📑 Release Updated Paper  \n\n\n## ▶️ Main scripts\nThere are 2 ways to test SanDRA:\n1. With a [CommonRoad](https://commonroad.in.tum.de/) scenario.\n2. With the [highwayenv](https://highway-env.farama.org/).\n\n*commonroad_run.py* and  *highwayenv_run.py* illustrate how to run SanDRA decision making in either of these cases. Please make sure to prepare the seeds for highwayenv / the scenarios for CommonRoad beforehand.\n\n## 🖥️ Run with local LLMs \u003ca id=\"run-with-local-llms\"\u003e\u003c/a\u003e\nTo run SanDRA with local models, you need to follow these steps:\n1. 📥 Download [Ollama](https://ollama.com/download)\n2. ⚙️ Install Go (Recommended):\n```bash\nsudo apt update\nsudo apt install golang-go\n```\n3. 🤖 Download a model (We recommend to use a model with \u003e=8B parameters to avoid problems with structured outputs):\n```bash\nollama pull qwen3:8b\n```\n4. ▶️ Start the Ollama server\n```bash\nollama serve\n```\n## 📝 Cite Us  \n\nIf you use **SanDRA** in your research, please cite:  \n\n```bibtex\n@article{lin2025sandra,\n  title     = {SanDRA: Safe Large-Language-Model-Based Decision Making for Automated Vehicles Using Reachability Analysis},\n  author    = {Yuanfei Lin and Sebastian Illing and Matthias Althoff},\n  journal   = {arXiv preprint arXiv:2510.06717}, \n  year      = {2025}\n}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommonroad%2Fsandra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommonroad%2Fsandra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommonroad%2Fsandra/lists"}