{"id":28366769,"url":"https://github.com/charlesaverill/terrasim","last_synced_at":"2026-05-03T05:34:24.966Z","repository":{"id":295837515,"uuid":"981873990","full_name":"CharlesAverill/terrasim","owner":"CharlesAverill","description":"A SimEarth clone in OCaml using tsdl and tgls","archived":false,"fork":false,"pushed_at":"2025-06-13T02:16:12.000Z","size":31706,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-13T03:28:11.202Z","etag":null,"topics":["opengl","procedural-generation","sdl2","simulation","video-game"],"latest_commit_sha":null,"homepage":"https://charlesaverill.github.io/terrasim/","language":"OCaml","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/CharlesAverill.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":"roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-12T03:14:05.000Z","updated_at":"2025-06-13T02:16:15.000Z","dependencies_parsed_at":"2025-06-13T03:34:39.052Z","dependency_job_id":null,"html_url":"https://github.com/CharlesAverill/terrasim","commit_stats":null,"previous_names":["charlesaverill/terrasim"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CharlesAverill/terrasim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAverill%2Fterrasim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAverill%2Fterrasim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAverill%2Fterrasim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAverill%2Fterrasim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CharlesAverill","download_url":"https://codeload.github.com/CharlesAverill/terrasim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAverill%2Fterrasim/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260889640,"owners_count":23077855,"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","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":["opengl","procedural-generation","sdl2","simulation","video-game"],"created_at":"2025-05-29T00:11:38.568Z","updated_at":"2026-05-03T05:34:24.961Z","avatar_url":"https://github.com/CharlesAverill.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TerraSim\n\n![logo](https://github.com/CharlesAverill/terrasim/raw/main/assets/logo/logo.png)\n\nA SimEarth clone in OCaml using [tsdl](https://erratique.ch/software/tsdl) and [tgls](https://erratique.ch/software/tgls).\n\nSee [roadmap.md](https://github.com/CharlesAverill/terrasim/blob/main/roadmap.md) for progress\n\n## Building\n\n```bash\ngit clone https://github.com/CharlesAverill/terrasim.git \u0026\u0026 cd terrasim\n\n# Dependencies\nsudo apt install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev libffi-dev libgmp-dev\ngit submodule update --init --recursive\nopam install . --deps-only\n\ndune build\n```\n\nTo run, simply\n\n```bash\ndune exec TerraSim\n```\n\n## Controls\n\nThere are three views right now:\n\n### Edit view (Cartesian)\n\n| Input | Effect |\n|---|---|\n| Mouse move | Pan view |\n| Mouse click | Run command denoted by highlighted UI button |\n| `c` | Switch to Atlas view |\n| `h` | Hide the UI |\n\n### Atlas view (Cartesian)\n\n| Input | Effect |\n|---|---|\n| Mouse move | Pan view |\n| `c` | Switch to Globe view |\n\n### Globe view (Orthographic)\n\n| Input | Effect |\n|---|---|\n| Click and drag | Spin globe |\n| `c` | Switch to Edit view |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlesaverill%2Fterrasim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharlesaverill%2Fterrasim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlesaverill%2Fterrasim/lists"}