This version is no longer being developed but I'm keeping it around for reference and backwards-compatibility.
All future dev will happen here: https://github.com/IxxyXR/polyhydra-core
A toolkit for the procedural generation of geometric forms in Unity. The above image is from a VR piece I made using it called "Gossamer" that is currently exhibited in the Museum of Other Realities: https://andybak.net/gossamer
- YouTube playlist: https://youtube.com/playlist?list=PL94EgLgEIJyJQh_nB-CvSKbXjNU0ojNqC
- Gallery: https://andybak.net/polyhydra
- Download or clone the repo.
- Open it via Unity Hub in an appropriate Unity version (same or slightly newer should be fine)
- Open any of the example scenes and have a play
Alternatively you can install just the necessary package using the Unity Package Manager and this url: https://github.com/IxxyXR/polyhydra-upm.git
(See https://docs.unity3d.com/Manual/upm-ui-giturl.html for more info )
This is one possible UI that I started working on: http://www.polyhydra.org.uk/media/fastui/ Only a prototype but a quick way to get an intro into one possibly application of this toolkit. Keyboard controls listed onscreen Experimental and a bit buggy. Save often...
NOTE! - keyboard controls only in this particular web version. (It's keyboard only because it was a variation on a UI I created originally using MIDI devices which was a really nice tactile way to create - but difficult to share with people who didn't own the same MIDI controller as you - hence this version. There is a more conventional mouse+keyboard UI here: https://andybak.itch.io/polyhydra - but it's more clunky and less immediate )
Basic workflow is:
- Start by generating a base 3d shape
- Apply a Conway operator or similar modifier to some or all of the faces based on some rules
- Repeat
- Gasp in wonder at the beauty of your creation.
- All (but one) Uniform Polyhedra using the Wythoff construction
- Johnson(-esque) polyhedra - Prisms, pyramids, cupolae, rotundae
- Most Conway operations are implemented and are parameterized and chainable. Can be applied to a subset of faces based on simple filters or complex rules
- Regular tilings of the plane with various deformations
- De Bruijn multigrids
- A port of the Isohedral tilings from tactile.js
As far as possible I'd like to licence this under the MIT licence or similar but the code has a complex heritage.
Obviously the original work by Willem Wythoff and John Conway. And also countless other mathematicians who have formed a base for, contributed to and extended the work in this area. A special shout out to George Hart who is often co-credited with Conway due to the large amount of work he did exploring and extending Conway's original operators.
The actual Wythoff code was based on https://github.com/kaonasi (which in turn is based on the work of Zvi Har’El: http://www.math.technion.ac.il/S/rl/kaleido/ Zvi Har'El has sadly passed away. I've tried to contact all potential copyright holders to see if it's OK to make use of their work as a basis for this but I've had no luck in getting a response. Please get in touch if you're an interested party)
Conway operator code and the core halfedge mesh is based on work by Will Pearson @mcneel which can be found here: https://github.com/pearswj/buckminster
Multigrids is ported from work by Wolthera van Hövell tot Westerflier for https://github.com/kde/krita - they generously agreed that my version could be MIT licenced.
Portions of grids.cs is from Antiprism and is MIT but should be attributed to Adrian Rossiter and Roger Kaufman: https://github.com/antiprism/antiprism/blob/master/COPYING
Isohedral tilings are from tactile.js https://github.com/isohedral/tactile-js Thanks to Craig Kaplan @TriggerLoop
Triangulation code is from https://github.com/gpvigano/AsImpL
My original inspiration was 3DS Max's Hedra plugin which kept me entertained for quite a while nearly 2 decades ago. I think credit for that is due to Tom Hudson :-)