{"id":31957042,"url":"https://github.com/esimonov/paradromic-rings","last_synced_at":"2026-02-19T15:03:14.416Z","repository":{"id":294924911,"uuid":"988509486","full_name":"esimonov/paradromic-rings","owner":"esimonov","description":"Computing basic structural properties of the shapes obtained from cutting a Möbius strip and its generalisations with arbitrary number of half-twists.","archived":false,"fork":false,"pushed_at":"2025-05-30T11:17:51.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-30T14:05:29.099Z","etag":null,"topics":["mobius","r5rs","recreational-mathematics","topology"],"latest_commit_sha":null,"homepage":"","language":"Scheme","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/esimonov.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}},"created_at":"2025-05-22T16:45:30.000Z","updated_at":"2025-05-30T11:17:54.000Z","dependencies_parsed_at":"2025-05-29T08:48:58.124Z","dependency_job_id":null,"html_url":"https://github.com/esimonov/paradromic-rings","commit_stats":null,"previous_names":["esimonov/paradromic-dissections"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/esimonov/paradromic-rings","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimonov%2Fparadromic-rings","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimonov%2Fparadromic-rings/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimonov%2Fparadromic-rings/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimonov%2Fparadromic-rings/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esimonov","download_url":"https://codeload.github.com/esimonov/paradromic-rings/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esimonov%2Fparadromic-rings/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019139,"owners_count":26086686,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"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":["mobius","r5rs","recreational-mathematics","topology"],"created_at":"2025-10-14T14:59:53.219Z","updated_at":"2025-10-14T14:59:55.602Z","avatar_url":"https://github.com/esimonov.png","language":"Scheme","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Möbius strip dissections CLI\n\nParadromic rings are shapes created by cutting a Möbius strip across its width. This CLI can be used for computing their basic structural properties.\n\nThe main goal of the project was to explore Scheme's capabilities as a general purpose programming language. It's implemented in R5RS Scheme and uses SRFI-28 for string formatting.\n\nThe idea for a subject was inspired by Dr Tadashi Tokieda's course [Topology \u0026 Geometry](https://youtu.be/SXHHvoaSctc?si=9bXOmKjzHKfTlmgv).\n\n## Why?\n\nSome surprising properties show up when dissecting Möbius strips and similar structures.\n\n```text\nA mathematician confided\nThat a Mobius band is one-sided,\nAnd you'll get quite a laugh,\nIf you cut one in half,\nFor it stays in one piece when divided.\n```\n\n![Cut along the centerline](/assets/Moebiusband-1s.svg)\n\nWhen the strip is dissected off-center instead, the result may seem even stranger:\n\n![Off-center cut](/assets/Moebiusband-2s.svg)\n\nLet's use the CLI to verify what we've just seen!\n\n```text\nLet L and W denote the initial length and width of the strip, respecitively.\n\nEnter the number of initial half-twists (or 'q' to quit) : 1\nEnter D\u003e=2 to mark the line 1/D along which the strip will be dissected (or 'q' to quit) : 2\n---------\nWhen dissecting a strip with 1 half-twist 1/2 way across its width, you get a single connected strip which is 2 times longer than the original one:\n\nLength: 2L\nWidth: W/2\nNumber of half-twists: 4\n\n\n---------\n\nLet L and W denote the initial length and width of the strip, respecitively.\n\nEnter the number of initial half-twists (or 'q' to quit) : 1\nEnter D\u003e=2 to mark the line 1/D along which the strip will be dissected (or 'q' to quit) : 3\n---------\nWhen dissecting a strip with 1 half-twist 1/3 way across its width, you get two linked strips, one of which is 2 times longer than the other:\n\nStrip #1\nLength: 2L\nWidth: W/3\nNumber of half-twists: 4\n\nStrip #2\nLength: L\nWidth: W/3\nNumber of half-twists: 1\n\n\n\n---------\n\nLet L and W denote the initial length and width of the strip, respecitively.\n\nEnter the number of initial half-twists (or 'q' to quit) : q\nGoodbye!\n```\n\nBasic santity check:\n\n```text\nEnter the number of initial half-twists (or 'q' to quit) : 0\nEnter D\u003e=2 to mark the line 1/D along which the strip will be dissected (or 'q' to quit) : 2\n---------\nWhen dissecting an untwisted strip 1/2 way across its width, you get two disconnected strips of the same length:\n\nStrip #1\nLength: L\nWidth: W/2\nNumber of half-twists: 0\n\nStrip #2\nLength: L\nWidth: W/2\nNumber of half-twists: 0\n```\n\nBasic insanity check:\n\n```text\nEnter the number of initial half-twists (or 'q' to quit) : 101\nEnter D\u003e=2 to mark the line 1/D along which the strip will be dissected (or 'q' to quit) : 7\n---------\nWhen dissecting a strip with 101 half-twists 1/7 way across its width, you get two linked strips, one of which is 2 times longer than the other:\n\nStrip #1\nLength: 2L\nWidth: W/7\nNumber of half-twists: 204\n\nStrip #2\nLength: L\nWidth: 5W/7\nNumber of half-twists: 101\n```\n\nOriginal image sources:\n\n* [Cut along the centerline](https://commons.wikimedia.org/wiki/File:Moebiusband-1s.svg)\n* [Off-center cut](https://commons.wikimedia.org/wiki/File:Moebiusband-2s.svg)\n\n## How to run\n\nCompile and run with [CHICKEN Scheme](https://call-cc.org/):\n\n```sh\ncsc main.scm\n./main\n```\n\nOr interpret without compilation:\n\n```sh\ncsi main.scm\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesimonov%2Fparadromic-rings","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesimonov%2Fparadromic-rings","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesimonov%2Fparadromic-rings/lists"}