cryptopunks 1.2.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 40ec7d396eeeca8b4363ac52ca11cd4bb28c6ec9aa88c026e605378af16c8369
4
- data.tar.gz: a111a3dbbec40626e42f86a295adc00b90979c53081b43ed8d96b30ef5e0bdba
3
+ metadata.gz: 6d5c5095393516405521c5015bba5c08d8c664ed7069a3e2d40e18fa954a3966
4
+ data.tar.gz: 2e1f634711c262c540e069128842e547d9e43d4695d90022ed0d91f25c0f6f41
5
5
  SHA512:
6
- metadata.gz: 1c0b5c1ac7ffa4d0db4677f8541d1f03c72726b50abfbd2da62ef97c4047f43373f58234b8ad19b4a000c60d70f1881c2aa0719a0a3930a59387a67a6446a796
7
- data.tar.gz: 8b8e1ab287df0f36543c23491e5727c688672dcc898b02086a4332bc6bcf6f46f8b5cf4ee159ad6ce7d09e344c04f5cd82510b5a7d1d697cd17626bc5914aab6
6
+ metadata.gz: e377b5fa5e4652bdabf9ad77bf95aaea875fe84a5d778579e974573afb054157540fb40742019e20c80070ea9de163af116b605e1e8be08783d24e960562ac39
7
+ data.tar.gz: 882ef4d31762e7d14d3b8da4e3a2a41a8409d96cb2f29b89e70b77b7acf9427a0a5721b4f8eab9da9d12ae0fa1373a26ab226003d589ffe7aca3379966503989
data/Manifest.txt CHANGED
@@ -4,34 +4,18 @@ README.md
4
4
  Rakefile
5
5
  bin/cryptopunk
6
6
  bin/punk
7
- config/more/alien-female.txt
8
- config/more/ape-female.txt
9
- config/more/demon-female.txt
10
- config/more/demon-male.txt
11
- config/more/mummy-female.txt
12
- config/more/mummy-male.txt
13
- config/more/orc-female.txt
14
- config/more/orc-male.txt
15
- config/more/robot-female.txt
16
- config/more/robot-male.txt
17
- config/more/skeleton-female.txt
18
- config/more/skeleton-male.txt
19
- config/more/vampire-female.txt
20
- config/more/vampire-male.txt
21
- config/more/zombie-female.txt
22
- config/original/alien-male.txt
23
- config/original/ape-male.txt
24
- config/original/human-female.txt
25
- config/original/human-male.txt
26
- config/original/zombie-male.txt
27
7
  config/spritesheet.csv
28
8
  config/spritesheet.png
29
9
  lib/cryptopunks.rb
30
10
  lib/cryptopunks/attributes.rb
31
11
  lib/cryptopunks/colors.rb
32
12
  lib/cryptopunks/composite.rb
13
+ lib/cryptopunks/contract/punksdata-assets.rb
14
+ lib/cryptopunks/contract/punksdata-contract.rb
15
+ lib/cryptopunks/contract/punksdata-meta.rb
33
16
  lib/cryptopunks/dataset.rb
34
17
  lib/cryptopunks/generator.rb
35
18
  lib/cryptopunks/image.rb
36
19
  lib/cryptopunks/structs.rb
20
+ lib/cryptopunks/tool.rb
37
21
  lib/cryptopunks/version.rb
