Skip to content

A port of George Hart's implementation/extension of Conway's polyhedral notation to CommonJS

Notifications You must be signed in to change notification settings

mikolalysenko/conway-hart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

conway-hart

A port of George Hart's JavaScript implementation/extension of Conway's polyhedral notation to the CommonJS module system. Here are some useful links that can help explain what it all means:

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.

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.

About

A port of George Hart's implementation/extension of Conway's polyhedral notation to CommonJS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published