{"id":34548248,"url":"https://github.com/tobybenjaminclark/chronomancer","last_synced_at":"2026-05-28T15:31:27.078Z","repository":{"id":320728119,"uuid":"1083135853","full_name":"tobybenjaminclark/chronomancer","owner":"tobybenjaminclark","description":"🕰️ First Place at HackNotts 2025! Strategy game played over non-linear, acyclic time in medieval kingdoms synthesised from real cities.","archived":false,"fork":false,"pushed_at":"2025-10-28T09:38:50.000Z","size":10035,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-28T11:28:02.958Z","etag":null,"topics":["rust","temporal-logic","z3"],"latest_commit_sha":null,"homepage":"https://devpost.com/software/chronomancer","language":"Game Maker Language","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tobybenjaminclark.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-10-25T12:20:30.000Z","updated_at":"2025-10-28T09:38:54.000Z","dependencies_parsed_at":"2025-10-28T11:28:07.012Z","dependency_job_id":null,"html_url":"https://github.com/tobybenjaminclark/chronomancer","commit_stats":null,"previous_names":["tobybenjaminclark/chrono","tobybenjaminclark/chronomancer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/tobybenjaminclark/chronomancer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fchronomancer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fchronomancer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fchronomancer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fchronomancer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tobybenjaminclark","download_url":"https://codeload.github.com/tobybenjaminclark/chronomancer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tobybenjaminclark%2Fchronomancer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33615489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"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":["rust","temporal-logic","z3"],"created_at":"2025-12-24T07:37:59.181Z","updated_at":"2026-05-28T15:31:27.073Z","avatar_url":"https://github.com/tobybenjaminclark.png","language":"Game Maker Language","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Improved compatibility of back to top link: See: https://github.com/pull/73 --\u003e\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/tobybenjaminclark/chronomancer\"\u003e\n    \u003cimg src=\"logo.gif\" alt=\"Logo\" width=\"300\" height=\"200\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eDivine Intellect Compiler\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Strategy game played over non-linear, acyclic time in medieval kingdoms synthesised from real cities. Developed using Rust, Z3 and Gamemaker! Winner at Hacknotts 2025!\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://devpost.com/software/chronomancer\"\u003eView Devpost\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com//tobybenjaminclark/chronomancer/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/tobybenjaminclark/chronomancer/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n## About The Project\n\nChronomancer is a strategy game where you can make decisions in the past that affect the future, or the other way around. The aim is to avoid creating time paradoxes, such as scheduling the execution of the gnome king before his birthday party (which you state he must attend).\n\nRule a kingdom across a rich, non-linear orgy of timelines and causality. Chronomancer sits the player between past, present, and future, commanding history across real cities reborn as medieval kingdoms. Through gameplay that merges timetable schedulling and mindbending non-linearity, *Chronomancer* achieves the following:\n\n- Implements a (toy) strategy game played across non-linear, acyclic time with interval-order events.\n- Derives in-game kingdoms from real UK cities, with notable locations transformed into faction outposts.\n- Verification of win/loss conditions (satisfiability) using fun, SMT-decidable first order logic.\n- Visually intuitive interface built on interval-constrained event series, inspired by real horologes!\n- Narrative arcs derived from symbolic constraints, with clankers (AI) acting them out!\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- USAGE EXAMPLES --\u003e\n## Internals \u0026 Architecture\n\nThe majority of Chronomancer is programmed in Rust (Blazingly Fast), with the frontend developed in Gamemaker. This has been our largest hackathon undertaking in Rust (so far) and was a great choice!\n\n- We interfaced with a hat-trick of Google APIs (Directions, Routes, Places) to translate modern cities into medieval gameworlds (translating geographical coordinates into a unit circle).\n- These are assigned into initial factions (Gnomes, Centaurs and Trolls) using simple k-means clustering, and then rendered inside of the game, with custom emblems!\n- Events are stored as a directed-acyclic graph inside of the controller, converting to interval order to display, circularly on the GUI.\n- Decisions/ledgers (events) are generated symbolically (in terms of their effects), then clanker-fied by the OpenAI API to give better natural language description.\n- If the player chooses to accept a ledger, the map-time formulation is encoded into SMT-decidable logic, and a potential, valid, timeline is proven against the generated constraints - if not, game over!\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n## Contributing\nSince the project was born out of a 24-hour hackathon, there are going to be issues and bugs - note the lack of installation guidance here as an example. If you wish to contribute to Chronomancer, please feel free to create a feature branch or raise an issue! If you encounter any big issues, or get really stuck - feel free to contact whoever you think is most relevant to the issue you are encountering. \n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- LICENSE --\u003e\n## License\n\nDistributed under the MIT License. See `LICENSE.txt` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n## Contributors\n[Amber Swarbrick](https://github.com/aswarbs)\n[Toby Clark](https://github.com/tobybenjaminclark)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobybenjaminclark%2Fchronomancer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftobybenjaminclark%2Fchronomancer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftobybenjaminclark%2Fchronomancer/lists"}