data/README.md CHANGED
@@ -12,6 +12,7 @@ New to Crypto Punks?
12
12
  See the [**Awesome CryptoPunks Bubble (Anno 2021) - Modern 24×24 Pixel Crypto Art on the Blockchain** »](https://github.com/cryptopunksnotdead/awesome-cryptopunks-bubble)
13
13
 
14
14
 
15
+
15
16
  ## Command Line
16
17
 
17
18
  Use the `punk` (or `cryptopunk`) command line tool. Try:
@@ -23,17 +24,296 @@ $ punk -h
23
24
  resulting in:
24
25
 
25
26
  ```
26
- Usage: cryptopunk [options] IDs
27
- Mint punk characters from composite (./punks.png) - for IDs use 0 to 9999
27
+ NAME
28
+ punk - punk (or cryptopunk) command line tool
29
+
30
+ SYNOPSIS
31
+ punk [global options] command [command options] [arguments...]
32
+
33
+ VERSION
34
+ 2.1.0
35
+
36
+ GLOBAL OPTIONS
37
+ -d, --dir,
38
+ -o, --out, --outdir=DIR - Output directory (default: .)
39
+ -f, --file=FILE - True Official Genuine CryptoPunks™ all-in-one
40
+ composite image (default: ./punks.png)
41
+ --offset=NUM - Start counting at offset (default: 0)
42
+ --seed=NUM - Seed for random number generation /
43
+ shuffle (default: 4142)
44
+ -z, --zoom=ZOOM - Zoom factor x2, x4, x8, etc. (default: 1)
45
+
46
+ --help - Show this message
47
+ --version - Display the program version
48
+ --verbose - (Debug) Show debug messages
49
+
50
+
51
+ COMMANDS
52
+ g, gen, generate - Generate punk characters from text attributes (from
53
+ scratch / zero) via builtin punk spritesheet
54
+ l, ls, list - List all punk archetype and attribute names from builtin
55
+ punk spritesheet
56
+ q, query - Query (builtin off-chain) punk contract for punk text
57
+ attributes by IDs - use 0 to 9999
58
+ t, tile - Get punk characters via image tiles from all-in-one punk
59
+ series composite (./punks.png) - for IDs use 0 to 9999
60
+ f, flip - Flip (vertically) all punk characters in all-in-one punk
61
+ series composite (./punks.png)
62
+ s, shuffle - Shuffle all punk characters (randomly) in all-in-one
63
+ punk series composite (./punks.png)
64
+
65
+ help - Shows a list of commands or help for one command
66
+ ```
67
+
68
+
69
+ ### Generate Command
70
+
71
+ _Generate punk characters from text attributes (from scratch / zero) via builtin punk spritesheet_
72
+
73
+
74
+ Let's try punk #0:
75
+
76
+ ```
77
+ $ punk generate female_2 earring blonde_bob green_eye_shadow
78
+ ```
79
+
80
+ resulting in:
81
+
82
+ ![](i/punk-0000.png)
83
+
84
+ Let's try the `-z/--zoom` factor 2x, 4x, 8x, etc.:
85
+
86
+ ```
87
+ $ punk --zoom 4 generate female_2 earring blonde_bob green_eye_shadow
88
+ # -or-
89
+ $ punk -z2 g female_2 earring blonde_bob green_eye_shadow
90
+ ```
91
+
92
+ resulting in:
93
+
94
+ 2x ![](i/punk-0000x2.png)
95
+ 4x ![](i/punk-0000x4.png)
96
+ 8x ![](i/punk-0000x8.png)
97
+
98
+
99
+ Let's try never-before-seen super-rare punks:
100
+
101
+ ```
102
+ $ punk generate demon heart_shades
103
+ $ punk generate vampire_female wild_hair
104
+ ```
105
+
106
+ resulting in:
107
+
108
+ ![](i/demon.png)
109
+ ![](i/vampire-female.png)
110
+
111
+
112
+
113
+ Q: What punk archetypes and attributes can I use?
114
+
115
+ A: See the list command.
116
+
117
+
118
+ ### List Command
119
+
120
+ _List all punk archetype and attribute names from builtin punk spritesheet_
121
+
122
+
123
+ Let's try:
124
+
125
+ ```
126
+ $ punk list
127
+ # -or-
128
+ $ punk ls
129
+ ```
130
+
131
+ resulting in:
132
+
133
+ ```
134
+ ==> Archetypes
135
+ Male 1 / (m) - Archetype - Human
136
+ Male 2 / (m) - Archetype - Human
137
+ Male 3 / (m) - Archetype - Human
138
+ Male 4 / (m) - Archetype - Human
139
+ Female 1 / (f) - Archetype - Human
140
+ Female 2 / (f) - Archetype - Human
141
+ Female 3 / (f) - Archetype - Human
142
+ Female 4 / (f) - Archetype - Human
143
+ Zombie / (m) - Archetype - Zombie
144
+ Zombie Female / (f) - Archetype - Zombie
145
+ Ape / (m) - Archetype - Ape
146
+ Ape Female / (f) - Archetype - Ape
147
+ Alien / (m) - Archetype - Alien
148
+ Alien Female / (f) - Archetype - Alien
149
+ Demon / (m) - Archetype - Demon
150
+ Demon Female / (f) - Archetype - Demon
151
+ Mummy / (m) - Archetype - Mummy
152
+ Mummy Female / (f) - Archetype - Mummy
153
+ Orc / (m) - Archetype - Orc
154
+ Orc Female / (f) - Archetype - Orc
155
+ Robot / (m) - Archetype - Robot
156
+ Robot Female / (f) - Archetype - Robot
157
+ Skeleton / (m) - Archetype - Skeleton
158
+ Skeleton Female / (f) - Archetype - Skeleton
159
+ Vampire / (m) - Archetype - Vampire
160
+ Vampire Female / (f) - Archetype - Vampire
161
+ Zombie (Ape) / (m) - Archetype - Zombie
162
+ Alien (Ape) / (m) - Archetype - Alien
163
+ Alien 0° / (m) - Archetype - Alien
164
+ Alien 30° / (m) - Archetype - Alien
165
+ Alien 60° / (m) - Archetype - Alien
166
+ Alien 90° / (m) - Archetype - Alien
167
+ Alien 120° / (m) - Archetype - Alien
168
+ Alien 150° / (m) - Archetype - Alien
169
+ Alien 180° / (m) - Archetype - Alien
170
+ Alien 210° / (m) - Archetype - Alien
171
+ Alien 240° / (m) - Archetype - Alien
172
+ Alien 270° / (m) - Archetype - Alien
173
+ Alien 300° / (m) - Archetype - Alien
174
+ Alien 330° / (m) - Archetype - Alien
175
+ Alien (Ape) 0° / (m) - Archetype - Alien
176
+ Alien (Ape) 30° / (m) - Archetype - Alien
177
+ Alien (Ape) 60° / (m) - Archetype - Alien
178
+ Alien (Ape) 90° / (m) - Archetype - Alien
179
+ Alien (Ape) 120° / (m) - Archetype - Alien
180
+ Alien (Ape) 150° / (m) - Archetype - Alien
181
+ Alien (Ape) 180° / (m) - Archetype - Alien
182
+ Alien (Ape) 210° / (m) - Archetype - Alien
183
+ Alien (Ape) 240° / (m) - Archetype - Alien
184
+ Alien (Ape) 270° / (m) - Archetype - Alien
185
+ Alien (Ape) 300° / (m) - Archetype - Alien
186
+ Alien (Ape) 330° / (m) - Archetype - Alien
187
+ Alien Female 0° / (f) - Archetype - Alien
188
+ Alien Female 30° / (f) - Archetype - Alien
189
+ Alien Female 60° / (f) - Archetype - Alien
190
+ Alien Female 90° / (f) - Archetype - Alien
191
+ Alien Female 120° / (f) - Archetype - Alien
192
+ Alien Female 150° / (f) - Archetype - Alien
193
+ Alien Female 180° / (f) - Archetype - Alien
194
+ Alien Female 210° / (f) - Archetype - Alien
195
+ Alien Female 240° / (f) - Archetype - Alien
196
+ Alien Female 270° / (f) - Archetype - Alien
197
+ Alien Female 300° / (f) - Archetype - Alien
198
+ Alien Female 330° / (f) - Archetype - Alien
199
+
200
+ ==> Attributes
201
+ 3D Glasses / (m) - Attribute
202
+ 3D Glasses / (f) - Attribute
203
+ Bandana / (m) - Attribute
204
+ Bandana / (f) - Attribute
205
+ Beanie / (m) - Attribute
206
+ Beanie / (f) - Attribute
207
+ Big Beard / (m) - Attribute
208
+ Big Shades / (m) - Attribute
209
+ Big Shades / (f) - Attribute
210
+ Black Lipstick / (f) - Attribute
211
+ Blonde Bob / (f) - Attribute
212
+ Blonde Short / (f) - Attribute
213
+ Blue Eye Shadow / (f) - Attribute
214
+ Buck Teeth / (m) - Attribute
215
+ Cap / (m) - Attribute
216
+ Cap / (f) - Attribute
217
+ Cap Forward / (m) - Attribute
218
+ Cap Forward / (f) - Attribute
219
+ Chinstrap / (m) - Attribute
220
+ Choker / (f) - Attribute
221
+ Cigarette / (m) - Attribute
222
+ Cigarette / (f) - Attribute
223
+ Classic Shades / (m) - Attribute
224
+ Classic Shades / (f) - Attribute
225
+ Clown Eyes Blue / (m) - Attribute
226
+ Clown Eyes Blue / (f) - Attribute
227
+ Clown Eyes Green / (m) - Attribute
228
+ Clown Eyes Green / (f) - Attribute
229
+ Clown Hair Green / (m) - Attribute
230
+ Clown Hair Green / (f) - Attribute
231
+ Clown Nose / (m) - Attribute
232
+ Clown Nose / (f) - Attribute
233
+ Cowboy Hat / (m) - Attribute
234
+ Cowboy Hat / (f) - Attribute
235
+ Crazy Hair / (m) - Attribute
236
+ Crazy Hair / (f) - Attribute
237
+ Dark Hair / (f) - Attribute
238
+ Do-rag / (m) - Attribute
239
+ Do-rag / (f) - Attribute
240
+ Earring / (m) - Attribute
241
+ Earring / (f) - Attribute
242
+ Eye Mask / (m) - Attribute
243
+ Eye Mask / (f) - Attribute
244
+ Eye Patch / (m) - Attribute
245
+ Eye Patch / (f) - Attribute
246
+ Fedora / (m) - Attribute
247
+ Fedora / (f) - Attribute
248
+ Front Beard / (m) - Attribute
249
+ Front Beard Dark / (m) - Attribute
250
+ Frown / (m) - Attribute
251
+ Frumpy Hair / (m) - Attribute
252
+ Frumpy Hair / (f) - Attribute
253
+ Green Eye Shadow / (f) - Attribute
254
+ Goat / (m) - Attribute
255
+ Gold Chain / (m) - Attribute
256
+ Gold Chain / (f) - Attribute
257
+ ...
258
+ ```
259
+
260
+ See the [**punks.spritesheet**](https://github.com/cryptopunksnotdead/punks.spritesheet) for more.
261
+
262
+
263
+
264
+
265
+ ### Query Command
266
+
267
+ _Query (builtin off-chain) punk contract for punk text attributes by IDs - use 0 to 9999_
268
+
269
+
270
+ Let's try punk #0:
271
+
272
+ ```
273
+ $ punk query 0
274
+ # -or-
275
+ $ punk q 0
276
+ ```
277
+
278
+ resulting in:
279
+
280
+ ```
281
+ ==> (1/1) punk #0...
282
+ female_2 earring blonde_bob green_eye_shadow
283
+ ```
28
284
 
29
- Options:
30
- -z, --zoom=ZOOM Zoom factor x2, x4, x8, etc. (default: 1)
31
- -d, --dir=DIR Output directory (default: .)
32
- -f, --file=FILE True Official Genuine CryptoPunks™ composite image (default: ./punks.png)
33
- --offset=NUM Start counting at offset (default: 0)
34
- -h, --help Prints this help
285
+ Let's try some top sellers:
286
+
287
+ ```
288
+ $ punk query 7804 3100 5217 8857
289
+ # -or-
290
+ $ punk q 7804 3100 5217 8857
35
291
  ```
36
292
 
293
+ resulting in:
294
+
295
+ ```
296
+ ==> (1/4) punk #7804...
297
+ alien cap_forward pipe small_shades
298
+ ==> (2/4) punk #3100...
299
+ alien headband
300
+ ==> (3/4) punk #5217...
301
+ ape gold_chain knitted_cap
302
+ ==> (4/4) punk #8857...
303
+ zombie wild_hair 3d_glasses
304
+ ```
305
+
306
+ Note: Yes, you can pass the text attributes to the generate command
307
+ to get a free "cleanroom" copy built from scratch / zero
308
+ that you own 100% forever.
309
+
310
+
311
+
312
+ ### Tile Command
313
+
314
+ _Get punk characters via image tiles from all-in-one punk series composite (`./punks.png`) - for IDs use 0 to 9999_
315
+
316
+
37
317
 
38
318
  Step 0 - Download the True Official Genuine CryptoPunks™ composite image
39
319
 
@@ -48,10 +328,10 @@ See [`punks.png` »](https://github.com/larvalabs/cryptopunks/blob/master/punks.
48
328
 
49
329
 
50
330
 
51
- Now let's give it a try. Let's mint punk #0, #2890, and #8219:
331
+ Now let's give it a try. Let's save punk #0, #2890, and #8219:
52
332
 
53
333
  ```
54
- $ punk 0 2890 8219
334
+ $ punk tile 0 2890 8219
55
335
  ```
56
336
 
57
337
  printing:
@@ -60,9 +340,9 @@ printing:
60
340
  ==> reading >./punks.png<...
61
341
  >ac39af4793119ee46bbff351d8cb6b5f23da60222126add4268e261199a2921b< SHA256 hash matching
62
342
  ✓ True Official Genuine CryptoPunks™ verified
63
- ==> (1/3) minting punk #0; writing to >./punk-0000.png<...
64
- ==> (2/3) minting punk #2890; writing to >./punk-2890.png<...
65
- ==> (3/3) minting punk #8219; writing to >./punk-8219.png<...
343
+ ==> (1/3) saving punk #0 to >./punk-0000.png<...
344
+ ==> (2/3) saving punk #2890 to >./punk-2890.png<...
345
+ ==> (3/3) saving punk #8219 to >./punk-8219.png<...
66
346
  ```
67
347
 
68
348
  And voila!
@@ -73,14 +353,14 @@ And voila!
73
353
 
74
354
 
75
355
 
76
- **Bonus: Try the `-z/--zoom` factor x2, x4, x8, etc.**
356
+ **Bonus: Try the `-z/--zoom` factor 2x, 4x, 8x, etc.**
77
357
 
78
- Let's give it a try. Let's mint punk #0, #2890, and #8219 in 2x format:
358
+ Let's give it a try. Let's save punk #0, #2890, and #8219 in 2x format:
79
359
 
80
360
  ```
81
- $ punk --zoom 2 0 2890 8219
361
+ $ punk --zoom 2 tile 0 2890 8219
82
362
  # -or-
83
- $ punk -z2 0 2890 8219
363
+ $ punk -z2 t 0 2890 8219
84
364
  ```
85
365
 
86
366
  printing:
@@ -90,9 +370,9 @@ printing:
90
370
  >ac39af4793119ee46bbff351d8cb6b5f23da60222126add4268e261199a2921b< SHA256 hash matching
91
371
  ✓ True Official Genuine CryptoPunks™ verified
92
372
  setting zoom to 2x
93
- ==> (1/3) minting punk #0; writing to >punk-0000x2.png<...
94
- ==> (2/3) minting punk #2890; writing to >punk-2890x2.png<...
95
- ==> (3/3) minting punk #8219; writing to >punk-8219x2.png<...
373
+ ==> (1/3) saving punk #0 to >punk-0000@2x.png<...
374
+ ==> (2/3) saving punk #2890 to >punk-2890@2x.png<...
375
+ ==> (3/3) saving punk #8219 to >punk-8219@2x.png<...
96
376
  ```
97
377
 
98
378
  And voila!
@@ -120,7 +400,7 @@ And so on.
120
400
 
121
401
 
122
402
 
123
- ## 10 000 More Punks - Unauthorized? No Way?!- Fuck the Establishment - Yes, You Can - Do-It-Yourself - Use Your Own Collections
403
+ **10 000 More Punks - Unauthorized? No Way?!- Fuck the Establishment - Yes, You Can - Do-It-Yourself - Use Your Own Collections**
124
404
 
125
405
 
126
406
  Use the `-f, --file=FILE` option
@@ -138,12 +418,12 @@ in the series.
138
418
 
139
419
 
140
420
 
141
- Let's mint punk #0, #19, #50, and #89
421
+ Let's save punk #0, #19, #50, and #89
142
422
  and let's add an offset of 10000
143
423
  (to start counting at 10000 instead of 0):
144
424
 
145
425
  ```
146
- $ punk 0 18 40 88 --file ./more-punks-1.png --offset 10000
426
+ $ punk --file ./more-punks-1.png --offset 10000 tile 0 18 40 88
147
427
  ```
148
428
 
149
429
  printing:
@@ -151,10 +431,10 @@ printing:
151
431
  ```
152
432
  ==> reading >./more-punks-1.png<...
153
433
  240x240 (height x width)
154
- ==> (1/4) minting punk #10000; writing to >./punk-10000.png<...
155
- ==> (2/4) minting punk #10018; writing to >./punk-10018.png<...
156
- ==> (3/4) minting punk #10040; writing to >./punk-10040.png<...
157
- ==> (4/4) minting punk #10040; writing to >./punk-10088.png<...
434
+ ==> (1/4) saving punk #10000 to >./punk-10000.png<...
435
+ ==> (2/4) saving punk #10018 to >./punk-10018.png<...
436
+ ==> (3/4) saving punk #10040 to >./punk-10040.png<...
437
+ ==> (4/4) saving punk #10040 to >./punk-10088.png<...
158
438
  ```
159
439
 
160
440
  And voila!
@@ -182,12 +462,12 @@ Let's try the second pack - that is, punks 100 to 199 in the series.
182
462
 
183
463
 
184
464
 
185
- Let's mint punk #0, #79, #80, and #90
465
+ Let's save punk #0, #79, #80, and #90
186
466
  and let's add an offset of 10100
187
467
  (to start counting at 10000 plus 100 instead of 0):
188
468
 
189
469
  ```
190
- $ punk 0 79 80 90 --file ./more-punks-2.png --offset 10100
470
+ $ punk --file ./more-punks-2.png --offset 10100 tile 0 79 80 90
191
471
  ```
192
472
 
193
473
  printing:
@@ -195,10 +475,10 @@ printing:
195
475
  ```
196
476
  ==> reading >./more-punks-2.png<...
197
477
  240x240 (height x width)
198
- ==> (1/4) minting punk #10100; writing to >./punk-10100.png<...
199
- ==> (2/4) minting punk #10179; writing to >./punk-10179.png<...
200
- ==> (3/4) minting punk #10180; writing to >./punk-10180.png<...
201
- ==> (4/4) minting punk #10190; writing to >./punk-10190.png<...
478
+ ==> (1/4) saving punk #10100 to >./punk-10100.png<...
479
+ ==> (2/4) saving punk #10179 to >./punk-10179.png<...
480
+ ==> (3/4) saving punk #10180 to >./punk-10180.png<...
481
+ ==> (4/4) saving punk #10190 to >./punk-10190.png<...
202
482
  ```
203
483
 
204
484
  And voila! Super rare - world's first female alien and much more.
@@ -223,10 +503,112 @@ And so on.
223
503
 
224
504
 
225
505
 
506
+ ### Flip Command
507
+
508
+ _Flip (vertically) all punk characters in all-in-one punk series composite (`./punks.png`)_
509
+
510
+
511
+ Let's generate an all new punk series by turning all punks
512
+ in the classic series
513
+ from right-looking to left-looking
514
+ by flipping vertically "one-by-one by hand [thanks to philip the intern]"
515
+ all punks. Phree the phunks! Let's give it a try:
516
+
517
+ ```
518
+ $ punk flip
519
+ # - same as -
520
+ $ punk --file ./punks.png flip
521
+ ```
522
+
523
+ printing:
524
+
525
+ ```
526
+ ==> reading >./punks.png<...
527
+ >ac39af4793119ee46bbff351d8cb6b5f23da60222126add4268e261199a2921b< SHA256 hash matching
528
+ ✓ True Official Genuine CryptoPunks™ verified
529
+ (1/10000) philip the intern flipping punk #0...
530
+ (2/10000) philip the intern flipping punk #1...
531
+ ...
532
+ ==> saving phunks flipped one-by-one by hand to >./punks-flipped.png<...
533
+ ```
534
+
535
+ And voila!
536
+
537
+ Yes, you can use any 24x24 composite. Use the `--file` option.
538
+ Example - let's flip the 1000 More Punks collection:
539
+
540
+ ```
541
+ $ punk --file ./morepunks.png flip
542
+ ```
543
+
544
+ And so on.
545
+
546
+
547
+
548
+
549
+ ### Shuffle Command
550
+
551
+ _Shuffle all punk characters (randomly) in all-in-one punk series composite (`./punks.png`)_
552
+
553
+ Let's generate an all new punks series by randomly shuffling
554
+ "one-by-one by hand [thanks to philip the intern]".
555
+ Let's give it a try:
556
+
557
+ ```
558
+ $ punk shuffle
559
+ # - same as -
560
+ $ punk --file ./punks.png --seed 4142 shuffle
561
+ ```
562
+
563
+ printing:
564
+
565
+ ```
566
+ ==> reading >./punks.png<...
567
+ >ac39af4793119ee46bbff351d8cb6b5f23da60222126add4268e261199a2921b< SHA256 hash matching
568
+ ✓ True Official Genuine CryptoPunks™ verified
569
+ using random generation number seed >4142< for shuffle
570
+ #1369 now #0
571
+ #590 now #1
572
+ #1635 now #2
573
+ #3199 now #3
574
+ ...
575
+ ==> saving p(h)unks shuffled one-by-one by hand to >./punks-4142.png<...
576
+ ```
577
+
578
+ And voila!
579
+
580
+ Note: The shuffle command also prints out
581
+ all new index numbers for easy reference (to reuse attributes and so on):
582
+
583
+ ```
584
+ All 10000 index numbers (zero-based) for reference using seed 4142:
585
+
586
+ [1369, 590, 1635, 3199, 1887, 7719, 5747, 2146, 6671, 7144,
587
+ 1428, 7817, 1219, 163, 7186, 8488, 7191, 5240, 7226, 6574,
588
+ 1619, 1701, 3018, 4745, 2438, 6474, 4756, 9300, 9382, 9528,
589
+ 102, 1847, 2848, 8369, 7825, 842, 66, 1035, 2934, 2442,
590
+ ...
591
+ 8789, 7299, 4403, 5972, 338, 5635, 7566, 828, 8987, 9777]
592
+ ```
593
+
594
+
595
+
596
+ Yes, you can use any 24x24 composite. Use the `--file` option.
597
+ Example - let's flip the 1000 More Punks collection:
598
+
599
+ ```
600
+ $ punk --file ./morepunks.png shuffle
601
+ ```
602
+
603
+ And so on.
604
+
605
+
606
+
607
+
226
608
  ## Usage in Your Scripts
227
609
 
228
610
 
229
- Yes, you can mint punks in your own scripts
611
+ Yes, you can generate punks in your own scripts
230
612
  and much more.
231
613
  See the
232
614
  [**Programming CryptoPunks & Copypastas Step-by-Step Booklet / Guide »**](https://github.com/cryptopunksnotdead/programming-cryptopunks)
data/Rakefile CHANGED
@@ -18,8 +18,9 @@ Hoe.spec 'cryptopunks' do
18
18
  self.history_file = 'CHANGELOG.md'
19
19
 
20
20
  self.extra_deps = [
21
- ['pixelart'],
21
+ ['pixelart', '>= 1.2.1'],
22
22
  ['csvreader'],
23
+ ['gli'],
23
24
  ]
24
25
 
25
26
  self.licenses = ['Public Domain']