Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikolalysenko/conway-hart
A port of George Hart's implementation/extension of Conway's polyhedral notation to CommonJS
https://github.com/mikolalysenko/conway-hart
Last synced: about 2 months ago
JSON representation
A port of George Hart's implementation/extension of Conway's polyhedral notation to CommonJS
- Host: GitHub
- URL: https://github.com/mikolalysenko/conway-hart
- Owner: mikolalysenko
- Created: 2013-02-08T15:52:02.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2013-02-13T02:46:47.000Z (almost 12 years ago)
- Last Synced: 2024-10-20T14:28:17.864Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 922 KB
- Stars: 69
- Watchers: 3
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
conway-hart
===========
A port of [George Hart's JavaScript implementation/extension of Conway's polyhedral notation](http://www.georgehart.com/virtual-polyhedra/conway_notation.html) to the CommonJS module system. Here are some useful links that can help explain what it all means:* George Hart's original implementation: http://www.georgehart.com/virtual-polyhedra/conway_notation.html
* [The Wikipedia page on Conway's notation](http://en.wikipedia.org/wiki/Conway_polyhedron_notation)Installation
============
Just use npm:npm install conway-hart
Example
=======
Here is an example showing how to use this library to generate a shape:require("conway-hart")("djmeD");
Which produces the following polygon:
If you want to try it out for yourself without installing node.js, [here is an interactive WebGL demo.](http://mikolalysenko.github.com/conway-hart/example/www/index.html)
Usage
=====
Conway/Hart notation is a way of specifying spherical polyhedra by subdividing regular polyhedra. The way it works is that you first specify a **seed** polyhedra, and then apply a sequence of **operators**. At the end, it returns a JavaScript object with 3 fields:* `name`: The name of the solid.
* `cells`: The faces of the solid, represented as a list of indices into the vertices.
* `positions`: The positions of the vertices of the solid.If there is an error parsing the input, an exception is thrown.
Seeds
-----
Here is a list of all the available seeds. The ones with an `n` next to their symbol take an extra parameter describing how many faces are on their base.### `"T"` Tetrahedron
### `"C"` Cube
### `"O"` Octahedron
### `"D"` Dodecahedron
### `"I"` Icosahedron
### `"Pn"` Prism
### `"An"` Antiprism
### `"Yn"` Pyramid
Operations
----------### `a` Ambo
### `b` Bevel
### `c` Canonicalize
### `d` Dual
### `e` Expand
### `g` Gyro
### `j` Join
### `kn` Kis
### `m` Meta
### `o` Ortho
### `p` Propellor
### `r` Reflect
### `s` Split
### `tn` Truncate
Credits
=======
(c) 1998 George Hart. GPLCommonJS port maintained by Mikola Lysenko.