PolyhedraExplorer
PolyhedraExplorer copied to clipboard
Interactive polyhedra explorer with animated transformations
Polyhedra Explorer
🚧 Work in process.
Interactive polyhedra explorer with animated transformations. This project is focused on regular convex polyhedra and derivation of larger polyhedra via Conway polyhedron notation. All transformations are symmetry-preserving and all resulting elements (faces, edges, vertices) are grouped into rotation orbits and are colored by default with respect to them.
Prototype is deployed at http://polyhedron.me
Building & running
gradlew jsBrowserDevelopmentRun
Roadmap / TODO
- UI/UX
- [ ] Animate seed changes with fly in/out
- [ ] Better progress bar display
- [ ] Show/kind faces by kind with point and click on the polyhedron
- [ ] Mark experimental features in UI
- [ ] Better slider UI on mobile devices
- Export/Share
- [x] Solid to STL
- [x] Geometry to OpenSCAD
- [ ] Picture to SVG
- [ ] Share link
- Polyhedra
- [ ] Bigger library of seeds
- [x] Platonic solids
- [x] Arhimedean solids
- [x] Catalan solids
- [ ] Infinite families of prisms/antiprisms
- [ ] Johnson solids
- [ ] Identify names of well-know polyhedra
- [ ] Bigger library of seeds
- Rendering
- [ ] Render nicer edges and vertices
- [ ] Render better-looking (physical) materials
- [ ] Custom faces coloring: by orbit with reflections, by geometry, by size
- [ ] Nicer-looking transparent views (only transparent front)
- Polyhedron info
- [ ] Show edge geometry (two faces)
- [ ] Show face areas
- [ ] Sort by selected column (kind/distance/length/area)
- Transformations
- [ ] Redesign truncation algorithm so that it always works
- [ ] Rectification solution for non-regular polyhedra
- [ ] Stellation
- [ ] Better canonical algorithm
- [ ] Long-term caching of canonical geometry keyed by topology
- [ ] Improve transformation performance
- Custom transformations
- [ ] Truncate specific vertices
- [ ] Cantellate specific edges
- [ ] Augment specific faces
- [ ] Improve dropping of selected vertices/faces/edges
- Infrastructure
- [ ] Embed CSS into WebPack
- [ ] Drop gl-matrix
- [ ] Switch from React to Compose
- [ ] Benchmarking
- [ ] Software gl impl: render polyhedra picture by params on backend
License
Copyright 2021 Roman Elizarov. Use of this source code is governed by the Apache 2.0 license.