From 79a08bf02eb709658692de2d6718471abe48d9bf Mon Sep 17 00:00:00 2001
From: Mike Lynch <m.lynch@sydney.edu.au>
Date: Mon, 17 Mar 2025 07:09:50 +1100
Subject: [PATCH] Separate palette for greyscale to stop the grey colours
 matching subdued tones from the other palettes

---
 rgb.txt => colour.txt |  87 +++++++++++-------------------------
 greyscale.txt         | 101 ++++++++++++++++++++++++++++++++++++++++++
 poptimal.js           |   8 +++-
 3 files changed, 134 insertions(+), 62 deletions(-)
 rename rgb.txt => colour.txt (65%)
 create mode 100644 greyscale.txt

diff --git a/rgb.txt b/colour.txt
similarity index 65%
rename from rgb.txt
rename to colour.txt
index 7af8368..8d9a2d4 100644
--- a/rgb.txt
+++ b/colour.txt
@@ -24,30 +24,57 @@
 255 240 245 lavender blush
 255 228 225 misty rose
 255 255 255 white
+0 0 0 black
+47 79 79 dark slate grey
 105 105 105 dim grey
 112 128 144 slate grey
 119 136 153 light slate grey
 190 190 190 grey
 211 211 211 light grey
+25 25 112 midnight blue
+0 0 128 navy
+0 0 128 navy blue
 100 149 237 cornflower blue
+72 61 139 dark slate blue
 106 90 205 slate blue
 123 104 238 medium slate blue
 132 112 255 light slate blue
+0 0 205 medium blue
+65 105 225 royal blue
+0 0 255 blue
+30 144 255 dodger blue
+0 191 255 deep sky blue
 135 206 235 sky blue
 135 206 250 light sky blue
+70 130 180 steel blue
 176 196 222 light steel blue
 173 216 230 light blue
 176 224 230 powder blue
 175 238 238 pale turquoise
+0 206 209 dark turquoise
+72 209 204 medium turquoise
+64 224 208 turquoise
+0 255 255 cyan
 224 255 255 light cyan
+95 158 160 cadet blue
 102 205 170 medium aquamarine
 127 255 212 aquamarine
+0 100 0 dark green
+85 107 47 dark olive green
 143 188 143 dark sea green
+46 139 87 sea green
+60 179 113 medium sea green
+32 178 170 light sea green
 152 251 152 pale green
+0 255 127 spring green
 124 252 0 lawn green
+0 255 0 green
 127 255 0 chartreuse
+0 250 154 medium spring green
 173 255 47 green yellow
+50 205 50 lime green
 154 205 50 yellow green
+34 139 34 forest green
 107 142 35 olive drab
 189 183 107 dark khaki
 240 230 140 khaki
@@ -101,66 +128,6 @@
 160 32 240 purple
 147 112 219 medium purple
 216 191 216 thistle
-102 102 102 60% grey
-105 105 105 59% grey
-107 107 107 58% grey
-110 110 110 57% grey
-112 112 112 56% grey
-115 115 115 55% grey
-117 117 117 54% grey
-120 120 120 53% grey
-122 122 122 52% grey
-125 125 125 51% grey
-127 127 127 50% grey
-130 130 130 49% grey
-133 133 133 48% grey
-135 135 135 47% grey
-138 138 138 46% grey
-140 140 140 45% grey
-143 143 143 44% grey
-145 145 145 43% grey
-148 148 148 42% grey
-150 150 150 41% grey
-153 153 153 40% grey
-156 156 156 39% grey
-158 158 158 38% grey
-161 161 161 37% grey
-163 163 163 36% grey
-166 166 166 35% grey
-168 168 168 34% grey
-171 171 171 33% grey
-173 173 173 32% grey
-176 176 176 31% grey
-179 179 179 30% grey
-181 181 181 29% grey
-184 184 184 28% grey
-186 186 186 27% grey
-189 189 189 26% grey
-191 191 191 25% grey
-194 194 194 24% grey
-196 196 196 23% grey
-199 199 199 22% grey
-201 201 201 21% grey
-204 204 204 20% grey
-207 207 207 19% grey
-209 209 209 18% grey
-212 212 212 17% grey
-214 214 214 16% grey
-217 217 217 15% grey
-219 219 219 14% grey
-222 222 222 13% grey
-224 224 224 12% grey
-227 227 227 11% grey
-229 229 229 10% grey
-232 232 232 9% grey
-235 235 235 8% grey
-237 237 237 7% grey
-240 240 240 6% grey
-242 242 242 5% grey
-245 245 245 4% grey
-247 247 247 3% grey
-250 250 250 2% grey
-252 252 252 1% grey
 169 169 169 dark grey
 0 0 139 dark blue
 0 139 139 dark cyan
