Tyr is the robotics software stack powering Immortals, our RoboCup Small-Size League team. This is a modern C# 14 / .NET 10 port of our original C++ codebase.
- ✅ Common, Vision, Referee, and GUI are done
- 🔜 Soccer is next
- SSL Reference — RoboCup Small Size League rules, field specs, and the SSL-Vision / Game Controller / grSim communication stack.
- .NET 10 SDK
- Rider, Zed, or any IDE with C# support
1 .Clone the repository
git clone https://github.com/Immortals-Robotics/TyrSharp.git
cd TyrSharp- Restore dependencies
dotnet restore- Build the solution
dotnet buildProject-local tasks and debug configurations are included.
Open the task picker with Ctrl+Shift+B (or via command palette → task: spawn):
| Task | Description |
|---|---|
build: solution |
Build the entire solution |
build: <Project> |
Build a specific project (Common, Vision, Soccer, etc.) |
run: Gui |
Run the GUI with Data/config.toml |
run: Cli |
Run headless CLI with Data/config.toml |
test: all |
Run all tests |
test: filter |
Run tests matching a class/method name |
clean: solution |
Clean build outputs |
Requires the zed-netcoredbg extension. Open the debug panel and choose a configuration:
| Configuration | Description |
|---|---|
debug: Gui |
Build and debug the GUI |
debug: Cli |
Build and debug the CLI |
debug: Tests |
Build and debug the test suite |
We use Github flow as our branching strategy. Direct commits to the main branch are disabled, the goal is to keep it stable and usable.
- Create a new branch from main named
dev/your-awesome-dev-task. - Commit changes to your new branch.
- Open a pull request when you're done.
- After your PR is approved and all checks are passed, merge it into the main branch.
- Delete your dev branch.
This project is licensed under the terms of the GNU GPLv3.
