{"id":32620282,"url":"https://github.com/olivia-banks/cardinal","last_synced_at":"2026-04-14T18:32:49.642Z","repository":{"id":198131699,"uuid":"700135943","full_name":"olivia-banks/cardinal","owner":"olivia-banks","description":"Cardinal FTC Simulation Software","archived":false,"fork":false,"pushed_at":"2023-10-05T17:07:40.000Z","size":17994,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-30T18:25:41.184Z","etag":null,"topics":["aerospace-engineering","first-tech-challenge","quantum-machine-learning","robotics","simulation","simulation-modeling"],"latest_commit_sha":null,"homepage":"https://github.com/rh-robotics/Cardinal","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olivia-banks.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":"2023-10-04T02:34:05.000Z","updated_at":"2025-09-15T03:58:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"e9c33fc5-6a1a-4edc-92bd-9ab2495810b7","html_url":"https://github.com/olivia-banks/cardinal","commit_stats":null,"previous_names":["rh-robotics/cardinal","olivia-banks/cardinal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/olivia-banks/cardinal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivia-banks%2Fcardinal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivia-banks%2Fcardinal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivia-banks%2Fcardinal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivia-banks%2Fcardinal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olivia-banks","download_url":"https://codeload.github.com/olivia-banks/cardinal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olivia-banks%2Fcardinal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31810737,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["aerospace-engineering","first-tech-challenge","quantum-machine-learning","robotics","simulation","simulation-modeling"],"created_at":"2025-10-30T18:11:39.186Z","updated_at":"2026-04-14T18:32:49.629Z","avatar_url":"https://github.com/olivia-banks.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cardinal\n\n![A red, North-American cardinal](/assets/images/cardinal.jpg)\n\nCardinal is a way to simulate FTC (First Tech Challenge) OpModes. It's not done, and shouldn't be\nused just yet.\n\n## Technical Details\n\nWhen you open a robot controller that knows about a Cardinal-enabled OpMode, the\nOpMode falls into native code. This code essentially hijacks parts of the VFS device\ntree, and through this it fakes the existence of I2C, USB, etc. devices. Whenever data\nis written to one of these fake devices, it is passed to the native code running on\nthe Android phone, which shakes the protocol, extracts the data, and repackages it,\nso it can be sent to the desktop client.\n\nThe desktop client then takes the information the Android phone sends it, and uses it\nto construct a fake version of reality, and sensor data can then be gleaned from\nthere.\n\nSince Cardinal works at such a low level, no code changes are needed in your code,\nor in any code you pull in. It's just that easy! Other simulates have to modify\nthe RobotCore, which isn't terribly flexible.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folivia-banks%2Fcardinal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folivia-banks%2Fcardinal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folivia-banks%2Fcardinal/lists"}