Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/2mol/pyramid-maker
Tool to help create climbing volumes.
https://github.com/2mol/pyramid-maker
Last synced: 26 days ago
JSON representation
Tool to help create climbing volumes.
- Host: GitHub
- URL: https://github.com/2mol/pyramid-maker
- Owner: 2mol
- Created: 2017-07-28T11:32:57.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-22T09:10:54.000Z (about 7 years ago)
- Last Synced: 2024-10-30T08:23:54.691Z (2 months ago)
- Language: Elm
- Homepage: https://2mol.github.io/pyramid-maker/
- Size: 112 KB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Pyramid Maker
Interactive tool to create pyramid-shaped climbing volumes and calculate the necessary angles at which to cut your material.
Use it at [https://talhoffer.github.io/pyramid-maker/](https://talhoffer.github.io/pyramid-maker/).
Inspired by the [following video](https://www.youtube.com/watch?v=Lp2mkK2qPTc), but meant to allow arbitrary polygons as a base.
## Todo:
### features, ui, interactivity
- [x] basic framework, rough visualization.
- [x] add input boxes for coordinates.
- [ ] presets for some basic shapes that work well.
- [x] mouse interactions, dragging of corners.
- [x] annotatations for angles and lengths.
- [ ] change annotations text to non-active svg text.
- [ ] cut list, calculate m2 of material required.
- [ ] units!
- [ ] buttons to scale up or down. Button to scale to fill canvas.
- [ ] fields for each edge, ability to directly set length of an edge.
- [ ] build instructions in README.
- [ ] hole placement for T-Nuts.### math
- [x] new Point3D type, conversion function for pyramid base-polygon + tip into 3D. Rename `Point` to `Point2D`.
- [x] list of faces/triangles, make sure orientation is consistent.
- [x] calculate angles.
- [x] generate random shapes.
- [ ] get negative angles working
- [ ] tests to check the math.### code quality
- [x] generalize pyramid base shape, re-work types.
- [x] use arrays, cleanup everything.
- [x] make ChangePoint message type simpler: pass `index` and new `Point` instead of `index`, `axis` and `newValue`.
- [x] always draw edges in order of vector angle. (avoids certain nonsensical shapes).
- [x] make pyramid tip changeable too, possibly re-work Pyramid type.
- [ ] simplify how mouse action messages change the pyramid part of the model.### stretch goals
- [ ] create front- and sideviews.
- [ ] CSS instead of styling in code
- [ ] button to round angles and dimensions to nearest degree or cm.
- [ ] possibility to specify the _length_ of certain edges (-> solve for point coordinates).
- [ ] visualization with material thickness.
- [ ] dotted line for edges behind visible faces.
- [ ] sanity checks and warnings for steep angles etc.
- [ ] export cut list svg as .jpg or .pdf.
- [ ] save/export/import pyramid parameters.
- [ ] smart arrangment of pieces to use minimal amount of sheet material (hard).
- [ ] isometric 3D visualization.