Jump to: Traits · What to Look For · Trait Lookup · Palette · Composition · Curated Numbers
Trait overview
Six categories, 384 expressions
Every piece can be described through six trait categories, with the counts below showing the variations present throughout the collection. These values are not simply metadata. Motion traits like Speed, Transition Interval, and Pulse Direction are active components of the system, shaping how each work exists over time.
| Trait | Distinct values | Notes |
|---|---|---|
| Type | 2 | Curated or Generated. Only the 16 curated numbers carry Curated. |
| Color | 11 | 10 named base colors from the generator's own color array, plus Rainbow, a 1/1 exclusive to the closing edition, #383. |
| Composition | 12 | 8 relationships that occur across the randomly generated editions, 3 that are 1/1 exclusives, and one intentional value that's easy to miss because it isn't part of the collection's commonly cited trait list. Full breakdown below. |
| Pulse Direction | 2 | Contractive on 376 editions (all 368 generated, plus 8 curated). Expansive on exactly 8, all curated, all set explicitly in code. |
| Speed | 50 | Numeric, derived from the animation's frame interval. Values range from 76 to 125 across all 384 editions, confirmed by the Trait Lookup below. |
| Transition Interval | 5 | Numeric. Every possible value the code can produce: 2, 3, 4, 5, 6. |
A note on wording: Type: Curated is a P:X trait marking 16 hand-picked editions within this collection. It's unrelated to Art Blocks' own Curated track, the platform's separate, more selective curatorial tier. P:X itself is a Factory project.
In plain terms
What to look for
The table above has everything. This is just the shortcut • the part to come back to when you're comparing one edition to another and don't want to keep jumping around the page.
- 01Start with Curated vs. Generated. This is probably the clearest distinction in the collection. Sixteen of the 384 editions were picked by hand. The other 368 came straight from the code. If you're trying to understand why one piece feels different from another, this is a good place to start.
- 02Rainbow is the one true 1/1. It appears only once, on #383, the closing edition. There isn't another token it can show up on. Of everything in P:X, this is the trait with the simplest definition of rare: one piece, one time.
- 03Four Composition values were written into the code by hand. Isolated, At Attention, and Rebound each belong to exactly one token • #29, #233, and #383. b:x is a little more common, but still unusual: it appears only on editions whose number divides evenly by 7, roughly 55 pieces in total. If you want to go deeper, the full breakdown is below.
- 04Expansive Pulse Direction is genuinely scarce. Only 8 of 384 editions have it, and every one of those is Curated. Everywhere else in the collection, Pulse Direction is Contractive. So when you see Expansive, you're looking at something that doesn't come around very often.
- 05Speed and Transition Interval work differently. These aren't really rarity traits. They're more about character • how a particular piece moves and feels. Both change continuously rather than falling into neat common-and-rare categories. They're worth paying attention to, just for a different reason.
Trait Lookup
Look up any edition
Every trait for all 384 editions, pulled from the deployed contract and corrected against the generator's own source where the public metadata is known to be incomplete (see note below the result). Enter a number to see exactly what a specific piece carries.
Type, Color, Speed, and Transition Interval are read directly from the deployed contract. Composition and Pulse Direction are corrected against the generator's own source code: Art Blocks' public metadata truncates multi-value Composition entries (including b:x) and reports Pulse Direction incorrectly for every token, so those two fields here are computed from the script's actual logic instead.
Color
The palette
The P:X palette begins with ten base colors defined by the generator itself. Beyond those, one final variation exists: Rainbow, a singular color treatment reserved exclusively for the final piece, #383.
A hidden relationship in the palette
The number 384 appears not only in the size of the collection, but within the color system itself. Reading directly from the deployed generator, five colors • Orange, Pink, Blue, Green, and Cyan • contain RGB channel values that sum to exactly 384.
The remaining colors • Ghost Black, Black, Ghost White, Yellow, and Red • exist outside this pattern. They provide the structural foundation of the palette: contrast, balance, and the essential framework that allows the 384 colors to emerge.
Composition
The naming system
The Composition trait is derived directly from the deployed generator logic. It describes the positional relationship between the P-stem and the two X-stems: overlap, alignment, and mirroring behavior within the glyph structure.
In each diagram:
- the highlighted bar = P-stem
- the dimmed bars = X-stems
- the circle = leading end of each bar
The eight composition values are rolled independently for each generated piece, allowing a single token to contain multiple composition states.
That's 8 values. The remaining 4 that bring the trait to 12 aren't generative dice-rolls. They're hardcoded exceptions, each tied to a specific token:
Editions #11, #313, and #349 hit neither dice roll, so they carry no Composition value at all. That's why the OpenSea trait filter shows nothing for them. It's not a data gap, it's what the code actually does.
Curated numbers
The 16
The only pieces carrying Type: Curated: 2, 11, 29, 43, 61, 89, 107, 149, 173, 211, 233, 277, 313, 349, 367, and 383. Every value below, including Pulse Direction, is read directly from the deployed generator script.
| Edition | Token ID | Color | Composition | Pulse | Speed | Trans. | |
|---|---|---|---|---|---|---|---|
| #2 | 54000002 | Black | Lazy Reflections | Contractive | 82 | 4 | view ↗ |
| #11 | 54000011 | Black | none | Contractive | 78 | 4 | view ↗ |
| #29 | 54000029 | Ghost White | Hostile Takeover + Isolated | Contractive | 83 | 4 | view ↗ |
| #43 | 54000043 | Yellow | Lazy Reflections | Contractive | 77 | 5 | view ↗ |
| #61 | 54000061 | Ghost Black | Reflections | Contractive | 77 | 2 | view ↗ |
| #89 | 54000089 | Black | Lazy Reflections | Expansive | 78 | 6 | view ↗ |
| #107 | 54000107 | Black | Reflections | Expansive | 78 | 5 | view ↗ |
| #149 | 54000149 | Black | Lazy Reflections | Expansive | 78 | 3 | view ↗ |
| #173 | 54000173 | Cyan | Lazy Reflections | Expansive | 83 | 4 | view ↗ |
| #211 | 54000211 | Red | Lazy Reflections | Expansive | 78 | 3 | view ↗ |
| #233 | 54000233 | Ghost White | At Attention | Expansive | 77 | 3 | view ↗ |
| #277 | 54000277 | Black | Reflections | Expansive | 83 | 3 | view ↗ |
| #313 | 54000313 | Pink | none | Contractive | 85 | 3 | view ↗ |
| #349 | 54000349 | Yellow | none | Contractive | 83 | 3 | view ↗ |
| #367 | 54000367 | Black | Lazy Crossover | Expansive | 78 | 4 | view ↗ |
| #383 | 54000383 | Rainbow | Lazy Crossover + Rebound | Contractive | 81 | 3 | view ↗ |
Pulse Direction splits exactly 8/8 across the curated set. Every Expansive piece here traces to pdotMul = 0.75 hardcoded in the script. Everything else in the whole 384-piece collection is Contractive.