This page requires a reasonably modern HTML5 browser
with both Javascript and WebGL enabled.
If this message is not soon replaced by an interactive 3D model,
then it is likely that your browser does not support this web app.
Check your JavaScript Console
for specific error messages.
Projection (Shortcut keys: 1 to 6) |
||
|
||
|
|
This affects only the display of dimensions within the interface, all dimensions are stored in millimetres.
Displays dimension lines along the outer bounding extents of the tree. |
|
|
This app generates a range of common polyhedra and lets you apply mathematical operations on them to create some interesting and artistic sculptural forms. I have tried to include most of the standard operations from Conway polyhedron notation – borrowing heavily from some of the techniques used in Anselm Levskaya's polyHédronisme and George Hart's Polyhedron Generator – as well as a couple of my own for spherical inflation and a bit of randomness.
Once you have selected a base polyhedron, you can either enter a notation command string directly, minus the polyhedron identifier at the end, or build one up by adding and editing components in the operator stack immediately below.
Importantly, you don't need to know anything about Conway polyhedron notation to have fun with this app. You can just experiment by trying out different operators one by one to see what they do. Moreover, you can choose one of the examples and then start enabling/disabling or editing the paramaters in order to experiment.
If you do want to know more, the best place is the Wikipedia page linked to above. Hopefully at some point I will get enough time to go back and write a detailed explanation for each of the operations and what they do, but until then it's up to Wikipedia and George Hart's original explanations.
As notation strings can sometimes get quite complex, especially when using bracketed arguments, I have tried to make the operator stack a bit more approachable by including all the available paramaters as interactive sliders.
To enter a number directly, either click the slider instead of dragging it, or manually edit the appropriate argument in the notation text. By default, the operator stack will update whenever you manually change the notation in the text editor.
I have always wanted to do a WebGL version of the polyhedron viewer I wrote in Processing some years ago, but it was just a folly and there were always higher priorities. However, I recently needed to include some basic polyhedra in my Tree Generator app, so had to convert some of the old code anyway. At the same time I was trying to develop a bullet-proof closed-shell geometry class for my BIM tools and, having seen and been so completely inspired by polyHédronisme, I figured that it might make an excellent visual test suite and provide just the excuse I needed.
The following are some of this app's features and idiosyncrasies:
You can interactively adjust the 3D view of the model using a mouse, pen or stylus, or by touch on a tablet or phone. You can also use the items in the 3D View Settings popup.
NOTE: You can use the Shift and Ctrl/Meta keys to adjust the increment of each scroll event or key press.
The Shift and Ctrl/Meta keys are used pretty extensively to modify interactive data entry. This applies to all increment buttons, scroll wheel motion, slider controls and input elements.
NOTE: You can use the scroll wheel to edit a data value when hovering over any slider, numeric input or even table rows that indicate their editibility.
This page uses the following frameworks/components:
Bootstrap v3.3.2
Copyright © 2011-2015 Twitter, Inc. - github.com/twbs,
http://getbootstrap.com/
(LICENSE)
Bootstrap-popover-x v1.4.0
Copyright © 2014, Kartik Visweswaran, Krajee.com,
https://github.com/kartik-v/bootstrap-popover-x
(LICENSE)
jQuery v1.11.2
Copyright © jQuery Foundation and other contributors,
https://jquery.com/
(LICENSE)
JSON Editor
Copyright © 2015 Jos de Jong - github.com/josdejong
https://github.com/josdejong/jsoneditor
(LICENSE)
JSURL
Copyright © 2011 Bruno Jouhier - github.com/Sage
https://github.com/Sage/jsurl
(LICENSE)
KnockoutJS v3.2.0
Copyright © Steven Sanderson and the Knockout.js team,
http://knockoutjs.com/
(LICENSE)
Knockstrap v1.2.0
Copyright © 2013 Artem Stepanyuk - github.com/faulknercs,
http://faulknercs.github.io/Knockstrap
(LICENSE)
Leaflet Maps API v1.4.0
Copyright © Cloudmade, Vladimir Agafonkin - github.com/Leaflet,
https://leafletjs.com/
(LICENSE)
OpenStreetMap Map Data
Copyright © OpenStreetMap contributors - openstreetmap.org,
https://www.openstreetmap.org/about
(LICENSE)
polyHédronisme v0.2.1
Copyright © 2019 Anselm Levskaya - github.com/levskaya/
https://github.com/levskaya/polyhedronisme
(LICENSE)
SnackbarJS
Copyright © 2014 Federico Zivolo - github.com/FezVrasta
http://fezvrasta.github.io/snackbarjs
(LICENSE)
Virtual Polyhedra For .WRL Shape Data
Copyright © 2000 George W. Hart - www.georgehart.com
http://www.georgehart.com/virtual-polyhedra/vp.html
(LICENSE)