{"id":18021328,"url":"https://github.com/2mol/pyramid-maker","last_synced_at":"2025-04-04T17:23:30.867Z","repository":{"id":146590454,"uuid":"98643488","full_name":"2mol/pyramid-maker","owner":"2mol","description":"Tool to help create climbing volumes.","archived":false,"fork":false,"pushed_at":"2017-10-22T09:10:54.000Z","size":115,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-10T02:45:53.166Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://2mol.github.io/pyramid-maker/","language":"Elm","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/2mol.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-28T11:32:57.000Z","updated_at":"2020-10-14T22:59:32.000Z","dependencies_parsed_at":"2023-05-02T18:02:12.637Z","dependency_job_id":null,"html_url":"https://github.com/2mol/pyramid-maker","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/2mol%2Fpyramid-maker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2mol%2Fpyramid-maker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2mol%2Fpyramid-maker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/2mol%2Fpyramid-maker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/2mol","download_url":"https://codeload.github.com/2mol/pyramid-maker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247218042,"owners_count":20903190,"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":[],"created_at":"2024-10-30T06:09:34.010Z","updated_at":"2025-04-04T17:23:30.846Z","avatar_url":"https://github.com/2mol.png","language":"Elm","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pyramid Maker\r\n\r\nInteractive tool to create pyramid-shaped climbing volumes and calculate the necessary angles at which to cut your material.\r\n\r\nUse it at [https://talhoffer.github.io/pyramid-maker/](https://talhoffer.github.io/pyramid-maker/).\r\n\r\nInspired by the [following video](https://www.youtube.com/watch?v=Lp2mkK2qPTc), but meant to allow arbitrary polygons as a base.\r\n\r\n## Todo:\r\n\r\n### features, ui, interactivity\r\n\r\n- [x] basic framework, rough visualization.\r\n- [x] add input boxes for coordinates.\r\n- [ ] presets for some basic shapes that work well.\r\n- [x] mouse interactions, dragging of corners.\r\n- [x] annotatations for angles and lengths.\r\n- [ ] change annotations text to non-active svg text.\r\n- [ ] cut list, calculate m\u003csup\u003e2\u003c/sup\u003e of material required.\r\n- [ ] units!\r\n- [ ] buttons to scale up or down. Button to scale to fill canvas.\r\n- [ ] fields for each edge, ability to directly set length of an edge.\r\n- [ ] build instructions in README.\r\n- [ ] hole placement for T-Nuts.\r\n\r\n### math\r\n\r\n- [x] new Point3D type, conversion function for pyramid base-polygon + tip into 3D. Rename `Point` to `Point2D`.\r\n- [x] list of faces/triangles, make sure orientation is consistent.\r\n- [x] calculate angles.\r\n- [x] generate random shapes.\r\n- [ ] get negative angles working\r\n- [ ] tests to check the math.\r\n\r\n### code quality\r\n\r\n- [x] generalize pyramid base shape, re-work types.\r\n- [x] use arrays, cleanup everything.\r\n- [x] make ChangePoint message type simpler: pass `index` and new `Point` instead of `index`, `axis` and `newValue`.\r\n- [x] always draw edges in order of vector angle. (avoids certain nonsensical shapes).\r\n- [x] make pyramid tip changeable too, possibly re-work Pyramid type.\r\n- [ ] simplify how mouse action messages change the pyramid part of the model.\r\n\r\n### stretch goals\r\n\r\n- [ ] create front- and sideviews.\r\n- [ ] CSS instead of styling in code\r\n- [ ] button to round angles and dimensions to nearest degree or cm.\r\n- [ ] possibility to specify the _length_ of certain edges (-\u003e solve for point coordinates).\r\n- [ ] visualization with material thickness.\r\n- [ ] dotted line for edges behind visible faces.\r\n- [ ] sanity checks and warnings for steep angles etc.\r\n- [ ] export cut list svg as .jpg or .pdf.\r\n- [ ] save/export/import pyramid parameters.\r\n- [ ] smart arrangment of pieces to use minimal amount of sheet material (hard).\r\n- [ ] isometric 3D visualization.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2mol%2Fpyramid-maker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F2mol%2Fpyramid-maker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F2mol%2Fpyramid-maker/lists"}