Thursday, November 19, 2015

Pager muscle improvements

I'm back to the larger 260 balloons to have enough structural strength for the approximately 6 g (with logic battery) Tinyduino controller and motor board.
Latest version details:

Safety pins:

for clevises: size 00 = 3/4"

for joints: size 1 = 1-1/16"

All knots:

Quadruple overhand stop knots

All elastic bands:

Loom bands (Rainbow, Cra-Z-Loom, etc.)

Motor leads:

36 gauge magnet wire (twisted pairs)


Qualatex 260Q Diamond Clear (tied and trimmed at both ends to give custom length.)


1-lb test Berkley Fireline (5" untwisted length between stop knots)


Solarbotics TPM2 4mm diameter pager motor

Tapered bushing:

insulation from 22 gauge solid wire tapered by stretching above candle flame

Motor harness tape:

1/8" width of 3M 863 clear strapping tape

Monday, November 16, 2015

Pager muscles for balloon sculptures

A pager muscle is just a pager motor with a length of high-performance fishing line attached. The twisting of the line causes it to shorten and pull the two sides of the joint closer together.
Right now I am working on a practical way to actuate balloon sculptures or balloonbots if you will. A YouTube video shows how it works.

In the video the motor is being driven by a 9-V battery that is pulse-width modulated down to 80/255, or effectively a 3-V supply. The controller drives the motor for 150 msec in one direction and 120 msec in the other direction with 100 msec rests between changes of direction.

Here is the Arduino sketch used for the demo:

int motorDirPin = 2;      // Motor direction connected to digital pin 2
int motorSpeedPin = 3;    // Motor speed connected to digital pin 3
int motorSleepPin = A3;      // Motor sleep to analog pin 3
int forwardSpeed = 80;
int pulseLength = 150;
int reversePulseLength = 120;
int restLength = 100;

void setup()
  pinMode(motorDirPin, OUTPUT);       // sets the pin as output
  pinMode(motorSpeedPin, OUTPUT);     // sets the pin as output
  pinMode(motorSleepPin , OUTPUT);     // sets the pin as output

  digitalWrite(motorDirPin, LOW);     // sets the default dir to be forward
  digitalWrite(motorSpeedPin, LOW);   // sets the default speed to be off
  digitalWrite(motorSleepPin , HIGH);   // sets the sleep mode to be off

void loop()

  // Set the motor direction to forward
  digitalWrite(motorDirPin, LOW);   
  analogWrite(motorSpeedPin, forwardSpeed);      // speed forward
  analogWrite(motorSpeedPin, 0);      // 0 speed forward
  // Setndirection to reverse
  digitalWrite(motorDirPin, HIGH);    
  analogWrite(motorSpeedPin, (255-forwardSpeed));      // speed reverse
  analogWrite(motorSpeedPin, 255);      // 0 speed reverse

Tuesday, August 18, 2015

"Weird Earths" coming to Silver Spring Maker Faire

For Silver Spring Maker Faire, September 20, 2015, I'll be showing "Weird Earths: Make Your Own Riemann Surfaces."

A physical model of stereographic projection. Credit: henryseg on thingiverse.

In complex analysis, a Riemann surface is a surface composed of copies of the complex plane. Since the features of the Earth's surface can be associated with the complex plane by stereo graphic projection, a layperson may prefer to envision a Riemann surface as a surface that has been seamlessly decorated with copies of the Earth's surface—what we'll call Weird Earths. Participants will fold their own Riemann surfaces from pre-cut and pre-creased cardboard strips. The maps printed on the strips are Oscar Sherman Adams' "World in a Square II."

I am indebted to the Five Fold Way, a folding dog exhibited at Bridges Baltimore 2015 by for this novel "folderoll" technique.

The Five Fold Way, a folding dog by .

Wednesday, April 1, 2015

A bijection between plain-woven baskets and hypermap dual pairs

The facial walk of a hyperface, envisioned here as simple cycle. The black dots are hypervertices, the white dots are hyperedges. In the general case, for example, a facial walk that is a walk around a tree, hypervertices and hyperedges  may appear in the walk with multiplicity greater than one.

The canonical (Eulerian) triangulation places a dot of a third color in the center of the hyperface (inspired by Good n Plenty candy, we'll use pink,) and constructs lines (with multiplicity if needed) to each hypervertex and hyperedge in the facial walk.

The canonical (Eulerian) triangulation of a hypermap is constructed by placing a pink vertex in the center of each hyperface and construction lines (with multiplicity if needed) to each hypervertex and hyperedge in the facial walk.

The canonical triangulation is an Eulerian triangulation, meaning there are an even number of triangles incident to each vertex (whether black, white, or pink.) It is also a tripartite graph, meaning it can be colored in three colors such that no edge connects two vertices of the same color. We are clearly in the possession of one such black-white-pink coloring, but the other five permutations of these colors work just as well. Each color permutation is the canonical triangulation of another hypermap. Here are the six arranged in dual pairs. (Hypermap duals are related by a rotation of black and pink—an interchange of hypervertices and hyperfaces—in their canonical triangulations.)

A six-pack of hypermaps: the six color permutations (Lins trialities) of a hypermap when shown in its canonical triangulation. Black = hyper vertex; White = hyper edge; Pink = hyperface. Canonical triangulations that differ by an exchange of black and pink (hypervertices and hyperfaces) represent dual pairs of hypermaps.

A dual pair of hypermaps becomes a plain-woven basket in this way: re-color the Pink vertices Black, then delete all Black-Black edges. 

Clearly, each hypermap in a dual pair yields the same bicolored, quad-faced map. Given a weaving convention to map Black/White to Left/Right helical-handedness, a bicolored, quad-faced map explicitly describes a plain-woven basket. (Some may prefer the dual representation of a plain-woven basket: a chess-colored 4-regular map.)

Fragments of the three baskets generated by the three dual pairs above.

The inverse mapping (i.e., from a bicolored, quad-faced map to a dual pair of hypermaps) is accomplished in this way: diagonalize every quad by adding a Black-Black edge; there are now exactly two ways to recolor the Black vertices with either Black or Pink that do not result in an edge with two ends of the same color—these two colorings are the canonical triangulations of a dual pair of hypermaps.

Tuesday, March 31, 2015

The Adams "World in a Square" projection and knotology weaving

The square module of Adams's "World in a Square II" conformal projection of the globe is similar to the square module of knotology weaving.

A Belyi function maps an orientable surface to the sphere with at most 3 singular points (critical values.) The pre-images of these points on the orientable surface are called critical points. In the general case, the critical points form an Eulerian triangulation of the orientable surface (a triangulation with an even number of triangles meeting at each vertex.) The smallest such triangulation has just two triangles: it is, so to speak, a triangular envelope.

From a number theorist's point of view, the three critical values on the sphere should be located at 0, 1, and infinity in complex (Riemann sphere) coordinates. These points on the Riemann sphere share a great circle (the real axis) at spacings of 90°-90°-180°. The Adams "World in a Square II" projection also has critical values along a great circle (the extended prime meridian that includes 180° longitude,) and they are also spaced at 90°-90°-180° (the South Pole, the Pacific Point, i.e., the antipodes of the longitude/latitude origin, and the North Pole,) so the correspondence is pretty exact.

The several appearances of the extended prime meridian in Adams's projection (the four sides of the square plus a diagonal of the square) show that Adams's projection is really two triangles joined along a shared edge. The four corners of the square fall into two classes: those that are composed of a single triangle angle (the two appearances of the Pacific Point) and those that are composed of two triangle angles (the North and South Poles.) Each triangle angle represents 180° on the earth's surface (the angle between two segments of a straight line is always 180°) so the North and South Poles each represent a pair of triangle angles, 2 x 180° = 360°, or a full turn. Each of the two appearances of the Pacific Point represent a single triangle angle, 1 x 180° = 180°, or a half-turn.

A "World in a Square" knotology weaver folded the natural (prime-median) way.

The way nature intends us to fold Adams's square is along the prime meridian: that turns the square into two triangles with every triangle corner = 180°. The unnatural way is to fold the square along the equator, then the right-angled corners at the poles represent 360° on the earth (each being actually two triangle corners), while the 45° corners represent 90° on the earth (each being 180° on the earth split down the middle by the fold.)

Nature's way requires an Eulerian triangulation (just as we would expect in a Belyi surface;) ensuring that every vertex of the triangulation gets an integral multiple of 360°. The unnatural way allows any number of triangles at the "rangles," the places where right angles (each representing 360° of earth surface) meet, but the price is that we need doubly-Eulerian vertices (multiples of four triangles) at the "nooses," the places where the 45°-angles (each representing 90° of earth surface) meet. That sounds strange, but it is actually convenient to the way knotology weaving is frequently done. Often, we are weaving a deltahedral surface that is, so to speak, omnicapped by cube corners, so we need an odd number of triangles (3) at the rangles. Getting doubly-Eulerian vertices for the nooses may sound difficult, but, since every each omnicap contributes a pair of triangles to that vertex, the underlying deltahedral triangulation only needs to be Eulerian.

A "World in a Square" knotology weaver woven the unnatural (equatorial) way.

In weaving the enveloping surfaces of vox-solids the placement of the oblique knotology creases are irrelevant as they are not folded, but the number of squares around a vertex can be 3 (the head of a corner,) 4 (flat ground,) 5 (the corner of a building rising from flat ground,) and 6 (a square well touching corners with a building rising from flat ground.) Those odd numbers—3 and 5—cause problems for the Pacific Point since it supplies only half-a-turn at each corner of the square. For example, we cannot "world-weave" the surface of a 1-voxel cube because the Pacific Point would be forced to make an appearance at certain "heads of corners;" but, we can world-weave the surface of an 8-voxel cube if we place Pole Points at the corners, thus keeping the Pacific Point safely in the middle.

A portion of the enveloping surface of a vox-solid.
It is interesting to note that an 8-voxel knotology cube can be viewed as a deltahedron omnicapped with cube corners, the underlying deltahedron is an octahedron—and the surface of an octahedron is indeed an Eulerian triangulation. Any vox-solid we make out of these larger "octo-voxels" can indeed be world-woven.

Friday, February 20, 2015

Chiral map operations and tensegrities

Circle diagrams for chiral map operations including propellor, capra, gyro, and snub. The chiral edges, shown in orange, do not have their symmetrical pairs—they count 2x instead of 4x for the black edges.

Tensegrity fabrics related to the map operations snub, capra, truncate, and medial. See this earlier posting.