Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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. GPL

CommonJS port maintained by Mikola Lysenko.