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 +4 -4
- data/Manifest.txt +4 -20
- data/README.md +416 -34
- data/Rakefile +2 -1
- data/config/spritesheet.csv +762 -237
- data/config/spritesheet.png +0 -0
- data/lib/cryptopunks/composite.rb +3 -4
- data/lib/cryptopunks/contract/punksdata-assets.rb +338 -0
- data/lib/cryptopunks/contract/punksdata-contract.rb +55 -0
- data/lib/cryptopunks/contract/punksdata-meta.rb +2107 -0
- data/lib/cryptopunks/generator.rb +148 -43
- data/lib/cryptopunks/image.rb +4 -92
- data/lib/cryptopunks/tool.rb +381 -0
- data/lib/cryptopunks/version.rb +3 -3
- data/lib/cryptopunks.rb +113 -83
- metadata +21 -43
- data/config/more/alien-female.txt +0 -34
- data/config/more/ape-female.txt +0 -33
- data/config/more/demon-female.txt +0 -33
- data/config/more/demon-male.txt +0 -33
- data/config/more/mummy-female.txt +0 -33
- data/config/more/mummy-male.txt +0 -33
- data/config/more/orc-female.txt +0 -33
- data/config/more/orc-male.txt +0 -33
- data/config/more/robot-female.txt +0 -34
- data/config/more/robot-male.txt +0 -33
- data/config/more/skeleton-female.txt +0 -33
- data/config/more/skeleton-male.txt +0 -33
- data/config/more/vampire-female.txt +0 -33
- data/config/more/vampire-male.txt +0 -33
- data/config/more/zombie-female.txt +0 -33
- data/config/original/alien-male.txt +0 -33
- data/config/original/ape-male.txt +0 -33
- data/config/original/human-female.txt +0 -33
- data/config/original/human-male.txt +0 -34
- data/config/original/zombie-male.txt +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d5c5095393516405521c5015bba5c08d8c664ed7069a3e2d40e18fa954a3966
|
4
|
+
data.tar.gz: 2e1f634711c262c540e069128842e547d9e43d4695d90022ed0d91f25c0f6f41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
27
|
-
|
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
|
+

|
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 
|
95
|
+
4x 
|
96
|
+
8x 
|
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
|
+

|
109
|
+

|
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
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
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
|
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)
|
64
|
-
==> (2/3)
|
65
|
-
==> (3/3)
|
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
|
356
|
+
**Bonus: Try the `-z/--zoom` factor 2x, 4x, 8x, etc.**
|
77
357
|
|
78
|
-
Let's give it a try. Let's
|
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)
|
94
|
-
==> (2/3)
|
95
|
-
==> (3/3)
|
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
|
-
|
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
|
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
|
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)
|
155
|
-
==> (2/4)
|
156
|
-
==> (3/4)
|
157
|
-
==> (4/4)
|
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
|
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
|
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)
|
199
|
-
==> (2/4)
|
200
|
-
==> (3/4)
|
201
|
-
==> (4/4)
|
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
|
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)
|