{"id":18307281,"url":"https://github.com/tombh/human-computer","last_synced_at":"2025-10-27T10:44:45.094Z","repository":{"id":31498371,"uuid":"35062607","full_name":"tombh/human-computer","owner":"tombh","description":"A computer that uses nothing but human resources","archived":false,"fork":false,"pushed_at":"2017-03-31T04:38:54.000Z","size":81,"stargazers_count":16,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-21T08:04:40.288Z","etag":null,"topics":["cpu","hardware","leafletjs","ruby","subleq"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tombh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-04T22:09:19.000Z","updated_at":"2020-11-19T12:45:18.000Z","dependencies_parsed_at":"2022-07-24T17:02:07.508Z","dependency_job_id":null,"html_url":"https://github.com/tombh/human-computer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tombh%2Fhuman-computer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tombh%2Fhuman-computer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tombh%2Fhuman-computer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tombh%2Fhuman-computer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tombh","download_url":"https://codeload.github.com/tombh/human-computer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247374748,"owners_count":20928880,"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":["cpu","hardware","leafletjs","ruby","subleq"],"created_at":"2024-11-05T16:03:37.665Z","updated_at":"2025-10-27T10:44:40.075Z","avatar_url":"https://github.com/tombh.png","language":"Ruby","readme":"[![Build Status](https://travis-ci.org/tombh/human-computer.svg)](https://travis-ci.org/tombh/human-computer)\n[![Code Climate](https://codeclimate.com/github/tombh/human-computer/badges/gpa.svg)](https://codeclimate.com/github/tombh/human-computer)\n[![Test Coverage](https://codeclimate.com/github/tombh/human-computer/badges/coverage.svg)](https://codeclimate.com/github/tombh/human-computer/coverage)\n\n# A Human Computer\n\nThis is an application to facilitate a Turing Complete human computer. The guiding principle is\nthat the functioning of this computer should be possible without an actual electronic computer.\nFor example using just pieces of card and a pencil.\n\nA human should not have to do anything more complex than the following tasks:\n* Compare 2 symbols: are they the same or different?\n* Derive the opposite of a symbol.\n* Fetch cards from a specific position on a large grid.\n* Place cards onto a specific position on the same grid.\n\nTherefore this application should do no more than enable these tasks in an efficient manner and\nto make the tasks available to a global audience.\n\nThe computer's architecture is based on a [One Instruction Set Computer](http://en.wikipedia.org/wiki/One_instruction_set_computer) using the [SUBLEQ](https://esolangs.org/wiki/Subleq)\noperation. SUBLEQ stands for Subtract and Branch if Less then or Equal to zero. All other commands\nlike; addition, moving bytes, etc, are built up from this single command. A slightly modified\nversion of SUBLEQ is used here, where negative memory addresses are understood as\nindirect addresses, or pointers. This modification (and many other insights) is thanks to Lawrence\nWoodman from [Tech Tinkering](http://techtinkering.com/2009/05/15/improving-the-standard-subleq-oisc-architecture/).\n\nCurrently this computer can only operate through its test suite. The road map includes an API\nwhere you can request instructions, submit results and view snapshots of memory. Once there is an\nAPI then we can create a web-based GUI to allow humans to easily carry out single CPU cycles.\n\nThings to consider for development;\n* Means of overcoming human errors. Require each instruction to be carried out by 2 humans?\n* Improving the efficiency of the CPU. Hello World is currently 155 cycles.\n* What programs can this run? Is something like Tetris possible?\n* How should output be displayed? In the main memory, or through a seperate 'monitor' grid?\n\n## Motivation\nMy original reason for building this came from a desire to inject more of the open source spirit\ninto hardware. Whereas creating software from first principles is relatively easy in the modern\nage, creating hardware from scratch is hard. If more people know that computers can be created\nfrom simple building blocks, maybe it will improve the chances of open source hardware.\n\nThe other big reason is educational, both for myself and for the wider world. The Human Computer\nis Turing Complete (citation needed!) and so demonstrates the fundamentals of computer science.\n\n## Usage\n\n**API server**    \nTBD\n`guard`\n\n**Tests**    \n`rspec`\n\n**Running Human Computer assembler on the CLI**    \nTBD\n`rake`\n\n**Frontend**    \nSee `frontend/README.md`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftombh%2Fhuman-computer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftombh%2Fhuman-computer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftombh%2Fhuman-computer/lists"}