- Life Objects
Every cell is bounded by eight other cells. Each of these bounding cells can be referred to by their compass heading from that cell: North, Northeast, East, Southeast, South, Southwest, West, Northwest.
Spaceships whose movement values are equal to each other, or where one of the values is zero, move in one of these directions. The first are known as "Diagonal Spaceships" while the latter are known as "Orthogonal Spaceships". Ships that move in other directions, where the two components are not equal, are known as "Knightships". All currently known spacehips are either Diagonal or Orthogonal.
[Need to add]
The bounds of an object is the rectangle which encloses it in the given phase. This means that for some oscillators, and all spaceships, the bounding rectangle may not be the same from phase to phase.
The images on this site are generated using an extended RLE format. For information on the standard RLE format, see the RLE section of Mirek Wojtowicz's digest of the common data file formats used for Life data.
In order to create sorted lists of objects, a method of comparing two Life objects, and defining which comes before the other, must be defined. This definition also comes into play when determining the standard form of an object.
When the populations are different, in all cases the object with the smaller population comes first. When the populations are the same, then the bounds of each pattern, with the upper right corner at [0,0], is determined. The composite bounds, consisting of the maximum of the pairs of heights and widths, in determined. Each object is considered to be padded with blank cells so that they now have the same dimensions with any padding along the South (bottom) and East (right) sides.
Each line, going from North (top) to South (bottom) is compared in turn. To compare two lines, the individual cells are compared, from West (left) to East (right). The pattern with an active cell where the other pattern has an empty cell is considered to come before the other, and the comparison is finished. If the cells have the same state (active or empty), then the next cell to the East (right) is compared until the end of the line is reached and the next line is then compared. When the Southern (bottom) lines are compared and found to be identical, then the patterns are identical.
Every object has a standard form. (Also known as its normalized, or canonical form.) This is the representation of the object outside the context of a Life pattern. It also corresponds with the SOF (Small Object Format) value of that object.
An object's standard form is found by listing all eight of the possible orientations for an object. These are then sorted using the comparison method for Life patterns. The first form in this sorted list is the standard form.
For oscillators, every phase is considered, so that eight times the number of phases are considered.
Spaceships are a special case. They are always considered to be moving vertically in a North (upward) direction. If there is also a horizontal component to its movement, this is to the East (left). For diagonal ships, this means they move Northwest, while knightships primarily move Northward (upward) with a smaller Westward (leftward) component. Unlike other objects, there are only two possible patterns for a spaceship's standard form. (A knightship's standard form is determined by its direction, so only comparison among the phases is needed.)
For infinite objects like Glider Guns and Puffers, their products are ignored and treated as if they were oscillators or spaceships, respectively.
The SOF format was created as a way to specify multiple objects in a single file, in a way that is human readable. Each object takes up one line in an ASCII file. The format itself specifies each line as an alternating list of on and off cells, starting with an on cell.
Using minimum bounding box, a single object is specified as follows:
- If the line starts with off cells, write "0"
- Write the count of consecutive cells as ASCII(x + 0x30). For counts of 0-9, this results in the characters "0" through "9".
- Max value is 78 "~"
- If value is greater than max value above, write the max value, then a "0" to signify a zero
length run, followed by the value for (count-78), repeated as necessary.
(For example, 80 bits would be encoded as "]02"
- "-" End of line marker.
- Multiple blank lines result in multiple "-" characters.
(Unimplemented: "+" followed by encoded count char — "---" --> "+3").
- "." End of pattern marker.
- "!" following to end of line is comment, ignored.
- "(xxx)" Name comment, may appear before or after "!". If before, will appear in "name" location in display program. Preferred before, otherwise may display duplicated.
- Text before "!" and outside "( ... )" is not displayed.
There are 8 possible orientations for an object with no symmetry. Each is designated by a single letter code, as shown. For objects with symmetries, some transformations can result inthe same orientation. In that case, the transform code nearest the upper-left corner is prefered, with column having precedence.