diff --git a/greyscale.txt b/greyscale.txt
new file mode 100644
index 0000000..629775c
--- /dev/null
+++ b/greyscale.txt
@@ -0,0 +1,101 @@
+255 255 255 white
+0 0 0 black
+3 3 3 99% grey
+5 5 5 98% grey
+8 8 8 97% grey
+10 10 10 96% grey
+13 13 13 95% grey
+15 15 15 94% grey
+18 18 18 93% grey
+20 20 20 92% grey
+23 23 23 91% grey
+26 26 26 90% grey
+28 28 28 89% grey
+31 31 31 88% grey
+33 33 33 87% grey
+36 36 36 86% grey
+38 38 38 85% grey
+41 41 41 84% grey
+43 43 43 83% grey
+46 46 46 82% grey
+48 48 48 81% grey
+51 51 51 80% grey
+54 54 54 79% grey
+56 56 56 78% grey
+59 59 59 77% grey
+61 61 61 76% grey
+64 64 64 75% grey
+66 66 66 74% grey
+69 69 69 73% grey
+71 71 71 72% grey
+74 74 74 71% grey
+77 77 77 70% grey
+79 79 79 69% grey
+82 82 82 68% grey
+84 84 84 67% grey
+87 87 87 66% grey
+89 89 89 65% grey
+92 92 92 64% grey
+94 94 94 63% grey
+97 97 97 62% grey
+99 99 99 61% grey
+102 102 102 60% grey
+105 105 105 59% grey
+107 107 107 58% grey
+110 110 110 57% grey
+112 112 112 56% grey
+115 115 115 55% grey
+117 117 117 54% grey
+120 120 120 53% grey
+122 122 122 52% grey
+125 125 125 51% grey
+127 127 127 50% grey
+130 130 130 49% grey
+133 133 133 48% grey
+135 135 135 47% grey
+138 138 138 46% grey
+140 140 140 45% grey
+143 143 143 44% grey
+145 145 145 43% grey
+148 148 148 42% grey
+150 150 150 41% grey
+153 153 153 40% grey
+156 156 156 39% grey
+158 158 158 38% grey
+161 161 161 37% grey
+163 163 163 36% grey
+166 166 166 35% grey
+168 168 168 34% grey
+171 171 171 33% grey
+173 173 173 32% grey
+176 176 176 31% grey
+179 179 179 30% grey
+181 181 181 29% grey
+184 184 184 28% grey
+186 186 186 27% grey
+189 189 189 26% grey
+191 191 191 25% grey
+194 194 194 24% grey
+196 196 196 23% grey
+199 199 199 22% grey
+201 201 201 21% grey
+204 204 204 20% grey
+207 207 207 19% grey
+209 209 209 18% grey
+212 212 212 17% grey
+214 214 214 16% grey
+217 217 217 15% grey
+219 219 219 14% grey
+222 222 222 13% grey
+224 224 224 12% grey
+227 227 227 11% grey
+229 229 229 10% grey
+232 232 232 9% grey
+235 235 235 8% grey
+237 237 237 7% grey
+240 240 240 6% grey
+242 242 242 5% grey
+245 245 245 4% grey
+247 247 247 3% grey
+250 250 250 2% grey
+252 252 252 1% grey
diff --git a/poptimal.js b/poptimal.js
index 462e19a..c065242 100644
--- a/poptimal.js
+++ b/poptimal.js
@@ -133,8 +133,6 @@ async function main() {
 	const cfjson = await promises.readFile(argv.c);
   	const cf = JSON.parse(cfjson);
 
-	const namer = new ColourNamer();
-	await namer.load_colours(cf['colours']);
 
 
   	const fn = argv.o || String(Date.now()) + '.png';
@@ -142,6 +140,12 @@ async function main() {
   	const imgfile = cf['working_dir'] + '/' + fn;
 
 	const params = randomise_params();
+	console.log(params.palette);
+	const colourf = params.palette === 'grayscale' ? cf['grayscale'] : cf['colour'];
+
+	const namer = new ColourNamer();
+	await namer.load_colours(colourf);
+
 	const alt_text = image_description(namer, params);
 
 	const svg = poptimal_svg(params);
-- 
2.48.1